I'm developing an online document editor using Google's Material Design.
The editor has a toolbar with actions such as Bold, Italic and Insert Image.
When tapping on Insert Image the user shall be able to choose an image to insert. The image can be selected from one of several sources:
Local: User can choose an image on the local file system, which is then automatically uploaded and attached to the document being edited.
Attached: User can choose an image that is attached to the document. Either because the user uploaded it previously or because someone else uploaded it.
Library: User can choose an image from the underlying repository to which the document belongs.
Web: User can also choose an image from the web (using an integrated Google Image Search feature).
In addition; the user can, optionally, also specify settings for how the image shall be inserted. For example, specifying image position and size.
My first idea for this design was to popup a dialog when the user clicks on the Insert Image toolbar button.
That dialog would have one tab for each image source (see above). Each tab would have a search field for filtering images along with some source-specific search options.
However, I just learned that this design may be way to complex for a dialog. The design spec says:
Dialogs present a focused and limited set of actions, which are generally affirmative or dismissive.
One idea for simplifying things could be to have all sources in a single list (no tabs). However, I think it is important to clearly separate these source because the inserted image will behave differently depending on source. For example, web images are more or less just a reference while images from the library are managed (workflow, permissions etc) along with the document. This could be solved by visually presenting images from different sources in a distinct manner.
As an alternative to a dialog, I've been thinking that maybe I could present the Insert Image action in a navigation drawer (sidebar).
So, my questions are:
Is a dialog appropriate for something like this?
Is it a bad idea, in general, to have tabs in a dialog?
Would it be better to use a navigation drawer instead of a dialog for more complex actions such as this?*
Any pointers or ideas on how to go ahead with this design would be appreciated!