[shotwell/wip/dedeprecate: 29/38] WIP



commit b77e7e956a148442b0c233070ff762521cee588f
Author: Jens Georg <mail jensge org>
Date:   Sat Oct 29 19:04:55 2016 +0200

    WIP

 src/CollectionPage.vala         |   12 +-
 src/Page.vala                   |   68 ++++---
 src/PhotoPage.vala              |    5 +-
 src/direct/DirectPhotoPage.vala |    4 +-
 src/library/LibraryWindow.vala  |   14 +-
 src/library/OfflinePage.vala    |    4 +-
 src/library/TrashPage.vala      |    6 +-
 ui/collection.ui                |  171 ++++++++++----
 ui/direct.ui                    |  247 ++++++++++++++------
 ui/direct_context.ui            |   35 ++-
 ui/event.ui                     |   54 +++--
 ui/events_directory.ui          |  221 +++++++++++++-----
 ui/import.ui                    |  243 ++++++++++++++------
 ui/import_queue.ui              |  117 +++++++---
 ui/media.ui                     |  490 +++++++++++++++++++++++++++++----------
 ui/offline.ui                   |  243 ++++++++++++++------
 ui/photo.ui                     |  489 ++++++++++++++++++++++++++++----------
 ui/photo_context.ui             |  161 ++++++++++---
 ui/savedsearch.ui               |   30 ++-
 ui/tags.ui                      |   49 ++--
 ui/top.ui                       |   57 ++++-
 ui/trash.ui                     |  264 ++++++++++++++-------
 22 files changed, 2128 insertions(+), 856 deletions(-)
