[Qgis-developer] Better Menus for QGIS 1.0

Tom Elwertowski telwertowski at comcast.net
Wed Aug 6 04:52:07 EDT 2008


Hello all,

As mentioned last month, here is a proposal for reorganized QGIS menus. Comments appear below after each menu.

For those who would like to try the menus, a patch is available at:
http://telwertowski.home.comcast.net/menu_reorg_r9000.diff

This patch is not the final version; it is only for review of menu placement. All items may not be enabled/disabled as appropriate. Code will be rewritten before submission to svn.

"[Mac]" indicates a Mac-only menu or item; "[X11]" indicates a non-Mac menu or item. All items appear once somewhere. My goal is to place each item where a user of that platform would expect to find it. Since I don't use Windows, someone should let me known if any items need to be relocated for Windows.

The menus:

[Mac] Application menu
[Mac] "About..."
[Mac] "Preferences..."
[Mac] "Custom CRS..."
[Mac] "Quit"

The Application menu is the leftmost menu for all Mac apps. It contains "About", "Preferences" (Options) and "Quit" (Exit) as well as access to other global settings. Access to file-based settings appears on the File menu.

Due to a Qt bug, CRS currently appears first in the menu demo.

File menu
"&New Project"
"&Open Project..."
"Open Recent Projects >"
"-"
"&Save Project"
"Save Project &As..."
"Save as Image..."
[Mac] "-"
[Mac] "Project Properties..."
"-"
[Mac] "Page Setup..."
"&Print Composer..."
[X11] "-"
[X11] "Exit"

Edit menu
"Cut Features"
"Copy Features"
"Paste Features"
"-"
"Capture Point"
"Capture Line"
"Capture Polygon"
"Delete Selected"
"Move Feature"
"Split Features"
"Add Vertex"
"Delete Vertex"
"Move Vertex"
"Add Ring"
"Add Island"

Ideally the Edit menu should begin with "Undo" and "Cut," "Copy" and "Paste" should work for whatever is selected, not just features. Getting this to work probably isn't feasible for QGIS 1.0 however. Qt provides a popup menu with these items on text fields which works now. To get the same info into the menubar Edit menu requires a handler in each dialog to update the menu actions according to which widget which currently has focus.

View menu
"Pan Map"
"Zoom In"
"Zoom Out"
"Select Features"
"Identify Feature"
"Measure Line"
"Measure Area"
-
"Zoom Full"
"Zoom To Selection"
"Zoom To Layer"
"Zoom Last"
-
"Map Tips"
"New Bookmark..."
"Show Bookmarks"
"Refresh"
[X11] "-"
[X11] "Toolbars >"
[X11] "Toggle Full Screen Mode"

The View menu should be limited to commands which modify the appearance of the currently active window (view). The first group is modal; they are together because selecting any one deactivates the others in the group. The second group are non-modal commands related to the first group. The third group contain other unrelated view actions.

The fourth group controls toolbar, panel and menu visibility. On a Mac, these go on the Window menu because they control things outside the view. Since other platforms don't typically have a Window menu and this is where they are today, I left them here. For an example of an app which uses the same menus (including the Window menu) on all platforms, see Qt Designer. My feeling is that the Window menu (which on a Mac is outside the window and at the top of the screen) serves a similar purpose to the taskbar on non-Mac platforms; adding a menu inside a window (on non-Mac platforms) which controls other windows seems odd to me.

The "Toolbars >" submenu is static at present. It will be fixed to update itself whenever plugins are loaded/unloaded.

Layer menu
"New Vector Layer..."
"Add Vector Layer..."
"Add Raster Layer..."
"Add PostGIS Layer..."
"Add WMS Layer..."
-
"Open Attribute Table"
"Toggle Editing"
"Save as Shapefile..."
"Save Selection as Shapefile..."
"Remove Layer"
"Properties...
-
"Show In Overview"
"Add All To Overview"
"Remove All From Overview"
-
"Show All Layers"
"Hide All Layers"

"Add" and "Save" are the interesting items here; they are file commands so they could be on the File menu. But there is also "New" and "Remove" which are not file commands. I put them all here because I like the symmetry of File (project): New, Open, Save and Layer: New, Add, Save and Remove.

I did not add the layer grouping commands. I haven't used them and am not sure I understand them. Perhaps I need to read the manual. :) They look like they might be specific to the Layers panel so perhaps leaving them only on the popup menu is sufficient. OTOH, exposing the functionality on the main menu might encourage more users to learn about these commands.

[X11] Settings menu
[X11] "Project Properties..."
[X11] "Custom CRS..."
[X11] "Options..."

The Settings menu is non-Mac because the Mac places these items on either the Application or File menu.

Plugin menu
"Plugin manager
"-"
(active plugin list)
"-"
"Python console"

Should the Python console be on top or bottom?

[Mac] Window menu
[Mac] "Minimize"
[Mac] "Zoom" (toggle maximized or not)
[Mac] "-"
[Mac] "Bring All to Front"
[Mac] "-"
[Mac] "Toolbars >"
[Mac] "Toggle Full Screen Mode"
[Mac] "-"
[Mac] (open window list)

This is a standard Mac menu. At present, only the Attribute Table is added to the Window menu. When selected, the window is also unminimized or raised to top. As other windows are added, they will also be fixed to unminimize or raise to top when reselected whether by the Window menu or any other action.

Is "Toggle Full Screen" necessary on a Mac? Mac guidelines are that it should be used only for games and video players which typically have a single window which covers the full screen.

Help menu
"Help Contents"
"-"
"Qgis Home Page"
"Check Qgis Version"
[X11] "-"
[X11] "About"

Reference: Apple Human Interface Guidelines - The Menu Bar and Its Menus:
http://developer.apple.com/documentation/UserExperience/Conceptual/AppleHIGuidelines/XHIGMenus/chapter_17_section_4.html#//apple_ref/doc/uid/TP30000356-TPXREF103

Tom


More information about the Qgis-developer mailing list