---
diff --git a/src/CollectionPage.vala b/src/CollectionPage.vala
index 953f9b5..e95f022 100644
--- a/src/CollectionPage.vala
+++ b/src/CollectionPage.vala
@@ -34,8 +34,8 @@ public abstract class CollectionPage : MediaPage {
         
         get_view().items_altered.connect(on_photos_altered);
         
-        init_item_context_menu("/CollectionContextMenu");
-        init_toolbar("/CollectionToolbar");
+        init_item_context_menu("CollectionContextMenu");
+        init_toolbar("CollectionToolbar");
         
         show_all();
 
@@ -745,20 +745,20 @@ public abstract class CollectionPage : MediaPage {
     }
     
     protected override bool on_ctrl_pressed(Gdk.EventKey? event) {
-        Gtk.ToolButton? rotate_button = ui.get_widget("/CollectionToolbar/ToolRotate")
+/*        Gtk.ToolButton? rotate_button = ui.get_widget("/CollectionToolbar/ToolRotate")
             as Gtk.ToolButton;
         if (rotate_button != null)
             rotate_button.set_related_action(get_action("RotateCounterclockwise"));
-        
+         */
         return base.on_ctrl_pressed(event);
     }
     
     protected override bool on_ctrl_released(Gdk.EventKey? event) {
-        Gtk.ToolButton? rotate_button = ui.get_widget("/CollectionToolbar/ToolRotate")
+/*        Gtk.ToolButton? rotate_button = ui.get_widget("/CollectionToolbar/ToolRotate")
             as Gtk.ToolButton;
         if (rotate_button != null)
             rotate_button.set_related_action(get_action("RotateClockwise"));
-        
+        */
         return base.on_ctrl_released(event);
     }
     
diff --git a/src/Page.vala b/src/Page.vala
index 4877a47..ee54b65 100644
--- a/src/Page.vala
+++ b/src/Page.vala
@@ -49,7 +49,7 @@ public class InjectionGroup {
 public abstract class Page : Gtk.ScrolledWindow {
     private const int CONSIDER_CONFIGURE_HALTED_MSEC = 400;
     
-    protected Gtk.UIManager ui;
+    protected Gtk.Builder builder;
     protected Gtk.Toolbar toolbar;
     protected bool in_view = false;
     
@@ -155,7 +155,7 @@ public abstract class Page : Gtk.ScrolledWindow {
         assert(this.container == null);
         
         this.container = container;
-        ui = ((PageWindow) container).get_ui_manager();
+        this.builder = new Gtk.Builder ();
     }
     
     public virtual void clear_container() {
@@ -199,22 +199,23 @@ public abstract class Page : Gtk.ScrolledWindow {
     public Gtk.Widget? get_event_source() {
         return event_source;
     }
+
+    private Gtk.MenuBar menubar;
     
     public virtual Gtk.MenuBar get_menubar() {
-        Gtk.MenuBar? menubar = ui.get_widget("/MenuBar") as Gtk.MenuBar;
-        assert(menubar != null);
-        
-        return menubar;
-    }
+        if (this.menubar == null) {
+           var model = builder.get_object ("MenuBar") as GLib.MenuModel;
+           this.menubar = new Gtk.MenuBar.from_model (model);
+        }
 
-    public virtual unowned Gtk.Widget get_page_ui_widget(string path) {
-        return ui.get_widget(path);
+        return this.menubar;
     }
 
     public virtual Gtk.Toolbar get_toolbar() {
         if (toolbar == null) {
             toolbar = toolbar_path == null ? new Gtk.Toolbar() :
-                                             ui.get_widget(toolbar_path) as Gtk.Toolbar;
+                                             builder.get_object (toolbar_path)
+                                             as Gtk.Toolbar;
             toolbar.get_style_context().add_class("bottom-toolbar");  // for elementary theme
             toolbar.set_icon_size(Gtk.IconSize.SMALL_TOOLBAR);
         }
@@ -473,31 +474,32 @@ public abstract class Page : Gtk.ScrolledWindow {
         foreach (string ui_filename in ui_filenames)
             init_load_ui(ui_filename);
             
-        ui.insert_action_group(action_group, 0);
+        //ui.insert_action_group(action_group, 0);
 
         // Collect injected UI elements and add them to the UI manager
         InjectionGroup[] injection_groups = init_collect_injection_groups();
         foreach (InjectionGroup group in injection_groups) {
             foreach (InjectionGroup.Element element in group.get_elements()) {
-                uint merge_id = ui.new_merge_id();
+                debug (element.name);
+/*                uint merge_id = ui.new_merge_id();
                 ui.add_ui(merge_id, group.get_path(), element.name, element.action,
                     element.kind, false);
-                merge_ids += merge_id;
+                merge_ids += merge_id;*/
             }
         }
         
-        AppWindow.get_instance().replace_common_placeholders(ui);
+//        AppWindow.get_instance().replace_common_placeholders(ui);
         
-        ui.ensure_update();
+//        ui.ensure_update();
     }
     
     private void remove_ui() {
-        for (int i = merge_ids.length - 1 ; i >= 0 ; --i)
+/*        for (int i = merge_ids.length - 1 ; i >= 0 ; --i)
             ui.remove_ui(merge_ids[i]);
-        ui.remove_action_group(action_group);
+        ui.remove_action_group(action_group); */
         merge_ids.resize(0);
         
-        ui.ensure_update();
+//        ui.ensure_update();
     }
     
     public void init_toolbar(string path) {
@@ -558,7 +560,11 @@ public abstract class Page : Gtk.ScrolledWindow {
         File ui_file = Resources.get_ui(ui_filename);
         
         try {
-            merge_ids += ui.add_ui_from_file(ui_file.get_path());
+            critical ("=> adding ui file %s", ui_filename);
+            merge_ids += builder.add_from_file(ui_file.get_path());
+            foreach (var obj in builder.get_objects ()) {
+                critical ("Found object %s", obj.get_type ().name ());
+            }
         } catch (Error err) {
             AppWindow.error_message("Error loading UI file %s: %s".printf(
                 ui_file.get_path(), err.message));
@@ -1244,18 +1250,26 @@ public abstract class CheckerboardPage : Page {
             get_page_context_menu();
     }
     
+    private Gtk.Menu item_context_menu;
     public virtual Gtk.Menu? get_item_context_menu() {
-        Gtk.Menu menu = (Gtk.Menu) ui.get_widget(item_context_menu_path);
-        assert(menu != null);
-        return menu;
+        if (item_context_menu != null) {
+            var model = this.builder.get_object (item_context_menu_path)
+                as GLib.MenuModel;
+            item_context_menu = new Gtk.Menu.from_model (model);
+        }
+
+        return item_context_menu;
     }
     
+    private Gtk.Menu page_context_menu;
     public override Gtk.Menu? get_page_context_menu() {
-        if (page_context_menu_path == null)
-            return null;
-        Gtk.Menu menu = (Gtk.Menu) ui.get_widget(page_context_menu_path);
-        assert(menu != null);
-        return menu;
+        if (page_context_menu != null) {
+            var model = this.builder.get_object (page_context_menu_path)
+                as GLib.MenuModel;
+            page_context_menu = new Gtk.Menu.from_model (model);
+        }
+
+        return page_context_menu;
     }
     
     protected override bool on_context_keypress() {
diff --git a/src/PhotoPage.vala b/src/PhotoPage.vala
index 0e14aab..603f5c9 100644
--- a/src/PhotoPage.vala
+++ b/src/PhotoPage.vala
@@ -3051,9 +3051,10 @@ public class LibraryPhotoPage : EditingHostPage {
     }
     
     private Gtk.Menu get_context_menu() {
-        Gtk.Menu menu = (Gtk.Menu) ui.get_widget("/PhotoContextMenu");
+/*        Gtk.Menu menu = (Gtk.Menu) ui.get_widget("/PhotoContextMenu");
         assert(menu != null);
-        return menu;
+        return menu; */
+        return new Gtk.Menu ();
     }
     
     protected override bool on_context_buttonpress(Gdk.EventButton event) {
diff --git a/src/direct/DirectPhotoPage.vala b/src/direct/DirectPhotoPage.vala
index 2a56887..ffeab51 100644
--- a/src/direct/DirectPhotoPage.vala
+++ b/src/direct/DirectPhotoPage.vala
@@ -274,8 +274,8 @@ public class DirectPhotoPage : EditingHostPage {
     }
 
     protected override bool on_context_buttonpress(Gdk.EventButton event) {
-        Gtk.Menu context_menu = (Gtk.Menu) ui.get_widget("/DirectContextMenu");
-        popup_context_menu(context_menu, event);
+//        Gtk.Menu context_menu = (Gtk.Menu) ui.get_widget("/DirectContextMenu");
+//        popup_context_menu(context_menu, event);
 
         return true;
     }
diff --git a/src/library/LibraryWindow.vala b/src/library/LibraryWindow.vala
index 5232432..5dad995 100644
--- a/src/library/LibraryWindow.vala
+++ b/src/library/LibraryWindow.vala
@@ -176,7 +176,7 @@ public class LibraryWindow : AppWindow {
         // setup search bar and add its accelerators to the window
         search_toolbar = new SearchFilterToolbar(search_actions);
         
-        try {
+/*        try {
             File ui_file = Resources.get_ui("top.ui");
             ui.add_ui_from_file(ui_file.get_path());
         } catch (Error e) {
@@ -189,6 +189,7 @@ public class LibraryWindow : AppWindow {
         // We never want to invoke show_all() on the menubar since that will show empty menus,
         // which should be hidden.
         menubar.no_show_all = true;
+        */
         
         // create the main layout & start at the Library page
         create_layout(library_branch.photos_entry.get_page());
@@ -1345,6 +1346,11 @@ public class LibraryWindow : AppWindow {
         
         Page current_page = get_current_page();
         if (current_page != null) {
+            var menubar = current_page.get_menubar ();
+            if (menubar != null) {
+                layout.remove (menubar);
+            }
+
             Gtk.Toolbar toolbar = current_page.get_toolbar();
             if (toolbar != null)
                 right_vbox.remove(toolbar);
@@ -1399,6 +1405,12 @@ public class LibraryWindow : AppWindow {
         subscribe_for_basic_information(get_current_page());
         
         page.switched_to();
+
+        var menubar = page.get_menubar ();
+        if (menubar != null) {
+            layout.pack_start (menubar, false, false);
+            menubar.show_all ();
+        }
         
         Gtk.Toolbar toolbar = page.get_toolbar();
         if (toolbar != null) {
diff --git a/src/library/OfflinePage.vala b/src/library/OfflinePage.vala
index 899dc53..4ac3257 100644
--- a/src/library/OfflinePage.vala
+++ b/src/library/OfflinePage.vala
@@ -28,8 +28,8 @@ public class OfflinePage : CheckerboardPage {
     public OfflinePage() {
         base (NAME);
         
-        init_item_context_menu("/OfflineContextMenu");
-        init_toolbar("/OfflineToolbar");
+        init_item_context_menu("OfflineContextMenu");
+        init_toolbar("OfflineToolbar");
         
         tracker = new MediaViewTracker(get_view());
         
diff --git a/src/library/TrashPage.vala b/src/library/TrashPage.vala
index 0a38ac0..60893b0 100644
--- a/src/library/TrashPage.vala
+++ b/src/library/TrashPage.vala
@@ -28,9 +28,9 @@ public class TrashPage : CheckerboardPage {
     public TrashPage() {
         base (NAME);
         
-        init_item_context_menu("/TrashContextMenu");
-        init_page_context_menu("/TrashPageMenu");
-        init_toolbar("/TrashToolbar");
+        init_item_context_menu("TrashContextMenu");
+        init_page_context_menu("TrashPageMenu");
+        init_toolbar("TrashToolbar");
         
         tracker = new MediaViewTracker(get_view());
         
diff --git a/ui/collection.ui b/ui/collection.ui
index d832ea6..ede3cbb 100644
--- a/ui/collection.ui
+++ b/ui/collection.ui
@@ -1,51 +1,120 @@
-<ui>
-    <popup name="CollectionContextMenu">
-        <menuitem name="ContextEnhance" action="Enhance" />
-        <menuitem name="ContextRevert" action="Revert" />
-        <separator />
-        <menuitem name="ContextAddTags" action="AddTagsContextMenu" />
-        <menuitem name="ContextModifyTags" action="ModifyTags" />
-        <placeholder name="ContextTagsPlaceholder" />
-        <separator />
-        <placeholder name="ContextFacesPlaceholder" />
-        <separator />
-        <menuitem name="ContextFlag" action="Flag" />
-        <menu name="Rate" action="Rate">
-            <menuitem name="RateFive" action="RateFive" />
-            <menuitem name="RateFour" action="RateFour" />
-            <menuitem name="RateThree" action="RateThree" />
-            <menuitem name="RateTwo" action="RateTwo" />
-            <menuitem name="RateOne" action="RateOne" />
-            <menuitem name="RateUnrated" action="RateUnrated" />
-            <menuitem name="RateRejected" action="RateRejected" />
-            <separator />
-            <menuitem name="IncreaseRating" action="IncreaseRating" />
-            <menuitem name="DecreaseRating" action="DecreaseRating" />
-        </menu>
-        <menu name="RawDeveloper" action="RawDeveloper">
-            <menuitem name="RawDeveloperShotwell" action="RawDeveloperShotwell" />
-            <menuitem name="RawDeveloperCamera" action="RawDeveloperCamera" />
-        </menu>
-        <separator />
-        <menuitem name="ContextEditTitle" action="EditTitle" />
-        <menuitem name="ContextEditComment" action="EditComment" />
-        <menuitem name="ContextExternalEdit" action="ExternalEdit" />
-        <menuitem name="ContextExternalEditRAW" action="ExternalEditRAW" />
-        <separator />
-        <menuitem name="ContextJumpToEvent" action="CommonJumpToEvent" />
-        <menuitem name="ContextJumpToFile" action="CommonJumpToFile" />
-        <menuitem name="ContextSendTo" action="SendToContextMenu" />
-        <separator />
-        <menuitem name="ContextMoveToTrash" action="MoveToTrash" />
-    </popup>
-    
-    <toolbar name="CollectionToolbar">
-        <toolitem name="ToolRotate" action="RotateClockwise" />
-        <toolitem name="ToolEnhance" action="Enhance" />
-        <separator />
-        <toolitem name="ToolPublish" action="Publish" />
-        <separator />
-        <toolitem name="ToolFind" action="CommonDisplaySearchbar" />
-    </toolbar>
-</ui>
-
+<?xml version="1.0"?>
+<interface domain="shotwell">
+  <menu id="CollectionContextMenu">
+    <submenu>
+      <attribute name="label" translatable="yes">Rate</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">RateFive</attribute>
+          <attribute name="action">RateFive</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">RateFour</attribute>
+          <attribute name="action">RateFour</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">RateThree</attribute>
+          <attribute name="action">RateThree</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">RateTwo</attribute>
+          <attribute name="action">RateTwo</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">RateOne</attribute>
+          <attribute name="action">RateOne</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">RateUnrated</attribute>
+          <attribute name="action">RateUnrated</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">RateRejected</attribute>
+          <attribute name="action">RateRejected</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">IncreaseRating</attribute>
+          <attribute name="action">IncreaseRating</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">DecreaseRating</attribute>
+          <attribute name="action">DecreaseRating</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">RawDeveloper</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">RawDeveloperShotwell</attribute>
+          <attribute name="action">RawDeveloperShotwell</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">RawDeveloperCamera</attribute>
+          <attribute name="action">RawDeveloperCamera</attribute>
+        </item>
+      </section>
+    </submenu>
+  </menu>
+  <object class="GtkToolbar" id="CollectionToolbar">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <child>
+      <object class="GtkToolButton" id="ToolRotate">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="label" translatable="yes">__glade_unnamed_3</property>
+        <property name="use_underline">True</property>
+      </object>
+      <packing>
+        <property name="expand">False</property>
+        <property name="homogeneous">True</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkToolButton" id="ToolEnhance">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="label" translatable="yes">__glade_unnamed_4</property>
+        <property name="use_underline">True</property>
+      </object>
+      <packing>
+        <property name="expand">False</property>
+        <property name="homogeneous">True</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkSeparatorToolItem">
+      </object>
+    </child>
+    <child>
+      <object class="GtkToolButton" id="ToolPublish">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="label" translatable="yes">__glade_unnamed_4</property>
+        <property name="use_underline">True</property>
+      </object>
+      <packing>
+        <property name="expand">False</property>
+        <property name="homogeneous">True</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkSeparatorToolItem">
+      </object>
+    </child>
+    <child>
+      <object class="GtkToolButton" id="ToolFind">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="use_underline">True</property>
+      </object>
+      <packing>
+        <property name="expand">False</property>
+        <property name="homogeneous">True</property>
+      </packing>
+    </child>
+  </object>
+</interface>
diff --git a/ui/direct.ui b/ui/direct.ui
index e3d4e34..8447104 100644
--- a/ui/direct.ui
+++ b/ui/direct.ui
@@ -1,70 +1,177 @@
-<ui>
-
-    <menubar name="MenuBar">
-        <menu name="FileMenu" action="FileMenu">
-            <menuitem name="Save" action="Save" />
-            <menuitem name="SaveAs" action="SaveAs" />
-            <separator />
-            <placeholder name="PrintPlaceholder"/>
-            <separator />
-            <menuitem name="SendTo" action="SendTo" />
-            <placeholder name="SetBackgroundPlaceholder" />
-            <separator />
-            <menuitem name="JumpToFile" action="CommonJumpToFile" />
-            <separator />
-            <menuitem name="Quit" action="CommonQuit" />
-        </menu>
-        
-        <menu name="EditMenu" action="EditMenu">
-            <menuitem name="Undo" action="CommonUndo" />
-            <menuitem name="Redo" action="CommonRedo" />
-        </menu>
-        
-        <menu name="ViewMenu" action="ViewMenu">
-            <menuitem name="Fullscreen" action="CommonFullscreen" />
-            <separator />
-            <menuitem name="IncreaseSize" action="IncreaseSize" />
-            <menuitem name="DecreaseSize" action="DecreaseSize" />
-            <separator />
-            <menuitem name="ZoomFit" action="ZoomFit" />
-            <menuitem name="Zoom100" action="Zoom100" />
-            <menuitem name="Zoom200" action="Zoom200" />
-        </menu>
-
-        <menu name="PhotoMenu" action="PhotoMenu">
-            <menuitem name="PrevPhoto" action="PrevPhoto" />
-            <menuitem name="NextPhoto" action="NextPhoto" />
-            <separator />
-            <menuitem name="RotateClockwise" action="RotateClockwise" />
-            <menuitem name="RotateCounterclockwise" action="RotateCounterclockwise" />
-            <menuitem name="FlipHorizontally" action="FlipHorizontally" />
-            <menuitem name="FlipVertically" action="FlipVertically" />
-            <separator />
-            <menu name="Tools" action="Tools">
-                <menuitem name="Enhance" action="Enhance" />
-                <menuitem name="Crop" action="Crop" />
-                <menuitem name="Straighten" action="Straighten" />
-                <menuitem name="RedEye" action="RedEye" />
-                <menuitem name="Adjust" action="Adjust" />
-            </menu>
-            <menuitem name="Revert" action="Revert" />
-            <separator />
-            <menuitem name="AdjustDateTime" action="AdjustDateTime" />
-        </menu>
-        
-        <menu name="HelpMenu" action="HelpMenu">
-            <menuitem name="Contents" action="CommonHelpContents" />
-            <menuitem name="Frequently Asked Questions" action="CommonHelpFAQ" />
-            <menuitem name="Report a Problem…" action="CommonHelpReportProblem" />
-            <separator />
-            <menuitem name="About" action="CommonAbout" />
-        </menu>
-    </menubar>
-
-    <popup name="DirectContextMenu">
-        <placeholder name="ContextJumpPlaceholder">
-            <menuitem name="ContextJumpToFile" action="CommonJumpToFile" />
-        </placeholder>
-    </popup>
-    
-</ui>
+<?xml version="1.0"?>
+<interface domain="shotwell">
+  <menu id="MenuBar">
+    <submenu>
+      <attribute name="label" translatable="yes">FileMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">Save</attribute>
+          <attribute name="action">Save</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">SaveAs</attribute>
+          <attribute name="action">SaveAs</attribute>
+        </item>
+      </section>
+      <section>
+      <attribute name="id">PrintPlaceholder</attribute>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">SendTo</attribute>
+          <attribute name="action">SendTo</attribute>
+        </item>
+      <attribute name="id">SetBackgroundPlaceholder</attribute>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonJumpToFile</attribute>
+          <attribute name="action">CommonJumpToFile</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonQuit</attribute>
+          <attribute name="action">CommonQuit</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">EditMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonUndo</attribute>
+          <attribute name="action">CommonUndo</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonRedo</attribute>
+          <attribute name="action">CommonRedo</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">ViewMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonFullscreen</attribute>
+          <attribute name="action">CommonFullscreen</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">IncreaseSize</attribute>
+          <attribute name="action">IncreaseSize</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">DecreaseSize</attribute>
+          <attribute name="action">DecreaseSize</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">ZoomFit</attribute>
+          <attribute name="action">ZoomFit</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">Zoom100</attribute>
+          <attribute name="action">Zoom100</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">Zoom200</attribute>
+          <attribute name="action">Zoom200</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">PhotoMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">PrevPhoto</attribute>
+          <attribute name="action">PrevPhoto</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">NextPhoto</attribute>
+          <attribute name="action">NextPhoto</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">RotateClockwise</attribute>
+          <attribute name="action">RotateClockwise</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">RotateCounterclockwise</attribute>
+          <attribute name="action">RotateCounterclockwise</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">FlipHorizontally</attribute>
+          <attribute name="action">FlipHorizontally</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">FlipVertically</attribute>
+          <attribute name="action">FlipVertically</attribute>
+        </item>
+      </section>
+      <section>
+        <submenu>
+          <attribute name="label" translatable="yes">Tools</attribute>
+          <section>
+            <item>
+              <attribute name="label" translatable="yes">Enhance</attribute>
+              <attribute name="action">Enhance</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">Crop</attribute>
+              <attribute name="action">Crop</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">Straighten</attribute>
+              <attribute name="action">Straighten</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">RedEye</attribute>
+              <attribute name="action">RedEye</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">Adjust</attribute>
+              <attribute name="action">Adjust</attribute>
+            </item>
+          </section>
+        </submenu>
+        <item>
+          <attribute name="label" translatable="yes">Revert</attribute>
+          <attribute name="action">Revert</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">AdjustDateTime</attribute>
+          <attribute name="action">AdjustDateTime</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">HelpMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonHelpContents</attribute>
+          <attribute name="action">CommonHelpContents</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonHelpFAQ</attribute>
+          <attribute name="action">CommonHelpFAQ</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonHelpReportProblem</attribute>
+          <attribute name="action">CommonHelpReportProblem</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonAbout</attribute>
+          <attribute name="action">CommonAbout</attribute>
+        </item>
+      </section>
+    </submenu>
+  </menu>
+</interface>
diff --git a/ui/direct_context.ui b/ui/direct_context.ui
index 7b0d564..7e1e572 100644
--- a/ui/direct_context.ui
+++ b/ui/direct_context.ui
@@ -1,10 +1,25 @@
-<ui>
-    <popup name="DirectContextMenu">
-        <menuitem name="ContextEnhance" action="Enhance" />
-        <menuitem name="ContextRevert" action="Revert" />
-        <separator />
-        <placeholder name="ContextJumpPlaceholder" />
-        <menuitem name="ContextSendTo" action="SendTo" />
-    </popup>
-</ui>
-
+<?xml version="1.0"?>
+<interface domain="shotwell">
+  <menu id="DirectContextMenu">
+    <submenu>
+      <attribute name="label" translatable="yes">DirectContextMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">Enhance</attribute>
+          <attribute name="action">Enhance</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">Revert</attribute>
+          <attribute name="action">Revert</attribute>
+        </item>
+      </section>
+      <section>
+      <attribute name="id">ContextJumpPlaceholder</attribute>
+        <item>
+          <attribute name="label" translatable="yes">SendTo</attribute>
+          <attribute name="action">SendTo</attribute>
+        </item>
+      </section>
+    </submenu>
+  </menu>
+</interface>
diff --git a/ui/event.ui b/ui/event.ui
index dcb1d95..93b2da4 100644
--- a/ui/event.ui
+++ b/ui/event.ui
@@ -1,25 +1,29 @@
-<ui>
-
-    <menubar name="MenuBar">
-        <menu name="PhotosMenu" action="PhotosMenu">
-            <separator />
-            <menuitem name="MakePrimary" action="MakePrimary" />
-        </menu>
-        <menu name="EventsMenu" action="EventsMenu">
-            <menuitem name="EventRename" action="Rename" />
-            <menuitem name="EditComment" action="EditComment" />
-        </menu>
-    </menubar>
-
-    <popup name="CollectionContextMenu">
-        <separator />
-        <menuitem name="ContextMakePrimary" action="MakePrimary" />
-    </popup>
-
-    <popup name="EventContextMenu">
-        <menuitem name="ContextRename" action="Rename" />
-        <menuitem name="EditEventComment" action="EditEventComment" />
-    </popup>
-    
-</ui>
-
+<?xml version="1.0"?>
+<interface domain="shotwell">
+  <menu id="MenuBar">
+    <submenu>
+      <attribute name="label" translatable="yes">PhotosMenu</attribute>
+      <section>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">MakePrimary</attribute>
+          <attribute name="action">MakePrimary</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">EventsMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">Rename</attribute>
+          <attribute name="action">Rename</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">EditComment</attribute>
+          <attribute name="action">EditComment</attribute>
+        </item>
+      </section>
+    </submenu>
+  </menu>
+</interface>
diff --git a/ui/events_directory.ui b/ui/events_directory.ui
index 33ab5d7..0b1dec1 100644
--- a/ui/events_directory.ui
+++ b/ui/events_directory.ui
@@ -1,64 +1,157 @@
-<ui>
-
-    <menubar name="MenuBar">
-        <menu name="FileMenu" action="FileMenu">
-            <menuitem name="Import" action="CommonFileImport" />
-            <menuitem name="ImportExternal" action="ExternalLibraryImport" />
-            <separator />
-            <menuitem name="EmptyTrash" action="CommonEmptyTrash" />
-            <separator />
-            <menuitem name="Quit" action="CommonQuit" />
-        </menu>
-
-        <menu name="EditMenu" action="EditMenu">
-            <menuitem name="Undo" action="CommonUndo" />
-            <menuitem name="Redo" action="CommonRedo" />
-            <separator />
-            <menuitem name="Find" action="CommonFind" />
-            <menuitem name="NewSearch" action="CommonNewSearch" />
-            <separator />
-            <menuitem name="SelectAll" action="CommonSelectAll" />
-            <separator />
-            <menuitem name="Preferences" action="CommonPreferences" />
-        </menu>
-        
-        <menu name="ViewMenu" action="ViewMenu">
-            <menuitem name="DisplayBasicProperties" action="CommonDisplayBasicProperties" />
-            <menuitem name="DisplayExtendedProperties" action="CommonDisplayExtendedProperties" />
-            <menuitem name="DisplaySearchbar" action="CommonDisplaySearchbar" />
-            <menuitem name="DisplaySidebar" action="CommonDisplaySidebar" />
-            <menuitem name="DisplayToolbar" action="CommonDisplayToolbar" />
-            <separator />
-            <menuitem name="ViewComment" action="ViewComment" />
-            <separator />
-            <menu name="SortEvents" action="CommonSortEvents">
-                <menuitem name="SortEventsAscending" action="CommonSortEventsAscending" />
-                <menuitem name="SortEventsDescending" action="CommonSortEventsDescending" />
-            </menu>
-            <separator />
-            <menuitem name="Fullscreen" action="CommonFullscreen" />
-        </menu>
-
-        <menu name="EventsMenu" action="EventsMenu">
-            <menuitem name="EventMerge" action="Merge" />
-            <menuitem name="EventRename" action="Rename" />
-            <menuitem name="EditComment" action="EditComment" />
-        </menu>
-        
-        <menu name="HelpMenu" action="HelpMenu">
-            <menuitem name="Contents" action="CommonHelpContents" />
-            <menuitem name="Frequently Asked Questions" action="CommonHelpFAQ" />
-            <menuitem name="Report a Problem…" action="CommonHelpReportProblem" />
-            <separator />
-            <menuitem name="About" action="CommonAbout" />
-        </menu>
-    </menubar>
-
-    <popup name="EventsDirectoryContextMenu">
-        <menuitem name="ContextMerge" action="Merge" />
-        <menuitem name="ContextRename" action="Rename" />
-        <menuitem name="ContextEditComment" action="EditComment" />
-    </popup>
-
-</ui>
-
+<?xml version="1.0"?>
+<interface domain="shotwell">
+  <menu id="MenuBar">
+    <submenu>
+      <attribute name="label" translatable="yes">FileMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonFileImport</attribute>
+          <attribute name="action">CommonFileImport</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">ExternalLibraryImport</attribute>
+          <attribute name="action">ExternalLibraryImport</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonEmptyTrash</attribute>
+          <attribute name="action">CommonEmptyTrash</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonQuit</attribute>
+          <attribute name="action">CommonQuit</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">EditMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonUndo</attribute>
+          <attribute name="action">CommonUndo</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonRedo</attribute>
+          <attribute name="action">CommonRedo</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonFind</attribute>
+          <attribute name="action">CommonFind</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonNewSearch</attribute>
+          <attribute name="action">CommonNewSearch</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonSelectAll</attribute>
+          <attribute name="action">CommonSelectAll</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonPreferences</attribute>
+          <attribute name="action">CommonPreferences</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">ViewMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplayBasicProperties</attribute>
+          <attribute name="action">CommonDisplayBasicProperties</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplayExtendedProperties</attribute>
+          <attribute name="action">CommonDisplayExtendedProperties</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplaySearchbar</attribute>
+          <attribute name="action">CommonDisplaySearchbar</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplaySidebar</attribute>
+          <attribute name="action">CommonDisplaySidebar</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplayToolbar</attribute>
+          <attribute name="action">CommonDisplayToolbar</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">ViewComment</attribute>
+          <attribute name="action">ViewComment</attribute>
+        </item>
+      </section>
+      <section>
+        <submenu>
+          <attribute name="label" translatable="yes">CommonSortEvents</attribute>
+          <section>
+            <item>
+              <attribute name="label" translatable="yes">CommonSortEventsAscending</attribute>
+              <attribute name="action">CommonSortEventsAscending</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonSortEventsDescending</attribute>
+              <attribute name="action">CommonSortEventsDescending</attribute>
+            </item>
+          </section>
+        </submenu>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonFullscreen</attribute>
+          <attribute name="action">CommonFullscreen</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">EventsMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">Merge</attribute>
+          <attribute name="action">Merge</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">Rename</attribute>
+          <attribute name="action">Rename</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">EditComment</attribute>
+          <attribute name="action">EditComment</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">HelpMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonHelpContents</attribute>
+          <attribute name="action">CommonHelpContents</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonHelpFAQ</attribute>
+          <attribute name="action">CommonHelpFAQ</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonHelpReportProblem</attribute>
+          <attribute name="action">CommonHelpReportProblem</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonAbout</attribute>
+          <attribute name="action">CommonAbout</attribute>
+        </item>
+      </section>
+    </submenu>
+  </menu>
+</interface>
diff --git a/ui/import.ui b/ui/import.ui
index 3c3cac3..0f0c2c9 100644
--- a/ui/import.ui
+++ b/ui/import.ui
@@ -1,66 +1,177 @@
-<ui>
-
-    <menubar name="MenuBar">
-        <menu name="FileMenu" action="FileMenu">
-            <menuitem name="Import" action="CommonFileImport" />
-            <menuitem name="ImportSelected" action="ImportSelected" />
-            <menuitem name="ImportAll" action="ImportAll" />
-            <menuitem name="ImportExternal" action="ExternalLibraryImport" />
-            <separator />
-            <menuitem name="EmptyTrash" action="CommonEmptyTrash" />
-            <separator />
-            <menuitem name="Quit" action="CommonQuit" />
-        </menu>
-        
-        <menu name="EditMenu" action="EditMenu">
-            <menuitem name="Undo" action="CommonUndo" />
-            <menuitem name="Redo" action="CommonRedo" />
-            <separator />
-            <menuitem name="Find" action="CommonFind" />
-            <separator />
-            <menuitem name="SelectAll" action="CommonSelectAll" />
-            <separator />
-            <menuitem name="Preferences" action="CommonPreferences" />
-        </menu>
-        
-        <menu name="ViewMenu" action="ViewMenu">
-            <menuitem name="DisplayBasicProperties" action="CommonDisplayBasicProperties" />
-            <menuitem name="DisplayExtendedProperties" action="CommonDisplayExtendedProperties" />
-            <menuitem name="DisplaySearchbar" action="CommonDisplaySearchbar" />
-            <menuitem name="DisplaySidebar" action="CommonDisplaySidebar" />
-            <menuitem name="DisplayToolbar" action="CommonDisplayToolbar" />
-            <separator />
-            <menuitem name="ViewTitle" action="ViewTitle" />
-            <separator />
-            <menu name="FilterPhotos" action="CommonFilterPhotos">
-                <menuitem name="DisplayFiveOrHigher" action="CommonDisplayFiveOrHigher" />
-                <menuitem name="DisplayFourOrHigher" action="CommonDisplayFourOrHigher" />
-                <menuitem name="DisplayThreeOrHigher" action="CommonDisplayThreeOrHigher" />
-                <menuitem name="DisplayTwoOrHigher" action="CommonDisplayTwoOrHigher" />
-                <menuitem name="DisplayOneOrHigher" action="CommonDisplayOneOrHigher" />
-                <menuitem name="DisplayUnratedOrHigher" action="CommonDisplayUnratedOrHigher" />
-                <menuitem name="DisplayRejectedOrHigher" action="CommonDisplayRejectedOrHigher" />
-                <menuitem name="DisplayRejectedOnly" action="CommonDisplayRejectedOnly" />
-            </menu>
-            <separator />
-            <menu name="SortEvents" action="CommonSortEvents">
-                <menuitem name="SortEventsAscending" action="CommonSortEventsAscending" />
-                <menuitem name="SortEventsDescending" action="CommonSortEventsDescending" />
-            </menu>
-        </menu>
-        
-        <menu name="HelpMenu" action="HelpMenu">
-            <menuitem name="Contents" action="CommonHelpContents" />
-            <menuitem name="Frequently Asked Questions" action="CommonHelpFAQ" />
-            <menuitem name="Report a Problem…" action="CommonHelpReportProblem" />
-            <separator />
-            <menuitem name="About" action="CommonAbout" />
-        </menu>
-    </menubar>
-
-    <popup name="ImportContextMenu">
-            <menuitem name="ContextImportSelected" action="ImportSelected" />
-            <menuitem name="ContextImportAll" action="ImportAll" />
-    </popup>
-    
-</ui>
+<?xml version="1.0"?>
+<interface domain="shotwell">
+  <menu id="MenuBar">
+    <submenu>
+      <attribute name="label" translatable="yes">FileMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonFileImport</attribute>
+          <attribute name="action">CommonFileImport</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">ImportSelected</attribute>
+          <attribute name="action">ImportSelected</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">ImportAll</attribute>
+          <attribute name="action">ImportAll</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">ExternalLibraryImport</attribute>
+          <attribute name="action">ExternalLibraryImport</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonEmptyTrash</attribute>
+          <attribute name="action">CommonEmptyTrash</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonQuit</attribute>
+          <attribute name="action">CommonQuit</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">EditMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonUndo</attribute>
+          <attribute name="action">CommonUndo</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonRedo</attribute>
+          <attribute name="action">CommonRedo</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonFind</attribute>
+          <attribute name="action">CommonFind</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonSelectAll</attribute>
+          <attribute name="action">CommonSelectAll</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonPreferences</attribute>
+          <attribute name="action">CommonPreferences</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">ViewMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplayBasicProperties</attribute>
+          <attribute name="action">CommonDisplayBasicProperties</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplayExtendedProperties</attribute>
+          <attribute name="action">CommonDisplayExtendedProperties</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplaySearchbar</attribute>
+          <attribute name="action">CommonDisplaySearchbar</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplaySidebar</attribute>
+          <attribute name="action">CommonDisplaySidebar</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplayToolbar</attribute>
+          <attribute name="action">CommonDisplayToolbar</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">ViewTitle</attribute>
+          <attribute name="action">ViewTitle</attribute>
+        </item>
+      </section>
+      <section>
+        <submenu>
+          <attribute name="label" translatable="yes">CommonFilterPhotos</attribute>
+          <section>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayFiveOrHigher</attribute>
+              <attribute name="action">CommonDisplayFiveOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayFourOrHigher</attribute>
+              <attribute name="action">CommonDisplayFourOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayThreeOrHigher</attribute>
+              <attribute name="action">CommonDisplayThreeOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayTwoOrHigher</attribute>
+              <attribute name="action">CommonDisplayTwoOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayOneOrHigher</attribute>
+              <attribute name="action">CommonDisplayOneOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayUnratedOrHigher</attribute>
+              <attribute name="action">CommonDisplayUnratedOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayRejectedOrHigher</attribute>
+              <attribute name="action">CommonDisplayRejectedOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayRejectedOnly</attribute>
+              <attribute name="action">CommonDisplayRejectedOnly</attribute>
+            </item>
+          </section>
+        </submenu>
+      </section>
+      <section>
+        <submenu>
+          <attribute name="label" translatable="yes">CommonSortEvents</attribute>
+          <section>
+            <item>
+              <attribute name="label" translatable="yes">CommonSortEventsAscending</attribute>
+              <attribute name="action">CommonSortEventsAscending</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonSortEventsDescending</attribute>
+              <attribute name="action">CommonSortEventsDescending</attribute>
+            </item>
+          </section>
+        </submenu>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">HelpMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonHelpContents</attribute>
+          <attribute name="action">CommonHelpContents</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonHelpFAQ</attribute>
+          <attribute name="action">CommonHelpFAQ</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonHelpReportProblem</attribute>
+          <attribute name="action">CommonHelpReportProblem</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonAbout</attribute>
+          <attribute name="action">CommonAbout</attribute>
+        </item>
+      </section>
+    </submenu>
+  </menu>
+</interface>
diff --git a/ui/import_queue.ui b/ui/import_queue.ui
index 88078b8..92ba9c1 100644
--- a/ui/import_queue.ui
+++ b/ui/import_queue.ui
@@ -1,34 +1,83 @@
-<ui>
-
-    <menubar name="MenuBar">
-        <menu name="FileMenu" action="FileMenu">
-            <menuitem name="Stop" action="Stop" />
-            <separator />
-            <menuitem name="Import" action="CommonFileImport" />
-            <menuitem name="ImportExternal" action="ExternalLibraryImport" />
-            <separator />
-            <menuitem name="EmptyTrash" action="CommonEmptyTrash" />
-            <separator />
-            <menuitem name="Quit" action="CommonQuit" />
-        </menu>
-        
-        <menu name="ViewMenu" action="ViewMenu">
-            <menuitem name="DisplayBasicProperties" action="CommonDisplayBasicProperties" />
-            <separator />
-            <menu name="SortEvents" action="CommonSortEvents">
-                <menuitem name="SortEventsAscending" action="CommonSortEventsAscending" />
-                <menuitem name="SortEventsDescending" action="CommonSortEventsDescending" />
-            </menu>
-        </menu>
-        
-        <menu name="HelpMenu" action="HelpMenu">
-            <menuitem name="Contents" action="CommonHelpContents" />
-            <menuitem name="Frequently Asked Questions" action="CommonHelpFAQ" />
-            <menuitem name="Report a Problem…" action="CommonHelpReportProblem" />
-            <separator />
-            <menuitem name="About" action="CommonAbout" />
-        </menu>
-    </menubar>
-
-</ui>
-
+<?xml version="1.0"?>
+<interface domain="shotwell">
+  <menu id="MenuBar">
+    <submenu>
+      <attribute name="label" translatable="yes">FileMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">Stop</attribute>
+          <attribute name="action">Stop</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonFileImport</attribute>
+          <attribute name="action">CommonFileImport</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">ExternalLibraryImport</attribute>
+          <attribute name="action">ExternalLibraryImport</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonEmptyTrash</attribute>
+          <attribute name="action">CommonEmptyTrash</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonQuit</attribute>
+          <attribute name="action">CommonQuit</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">ViewMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplayBasicProperties</attribute>
+          <attribute name="action">CommonDisplayBasicProperties</attribute>
+        </item>
+      </section>
+      <section>
+        <submenu>
+          <attribute name="label" translatable="yes">CommonSortEvents</attribute>
+          <section>
+            <item>
+              <attribute name="label" translatable="yes">CommonSortEventsAscending</attribute>
+              <attribute name="action">CommonSortEventsAscending</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonSortEventsDescending</attribute>
+              <attribute name="action">CommonSortEventsDescending</attribute>
+            </item>
+          </section>
+        </submenu>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">HelpMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonHelpContents</attribute>
+          <attribute name="action">CommonHelpContents</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonHelpFAQ</attribute>
+          <attribute name="action">CommonHelpFAQ</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonHelpReportProblem</attribute>
+          <attribute name="action">CommonHelpReportProblem</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonAbout</attribute>
+          <attribute name="action">CommonAbout</attribute>
+        </item>
+      </section>
+    </submenu>
+  </menu>
+</interface>
diff --git a/ui/media.ui b/ui/media.ui
index f42c189..3981003 100644
--- a/ui/media.ui
+++ b/ui/media.ui
@@ -1,127 +1,363 @@
-<ui>
-
-    <menubar name="MenuBar">
-        <menu name="FileMenu" action="FileMenu">
-            <menuitem name="Import" action="CommonFileImport" />
-            <menuitem name="ImportExternal" action="ExternalLibraryImport" />
-            <menuitem name="Export" action="Export" />
-            <separator />
-            <placeholder name="FileExtrasPlaceholder" />
-            <separator />
-            <menuitem name="JumpToFile" action="CommonJumpToFile" />
-            <separator />
-            <menuitem name="EmptyTrash" action="CommonEmptyTrash" />
-            <separator />
-            <menuitem name="Quit" action="CommonQuit" />
-        </menu>
-        
-        <menu name="EditMenu" action="EditMenu">
-            <menuitem name="Undo" action="CommonUndo" />
-            <menuitem name="Redo" action="CommonRedo" />
-            <separator />
-            <menuitem name="Find" action="CommonFind" />
-            <menuitem name="NewSearch" action="CommonNewSearch" />
-            <separator />
-            <placeholder name="EditExtrasPlaceholder" />
-            <menuitem name="RemoveFromLibrary" action="RemoveFromLibrary" />
-            <menuitem name="MoveToTrash" action="MoveToTrash" />
-            <separator />
-            <menuitem name="SelectAll" action="CommonSelectAll" />
-            <separator />
-            <menuitem name="Preferences" action="CommonPreferences" />
-        </menu>
-
-        <menu name="ViewMenu" action="ViewMenu">
-            <menuitem name="DisplayBasicProperties" action="CommonDisplayBasicProperties" />
-            <menuitem name="DisplayExtendedProperties" action="CommonDisplayExtendedProperties" />
-            <menuitem name="DisplaySearchbar" action="CommonDisplaySearchbar" />
-            <menuitem name="DisplaySidebar" action="CommonDisplaySidebar" />
-            <menuitem name="DisplayToolbar" action="CommonDisplayToolbar" />
-            <separator />
-            <menuitem name="ViewTitle" action="ViewTitle" />
-            <menuitem name="ViewComment" action="ViewComment" />
-            <menuitem name="ViewTags" action="ViewTags" />
-            <menuitem name="ViewRatings" action="ViewRatings" />
-            <separator />
-            <menu name="FilterPhotos" action="CommonFilterPhotos">
-                <menuitem name="DisplayFiveOrHigher" action="CommonDisplayFiveOrHigher" />
-                <menuitem name="DisplayFourOrHigher" action="CommonDisplayFourOrHigher" />
-                <menuitem name="DisplayThreeOrHigher" action="CommonDisplayThreeOrHigher" />
-                <menuitem name="DisplayTwoOrHigher" action="CommonDisplayTwoOrHigher" />
-                <menuitem name="DisplayOneOrHigher" action="CommonDisplayOneOrHigher" />
-                <menuitem name="DisplayUnratedOrHigher" action="CommonDisplayUnratedOrHigher" />
-                <menuitem name="DisplayRejectedOrHigher" action="CommonDisplayRejectedOrHigher" />
-                <menuitem name="DisplayRejectedOnly" action="CommonDisplayRejectedOnly" />
-            </menu>
-            <separator />
-            <menu name="SortPhotos" action="SortPhotos">
-                <menuitem name="SortByTitle" action="SortByTitle" />
-                <menuitem name="SortByFilename" action="SortByFilename" />
-                <menuitem name="SortByExposureDate" action="SortByExposureDate" />
-                <menuitem name="SortByRating" action="SortByRating" />
-                <separator />
-                <menuitem name="SortAscending" action="SortAscending" />
-                <menuitem name="SortDescending" action="SortDescending" />
-            </menu>
-            <menu name="SortEvents" action="CommonSortEvents">
-                <menuitem name="SortEventsAscending" action="CommonSortEventsAscending" />
-                <menuitem name="SortEventsDescending" action="CommonSortEventsDescending" />
-            </menu>
-            <separator />
-            <menuitem name="IncreaseSize" action="IncreaseSize" />
-            <menuitem name="DecreaseSize" action="DecreaseSize" />
-            <separator />
-            <placeholder name="ViewExtrasFullscreenSlideshowPlaceholder" />
-        </menu>
-                
-        <menu name="PhotosMenu" action="PhotosMenu">
-            <placeholder name="PhotosExtrasEditsPlaceholder" />
-            <separator />
-            <menuitem name="Flag" action="Flag" />
-            <menu name="Rate" action="Rate">
-                <menuitem name="RateFive" action="RateFive" />
-                <menuitem name="RateFour" action="RateFour" />
-                <menuitem name="RateThree" action="RateThree" />
-                <menuitem name="RateTwo" action="RateTwo" />
-                <menuitem name="RateOne" action="RateOne" />
-                <menuitem name="RateUnrated" action="RateUnrated" />
-                <menuitem name="RateRejected" action="RateRejected" />
-                <separator />
-                <menuitem name="IncreaseRating" action="IncreaseRating" />
-                <menuitem name="DecreaseRating" action="DecreaseRating" />
-            </menu>
-            <separator />
-            <menuitem name="EditTitle" action="EditTitle" />
-            <menuitem name="EditComment" action="EditComment" />
-            <placeholder name="PhotosExtrasDateTimePlaceholder" />
-            <separator />
-            <menu name="RawDeveloper" action="RawDeveloper">
-                <menuitem name="RawDeveloperShotwell" action="RawDeveloperShotwell" />
-                <menuitem name="RawDeveloperCamera" action="RawDeveloperCamera" />
-            </menu>
-            <separator />
-            <placeholder name="PhotosExtrasExternalsPlaceholder" />
-        </menu>
-
-        <menu name="EventsMenu" action="EventsMenu">
-            <menuitem name="NewEvent" action="NewEvent" />
-            <menuitem name="CommonJumpToEvent" action="CommonJumpToEvent" />
-        </menu>
-
-        <menu name="TagsMenu" action="TagsMenu">
-            <menuitem name="AddTags" action="AddTags" />
-            <menuitem name="ModifyTags" action="ModifyTags" />
-        </menu>
-        
-        <placeholder name="FacesMenuPlaceholder" />
-
-        <menu name="HelpMenu" action="HelpMenu">
-            <menuitem name="Contents" action="CommonHelpContents" />
-            <menuitem name="Frequently Asked Questions" action="CommonHelpFAQ" />
-            <menuitem name="Report a Problem…" action="CommonHelpReportProblem" />
-            <separator />
-            <menuitem name="About" action="CommonAbout" />
-        </menu>
-    </menubar>
-</ui>
-
+<?xml version="1.0"?>
+<interface domain="shotwell">
+  <menu id="MenuBar">
+    <submenu>
+      <attribute name="label" translatable="yes">FileMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonFileImport</attribute>
+          <attribute name="action">CommonFileImport</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">ExternalLibraryImport</attribute>
+          <attribute name="action">ExternalLibraryImport</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">Export</attribute>
+          <attribute name="action">Export</attribute>
+        </item>
+      </section>
+      <section>
+      <attribute name="id">FileExtrasPlaceholder</attribute>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonJumpToFile</attribute>
+          <attribute name="action">CommonJumpToFile</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonEmptyTrash</attribute>
+          <attribute name="action">CommonEmptyTrash</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonQuit</attribute>
+          <attribute name="action">CommonQuit</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">EditMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonUndo</attribute>
+          <attribute name="action">CommonUndo</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonRedo</attribute>
+          <attribute name="action">CommonRedo</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonFind</attribute>
+          <attribute name="action">CommonFind</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonNewSearch</attribute>
+          <attribute name="action">CommonNewSearch</attribute>
+        </item>
+      </section>
+      <section>
+      <attribute name="id">EditExtrasPlaceholder</attribute>
+        <item>
+          <attribute name="label" translatable="yes">RemoveFromLibrary</attribute>
+          <attribute name="action">RemoveFromLibrary</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">MoveToTrash</attribute>
+          <attribute name="action">MoveToTrash</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonSelectAll</attribute>
+          <attribute name="action">CommonSelectAll</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonPreferences</attribute>
+          <attribute name="action">CommonPreferences</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">ViewMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplayBasicProperties</attribute>
+          <attribute name="action">CommonDisplayBasicProperties</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplayExtendedProperties</attribute>
+          <attribute name="action">CommonDisplayExtendedProperties</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplaySearchbar</attribute>
+          <attribute name="action">CommonDisplaySearchbar</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplaySidebar</attribute>
+          <attribute name="action">CommonDisplaySidebar</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplayToolbar</attribute>
+          <attribute name="action">CommonDisplayToolbar</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">ViewTitle</attribute>
+          <attribute name="action">ViewTitle</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">ViewComment</attribute>
+          <attribute name="action">ViewComment</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">ViewTags</attribute>
+          <attribute name="action">ViewTags</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">ViewRatings</attribute>
+          <attribute name="action">ViewRatings</attribute>
+        </item>
+      </section>
+      <section>
+        <submenu>
+          <attribute name="label" translatable="yes">CommonFilterPhotos</attribute>
+          <section>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayFiveOrHigher</attribute>
+              <attribute name="action">CommonDisplayFiveOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayFourOrHigher</attribute>
+              <attribute name="action">CommonDisplayFourOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayThreeOrHigher</attribute>
+              <attribute name="action">CommonDisplayThreeOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayTwoOrHigher</attribute>
+              <attribute name="action">CommonDisplayTwoOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayOneOrHigher</attribute>
+              <attribute name="action">CommonDisplayOneOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayUnratedOrHigher</attribute>
+              <attribute name="action">CommonDisplayUnratedOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayRejectedOrHigher</attribute>
+              <attribute name="action">CommonDisplayRejectedOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayRejectedOnly</attribute>
+              <attribute name="action">CommonDisplayRejectedOnly</attribute>
+            </item>
+          </section>
+        </submenu>
+      </section>
+      <section>
+        <submenu>
+          <attribute name="label" translatable="yes">SortPhotos</attribute>
+          <section>
+            <item>
+              <attribute name="label" translatable="yes">SortByTitle</attribute>
+              <attribute name="action">SortByTitle</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">SortByFilename</attribute>
+              <attribute name="action">SortByFilename</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">SortByExposureDate</attribute>
+              <attribute name="action">SortByExposureDate</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">SortByRating</attribute>
+              <attribute name="action">SortByRating</attribute>
+            </item>
+          </section>
+          <section>
+            <item>
+              <attribute name="label" translatable="yes">SortAscending</attribute>
+              <attribute name="action">SortAscending</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">SortDescending</attribute>
+              <attribute name="action">SortDescending</attribute>
+            </item>
+          </section>
+        </submenu>
+        <submenu>
+          <attribute name="label" translatable="yes">CommonSortEvents</attribute>
+          <section>
+            <item>
+              <attribute name="label" translatable="yes">CommonSortEventsAscending</attribute>
+              <attribute name="action">CommonSortEventsAscending</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonSortEventsDescending</attribute>
+              <attribute name="action">CommonSortEventsDescending</attribute>
+            </item>
+          </section>
+        </submenu>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">IncreaseSize</attribute>
+          <attribute name="action">IncreaseSize</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">DecreaseSize</attribute>
+          <attribute name="action">DecreaseSize</attribute>
+        </item>
+      </section>
+      <section>
+      <attribute name="id">ViewExtrasFullscreenSlideshowPlaceholder</attribute>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">PhotosMenu</attribute>
+      <section>
+      <attribute name="id">PhotosExtrasEditsPlaceholder</attribute>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">Flag</attribute>
+          <attribute name="action">Flag</attribute>
+        </item>
+        <submenu>
+          <attribute name="label" translatable="yes">Rate</attribute>
+          <section>
+            <item>
+              <attribute name="label" translatable="yes">RateFive</attribute>
+              <attribute name="action">RateFive</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">RateFour</attribute>
+              <attribute name="action">RateFour</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">RateThree</attribute>
+              <attribute name="action">RateThree</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">RateTwo</attribute>
+              <attribute name="action">RateTwo</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">RateOne</attribute>
+              <attribute name="action">RateOne</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">RateUnrated</attribute>
+              <attribute name="action">RateUnrated</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">RateRejected</attribute>
+              <attribute name="action">RateRejected</attribute>
+            </item>
+          </section>
+          <section>
+            <item>
+              <attribute name="label" translatable="yes">IncreaseRating</attribute>
+              <attribute name="action">IncreaseRating</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">DecreaseRating</attribute>
+              <attribute name="action">DecreaseRating</attribute>
+            </item>
+          </section>
+        </submenu>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">EditTitle</attribute>
+          <attribute name="action">EditTitle</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">EditComment</attribute>
+          <attribute name="action">EditComment</attribute>
+        </item>
+      <attribute name="id">PhotosExtrasDateTimePlaceholder</attribute>
+      </section>
+      <section>
+        <submenu>
+          <attribute name="label" translatable="yes">RawDeveloper</attribute>
+          <section>
+            <item>
+              <attribute name="label" translatable="yes">RawDeveloperShotwell</attribute>
+              <attribute name="action">RawDeveloperShotwell</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">RawDeveloperCamera</attribute>
+              <attribute name="action">RawDeveloperCamera</attribute>
+            </item>
+          </section>
+        </submenu>
+      </section>
+      <section>
+      <attribute name="id">PhotosExtrasExternalsPlaceholder</attribute>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">EventsMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">NewEvent</attribute>
+          <attribute name="action">NewEvent</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonJumpToEvent</attribute>
+          <attribute name="action">CommonJumpToEvent</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">TagsMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">AddTags</attribute>
+          <attribute name="action">AddTags</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">ModifyTags</attribute>
+          <attribute name="action">ModifyTags</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">HelpMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonHelpContents</attribute>
+          <attribute name="action">CommonHelpContents</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonHelpFAQ</attribute>
+          <attribute name="action">CommonHelpFAQ</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonHelpReportProblem</attribute>
+          <attribute name="action">CommonHelpReportProblem</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonAbout</attribute>
+          <attribute name="action">CommonAbout</attribute>
+        </item>
+      </section>
+    </submenu>
+  </menu>
+</interface>
diff --git a/ui/offline.ui b/ui/offline.ui
index ff56ae9..ef9c160 100644
--- a/ui/offline.ui
+++ b/ui/offline.ui
@@ -1,70 +1,173 @@
-<ui>
-
-    <menubar name="MenuBar">
-        <menu name="FileMenu" action="FileMenu">
-            <menuitem name="Import" action="CommonFileImport" />
-            <menuitem name="ImportExternal" action="ExternalLibraryImport" />
-            <separator />
-            <menuitem name="EmptyTrash" action="CommonEmptyTrash" />
-            <separator />
-            <menuitem name="Quit" action="CommonQuit" />
-        </menu>
-        
-        <menu name="EditMenu" action="EditMenu">
-            <menuitem name="Undo" action="CommonUndo" />
-            <menuitem name="Redo" action="CommonRedo" />
-            <separator />
-            <menuitem name="Find" action="CommonFind" />
-            <menuitem name="NewSearch" action="CommonNewSearch" />
-            <separator />
-            <menuitem name="RemoveFromLibrary" action="RemoveFromLibrary" />
-            <separator />
-            <menuitem name="SelectAll" action="CommonSelectAll" />
-            <separator />
-            <menuitem name="Preferences" action="CommonPreferences" />
-        </menu>
-        
-        <menu name="ViewMenu" action="ViewMenu">
-            <menuitem name="DisplayBasicProperties" action="CommonDisplayBasicProperties" />
-            <menuitem name="DisplayExtendedProperties" action="CommonDisplayExtendedProperties" />
-            <menuitem name="DisplaySearchbar" action="CommonDisplaySearchbar" />
-            <menuitem name="DisplaySidebar" action="CommonDisplaySidebar" />
-            <menuitem name="DisplayToolbar" action="CommonDisplayToolbar" />
-            <separator />
-            <menu name="FilterPhotos" action="CommonFilterPhotos">
-                <menuitem name="DisplayFiveOrHigher" action="CommonDisplayFiveOrHigher" />
-                <menuitem name="DisplayFourOrHigher" action="CommonDisplayFourOrHigher" />
-                <menuitem name="DisplayThreeOrHigher" action="CommonDisplayThreeOrHigher" />
-                <menuitem name="DisplayTwoOrHigher" action="CommonDisplayTwoOrHigher" />
-                <menuitem name="DisplayOneOrHigher" action="CommonDisplayOneOrHigher" />
-                <menuitem name="DisplayUnratedOrHigher" action="CommonDisplayUnratedOrHigher" />
-                <menuitem name="DisplayRejectedOrHigher" action="CommonDisplayRejectedOrHigher" />
-                <menuitem name="DisplayRejectedOnly" action="CommonDisplayRejectedOnly" />
-            </menu>
-            <separator />
-            <menu name="SortEvents" action="CommonSortEvents">
-                <menuitem name="SortEventsAscending" action="CommonSortEventsAscending" />
-                <menuitem name="SortEventsDescending" action="CommonSortEventsDescending" />
-            </menu>
-        </menu>
-        
-        <menu name="HelpMenu" action="HelpMenu">
-            <menuitem name="Contents" action="CommonHelpContents" />
-            <menuitem name="Frequently Asked Questions" action="CommonHelpFAQ" />
-            <menuitem name="Report a Problem…" action="CommonHelpReportProblem" />
-            <separator />
-            <menuitem name="About" action="CommonAbout" />
-        </menu>
-    </menubar>
-    
-    <popup name="OfflineContextMenu">
-        <menuitem name="RemoveFromLibrary" action="RemoveFromLibrary" />
-    </popup>
-    
-    <toolbar name="OfflineToolbar">
-        <toolitem name="ToolRemoveFromLibrary" action="RemoveFromLibrary" />
-        <separator />
-        <toolitem name="ToolFind" action="CommonDisplaySearchbar" />
-    </toolbar>
-    
-</ui>
+<?xml version="1.0"?>
+<interface domain="shotwell">
+  <menu id="MenuBar">
+    <submenu>
+      <attribute name="label" translatable="yes">FileMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonFileImport</attribute>
+          <attribute name="action">CommonFileImport</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">ExternalLibraryImport</attribute>
+          <attribute name="action">ExternalLibraryImport</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonEmptyTrash</attribute>
+          <attribute name="action">CommonEmptyTrash</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonQuit</attribute>
+          <attribute name="action">CommonQuit</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">EditMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonUndo</attribute>
+          <attribute name="action">CommonUndo</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonRedo</attribute>
+          <attribute name="action">CommonRedo</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonFind</attribute>
+          <attribute name="action">CommonFind</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonNewSearch</attribute>
+          <attribute name="action">CommonNewSearch</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">RemoveFromLibrary</attribute>
+          <attribute name="action">RemoveFromLibrary</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonSelectAll</attribute>
+          <attribute name="action">CommonSelectAll</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonPreferences</attribute>
+          <attribute name="action">CommonPreferences</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">ViewMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplayBasicProperties</attribute>
+          <attribute name="action">CommonDisplayBasicProperties</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplayExtendedProperties</attribute>
+          <attribute name="action">CommonDisplayExtendedProperties</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplaySearchbar</attribute>
+          <attribute name="action">CommonDisplaySearchbar</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplaySidebar</attribute>
+          <attribute name="action">CommonDisplaySidebar</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplayToolbar</attribute>
+          <attribute name="action">CommonDisplayToolbar</attribute>
+        </item>
+      </section>
+      <section>
+        <submenu>
+          <attribute name="label" translatable="yes">CommonFilterPhotos</attribute>
+          <section>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayFiveOrHigher</attribute>
+              <attribute name="action">CommonDisplayFiveOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayFourOrHigher</attribute>
+              <attribute name="action">CommonDisplayFourOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayThreeOrHigher</attribute>
+              <attribute name="action">CommonDisplayThreeOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayTwoOrHigher</attribute>
+              <attribute name="action">CommonDisplayTwoOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayOneOrHigher</attribute>
+              <attribute name="action">CommonDisplayOneOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayUnratedOrHigher</attribute>
+              <attribute name="action">CommonDisplayUnratedOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayRejectedOrHigher</attribute>
+              <attribute name="action">CommonDisplayRejectedOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayRejectedOnly</attribute>
+              <attribute name="action">CommonDisplayRejectedOnly</attribute>
+            </item>
+          </section>
+        </submenu>
+      </section>
+      <section>
+        <submenu>
+          <attribute name="label" translatable="yes">CommonSortEvents</attribute>
+          <section>
+            <item>
+              <attribute name="label" translatable="yes">CommonSortEventsAscending</attribute>
+              <attribute name="action">CommonSortEventsAscending</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonSortEventsDescending</attribute>
+              <attribute name="action">CommonSortEventsDescending</attribute>
+            </item>
+          </section>
+        </submenu>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">HelpMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonHelpContents</attribute>
+          <attribute name="action">CommonHelpContents</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonHelpFAQ</attribute>
+          <attribute name="action">CommonHelpFAQ</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonHelpReportProblem</attribute>
+          <attribute name="action">CommonHelpReportProblem</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonAbout</attribute>
+          <attribute name="action">CommonAbout</attribute>
+        </item>
+      </section>
+    </submenu>
+  </menu>
+</interface>
diff --git a/ui/photo.ui b/ui/photo.ui
index a4c587e..50df0a2 100644
--- a/ui/photo.ui
+++ b/ui/photo.ui
@@ -1,129 +1,360 @@
-<ui>
-
-    <menubar name="MenuBar">
-        <menu name="FileMenu" action="FileMenu">
-            <menuitem name="Import" action="CommonFileImport" />
-            <menuitem name="ImportExternal" action="ExternalLibraryImport" />
-            <menuitem name="Export" action="Export" />
-            <separator />
-            <placeholder name="PrintPlaceholder" />
-            <separator />
-            <placeholder name="PublishPlaceholder" />
-            <menuitem name="SendTo" action="SendTo" />
-            <placeholder name="SetBackgroundPlaceholder" />
-            <separator />
-            <menuitem name="JumpToFile" action="CommonJumpToFile" />
-            <separator />
-            <menuitem name="EmptyTrash" action="CommonEmptyTrash" />
-            <separator />
-            <menuitem name="Quit" action="CommonQuit" />
-        </menu>
-        
-        <menu name="EditMenu" action="EditMenu">
-            <menuitem name="Undo" action="CommonUndo" />
-            <menuitem name="Redo" action="CommonRedo" />
-            <separator />
-            <menuitem name="NewSearch" action="CommonNewSearch" />
-            <separator />
-            <menuitem name="RemoveFromLibrary" action="RemoveFromLibrary" />
-            <menuitem name="MoveToTrash" action="MoveToTrash" />
-            <separator />
-            <menuitem name="Preferences" action="CommonPreferences" />
-        </menu>
-        
-        <menu name="ViewMenu" action="ViewMenu">
-            <menuitem name="DisplayBasicProperties" action="CommonDisplayBasicProperties" />
-            <menuitem name="DisplayExtendedProperties" action="CommonDisplayExtendedProperties" />
-            <menuitem name="DisplaySidebar" action="CommonDisplaySidebar" />
-            <menuitem name="DisplayToolbar" action="CommonDisplayToolbar" />
-            <separator />
-            <menuitem name="ViewRatings" action="ViewRatings" />
-            <separator />
-            <menu name="SortEvents" action="CommonSortEvents">
-                <menuitem name="SortEventsAscending" action="CommonSortEventsAscending" />
-                <menuitem name="SortEventsDescending" action="CommonSortEventsDescending" />
-            </menu>
-            <separator />
-            <menuitem name="IncreaseSize" action="IncreaseSize" />
-            <menuitem name="DecreaseSize" action="DecreaseSize" />
-            <separator />
-            <menuitem name="ZoomFit" action="ZoomFit" />
-            <menuitem name="Zoom100" action="Zoom100" />
-            <menuitem name="Zoom200" action="Zoom200" />
-            <separator />
-            <menuitem name="Fullscreen" action="CommonFullscreen" />
-            <separator />
-            <menuitem name="Slideshow" action="Slideshow" />
-        </menu>
-        
-        <menu name="PhotoMenu" action="PhotoMenu">
-            <menuitem name="PrevPhoto" action="PrevPhoto" />
-            <menuitem name="NextPhoto" action="NextPhoto" />
-            <separator />
-            <menuitem name="RotateClockwise" action="RotateClockwise" />
-            <menuitem name="RotateCounterclockwise" action="RotateCounterclockwise" />
-            <menuitem name="FlipHorizontally" action="FlipHorizontally" />
-            <menuitem name="FlipVertically" action="FlipVertically" />
-            <separator />
-            <menu name="Tools" action="Tools">
-                <menuitem name="Enhance" action="Enhance" />
-                <menuitem name="Crop" action="Crop" />
-                <menuitem name="Straighten" action="Straighten" />
-                <menuitem name="RedEye" action="RedEye" />
-                <menuitem name="Adjust" action="Adjust" />
-            </menu>
-            <menuitem name="Revert" action="Revert" />
-            <separator />
-            <menuitem name="CopyColorAdjustments" action="CopyColorAdjustments" />
-            <menuitem name="PasteColorAdjustments" action="PasteColorAdjustments" />
-            <separator/>
-            <menuitem name="Flag" action="Flag" />
-            <menu name="Rate" action="Rate">
-                <menuitem name="RateFive" action="RateFive" />
-                <menuitem name="RateFour" action="RateFour" />
-                <menuitem name="RateThree" action="RateThree" />
-                <menuitem name="RateTwo" action="RateTwo" />
-                <menuitem name="RateOne" action="RateOne" />
-                <menuitem name="RateUnrated" action="RateUnrated" />
-                <menuitem name="RateRejected" action="RateRejected" />
-                <separator />
-                <menuitem name="IncreaseRating" action="IncreaseRating" />
-                <menuitem name="DecreaseRating" action="DecreaseRating" />
-            </menu>
-            <separator />
-            <menuitem name="EditTitle" action="EditTitle" />
-            <menuitem name="EditComment" action="EditComment" />
-            <menuitem name="AdjustDateTime" action="AdjustDateTime" />
-            <separator />
-            <menu name="RawDeveloper" action="RawDeveloper">
-                <menuitem name="RawDeveloperShotwell" action="RawDeveloperShotwell" />
-                <menuitem name="RawDeveloperCamera" action="RawDeveloperCamera" />
-            </menu>
-            <separator />
-            <menuitem name="ExternalEdit" action="ExternalEdit" />
-            <menuitem name="ExternalEditRAW" action="ExternalEditRAW" />
-        </menu>
-
-        <menu name="TagsMenu" action="TagsMenu">
-            <menuitem name="AddTags" action="AddTags" />
-            <menuitem name="ModifyTags" action="ModifyTags" />
-        </menu>
-        
-        <menu name="HelpMenu" action="HelpMenu">
-            <menuitem name="Contents" action="CommonHelpContents" />
-            <menuitem name="Frequently Asked Questions" action="CommonHelpFAQ" />
-            <menuitem name="Report a Problem…" action="CommonHelpReportProblem" />
-            <separator />
-            <menuitem name="About" action="CommonAbout" />
-        </menu>
-    </menubar>
-
-    <popup name="PhotoContextMenu">
-        <placeholder name="ContextJumpPlaceholder">
-            <menuitem name="ContextJumpToEvent" action="CommonJumpToEvent" />
-            <menuitem name="ContextJumpToFile" action="CommonJumpToFile" />
-        </placeholder>
-    </popup>
-    
-</ui>
-
+<?xml version="1.0"?>
+<interface domain="shotwell">
+  <menu id="MenuBar">
+    <submenu>
+      <attribute name="label" translatable="yes">FileMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonFileImport</attribute>
+          <attribute name="action">CommonFileImport</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">ExternalLibraryImport</attribute>
+          <attribute name="action">ExternalLibraryImport</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">Export</attribute>
+          <attribute name="action">Export</attribute>
+        </item>
+      </section>
+      <section>
+      <attribute name="id">PrintPlaceholder</attribute>
+      </section>
+      <section>
+      <attribute name="id">PublishPlaceholder</attribute>
+        <item>
+          <attribute name="label" translatable="yes">SendTo</attribute>
+          <attribute name="action">SendTo</attribute>
+        </item>
+      <attribute name="id">SetBackgroundPlaceholder</attribute>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonJumpToFile</attribute>
+          <attribute name="action">CommonJumpToFile</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonEmptyTrash</attribute>
+          <attribute name="action">CommonEmptyTrash</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonQuit</attribute>
+          <attribute name="action">CommonQuit</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">EditMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonUndo</attribute>
+          <attribute name="action">CommonUndo</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonRedo</attribute>
+          <attribute name="action">CommonRedo</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonNewSearch</attribute>
+          <attribute name="action">CommonNewSearch</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">RemoveFromLibrary</attribute>
+          <attribute name="action">RemoveFromLibrary</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">MoveToTrash</attribute>
+          <attribute name="action">MoveToTrash</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonPreferences</attribute>
+          <attribute name="action">CommonPreferences</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">ViewMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplayBasicProperties</attribute>
+          <attribute name="action">CommonDisplayBasicProperties</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplayExtendedProperties</attribute>
+          <attribute name="action">CommonDisplayExtendedProperties</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplaySidebar</attribute>
+          <attribute name="action">CommonDisplaySidebar</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplayToolbar</attribute>
+          <attribute name="action">CommonDisplayToolbar</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">ViewRatings</attribute>
+          <attribute name="action">ViewRatings</attribute>
+        </item>
+      </section>
+      <section>
+        <submenu>
+          <attribute name="label" translatable="yes">CommonSortEvents</attribute>
+          <section>
+            <item>
+              <attribute name="label" translatable="yes">CommonSortEventsAscending</attribute>
+              <attribute name="action">CommonSortEventsAscending</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonSortEventsDescending</attribute>
+              <attribute name="action">CommonSortEventsDescending</attribute>
+            </item>
+          </section>
+        </submenu>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">IncreaseSize</attribute>
+          <attribute name="action">IncreaseSize</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">DecreaseSize</attribute>
+          <attribute name="action">DecreaseSize</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">ZoomFit</attribute>
+          <attribute name="action">ZoomFit</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">Zoom100</attribute>
+          <attribute name="action">Zoom100</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">Zoom200</attribute>
+          <attribute name="action">Zoom200</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonFullscreen</attribute>
+          <attribute name="action">CommonFullscreen</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">Slideshow</attribute>
+          <attribute name="action">Slideshow</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">PhotoMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">PrevPhoto</attribute>
+          <attribute name="action">PrevPhoto</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">NextPhoto</attribute>
+          <attribute name="action">NextPhoto</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">RotateClockwise</attribute>
+          <attribute name="action">RotateClockwise</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">RotateCounterclockwise</attribute>
+          <attribute name="action">RotateCounterclockwise</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">FlipHorizontally</attribute>
+          <attribute name="action">FlipHorizontally</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">FlipVertically</attribute>
+          <attribute name="action">FlipVertically</attribute>
+        </item>
+      </section>
+      <section>
+        <submenu>
+          <attribute name="label" translatable="yes">Tools</attribute>
+          <section>
+            <item>
+              <attribute name="label" translatable="yes">Enhance</attribute>
+              <attribute name="action">Enhance</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">Crop</attribute>
+              <attribute name="action">Crop</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">Straighten</attribute>
+              <attribute name="action">Straighten</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">RedEye</attribute>
+              <attribute name="action">RedEye</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">Adjust</attribute>
+              <attribute name="action">Adjust</attribute>
+            </item>
+          </section>
+        </submenu>
+        <item>
+          <attribute name="label" translatable="yes">Revert</attribute>
+          <attribute name="action">Revert</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CopyColorAdjustments</attribute>
+          <attribute name="action">CopyColorAdjustments</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">PasteColorAdjustments</attribute>
+          <attribute name="action">PasteColorAdjustments</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">Flag</attribute>
+          <attribute name="action">Flag</attribute>
+        </item>
+        <submenu>
+          <attribute name="label" translatable="yes">Rate</attribute>
+          <section>
+            <item>
+              <attribute name="label" translatable="yes">RateFive</attribute>
+              <attribute name="action">RateFive</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">RateFour</attribute>
+              <attribute name="action">RateFour</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">RateThree</attribute>
+              <attribute name="action">RateThree</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">RateTwo</attribute>
+              <attribute name="action">RateTwo</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">RateOne</attribute>
+              <attribute name="action">RateOne</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">RateUnrated</attribute>
+              <attribute name="action">RateUnrated</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">RateRejected</attribute>
+              <attribute name="action">RateRejected</attribute>
+            </item>
+          </section>
+          <section>
+            <item>
+              <attribute name="label" translatable="yes">IncreaseRating</attribute>
+              <attribute name="action">IncreaseRating</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">DecreaseRating</attribute>
+              <attribute name="action">DecreaseRating</attribute>
+            </item>
+          </section>
+        </submenu>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">EditTitle</attribute>
+          <attribute name="action">EditTitle</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">EditComment</attribute>
+          <attribute name="action">EditComment</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">AdjustDateTime</attribute>
+          <attribute name="action">AdjustDateTime</attribute>
+        </item>
+      </section>
+      <section>
+        <submenu>
+          <attribute name="label" translatable="yes">RawDeveloper</attribute>
+          <section>
+            <item>
+              <attribute name="label" translatable="yes">RawDeveloperShotwell</attribute>
+              <attribute name="action">RawDeveloperShotwell</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">RawDeveloperCamera</attribute>
+              <attribute name="action">RawDeveloperCamera</attribute>
+            </item>
+          </section>
+        </submenu>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">ExternalEdit</attribute>
+          <attribute name="action">ExternalEdit</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">ExternalEditRAW</attribute>
+          <attribute name="action">ExternalEditRAW</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">TagsMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">AddTags</attribute>
+          <attribute name="action">AddTags</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">ModifyTags</attribute>
+          <attribute name="action">ModifyTags</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">HelpMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonHelpContents</attribute>
+          <attribute name="action">CommonHelpContents</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonHelpFAQ</attribute>
+          <attribute name="action">CommonHelpFAQ</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonHelpReportProblem</attribute>
+          <attribute name="action">CommonHelpReportProblem</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonAbout</attribute>
+          <attribute name="action">CommonAbout</attribute>
+        </item>
+      </section>
+    </submenu>
+  </menu>
+</interface>
diff --git a/ui/photo_context.ui b/ui/photo_context.ui
index f897022..bc48330 100644
--- a/ui/photo_context.ui
+++ b/ui/photo_context.ui
@@ -1,39 +1,122 @@
-<ui>
-    <popup name="PhotoContextMenu">
-        <menuitem name="ContextEnhance" action="Enhance" />
-        <menuitem name="ContextRevert" action="Revert" />
-        <separator />
-        <menuitem name="ContextAddTags" action="AddTagsContextMenu" />
-        <menuitem name="ContextModifyTags" action="ModifyTags" />
-        <placeholder name="ContextTagsPlaceholder" />
-        <separator />
-        <menuitem name="ContextFlag" action="Flag" />
-        <menu name="Rate" action="Rate">
-            <menuitem name="RateFive" action="RateFive" />
-            <menuitem name="RateFour" action="RateFour" />
-            <menuitem name="RateThree" action="RateThree" />
-            <menuitem name="RateTwo" action="RateTwo" />
-            <menuitem name="RateOne" action="RateOne" />
-            <menuitem name="RateUnrated" action="RateUnrated" />
-            <menuitem name="RateRejected" action="RateRejected" />
-            <separator />
-            <menuitem name="IncreaseRating" action="IncreaseRating" />
-            <menuitem name="DecreaseRating" action="DecreaseRating" />
-        </menu>
-        <menu name="RawDeveloper" action="RawDeveloper">
-            <menuitem name="RawDeveloperShotwell" action="RawDeveloperShotwell" />
-            <menuitem name="RawDeveloperCamera" action="RawDeveloperCamera" />
-        </menu>
-        <separator />
-        <menuitem name="ContextEditTitle" action="EditTitle" />
-        <menuitem name="ContextEditComment" action="EditComment" />
-        <menuitem name="ContextExternalEdit" action="ExternalEdit" />
-        <menuitem name="ContextExternalEditRAW" action="ExternalEditRAW" />
-        <separator />
-        <placeholder name="ContextJumpPlaceholder" />
-        <menuitem name="ContextSendTo" action="SendToContextMenu" />
-        <separator />
-        <menuitem name="ContextMoveToTrash" action="MoveToTrash" />
-    </popup>
-
-</ui>
+<?xml version="1.0"?>
+<interface domain="shotwell">
+  <menu id="PhotoContextMenu">
+    <submenu>
+      <attribute name="label" translatable="yes">PhotoContextMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">Enhance</attribute>
+          <attribute name="action">Enhance</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">Revert</attribute>
+          <attribute name="action">Revert</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">AddTagsContextMenu</attribute>
+          <attribute name="action">AddTagsContextMenu</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">ModifyTags</attribute>
+          <attribute name="action">ModifyTags</attribute>
+        </item>
+      <attribute name="id">ContextTagsPlaceholder</attribute>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">Flag</attribute>
+          <attribute name="action">Flag</attribute>
+        </item>
+        <submenu>
+          <attribute name="label" translatable="yes">Rate</attribute>
+          <section>
+            <item>
+              <attribute name="label" translatable="yes">RateFive</attribute>
+              <attribute name="action">RateFive</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">RateFour</attribute>
+              <attribute name="action">RateFour</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">RateThree</attribute>
+              <attribute name="action">RateThree</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">RateTwo</attribute>
+              <attribute name="action">RateTwo</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">RateOne</attribute>
+              <attribute name="action">RateOne</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">RateUnrated</attribute>
+              <attribute name="action">RateUnrated</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">RateRejected</attribute>
+              <attribute name="action">RateRejected</attribute>
+            </item>
+          </section>
+          <section>
+            <item>
+              <attribute name="label" translatable="yes">IncreaseRating</attribute>
+              <attribute name="action">IncreaseRating</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">DecreaseRating</attribute>
+              <attribute name="action">DecreaseRating</attribute>
+            </item>
+          </section>
+        </submenu>
+        <submenu>
+          <attribute name="label" translatable="yes">RawDeveloper</attribute>
+          <section>
+            <item>
+              <attribute name="label" translatable="yes">RawDeveloperShotwell</attribute>
+              <attribute name="action">RawDeveloperShotwell</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">RawDeveloperCamera</attribute>
+              <attribute name="action">RawDeveloperCamera</attribute>
+            </item>
+          </section>
+        </submenu>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">EditTitle</attribute>
+          <attribute name="action">EditTitle</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">EditComment</attribute>
+          <attribute name="action">EditComment</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">ExternalEdit</attribute>
+          <attribute name="action">ExternalEdit</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">ExternalEditRAW</attribute>
+          <attribute name="action">ExternalEditRAW</attribute>
+        </item>
+      </section>
+      <section>
+      <attribute name="id">ContextJumpPlaceholder</attribute>
+        <item>
+          <attribute name="label" translatable="yes">SendToContextMenu</attribute>
+          <attribute name="action">SendToContextMenu</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">MoveToTrash</attribute>
+          <attribute name="action">MoveToTrash</attribute>
+        </item>
+      </section>
+    </submenu>
+  </menu>
+</interface>
diff --git a/ui/savedsearch.ui b/ui/savedsearch.ui
index 4217cbc..5faca0e 100644
--- a/ui/savedsearch.ui
+++ b/ui/savedsearch.ui
@@ -1,8 +1,22 @@
-<ui>
-    <popup name="SearchContextMenu">
-        <menuitem name="ContextRenameSearch" action="RenameSearch" />
-        <menuitem name="ContextEditSearch" action="EditSearch" />
-        <menuitem name="ContextDeleteSearch" action="DeleteSearch" />
-    </popup>
-
-</ui>
+<?xml version="1.0"?>
+<interface domain="shotwell">
+  <menu id="SearchContextMenu">
+    <submenu>
+      <attribute name="label" translatable="yes">SearchContextMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">RenameSearch</attribute>
+          <attribute name="action">RenameSearch</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">EditSearch</attribute>
+          <attribute name="action">EditSearch</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">DeleteSearch</attribute>
+          <attribute name="action">DeleteSearch</attribute>
+        </item>
+      </section>
+    </submenu>
+  </menu>
+</interface>
diff --git a/ui/tags.ui b/ui/tags.ui
index d0373d6..7a744a0 100644
--- a/ui/tags.ui
+++ b/ui/tags.ui
@@ -1,25 +1,24 @@
-<ui>
-
-    <menubar name="MenuBar">
-        <menu name="TagsMenu" action="TagsMenu">
-            <menuitem name="RemoveTagFromPhotos" action="RemoveTagFromPhotos" />
-            <separator />
-            <menuitem name="RenameTag" action="RenameTag" />
-            <menuitem name="DeleteTag" action="DeleteTag" />
-        </menu>
-    </menubar>
-    
-    <popup name="CollectionContextMenu">
-        <placeholder name="ContextTagsPlaceholder">
-            <menuitem name="ContextRemoveTagFromPhotos" action="RemoveTagFromPhotos" />
-        </placeholder>
-    </popup>
-    
-    <popup name="TagsContextMenu">
-        <menuitem name="ContextNewChildTag" action="NewChildTagSidebar" />
-        <separator />
-        <menuitem name="ContextDeleteTag" action="RenameTagSidebar" />
-        <menuitem name="ContextRenameTag" action="DeleteTagSidebar" />
-    </popup>
-
-</ui>
+<?xml version="1.0"?>
+<interface domain="shotwell">
+  <menu id="MenuBar">
+    <submenu>
+      <attribute name="label" translatable="yes">TagsMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">RemoveTagFromPhotos</attribute>
+          <attribute name="action">RemoveTagFromPhotos</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">RenameTag</attribute>
+          <attribute name="action">RenameTag</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">DeleteTag</attribute>
+          <attribute name="action">DeleteTag</attribute>
+        </item>
+      </section>
+    </submenu>
+  </menu>
+</interface>
diff --git a/ui/top.ui b/ui/top.ui
index 81d1006..0b1c7ad 100644
--- a/ui/top.ui
+++ b/ui/top.ui
@@ -1,12 +1,45 @@
-<ui>
-    <menubar name="MenuBar">
-        <menu name="FileMenu" action="FileMenu" />
-        <menu name="EditMenu" action="EditMenu" />  
-        <menu name="ViewMenu" action="ViewMenu" />
-        <menu name="PhotoMenu" action="PhotoMenu" />
-        <menu name="PhotosMenu" action="PhotosMenu" />
-        <menu name="EventsMenu" action="EventsMenu" />
-        <menu name="TagsMenu" action="TagsMenu" />
-        <menu name="HelpMenu" action="HelpMenu" />
-    </menubar>
-</ui>
+<?xml version="1.0"?>
+<interface domain="shotwell">
+  <menu id="MenuBar">
+    <submenu>
+      <attribute name="label" translatable="yes">FileMenu</attribute>
+      <section>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">EditMenu</attribute>
+      <section>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">ViewMenu</attribute>
+      <section>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">PhotoMenu</attribute>
+      <section>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">PhotosMenu</attribute>
+      <section>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">EventsMenu</attribute>
+      <section>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">TagsMenu</attribute>
+      <section>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">HelpMenu</attribute>
+      <section>
+      </section>
+    </submenu>
+  </menu>
+</interface>
diff --git a/ui/trash.ui b/ui/trash.ui
index 9a464bb..b7e1c4d 100644
--- a/ui/trash.ui
+++ b/ui/trash.ui
@@ -1,83 +1,181 @@
-<ui>
-
-    <menubar name="MenuBar">
-        <menu name="FileMenu" action="FileMenu">
-            <menuitem name="Import" action="CommonFileImport" />
-            <menuitem name="ImportExternal" action="ExternalLibraryImport" />
-            <separator />
-            <menuitem name="JumpToFile" action="CommonJumpToFile" />
-            <menuitem name="EmptyTrash" action="CommonEmptyTrash" />
-            <separator />
-            <menuitem name="Quit" action="CommonQuit" />
-        </menu>
-        
-        <menu name="EditMenu" action="EditMenu">
-            <menuitem name="Undo" action="CommonUndo" />
-            <menuitem name="Redo" action="CommonRedo" />
-            <separator />
-            <menuitem name="Find" action="CommonFind" />
-            <menuitem name="NewSearch" action="CommonNewSearch" />
-            <separator />
-            <menuitem name="Delete" action="Delete" />
-            <menuitem name="Restore" action="Restore" />
-            <separator />
-            <menuitem name="SelectAll" action="CommonSelectAll" />
-            <separator />
-            <menuitem name="Preferences" action="CommonPreferences" />
-        </menu>
-        
-        <menu name="ViewMenu" action="ViewMenu">
-            <menuitem name="DisplayBasicProperties" action="CommonDisplayBasicProperties" />
-            <menuitem name="DisplayExtendedProperties" action="CommonDisplayExtendedProperties" />
-            <menuitem name="DisplaySearchbar" action="CommonDisplaySearchbar" />
-            <menuitem name="DisplaySidebar" action="CommonDisplaySidebar" />
-            <menuitem name="DisplayToolbar" action="CommonDisplayToolbar" />
-            <separator />
-            <menu name="FilterPhotos" action="CommonFilterPhotos">
-                <menuitem name="DisplayFiveOrHigher" action="CommonDisplayFiveOrHigher" />
-                <menuitem name="DisplayFourOrHigher" action="CommonDisplayFourOrHigher" />
-                <menuitem name="DisplayThreeOrHigher" action="CommonDisplayThreeOrHigher" />
-                <menuitem name="DisplayTwoOrHigher" action="CommonDisplayTwoOrHigher" />
-                <menuitem name="DisplayOneOrHigher" action="CommonDisplayOneOrHigher" />
-                <menuitem name="DisplayUnratedOrHigher" action="CommonDisplayUnratedOrHigher" />
-                <menuitem name="DisplayRejectedOrHigher" action="CommonDisplayRejectedOrHigher" />
-                <menuitem name="DisplayRejectedOnly" action="CommonDisplayRejectedOnly" />
-            </menu>
-            <separator />
-            <menu name="SortEvents" action="CommonSortEvents">
-                <menuitem name="SortEventsAscending" action="CommonSortEventsAscending" />
-                <menuitem name="SortEventsDescending" action="CommonSortEventsDescending" />
-            </menu>
-        </menu>
-        
-        <menu name="HelpMenu" action="HelpMenu">
-            <menuitem name="Contents" action="CommonHelpContents" />
-            <menuitem name="Frequently Asked Questions" action="CommonHelpFAQ" />
-            <menuitem name="Report a Problem…" action="CommonHelpReportProblem" />
-            <separator />
-            <menuitem name="About" action="CommonAbout" />
-        </menu>
-    </menubar>
-    
-    <popup name="TrashContextMenu">
-        <menuitem name="ContextDelete" action="Delete" />
-        <menuitem name="ContextRestore" action="Restore" />
-        <separator />
-        <menuitem name="ContextJumpToFile" action="CommonJumpToFile" />
-        <separator />
-        <menuitem name="ContextEmptyTrash" action="CommonEmptyTrash" />
-    </popup>
-    
-    <popup name="TrashPageMenu">
-        <menuitem name="ContextEmptyTrash" action="CommonEmptyTrash" />
-    </popup>
-    
-    <toolbar name="TrashToolbar">
-        <toolitem name="ToolDelete" action="Delete" />
-        <toolitem name="ToolRestore" action="Restore" />
-        <toolitem name="ToolEmptyTrash" action="CommonEmptyTrash" />
-        <separator />
-        <toolitem name="ToolFind" action="CommonDisplaySearchbar" />
-    </toolbar>
-    
-</ui>
+<?xml version="1.0"?>
+<interface domain="shotwell">
+  <menu id="MenuBar">
+    <submenu>
+      <attribute name="label" translatable="yes">FileMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonFileImport</attribute>
+          <attribute name="action">CommonFileImport</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">ExternalLibraryImport</attribute>
+          <attribute name="action">ExternalLibraryImport</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonJumpToFile</attribute>
+          <attribute name="action">CommonJumpToFile</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonEmptyTrash</attribute>
+          <attribute name="action">CommonEmptyTrash</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonQuit</attribute>
+          <attribute name="action">CommonQuit</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">EditMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonUndo</attribute>
+          <attribute name="action">CommonUndo</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonRedo</attribute>
+          <attribute name="action">CommonRedo</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonFind</attribute>
+          <attribute name="action">CommonFind</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonNewSearch</attribute>
+          <attribute name="action">CommonNewSearch</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">Delete</attribute>
+          <attribute name="action">Delete</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">Restore</attribute>
+          <attribute name="action">Restore</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonSelectAll</attribute>
+          <attribute name="action">CommonSelectAll</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonPreferences</attribute>
+          <attribute name="action">CommonPreferences</attribute>
+        </item>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">ViewMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplayBasicProperties</attribute>
+          <attribute name="action">CommonDisplayBasicProperties</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplayExtendedProperties</attribute>
+          <attribute name="action">CommonDisplayExtendedProperties</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplaySearchbar</attribute>
+          <attribute name="action">CommonDisplaySearchbar</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplaySidebar</attribute>
+          <attribute name="action">CommonDisplaySidebar</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonDisplayToolbar</attribute>
+          <attribute name="action">CommonDisplayToolbar</attribute>
+        </item>
+      </section>
+      <section>
+        <submenu>
+          <attribute name="label" translatable="yes">CommonFilterPhotos</attribute>
+          <section>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayFiveOrHigher</attribute>
+              <attribute name="action">CommonDisplayFiveOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayFourOrHigher</attribute>
+              <attribute name="action">CommonDisplayFourOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayThreeOrHigher</attribute>
+              <attribute name="action">CommonDisplayThreeOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayTwoOrHigher</attribute>
+              <attribute name="action">CommonDisplayTwoOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayOneOrHigher</attribute>
+              <attribute name="action">CommonDisplayOneOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayUnratedOrHigher</attribute>
+              <attribute name="action">CommonDisplayUnratedOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayRejectedOrHigher</attribute>
+              <attribute name="action">CommonDisplayRejectedOrHigher</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonDisplayRejectedOnly</attribute>
+              <attribute name="action">CommonDisplayRejectedOnly</attribute>
+            </item>
+          </section>
+        </submenu>
+      </section>
+      <section>
+        <submenu>
+          <attribute name="label" translatable="yes">CommonSortEvents</attribute>
+          <section>
+            <item>
+              <attribute name="label" translatable="yes">CommonSortEventsAscending</attribute>
+              <attribute name="action">CommonSortEventsAscending</attribute>
+            </item>
+            <item>
+              <attribute name="label" translatable="yes">CommonSortEventsDescending</attribute>
+              <attribute name="action">CommonSortEventsDescending</attribute>
+            </item>
+          </section>
+        </submenu>
+      </section>
+    </submenu>
+    <submenu>
+      <attribute name="label" translatable="yes">HelpMenu</attribute>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonHelpContents</attribute>
+          <attribute name="action">CommonHelpContents</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonHelpFAQ</attribute>
+          <attribute name="action">CommonHelpFAQ</attribute>
+        </item>
+        <item>
+          <attribute name="label" translatable="yes">CommonHelpReportProblem</attribute>
+          <attribute name="action">CommonHelpReportProblem</attribute>
+        </item>
+      </section>
+      <section>
+        <item>
+          <attribute name="label" translatable="yes">CommonAbout</attribute>
+          <attribute name="action">CommonAbout</attribute>
+        </item>
+      </section>
+    </submenu>
+  </menu>
+</interface>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]