summaryrefslogtreecommitdiff
path: root/data/ui
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff.email>2023-06-14 20:36:17 +0200
committerJörg Frings-Fürst <debian@jff.email>2023-06-14 20:36:17 +0200
commit31804433d72460cbe0a39f9f8ea5e76058d84cda (patch)
tree2084a84c39f159c6aea254775dc0880d52579d45 /data/ui
parenta9898fb3f39c44a85876930ef6b2558052569ae6 (diff)
parentd443a3c2509889533ca812c163056bace396b586 (diff)
Update upstream source from tag 'upstream/0.32.1'
Update to upstream version '0.32.1' with Debian dir c460ad6e13d3c39eaa2d5399059385e64e6fba4c
Diffstat (limited to 'data/ui')
-rw-r--r--data/ui/collection.ui227
-rw-r--r--data/ui/direct.ui200
-rw-r--r--data/ui/direct_context.ui28
-rw-r--r--data/ui/event.ui597
-rw-r--r--data/ui/events_directory.ui191
-rw-r--r--data/ui/faces.ui474
-rw-r--r--data/ui/fullscreen.ui5
-rw-r--r--data/ui/import.ui219
-rw-r--r--data/ui/import_queue.ui89
-rw-r--r--data/ui/login_welcome_pane_widget.ui57
-rw-r--r--data/ui/manifest_widget.ui31
-rw-r--r--data/ui/media.ui427
-rw-r--r--data/ui/message_pane.ui47
-rw-r--r--data/ui/multitextentrydialog.ui91
-rw-r--r--data/ui/offline.ui249
-rw-r--r--data/ui/photo.ui415
-rw-r--r--data/ui/photo_context.ui147
-rw-r--r--data/ui/preferences_dialog.ui705
-rw-r--r--data/ui/printing_widget.ui339
-rw-r--r--data/ui/progress_pane_widget.ui27
-rw-r--r--data/ui/saved_search_dialog.ui243
-rw-r--r--data/ui/savedsearch.ui19
-rw-r--r--data/ui/search_bar.ui55
-rw-r--r--data/ui/search_sidebar_context.ui12
-rw-r--r--data/ui/set_background_dialog.ui114
-rw-r--r--data/ui/set_background_slideshow_dialog.ui177
-rw-r--r--data/ui/sidebar_default_context.ui16
-rw-r--r--data/ui/slideshow_settings.ui274
-rw-r--r--data/ui/static_message_pane_widget.ui40
-rw-r--r--data/ui/tag_sidebar_context.ui11
-rw-r--r--data/ui/tags.ui465
-rw-r--r--data/ui/textentrydialog.ui104
-rw-r--r--data/ui/trash.ui322
33 files changed, 6417 insertions, 0 deletions
diff --git a/data/ui/collection.ui b/data/ui/collection.ui
new file mode 100644
index 0000000..c12c407
--- /dev/null
+++ b/data/ui/collection.ui
@@ -0,0 +1,227 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
+<interface domain="shotwell">
+ <requires lib="gtk+" version="3.18"/>
+ <menu id="CollectionContextMenu">
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Enhance</attribute>
+ <attribute name="accel">&lt;Primary&gt;e</attribute>
+ <attribute name="action">win.Enhance</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Re_vert to Original</attribute>
+ <attribute name="action">win.Revert</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Add _Tags…</attribute>
+ <attribute name="accel">&lt;Primary&gt;t</attribute>
+ <attribute name="action">win.AddTags</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Modif_y Tags…</attribute>
+ <attribute name="accel">&lt;Primary&gt;m</attribute>
+ <attribute name="action">win.ModifyTags</attribute>
+ </item>
+ <attribute name="id">ContextTagsPlaceholder</attribute>
+ </section>
+ <section>
+ <attribute name="id">ContextFacesPlaceholder</attribute>
+ <item>
+ <attribute name="label" translatable="yes">Toggle _Flag</attribute>
+ <attribute name="accel">&lt;Primary&gt;g</attribute>
+ <attribute name="action">win.Flag</attribute>
+ </item>
+ </section>
+ <submenu>
+ <attribute name="label" translatable="yes">_Set Rating</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="no">★★★★★</attribute>
+ <attribute name="action">win.RateFive</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★★</attribute>
+ <attribute name="action">win.RateFour</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★</attribute>
+ <attribute name="action">win.RateThree</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★</attribute>
+ <attribute name="action">win.RateTwo</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★</attribute>
+ <attribute name="action">win.RateOne</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Unrated</attribute>
+ <attribute name="action">win.RateUnrated</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Rejected</attribute>
+ <attribute name="action">win.RateRejected</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Increase</attribute>
+ <attribute name="action">win.IncreaseRating</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Decrease</attribute>
+ <attribute name="action">win.DecreaseRating</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Developer</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Shotwell</attribute>
+ <attribute name="action">win.RawDeveloper</attribute>
+ <attribute name="target">Shotwell</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Camera</attribute>
+ <attribute name="action">win.RawDeveloper</attribute>
+ <attribute name="target">Camera</attribute>
+ </item>
+ </section>
+ </submenu>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Edit _Title…</attribute>
+ <attribute name="action">win.EditTitle</attribute>
+ <attribute name="accel">F2</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Edit _Comment…</attribute>
+ <attribute name="action">win.EditComment</attribute>
+ <attribute name="accel">F3</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Open With E_xternal Editor</attribute>
+ <attribute name="accel">&lt;Primary&gt;Return</attribute>
+ <attribute name="action">win.ExternalEdit</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Open With RA_W Editor</attribute>
+ <attribute name="action">win.ExternalEditRAW</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">View Eve_nt for Photo</attribute>
+ <attribute name="action">win.CommonJumpToEvent</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Show in File Mana_ger</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;m</attribute>
+ <attribute name="action">win.CommonJumpToFile</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Send _To…</attribute>
+ <attribute name="action">win.SendTo</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Move to Trash</attribute>
+ <attribute name="accel">Delete</attribute>
+ <attribute name="action">win.MoveToTrash</attribute>
+ </item>
+ </section>
+ </menu>
+ <object class="GtkToolbar" id="CollectionToolbar">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="toolbar_style">both-horiz</property>
+ <child>
+ <object class="GtkToolButton" id="ToolRotate">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Rotate the photos right (press Ctrl to rotate left)</property>
+ <property name="is_important">True</property>
+ <property name="action_name">win.RotateClockwise</property>
+ <property name="label" translatable="yes">Rotate</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">object-rotate-right-symbolic</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="tooltip_text" translatable="yes">Automatically improve the photo’s appearance</property>
+ <property name="is_important">True</property>
+ <property name="action_name">win.Enhance</property>
+ <property name="label" translatable="yes">Enhance</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">image-auto-adjust-symbolic</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparatorToolItem">
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="ToolPublish">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Publish to various websites</property>
+ <property name="is_important">True</property>
+ <property name="action_name">win.Publish</property>
+ <property name="label" translatable="yes">Publish</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">send-to-symbolic</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparatorToolItem">
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToggleToolButton" id="ToolFind">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Find an image by typing text that appears in its name or tags</property>
+ <property name="is_important">True</property>
+ <property name="action_name">win.CommonDisplaySearchbar</property>
+ <property name="label" translatable="yes">Find</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">edit-find-symbolic</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ </object>
+</interface>
diff --git a/data/ui/direct.ui b/data/ui/direct.ui
new file mode 100644
index 0000000..8407ec5
--- /dev/null
+++ b/data/ui/direct.ui
@@ -0,0 +1,200 @@
+<?xml version="1.0"?>
+<interface domain="shotwell">
+ <menu id="MenuBar">
+ <submenu>
+ <attribute name="label" translatable="yes">_File</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Save</attribute>
+ <attribute name="accel">&lt;Primary&gt;s</attribute>
+ <attribute name="action">win.Save</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Save _As…</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;s</attribute>
+ <attribute name="action">win.SaveAs</attribute>
+ </item>
+ </section>
+ <section>
+ <attribute name="id">PrintPlaceholder</attribute>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Send _To…</attribute>
+ <attribute name="action">win.SendTo</attribute>
+ </item>
+ <attribute name="id">SetBackgroundPlaceholder</attribute>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Show in File Mana_ger</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;q</attribute>
+ <attribute name="action">win.CommonJumpToFile</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Quit</attribute>
+ <attribute name="accel">&lt;Primary&gt;q</attribute>
+ <attribute name="action">win.CommonQuit</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Edit</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Undo</attribute>
+ <attribute name="accel">&lt;Primary&gt;z</attribute>
+ <attribute name="action">win.CommonUndo</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Redo</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;z</attribute>
+ <attribute name="action">win.CommonRedo</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_View</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Fulls_creen</attribute>
+ <attribute name="accel">F11</attribute>
+ <attribute name="action">win.CommonFullscreen</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Zoom _In</attribute>
+ <attribute name="accel">&lt;Primary&gt;plus</attribute>
+ <attribute name="action">win.IncreaseSize</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Zoom _Out</attribute>
+ <attribute name="accel">&lt;Primary&gt;minus</attribute>
+ <attribute name="action">win.DecreaseSize</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Fit to _Page</attribute>
+ <attribute name="accel">&lt;Primary&gt;0</attribute>
+ <attribute name="action">win.ZoomFit</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Zoom _100%</attribute>
+ <attribute name="accel">&lt;Primary&gt;1</attribute>
+ <attribute name="action">win.Zoom100</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Zoom _200%</attribute>
+ <attribute name="accel">&lt;Primary&gt;2</attribute>
+ <attribute name="action">win.Zoom200</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Photo</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Previous Photo</attribute>
+ <attribute name="action">win.PrevPhoto</attribute>
+ <attribute name="accel">Left</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Next Photo</attribute>
+ <attribute name="action">win.NextPhoto</attribute>
+ <attribute name="accel">Right</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Rotate _Right</attribute>
+ <attribute name="accel">&lt;Primary&gt;r</attribute>
+ <attribute name="action">win.RotateClockwise</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Rotate _Left</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;r</attribute>
+ <attribute name="action">win.RotateCounterclockwise</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Flip Hori_zontally</attribute>
+ <attribute name="action">win.FlipHorizontally</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Flip Verti_cally</attribute>
+ <attribute name="action">win.FlipVertically</attribute>
+ </item>
+ </section>
+ <section>
+ <submenu>
+ <attribute name="label" translatable="yes">T_ools</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Enhance</attribute>
+ <attribute name="accel">&lt;Primary&gt;e</attribute>
+ <attribute name="action">win.Enhance</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Crop</attribute>
+ <attribute name="accel">&lt;Primary&gt;o</attribute>
+ <attribute name="action">win.Crop</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Straighten</attribute>
+ <attribute name="accel">&lt;Primary&gt;a</attribute>
+ <attribute name="action">win.Straighten</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Red-eye</attribute>
+ <attribute name="accel">&lt;Primary&gt;y</attribute>
+ <attribute name="action">win.RedEye</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Adjust</attribute>
+ <attribute name="accel">&lt;Primary&gt;d</attribute>
+ <attribute name="action">win.Adjust</attribute>
+ </item>
+ </section>
+ </submenu>
+ <item>
+ <attribute name="label" translatable="yes">Re_vert to Original</attribute>
+ <attribute name="action">win.Revert</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Adjust Date and Time…</attribute>
+ <attribute name="accel">F4</attribute>
+ <attribute name="action">win.AdjustDateTime</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <attribute name="accel">F1</attribute>
+ <attribute name="action">win.CommonHelpContents</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Frequently Asked Questions</attribute>
+ <attribute name="action">win.CommonHelpFAQ</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Report a Problem…</attribute>
+ <attribute name="action">win.CommonHelpReportProblem</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_About</attribute>
+ <attribute name="action">win.CommonAbout</attribute>
+ </item>
+ </section>
+ </submenu>
+ </menu>
+</interface>
diff --git a/data/ui/direct_context.ui b/data/ui/direct_context.ui
new file mode 100644
index 0000000..852fe93
--- /dev/null
+++ b/data/ui/direct_context.ui
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
+<interface domain="shotwell">
+ <menu id="DirectContextMenu">
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Enhance</attribute>
+ <attribute name="accel">&lt;Primary&gt;e</attribute>
+ <attribute name="action">win.Enhance</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Re_vert to Original</attribute>
+ <attribute name="action">win.Revert</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Show in File Mana_ger</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;m</attribute>
+ <attribute name="action">win.CommonJumpToFile</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Send _To…</attribute>
+ <attribute name="action">win.SendTo</attribute>
+ </item>
+ </section>
+ </menu>
+</interface>
diff --git a/data/ui/event.ui b/data/ui/event.ui
new file mode 100644
index 0000000..9579f96
--- /dev/null
+++ b/data/ui/event.ui
@@ -0,0 +1,597 @@
+<?xml version="1.0"?>
+<interface domain="shotwell">
+ <menu id="MenuBar">
+ <submenu>
+ <attribute name="label" translatable="yes">_File</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Import From Folder…</attribute>
+ <attribute name="accel">&lt;Primary&gt;i</attribute>
+ <attribute name="action">win.CommonFileImport</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Import From _Application…</attribute>
+ <attribute name="action">win.ExternalLibraryImport</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Export…</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;e</attribute>
+ <attribute name="action">win.Export</attribute>
+ </item>
+ </section>
+ <section>
+ <attribute name="id">FileExtrasPlaceholder</attribute>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Show in File Mana_ger</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;m</attribute>
+ <attribute name="action">win.CommonJumpToFile</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Empty T_rash</attribute>
+ <attribute name="action">win.CommonEmptyTrash</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Quit</attribute>
+ <attribute name="accel">&lt;Primary&gt;q</attribute>
+ <attribute name="action">win.CommonQuit</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Edit</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Undo</attribute>
+ <attribute name="accel">&lt;Primary&gt;z</attribute>
+ <attribute name="action">win.CommonUndo</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Redo</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;z</attribute>
+ <attribute name="action">win.CommonRedo</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Find</attribute>
+ <attribute name="action">win.CommonFind</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Ne_w Saved Search…</attribute>
+ <attribute name="accel">&lt;Primary&gt;s</attribute>
+ <attribute name="action">win.CommonNewSearch</attribute>
+ </item>
+ </section>
+ <section>
+ <attribute name="id">EditExtrasPlaceholder</attribute>
+ <item>
+ <attribute name="label" translatable="yes">R_emove From Library</attribute>
+ <attribute name="accel">&lt;Shift&gt;Delete</attribute>
+ <attribute name="action">win.RemoveFromLibrary</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Move to Trash</attribute>
+ <attribute name="accel">Delete</attribute>
+ <attribute name="action">win.MoveToTrash</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Select _All</attribute>
+ <attribute name="accel">&lt;Primary&gt;a</attribute>
+ <attribute name="action">win.CommonSelectAll</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Preferences</attribute>
+ <attribute name="action">win.CommonPreferences</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_View</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Basic Information</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;i</attribute>
+ <attribute name="action">win.CommonDisplayBasicProperties</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">E_xtended Information</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;x</attribute>
+ <attribute name="action">win.CommonDisplayExtendedProperties</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Search Bar</attribute>
+ <attribute name="accel">F8</attribute>
+ <attribute name="action">win.CommonDisplaySearchbar</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">S_idebar</attribute>
+ <attribute name="accel">F9</attribute>
+ <attribute name="action">win.CommonDisplaySidebar</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">T_oolbar</attribute>
+ <attribute name="accel">&lt;Primary&gt;F9</attribute>
+ <attribute name="action">win.CommonDisplayToolbar</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Titles</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;t</attribute>
+ <attribute name="action">win.ViewTitle</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Comments</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;c</attribute>
+ <attribute name="action">win.ViewComment</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Ta_gs</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;g</attribute>
+ <attribute name="action">win.ViewTags</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Ratings</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;n</attribute>
+ <attribute name="action">win.ViewRatings</attribute>
+ </item>
+ </section>
+ <section>
+ <submenu>
+ <attribute name="label" translatable="yes">_Filter Photos</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="no">★★★★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">7</attribute>
+ <attribute name="accel">&lt;Primary&gt;5</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">6</attribute>
+ <attribute name="accel">&lt;Primary&gt;4</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">5</attribute>
+ <attribute name="accel">&lt;Primary&gt;3</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">4</attribute>
+ <attribute name="accel">&lt;Primary&gt;2</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">3</attribute>
+ <attribute name="accel">&lt;Primary&gt;1</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_All Photos</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">2</attribute>
+ <attribute name="accel">&lt;Primary&gt;0</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">All + _Rejected</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">1</attribute>
+ <attribute name="accel">&lt;Primary&gt;9</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Rejected _Only</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">8</attribute>
+ <attribute name="accel">&lt;Primary&gt;8</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ <section>
+ <submenu>
+ <attribute name="label" translatable="yes">Sort _Photos</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">By _Title</attribute>
+ <attribute name="action">win.SortBy</attribute>
+ <attribute name="target">1</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">By _Filename</attribute>
+ <attribute name="action">win.SortBy</attribute>
+ <attribute name="target">4</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">By Exposure _Date</attribute>
+ <attribute name="action">win.SortBy</attribute>
+ <attribute name="target">2</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">By _Rating</attribute>
+ <attribute name="action">win.SortBy</attribute>
+ <attribute name="target">3</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Ascending</attribute>
+ <attribute name="action">win.Sort</attribute>
+ <attribute name="target">ascending</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">D_escending</attribute>
+ <attribute name="action">win.Sort</attribute>
+ <attribute name="target">descending</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">Sort _Events</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Ascending</attribute>
+ <attribute name="action">win.CommonSortEvents</attribute>
+ <attribute name="target">ascending</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Descending</attribute>
+ <attribute name="action">win.CommonSortEvents</attribute>
+ <attribute name="target">descending</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Zoom _In</attribute>
+ <attribute name="accel">&lt;Primary&gt;plus</attribute>
+ <attribute name="action">win.IncreaseSize</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Zoom _Out</attribute>
+ <attribute name="accel">&lt;Primary&gt;minus</attribute>
+ <attribute name="action">win.DecreaseSize</attribute>
+ </item>
+ </section>
+ <section>
+ <attribute name="id">ViewExtrasFullscreenSlideshowPlaceholder</attribute>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Photos</attribute>
+ <section>
+ <attribute name="id">PhotosExtrasEditsPlaceholder</attribute>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Toggle _Flag</attribute>
+ <attribute name="accel">&lt;Primary&gt;g</attribute>
+ <attribute name="action">win.Flag</attribute>
+ </item>
+ <submenu>
+ <attribute name="label" translatable="yes">_Set Rating</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="no">★★★★★</attribute>
+ <attribute name="accel">5</attribute>
+ <attribute name="action">win.RateFive</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★★</attribute>
+ <attribute name="accel">4</attribute>
+ <attribute name="action">win.RateFour</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★</attribute>
+ <attribute name="accel">3</attribute>
+ <attribute name="action">win.RateThree</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★</attribute>
+ <attribute name="accel">2</attribute>
+ <attribute name="action">win.RateTwo</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★</attribute>
+ <attribute name="accel">1</attribute>
+ <attribute name="action">win.RateOne</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Unrated</attribute>
+ <attribute name="accel">0</attribute>
+ <attribute name="action">win.RateUnrated</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Rejected</attribute>
+ <attribute name="accel">9</attribute>
+ <attribute name="action">win.RateRejected</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Increase</attribute>
+ <attribute name="accel">greater</attribute>
+ <attribute name="action">win.IncreaseRating</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Decrease</attribute>
+ <attribute name="accel">less</attribute>
+ <attribute name="action">win.DecreaseRating</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Edit _Title…</attribute>
+ <attribute name="action">win.EditTitle</attribute>
+ <attribute name="accel">F2</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Edit _Comment…</attribute>
+ <attribute name="action">win.EditComment</attribute>
+ <attribute name="accel">F3</attribute>
+ </item>
+ <attribute name="id">PhotosExtrasDateTimePlaceholder</attribute>
+ </section>
+ <section>
+ <submenu>
+ <attribute name="label" translatable="yes">_Developer</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Shotwell</attribute>
+ <attribute name="action">win.RawDeveloper</attribute>
+ <attribute name="target">Shotwell</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Camera</attribute>
+ <attribute name="action">win.RawDeveloper</attribute>
+ <attribute name="target">Camera</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ <section>
+ <attribute name="id">PhotosExtrasExternalsPlaceholder</attribute>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Make _Key Photo for Event</attribute>
+ <attribute name="action">win.MakePrimary</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">Even_ts</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_New Event</attribute>
+ <attribute name="accel">&lt;Primary&gt;n</attribute>
+ <attribute name="action">win.NewEvent</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">View Eve_nt for Photo</attribute>
+ <attribute name="action">win.CommonJumpToEvent</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Re_name Event…</attribute>
+ <attribute name="accel">F2</attribute>
+ <attribute name="action">win.Rename</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Edit _Comment…</attribute>
+ <attribute name="action">win.EditEventComment</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">Ta_gs</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Add _Tags…</attribute>
+ <attribute name="accel">&lt;Primary&gt;t</attribute>
+ <attribute name="action">win.AddTags</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Modif_y Tags…</attribute>
+ <attribute name="accel">&lt;Primary&gt;m</attribute>
+ <attribute name="action">win.ModifyTags</attribute>
+ </item>
+ </section>
+ </submenu>
+ <!-- Faces menu goes here FacesMenuPlaceholder -->
+ <submenu>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <attribute name="accel">F1</attribute>
+ <attribute name="action">win.CommonHelpContents</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Frequently Asked Questions</attribute>
+ <attribute name="action">win.CommonHelpFAQ</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Report a Problem…</attribute>
+ <attribute name="action">win.CommonHelpReportProblem</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_About</attribute>
+ <attribute name="action">win.CommonAbout</attribute>
+ </item>
+ </section>
+ </submenu>
+ </menu>
+ <menu id="CollectionContextMenu">
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Enhance</attribute>
+ <attribute name="accel">&lt;Primary&gt;e</attribute>
+ <attribute name="action">win.Enhance</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Re_vert to Original</attribute>
+ <attribute name="action">win.Revert</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Add _Tags…</attribute>
+ <attribute name="accel">&lt;Primary&gt;t</attribute>
+ <attribute name="action">win.AddTags</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Modif_y Tags…</attribute>
+ <attribute name="accel">&lt;Primary&gt;m</attribute>
+ <attribute name="action">win.ModifyTags</attribute>
+ </item>
+ <attribute name="id">ContextTagsPlaceholder</attribute>
+ </section>
+ <section>
+ <attribute name="id">ContextFacesPlaceholder</attribute>
+ <item>
+ <attribute name="label" translatable="yes">Toggle _Flag</attribute>
+ <attribute name="accel">&lt;Primary&gt;g</attribute>
+ <attribute name="action">win.Flag</attribute>
+ </item>
+ </section>
+ <submenu>
+ <attribute name="label" translatable="yes">_Set Rating</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="no">★★★★★</attribute>
+ <attribute name="action">win.RateFive</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★★</attribute>
+ <attribute name="action">win.RateFour</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★</attribute>
+ <attribute name="action">win.RateThree</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★</attribute>
+ <attribute name="action">win.RateTwo</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★</attribute>
+ <attribute name="action">win.RateOne</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Unrated</attribute>
+ <attribute name="action">win.RateUnrated</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Rejected</attribute>
+ <attribute name="action">win.RateRejected</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Increase</attribute>
+ <attribute name="action">win.IncreaseRating</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Decrease</attribute>
+ <attribute name="action">win.DecreaseRating</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Developer</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Shotwell</attribute>
+ <attribute name="action">win.RawDeveloper</attribute>
+ <attribute name="target">Shotwell</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Camera</attribute>
+ <attribute name="action">win.RawDeveloper</attribute>
+ <attribute name="target">Camera</attribute>
+ </item>
+ </section>
+ </submenu>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Edit _Title…</attribute>
+ <attribute name="action">win.EditTitle</attribute>
+ <attribute name="accel">F2</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Edit _Comment…</attribute>
+ <attribute name="action">win.EditComment</attribute>
+ <attribute name="accel">F3</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Open With E_xternal Editor</attribute>
+ <attribute name="accel">&lt;Primary&gt;Return</attribute>
+ <attribute name="action">win.ExternalEdit</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Open With RA_W Editor</attribute>
+ <attribute name="action">win.ExternalEditRAW</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">View Eve_nt for Photo</attribute>
+ <attribute name="action">win.CommonJumpToEvent</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Show in File Mana_ger</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;m</attribute>
+ <attribute name="action">win.CommonJumpToFile</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Send _To…</attribute>
+ <attribute name="action">win.SendTo</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Move to Trash</attribute>
+ <attribute name="accel">Delete</attribute>
+ <attribute name="action">win.MoveToTrash</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Make _Key Photo for Event</attribute>
+ <attribute name="action">win.MakePrimary</attribute>
+ </item>
+ </section>
+ </menu>
+ <menu id="EventContextMenu">
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Re_name Event…</attribute>
+ <attribute name="action">win.Rename</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Edit Event _Comment…</attribute>
+ <attribute name="action">win.EditEventComment</attribute>
+ </item>
+ </section>
+ </menu>
+</interface>
diff --git a/data/ui/events_directory.ui b/data/ui/events_directory.ui
new file mode 100644
index 0000000..6d0e939
--- /dev/null
+++ b/data/ui/events_directory.ui
@@ -0,0 +1,191 @@
+<?xml version="1.0"?>
+<interface domain="shotwell">
+ <menu id="MenuBar">
+ <submenu>
+ <attribute name="label" translatable="yes">_File</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Import From Folder…</attribute>
+ <attribute name="accel">&lt;Primary&gt;i</attribute>
+ <attribute name="action">win.CommonFileImport</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Import From _Application…</attribute>
+ <attribute name="action">win.ExternalLibraryImport</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Empty T_rash</attribute>
+ <attribute name="action">win.CommonEmptyTrash</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Quit</attribute>
+ <attribute name="accel">&lt;Primary&gt;q</attribute>
+ <attribute name="action">win.CommonQuit</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Edit</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Undo</attribute>
+ <attribute name="accel">&lt;Primary&gt;z</attribute>
+ <attribute name="action">win.CommonUndo</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Redo</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;z</attribute>
+ <attribute name="action">win.CommonRedo</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Find</attribute>
+ <attribute name="action">win.CommonFind</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Ne_w Saved Search…</attribute>
+ <attribute name="accel">&lt;Primary&gt;s</attribute>
+ <attribute name="action">win.CommonNewSearch</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Select _All</attribute>
+ <attribute name="accel">&lt;Primary&gt;a</attribute>
+ <attribute name="action">win.CommonSelectAll</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Preferences</attribute>
+ <attribute name="action">win.CommonPreferences</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_View</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Basic Information</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;i</attribute>
+ <attribute name="action">win.CommonDisplayBasicProperties</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">E_xtended Information</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;x</attribute>
+ <attribute name="action">win.CommonDisplayExtendedProperties</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Search Bar</attribute>
+ <attribute name="accel">F8</attribute>
+ <attribute name="action">win.CommonDisplaySearchbar</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">S_idebar</attribute>
+ <attribute name="accel">F9</attribute>
+ <attribute name="action">win.CommonDisplaySidebar</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">T_oolbar</attribute>
+ <attribute name="accel">&lt;Primary&gt;F9</attribute>
+ <attribute name="action">win.CommonDisplayToolbar</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Comments</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;c</attribute>
+ <attribute name="action">win.ViewComment</attribute>
+ </item>
+ </section>
+ <section>
+ <submenu>
+ <attribute name="label" translatable="yes">Sort _Events</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Ascending</attribute>
+ <attribute name="action">win.CommonSortEvents</attribute>
+ <attribute name="target">ascending</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">D_escending</attribute>
+ <attribute name="action">win.CommonSortEvents</attribute>
+ <attribute name="target">descending</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Fulls_creen</attribute>
+ <attribute name="accel">F11</attribute>
+ <attribute name="action">win.CommonFullscreen</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">Even_ts</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Merge Events</attribute>
+ <attribute name="action">win.Merge</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Re_name Event…</attribute>
+ <attribute name="accel">F2</attribute>
+ <attribute name="action">win.Rename</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Edit _Comment…</attribute>
+ <attribute name="action">win.EditComment</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <attribute name="accel">F1</attribute>
+ <attribute name="action">win.CommonHelpContents</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Frequently Asked Questions</attribute>
+ <attribute name="action">win.CommonHelpFAQ</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Report a Problem…</attribute>
+ <attribute name="action">win.CommonHelpReportProblem</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_About</attribute>
+ <attribute name="action">win.CommonAbout</attribute>
+ </item>
+ </section>
+ </submenu>
+ </menu>
+ <menu id="EventsDirectoryContextMenu">
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Merge Events</attribute>
+ <attribute name="action">win.Merge</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Re_name Event…</attribute>
+ <attribute name="accel">F2</attribute>
+ <attribute name="action">win.Rename</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Edit _Comment…</attribute>
+ <attribute name="action">win.EditComment</attribute>
+ </item>
+ </section>
+ </menu>
+</interface>
diff --git a/data/ui/faces.ui b/data/ui/faces.ui
new file mode 100644
index 0000000..bcf7236
--- /dev/null
+++ b/data/ui/faces.ui
@@ -0,0 +1,474 @@
+<?xml version="1.0"?>
+<interface domain="shotwell">
+ <menu id="MenuBar">
+ <submenu>
+ <attribute name="label" translatable="yes">_File</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Import From Folder…</attribute>
+ <attribute name="accel">&lt;Primary&gt;i</attribute>
+ <attribute name="action">win.CommonFileImport</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Import From _Application…</attribute>
+ <attribute name="action">win.ExternalLibraryImport</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Export…</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;e</attribute>
+ <attribute name="action">win.Export</attribute>
+ </item>
+ </section>
+ <section>
+ <attribute name="id">FileExtrasPlaceholder</attribute>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Show in File Mana_ger</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;m</attribute>
+ <attribute name="action">win.CommonJumpToFile</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Empty T_rash</attribute>
+ <attribute name="action">win.CommonEmptyTrash</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Quit</attribute>
+ <attribute name="accel">&lt;Primary&gt;q</attribute>
+ <attribute name="action">win.CommonQuit</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Edit</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Undo</attribute>
+ <attribute name="accel">&lt;Primary&gt;z</attribute>
+ <attribute name="action">win.CommonUndo</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Redo</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;z</attribute>
+ <attribute name="action">win.CommonRedo</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Find</attribute>
+ <attribute name="action">win.CommonFind</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Ne_w Saved Search…</attribute>
+ <attribute name="accel">&lt;Primary&gt;s</attribute>
+ <attribute name="action">win.CommonNewSearch</attribute>
+ </item>
+ </section>
+ <section>
+ <attribute name="id">EditExtrasPlaceholder</attribute>
+ <item>
+ <attribute name="label" translatable="yes">R_emove From Library</attribute>
+ <attribute name="accel">&lt;Shift&gt;Delete</attribute>
+ <attribute name="action">win.RemoveFromLibrary</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Move to Trash</attribute>
+ <attribute name="accel">Delete</attribute>
+ <attribute name="action">win.MoveToTrash</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Select _All</attribute>
+ <attribute name="accel">&lt;Primary&gt;a</attribute>
+ <attribute name="action">win.CommonSelectAll</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Preferences</attribute>
+ <attribute name="action">win.CommonPreferences</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_View</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Basic Information</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;i</attribute>
+ <attribute name="action">win.CommonDisplayBasicProperties</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">E_xtended Information</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;x</attribute>
+ <attribute name="action">win.CommonDisplayExtendedProperties</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Search Bar</attribute>
+ <attribute name="accel">F8</attribute>
+ <attribute name="action">win.CommonDisplaySearchbar</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">S_idebar</attribute>
+ <attribute name="accel">F9</attribute>
+ <attribute name="action">win.CommonDisplaySidebar</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">T_oolbar</attribute>
+ <attribute name="accel">&lt;Primary&gt;F9</attribute>
+ <attribute name="action">win.CommonDisplayToolbar</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Titles</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;t</attribute>
+ <attribute name="action">win.ViewTitle</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Comments</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;c</attribute>
+ <attribute name="action">win.ViewComment</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Ta_gs</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;g</attribute>
+ <attribute name="action">win.ViewTags</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Ratings</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;n</attribute>
+ <attribute name="action">win.ViewRatings</attribute>
+ </item>
+ </section>
+ <section>
+ <submenu>
+ <attribute name="label" translatable="yes">_Filter Photos</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="no">★★★★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">7</attribute>
+ <attribute name="accel">&lt;Primary&gt;5</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">6</attribute>
+ <attribute name="accel">&lt;Primary&gt;4</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">5</attribute>
+ <attribute name="accel">&lt;Primary&gt;3</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">4</attribute>
+ <attribute name="accel">&lt;Primary&gt;2</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">3</attribute>
+ <attribute name="accel">&lt;Primary&gt;1</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_All Photos</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">2</attribute>
+ <attribute name="accel">&lt;Primary&gt;0</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">All + _Rejected</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">1</attribute>
+ <attribute name="accel">&lt;Primary&gt;9</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Rejected _Only</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">8</attribute>
+ <attribute name="accel">&lt;Primary&gt;8</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ <section>
+ <submenu>
+ <attribute name="label" translatable="yes">Sort _Photos</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">By _Title</attribute>
+ <attribute name="action">win.SortBy</attribute>
+ <attribute name="target">1</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">By _Filename</attribute>
+ <attribute name="action">win.SortBy</attribute>
+ <attribute name="target">4</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">By Exposure _Date</attribute>
+ <attribute name="action">win.SortBy</attribute>
+ <attribute name="target">2</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">By _Rating</attribute>
+ <attribute name="action">win.SortBy</attribute>
+ <attribute name="target">3</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Ascending</attribute>
+ <attribute name="action">win.Sort</attribute>
+ <attribute name="target">ascending</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">D_escending</attribute>
+ <attribute name="action">win.Sort</attribute>
+ <attribute name="target">descending</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">Sort _Events</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Ascending</attribute>
+ <attribute name="action">win.CommonSortEvents</attribute>
+ <attribute name="target">ascending</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Descending</attribute>
+ <attribute name="action">win.CommonSortEvents</attribute>
+ <attribute name="target">descending</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Zoom _In</attribute>
+ <attribute name="accel">&lt;Primary&gt;plus</attribute>
+ <attribute name="action">win.IncreaseSize</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Zoom _Out</attribute>
+ <attribute name="accel">&lt;Primary&gt;minus</attribute>
+ <attribute name="action">win.DecreaseSize</attribute>
+ </item>
+ </section>
+ <section>
+ <attribute name="id">ViewExtrasFullscreenSlideshowPlaceholder</attribute>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Photos</attribute>
+ <section>
+ <attribute name="id">PhotosExtrasEditsPlaceholder</attribute>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Toggle _Flag</attribute>
+ <attribute name="accel">&lt;Primary&gt;g</attribute>
+ <attribute name="action">win.Flag</attribute>
+ </item>
+ <submenu>
+ <attribute name="label" translatable="yes">_Set Rating</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="no">★★★★★</attribute>
+ <attribute name="accel">5</attribute>
+ <attribute name="action">win.RateFive</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★★</attribute>
+ <attribute name="accel">4</attribute>
+ <attribute name="action">win.RateFour</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★</attribute>
+ <attribute name="accel">3</attribute>
+ <attribute name="action">win.RateThree</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★</attribute>
+ <attribute name="accel">2</attribute>
+ <attribute name="action">win.RateTwo</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★</attribute>
+ <attribute name="accel">1</attribute>
+ <attribute name="action">win.RateOne</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Unrated</attribute>
+ <attribute name="accel">0</attribute>
+ <attribute name="action">win.RateUnrated</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Rejected</attribute>
+ <attribute name="accel">9</attribute>
+ <attribute name="action">win.RateRejected</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Increase</attribute>
+ <attribute name="accel">greater</attribute>
+ <attribute name="action">win.IncreaseRating</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Decrease</attribute>
+ <attribute name="accel">less</attribute>
+ <attribute name="action">win.DecreaseRating</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Edit _Title…</attribute>
+ <attribute name="action">win.EditTitle</attribute>
+ <attribute name="accel">F2</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Edit _Comment…</attribute>
+ <attribute name="action">win.EditComment</attribute>
+ <attribute name="accel">F3</attribute>
+ </item>
+ <attribute name="id">PhotosExtrasDateTimePlaceholder</attribute>
+ </section>
+ <section>
+ <submenu>
+ <attribute name="label" translatable="yes">_Developer</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Shotwell</attribute>
+ <attribute name="action">win.RawDeveloper</attribute>
+ <attribute name="target">Shotwell</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Camera</attribute>
+ <attribute name="action">win.RawDeveloper</attribute>
+ <attribute name="target">Camera</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ <section>
+ <attribute name="id">PhotosExtrasExternalsPlaceholder</attribute>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">Even_ts</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_New Event</attribute>
+ <attribute name="accel">&lt;Primary&gt;n</attribute>
+ <attribute name="action">win.NewEvent</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">View Eve_nt for Photo</attribute>
+ <attribute name="action">win.CommonJumpToEvent</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">Ta_gs</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Add _Tags…</attribute>
+ <attribute name="accel">&lt;Primary&gt;t</attribute>
+ <attribute name="action">win.AddTags</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Modif_y Tags…</attribute>
+ <attribute name="accel">&lt;Primary&gt;m</attribute>
+ <attribute name="action">win.ModifyTags</attribute>
+ </item>
+ </section>
+ </submenu>
+ <!-- Faces menu goes here FacesMenuPlaceholder -->
+ <submenu>
+ <attribute name="label" translatable="yes">Faces</attribute>
+ <section>
+ <attribute name="id">FacesMenuPlaceholder</attribute>
+ <!--
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_RemoveFaceFromPhotos</attribute>
+ <attribute name="accel">&lt;Primary&gt;r</attribute>
+ <attribute name="action">RemoveFaceFromPhotos</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">R_enameFace</attribute>
+ <attribute name="accel">&lt;Primary&gt;e</attribute>
+ <attribute name="action">RenameFace</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Dele_teFace</attribute>
+ <attribute name="accel">&lt;Primary&gt;t</attribute>
+ <attribute name="action">DeleteFace</attribute>
+ </item>
+ </section>
+ -->
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <attribute name="accel">F1</attribute>
+ <attribute name="action">win.CommonHelpContents</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Frequently Asked Questions</attribute>
+ <attribute name="action">win.CommonHelpFAQ</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Report a Problem…</attribute>
+ <attribute name="action">win.CommonHelpReportProblem</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_About</attribute>
+ <attribute name="action">win.CommonAbout</attribute>
+ </item>
+ </section>
+ </submenu>
+ </menu>
+ <menu id="CollectionFacesPlaceholder">
+ <section>
+ <item>
+ <attribute name="label">ContextRemoveFaceFromPhotos</attribute>
+ <attribute name="action">win.RemoveFaceFromPhotos</attribute>
+ </item>
+ </section>
+ </menu>
+ <menu id="FacesContextMenu">
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Rename…</attribute>
+ <attribute name="action">win.RenameFaceSidebar</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Delete</attribute>
+ <attribute name="action">win.DeleteFaceSidebar</attribute>
+ </item>
+ </section>
+ </menu>
+</interface>
diff --git a/data/ui/fullscreen.ui b/data/ui/fullscreen.ui
new file mode 100644
index 0000000..8aade55
--- /dev/null
+++ b/data/ui/fullscreen.ui
@@ -0,0 +1,5 @@
+<ui>
+
+ <accelerator name="LeaveFullscreen" action="LeaveFullscreen" />
+
+</ui>
diff --git a/data/ui/import.ui b/data/ui/import.ui
new file mode 100644
index 0000000..6f13e31
--- /dev/null
+++ b/data/ui/import.ui
@@ -0,0 +1,219 @@
+<?xml version="1.0"?>
+<interface domain="shotwell">
+ <menu id="MenuBar">
+ <submenu>
+ <attribute name="label" translatable="yes">_File</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Import From Folder…</attribute>
+ <attribute name="accel">&lt;Primary&gt;i</attribute>
+ <attribute name="action">win.CommonFileImport</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Import _Selected</attribute>
+ <attribute name="action">win.ImportSelected</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Import _All</attribute>
+ <attribute name="action">win.ImportAll</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Import From _Application…</attribute>
+ <attribute name="action">win.ExternalLibraryImport</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Empty T_rash</attribute>
+ <attribute name="action">win.CommonEmptyTrash</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Quit</attribute>
+ <attribute name="accel">&lt;Primary&gt;q</attribute>
+ <attribute name="action">win.CommonQuit</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Edit</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Undo</attribute>
+ <attribute name="accel">&lt;Primary&gt;z</attribute>
+ <attribute name="action">win.CommonUndo</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Redo</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;z</attribute>
+ <attribute name="action">win.CommonRedo</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Find</attribute>
+ <attribute name="action">win.CommonFind</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Select _All</attribute>
+ <attribute name="accel">&lt;Primary&gt;a</attribute>
+ <attribute name="action">win.CommonSelectAll</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Preferences</attribute>
+ <attribute name="action">win.CommonPreferences</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_View</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Basic Information</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;i</attribute>
+ <attribute name="action">win.CommonDisplayBasicProperties</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">E_xtended Information</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;x</attribute>
+ <attribute name="action">win.CommonDisplayExtendedProperties</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Search Bar</attribute>
+ <attribute name="accel">F8</attribute>
+ <attribute name="action">win.CommonDisplaySearchbar</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">S_idebar</attribute>
+ <attribute name="accel">F9</attribute>
+ <attribute name="action">win.CommonDisplaySidebar</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">T_oolbar</attribute>
+ <attribute name="accel">&lt;Primary&gt;F9</attribute>
+ <attribute name="action">win.CommonDisplayToolbar</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Titles</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;t</attribute>
+ <attribute name="action">win.ViewTitle</attribute>
+ </item>
+ </section>
+ <section>
+ <submenu>
+ <attribute name="label" translatable="yes">_Filter Photos</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="no">★★★★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">7</attribute>
+ <attribute name="accel">&lt;Primary&gt;5</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">6</attribute>
+ <attribute name="accel">&lt;Primary&gt;4</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">5</attribute>
+ <attribute name="accel">&lt;Primary&gt;3</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">4</attribute>
+ <attribute name="accel">&lt;Primary&gt;2</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">3</attribute>
+ <attribute name="accel">&lt;Primary&gt;1</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_All Photos</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">2</attribute>
+ <attribute name="accel">&lt;Primary&gt;0</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">All + _Rejected</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">1</attribute>
+ <attribute name="accel">&lt;Primary&gt;9</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Rejected _Only</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">8</attribute>
+ <attribute name="accel">&lt;Primary&gt;8</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ <section>
+ <submenu>
+ <attribute name="label" translatable="yes">Sort _Events</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Ascending</attribute>
+ <attribute name="action">win.CommonSortEvents</attribute>
+ <attribute name="target">ascending</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Descending</attribute>
+ <attribute name="action">win.CommonSortEvents</attribute>
+ <attribute name="target">descending</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <attribute name="accel">F1</attribute>
+ <attribute name="action">win.CommonHelpContents</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Frequently Asked Questions</attribute>
+ <attribute name="action">win.CommonHelpFAQ</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Report a Problem…</attribute>
+ <attribute name="action">win.CommonHelpReportProblem</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_About</attribute>
+ <attribute name="action">win.CommonAbout</attribute>
+ </item>
+ </section>
+ </submenu>
+ </menu>
+ <menu id="ImportContextMenu">
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Import _Selected</attribute>
+ <attribute name="action">win.ImportSelected</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Import _All</attribute>
+ <attribute name="action">win.ImportAll</attribute>
+ </item>
+ </section>
+ </menu>
+</interface>
diff --git a/data/ui/import_queue.ui b/data/ui/import_queue.ui
new file mode 100644
index 0000000..1f67fc3
--- /dev/null
+++ b/data/ui/import_queue.ui
@@ -0,0 +1,89 @@
+<?xml version="1.0"?>
+<interface domain="shotwell">
+ <menu id="MenuBar">
+ <submenu>
+ <attribute name="label" translatable="yes">_File</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Stop Import</attribute>
+ <attribute name="action">win.Stop</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Import From Folder…</attribute>
+ <attribute name="accel">&lt;Primary&gt;i</attribute>
+ <attribute name="action">win.CommonFileImport</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Import From _Application…</attribute>
+ <attribute name="action">win.ExternalLibraryImport</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Empty T_rash</attribute>
+ <attribute name="action">win.CommonEmptyTrash</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Quit</attribute>
+ <attribute name="accel">&lt;Primary&gt;q</attribute>
+ <attribute name="action">win.CommonQuit</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_View</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Basic Information</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;i</attribute>
+ <attribute name="action">win.CommonDisplayBasicProperties</attribute>
+ </item>
+ </section>
+ <section>
+ <submenu>
+ <attribute name="label" translatable="yes">Sort _Events</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Ascending</attribute>
+ <attribute name="action">win.CommonSortEvents</attribute>
+ <attribute name="target">ascending</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">D_escending</attribute>
+ <attribute name="action">win.CommonSortEvents</attribute>
+ <attribute name="target">descending</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <attribute name="accel">F1</attribute>
+ <attribute name="action">win.CommonHelpContents</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Frequently Asked Questions</attribute>
+ <attribute name="action">win.CommonHelpFAQ</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Report a Problem…</attribute>
+ <attribute name="action">win.CommonHelpReportProblem</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_About</attribute>
+ <attribute name="action">win.CommonAbout</attribute>
+ </item>
+ </section>
+ </submenu>
+ </menu>
+</interface>
diff --git a/data/ui/login_welcome_pane_widget.ui b/data/ui/login_welcome_pane_widget.ui
new file mode 100644
index 0000000..82698f4
--- /dev/null
+++ b/data/ui/login_welcome_pane_widget.ui
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.22.0 -->
+<interface domain="shotwell">
+ <requires lib="gtk+" version="3.18"/>
+ <template class="PublishingUILoginWelcomePane" parent="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_start">18</property>
+ <property name="margin_end">18</property>
+ <property name="margin_top">18</property>
+ <property name="margin_bottom">18</property>
+ <property name="orientation">vertical</property>
+ <child type="center">
+ <object class="GtkLabel" id="not_logged_in_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" comments="This is a placeholder string and may be ignored.">This is populated from within the code;
+changes made here will not display.</property>
+ <property name="wrap">True</property>
+ <property name="max_width_chars">70</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButtonBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="layout_style">spread</property>
+ <child>
+ <object class="GtkButton" id="login_button">
+ <property name="label" translatable="yes">_Log in</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_underline">True</property>
+ <property name="image_position">top</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </template>
+</interface>
diff --git a/data/ui/manifest_widget.ui b/data/ui/manifest_widget.ui
new file mode 100644
index 0000000..e71d498
--- /dev/null
+++ b/data/ui/manifest_widget.ui
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.40.0 -->
+<interface domain="shotwell">
+ <requires lib="gtk+" version="3.18"/>
+ <template class="PluginsManifestWidgetMediator" parent="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkScrolledWindow" id="list_bin">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="hscrollbar-policy">never</property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </template>
+</interface>
diff --git a/data/ui/media.ui b/data/ui/media.ui
new file mode 100644
index 0000000..22a6b83
--- /dev/null
+++ b/data/ui/media.ui
@@ -0,0 +1,427 @@
+<?xml version="1.0"?>
+<interface domain="shotwell">
+ <menu id="MenuBar">
+ <submenu>
+ <attribute name="label" translatable="yes">_File</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Import From Folder…</attribute>
+ <attribute name="accel">&lt;Primary&gt;i</attribute>
+ <attribute name="action">win.CommonFileImport</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Import From _Application…</attribute>
+ <attribute name="action">win.ExternalLibraryImport</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Export…</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;e</attribute>
+ <attribute name="action">win.Export</attribute>
+ </item>
+ </section>
+ <section>
+ <attribute name="id">FileExtrasPlaceholder</attribute>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Show in File Mana_ger</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;m</attribute>
+ <attribute name="action">win.CommonJumpToFile</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Empty T_rash</attribute>
+ <attribute name="action">win.CommonEmptyTrash</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Quit</attribute>
+ <attribute name="accel">&lt;Primary&gt;q</attribute>
+ <attribute name="action">win.CommonQuit</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Edit</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Undo</attribute>
+ <attribute name="accel">&lt;Primary&gt;z</attribute>
+ <attribute name="action">win.CommonUndo</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Redo</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;z</attribute>
+ <attribute name="action">win.CommonRedo</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Find</attribute>
+ <attribute name="action">win.CommonFind</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Ne_w Saved Search…</attribute>
+ <attribute name="accel">&lt;Primary&gt;s</attribute>
+ <attribute name="action">win.CommonNewSearch</attribute>
+ </item>
+ </section>
+ <section>
+ <attribute name="id">EditExtrasPlaceholder</attribute>
+ <item>
+ <attribute name="label" translatable="yes">R_emove From Library</attribute>
+ <attribute name="accel">&lt;Shift&gt;Delete</attribute>
+ <attribute name="action">win.RemoveFromLibrary</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Move to Trash</attribute>
+ <attribute name="accel">Delete</attribute>
+ <attribute name="action">win.MoveToTrash</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Select _All</attribute>
+ <attribute name="accel">&lt;Primary&gt;a</attribute>
+ <attribute name="action">win.CommonSelectAll</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Preferences</attribute>
+ <attribute name="action">win.CommonPreferences</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_View</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Basic Information</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;i</attribute>
+ <attribute name="action">win.CommonDisplayBasicProperties</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">E_xtended Information</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;x</attribute>
+ <attribute name="action">win.CommonDisplayExtendedProperties</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Search Bar</attribute>
+ <attribute name="accel">F8</attribute>
+ <attribute name="action">win.CommonDisplaySearchbar</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">S_idebar</attribute>
+ <attribute name="accel">F9</attribute>
+ <attribute name="action">win.CommonDisplaySidebar</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">T_oolbar</attribute>
+ <attribute name="accel">&lt;Primary&gt;F9</attribute>
+ <attribute name="action">win.CommonDisplayToolbar</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Titles</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;t</attribute>
+ <attribute name="action">win.ViewTitle</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Comments</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;c</attribute>
+ <attribute name="action">win.ViewComment</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Ta_gs</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;g</attribute>
+ <attribute name="action">win.ViewTags</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Ratings</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;n</attribute>
+ <attribute name="action">win.ViewRatings</attribute>
+ </item>
+ </section>
+ <section>
+ <submenu>
+ <attribute name="label" translatable="yes">_Filter Photos</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="no">★★★★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">7</attribute>
+ <attribute name="accel">&lt;Primary&gt;5</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">6</attribute>
+ <attribute name="accel">&lt;Primary&gt;4</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">5</attribute>
+ <attribute name="accel">&lt;Primary&gt;3</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">4</attribute>
+ <attribute name="accel">&lt;Primary&gt;2</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">3</attribute>
+ <attribute name="accel">&lt;Primary&gt;1</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_All Photos</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">2</attribute>
+ <attribute name="accel">&lt;Primary&gt;0</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">All + _Rejected</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">1</attribute>
+ <attribute name="accel">&lt;Primary&gt;9</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Rejected _Only</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">8</attribute>
+ <attribute name="accel">&lt;Primary&gt;8</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ <section>
+ <submenu>
+ <attribute name="label" translatable="yes">Sort _Photos</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">By _Title</attribute>
+ <attribute name="action">win.SortBy</attribute>
+ <attribute name="target">1</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">By _Filename</attribute>
+ <attribute name="action">win.SortBy</attribute>
+ <attribute name="target">4</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">By Exposure _Date</attribute>
+ <attribute name="action">win.SortBy</attribute>
+ <attribute name="target">2</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">By _Rating</attribute>
+ <attribute name="action">win.SortBy</attribute>
+ <attribute name="target">3</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Ascending</attribute>
+ <attribute name="action">win.Sort</attribute>
+ <attribute name="target">ascending</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">D_escending</attribute>
+ <attribute name="action">win.Sort</attribute>
+ <attribute name="target">descending</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">Sort _Events</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Ascending</attribute>
+ <attribute name="action">win.CommonSortEvents</attribute>
+ <attribute name="target">ascending</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Descending</attribute>
+ <attribute name="action">win.CommonSortEvents</attribute>
+ <attribute name="target">descending</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Zoom _In</attribute>
+ <attribute name="accel">&lt;Primary&gt;plus</attribute>
+ <attribute name="action">win.IncreaseSize</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Zoom _Out</attribute>
+ <attribute name="accel">&lt;Primary&gt;minus</attribute>
+ <attribute name="action">win.DecreaseSize</attribute>
+ </item>
+ </section>
+ <section>
+ <attribute name="id">ViewExtrasFullscreenSlideshowPlaceholder</attribute>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Photos</attribute>
+ <section>
+ <attribute name="id">PhotosExtrasEditsPlaceholder</attribute>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Toggle _Flag</attribute>
+ <attribute name="accel">&lt;Primary&gt;g</attribute>
+ <attribute name="action">win.Flag</attribute>
+ </item>
+ <submenu>
+ <attribute name="label" translatable="yes">_Set Rating</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="no">★★★★★</attribute>
+ <attribute name="accel">5</attribute>
+ <attribute name="action">win.RateFive</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★★</attribute>
+ <attribute name="accel">4</attribute>
+ <attribute name="action">win.RateFour</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★</attribute>
+ <attribute name="accel">3</attribute>
+ <attribute name="action">win.RateThree</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★</attribute>
+ <attribute name="accel">2</attribute>
+ <attribute name="action">win.RateTwo</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★</attribute>
+ <attribute name="accel">1</attribute>
+ <attribute name="action">win.RateOne</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Unrated</attribute>
+ <attribute name="accel">0</attribute>
+ <attribute name="action">win.RateUnrated</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Rejected</attribute>
+ <attribute name="accel">9</attribute>
+ <attribute name="action">win.RateRejected</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Increase</attribute>
+ <attribute name="accel">greater</attribute>
+ <attribute name="action">win.IncreaseRating</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Decrease</attribute>
+ <attribute name="accel">less</attribute>
+ <attribute name="action">win.DecreaseRating</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Edit _Title…</attribute>
+ <attribute name="action">win.EditTitle</attribute>
+ <attribute name="accel">F2</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Edit _Comment…</attribute>
+ <attribute name="action">win.EditComment</attribute>
+ <attribute name="accel">F3</attribute>
+ </item>
+ <attribute name="id">PhotosExtrasDateTimePlaceholder</attribute>
+ </section>
+ <section>
+ <submenu>
+ <attribute name="label" translatable="yes">_Developer</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Shotwell</attribute>
+ <attribute name="action">win.RawDeveloper</attribute>
+ <attribute name="target">Shotwell</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Camera</attribute>
+ <attribute name="action">win.RawDeveloper</attribute>
+ <attribute name="target">Camera</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ <section>
+ <attribute name="id">PhotosExtrasExternalsPlaceholder</attribute>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">Even_ts</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_New Event</attribute>
+ <attribute name="accel">&lt;Primary&gt;n</attribute>
+ <attribute name="action">win.NewEvent</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">View Eve_nt for Photo</attribute>
+ <attribute name="action">win.CommonJumpToEvent</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">Ta_gs</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Add _Tags…</attribute>
+ <attribute name="accel">&lt;Primary&gt;t</attribute>
+ <attribute name="action">win.AddTags</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Modif_y Tags…</attribute>
+ <attribute name="accel">&lt;Primary&gt;m</attribute>
+ <attribute name="action">win.ModifyTags</attribute>
+ </item>
+ </section>
+ </submenu>
+ <!-- Faces menu goes here FacesMenuPlaceholder -->
+ <submenu>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <attribute name="accel">F1</attribute>
+ <attribute name="action">win.CommonHelpContents</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Frequently Asked Questions</attribute>
+ <attribute name="action">win.CommonHelpFAQ</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Report a Problem…</attribute>
+ <attribute name="action">win.CommonHelpReportProblem</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_About</attribute>
+ <attribute name="action">win.CommonAbout</attribute>
+ </item>
+ </section>
+ </submenu>
+ </menu>
+</interface>
diff --git a/data/ui/message_pane.ui b/data/ui/message_pane.ui
new file mode 100644
index 0000000..165a01f
--- /dev/null
+++ b/data/ui/message_pane.ui
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.22.1 -->
+<interface>
+ <requires lib="gtk+" version="3.22"/>
+ <template class="PageMessagePane" parent="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">center</property>
+ <property name="margin_top">12</property>
+ <property name="margin_bottom">12</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkImage" id="icon_image">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">center</property>
+ <property name="margin_bottom">12</property>
+ <property name="pixel_size">128</property>
+ <property name="icon_name">image-x-generic-symbolic</property>
+ <property name="icon_size">0</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="no">label</property>
+ <attributes>
+ <attribute name="scale" value="1.3999999999999999"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ </template>
+</interface>
diff --git a/data/ui/multitextentrydialog.ui b/data/ui/multitextentrydialog.ui
new file mode 100644
index 0000000..6477129
--- /dev/null
+++ b/data/ui/multitextentrydialog.ui
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
+<interface domain="shotwell">
+ <requires lib="gtk+" version="3.18"/>
+ <object class="GtkTextBuffer" id="textbuffer1"/>
+ <template class="MultiTextEntryDialog" parent="GtkDialog">
+ <property name="can_focus">False</property>
+ <property name="default_width">500</property>
+ <property name="default_height">300</property>
+ <property name="type_hint">normal</property>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="dialog-vbox4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
+ <property name="can_focus">False</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="cancel_button">
+ <property name="label" translatable="yes">_Cancel</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="ok_button">
+ <property name="label" translatable="yes">_OK</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="has_default">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow" id="scrolledwindow1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkTextView" id="entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="wrap_mode">word</property>
+ <property name="buffer">textbuffer1</property>
+ <property name="accepts_tab">False</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">cancel_button</action-widget>
+ <action-widget response="-5">ok_button</action-widget>
+ </action-widgets>
+ </template>
+</interface>
diff --git a/data/ui/offline.ui b/data/ui/offline.ui
new file mode 100644
index 0000000..3daefca
--- /dev/null
+++ b/data/ui/offline.ui
@@ -0,0 +1,249 @@
+<?xml version="1.0"?>
+<interface domain="shotwell">
+ <menu id="MenuBar">
+ <submenu>
+ <attribute name="label" translatable="yes">_File</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Import From Folder…</attribute>
+ <attribute name="accel">&lt;Primary&gt;i</attribute>
+ <attribute name="action">win.CommonFileImport</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Import From _Application…</attribute>
+ <attribute name="action">win.ExternalLibraryImport</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Empty T_rash</attribute>
+ <attribute name="action">win.CommonEmptyTrash</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Quit</attribute>
+ <attribute name="accel">&lt;Primary&gt;q</attribute>
+ <attribute name="action">win.CommonQuit</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Edit</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Undo</attribute>
+ <attribute name="accel">&lt;Primary&gt;z</attribute>
+ <attribute name="action">win.CommonUndo</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Redo</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;z</attribute>
+ <attribute name="action">win.CommonRedo</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Find</attribute>
+ <attribute name="action">win.CommonFind</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Ne_w Saved Search…</attribute>
+ <attribute name="accel">&lt;Primary&gt;s</attribute>
+ <attribute name="action">win.CommonNewSearch</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">R_emove From Library</attribute>
+ <attribute name="accel">Delete</attribute>
+ <attribute name="action">win.RemoveFromLibrary</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Select _All</attribute>
+ <attribute name="accel">&lt;Primary&gt;a</attribute>
+ <attribute name="action">win.CommonSelectAll</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Preferences</attribute>
+ <attribute name="action">win.CommonPreferences</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_View</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Basic Information</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;i</attribute>
+ <attribute name="action">win.CommonDisplayBasicProperties</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">E_xtended Information</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;x</attribute>
+ <attribute name="action">win.CommonDisplayExtendedProperties</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Search Bar</attribute>
+ <attribute name="accel">F8</attribute>
+ <attribute name="action">win.CommonDisplaySearchbar</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">S_idebar</attribute>
+ <attribute name="accel">F9</attribute>
+ <attribute name="action">win.CommonDisplaySidebar</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">T_oolbar</attribute>
+ <attribute name="accel">&lt;Primary&gt;F9</attribute>
+ <attribute name="action">win.CommonDisplayToolbar</attribute>
+ </item>
+ </section>
+ <section>
+ <submenu>
+ <attribute name="label" translatable="yes">_Filter Photos</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="no">★★★★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">7</attribute>
+ <attribute name="accel">&lt;Primary&gt;5</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">6</attribute>
+ <attribute name="accel">&lt;Primary&gt;4</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">5</attribute>
+ <attribute name="accel">&lt;Primary&gt;3</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">4</attribute>
+ <attribute name="accel">&lt;Primary&gt;2</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">3</attribute>
+ <attribute name="accel">&lt;Primary&gt;1</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_All Photos</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">2</attribute>
+ <attribute name="accel">&lt;Primary&gt;0</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">All + _Rejected</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">1</attribute>
+ <attribute name="accel">&lt;Primary&gt;9</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Rejected _Only</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">8</attribute>
+ <attribute name="accel">&lt;Primary&gt;8</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ <section>
+ <submenu>
+ <attribute name="label" translatable="yes">Sort _Events</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Ascending</attribute>
+ <attribute name="action">win.CommonSortEvents</attribute>
+ <attribute name="target">ascending</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">D_escending</attribute>
+ <attribute name="action">win.CommonSortEvents</attribute>
+ <attribute name="target">descending</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <attribute name="accel">F1</attribute>
+ <attribute name="action">win.CommonHelpContents</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Frequently Asked Questions</attribute>
+ <attribute name="action">win.CommonHelpFAQ</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Report a Problem…</attribute>
+ <attribute name="action">win.CommonHelpReportProblem</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_About</attribute>
+ <attribute name="action">win.CommonAbout</attribute>
+ </item>
+ </section>
+ </submenu>
+ </menu>
+ <menu id="OfflineContextMenu">
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">R_emove From Library</attribute>
+ <attribute name="accel">Delete</attribute>
+ <attribute name="action">win.RemoveFromLibrary</attribute>
+ </item>
+ </section>
+ </menu>
+ <object class="GtkToolbar" id="OfflineToolbar">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="toolbar_style">both-horiz</property>
+ <child>
+ <object class="GtkToolButton" id="ToolRemoveFromLibrary">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Remove the selected photos from the library</property>
+ <property name="is_important">True</property>
+ <property name="action_name">win.RemoveFromLibrary</property>
+ <property name="label" translatable="yes">R_emove From Library</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="ToolFind">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Find an image by typing text that appears in its name or tags</property>
+ <property name="is_important">True</property>
+ <property name="action_name">win.CommonDisplaySearchbar</property>
+ <property name="label" translatable="yes">Find</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">edit-find-symbolic</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ </object>
+</interface>
diff --git a/data/ui/photo.ui b/data/ui/photo.ui
new file mode 100644
index 0000000..78a2fb5
--- /dev/null
+++ b/data/ui/photo.ui
@@ -0,0 +1,415 @@
+<?xml version="1.0"?>
+<interface domain="shotwell">
+ <menu id="MenuBar">
+ <submenu>
+ <attribute name="label" translatable="yes">_File</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Import From Folder…</attribute>
+ <attribute name="accel">&lt;Primary&gt;i</attribute>
+ <attribute name="action">win.CommonFileImport</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Import From _Application…</attribute>
+ <attribute name="action">win.ExternalLibraryImport</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Export…</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;e</attribute>
+ <attribute name="action">win.Export</attribute>
+ </item>
+ </section>
+ <section>
+ <attribute name="id">PrintPlaceholder</attribute>
+ </section>
+ <section>
+ <attribute name="id">PublishPlaceholder</attribute>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Send _To…</attribute>
+ <attribute name="action">win.SendTo</attribute>
+ </item>
+ <attribute name="id">SetBackgroundPlaceholder</attribute>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Show in File Mana_ger</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;m</attribute>
+ <attribute name="action">win.CommonJumpToFile</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Empty T_rash</attribute>
+ <attribute name="action">win.CommonEmptyTrash</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Quit</attribute>
+ <attribute name="accel">&lt;Primary&gt;q</attribute>
+ <attribute name="action">win.CommonQuit</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Edit</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Undo</attribute>
+ <attribute name="accel">&lt;Primary&gt;z</attribute>
+ <attribute name="action">win.CommonUndo</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Redo</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;z</attribute>
+ <attribute name="action">win.CommonRedo</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Ne_w Saved Search…</attribute>
+ <attribute name="accel">&lt;Primary&gt;s</attribute>
+ <attribute name="action">win.CommonNewSearch</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">R_emove From Library</attribute>
+ <attribute name="accel">&lt;Shift&gt;Delete</attribute>
+ <attribute name="action">win.RemoveFromLibrary</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Move to Trash</attribute>
+ <attribute name="accel">Delete</attribute>
+ <attribute name="action">win.MoveToTrash</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Preferences</attribute>
+ <attribute name="action">win.CommonPreferences</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_View</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Basic Information</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;i</attribute>
+ <attribute name="action">win.CommonDisplayBasicProperties</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">E_xtended Information</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;x</attribute>
+ <attribute name="action">win.CommonDisplayExtendedProperties</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">S_idebar</attribute>
+ <attribute name="accel">F9</attribute>
+ <attribute name="action">win.CommonDisplaySidebar</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">T_oolbar</attribute>
+ <attribute name="accel">&lt;Primary&gt;F9</attribute>
+ <attribute name="action">win.CommonDisplayToolbar</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Ratings</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;n</attribute>
+ <attribute name="action">win.ViewRatings</attribute>
+ </item>
+ </section>
+ <section>
+ <submenu>
+ <attribute name="label" translatable="yes">Sort _Events</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Ascending</attribute>
+ <attribute name="action">win.CommonSortEvents</attribute>
+ <attribute name="target">ascending</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Descending</attribute>
+ <attribute name="action">win.CommonSortEvents</attribute>
+ <attribute name="target">descending</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Zoom _In</attribute>
+ <attribute name="accel">&lt;Primary&gt;plus</attribute>
+ <attribute name="action">win.IncreaseSize</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Zoom _Out</attribute>
+ <attribute name="accel">&lt;Primary&gt;minus</attribute>
+ <attribute name="action">win.DecreaseSize</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Fit to _Page</attribute>
+ <attribute name="accel">&lt;Primary&gt;0</attribute>
+ <attribute name="action">win.ZoomFit</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Zoom _100%</attribute>
+ <attribute name="accel">&lt;Primary&gt;1</attribute>
+ <attribute name="action">win.Zoom100</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Zoom _200%</attribute>
+ <attribute name="accel">&lt;Primary&gt;2</attribute>
+ <attribute name="action">win.Zoom200</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Fulls_creen</attribute>
+ <attribute name="accel">F11</attribute>
+ <attribute name="action">win.CommonFullscreen</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">S_lideshow</attribute>
+ <attribute name="accel">F5</attribute>
+ <attribute name="action">win.Slideshow</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Photo</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Previous Photo</attribute>
+ <attribute name="action">win.PrevPhoto</attribute>
+ <attribute name="accel">Left</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Next Photo</attribute>
+ <attribute name="accel">Right</attribute>
+ <attribute name="action">win.NextPhoto</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Rotate _Right</attribute>
+ <attribute name="accel">&lt;Primary&gt;r</attribute>
+ <attribute name="action">win.RotateClockwise</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Rotate _Left</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;r</attribute>
+ <attribute name="action">win.RotateCounterclockwise</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Flip Hori_zontally</attribute>
+ <attribute name="action">win.FlipHorizontally</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Flip Verti_cally</attribute>
+ <attribute name="action">win.FlipVertically</attribute>
+ </item>
+ </section>
+ <section>
+ <submenu>
+ <attribute name="label" translatable="yes">T_ools</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Enhance</attribute>
+ <attribute name="accel">&lt;Primary&gt;e</attribute>
+ <attribute name="action">win.Enhance</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Crop</attribute>
+ <attribute name="accel">&lt;Primary&gt;o</attribute>
+ <attribute name="action">win.Crop</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Straighten</attribute>
+ <attribute name="accel">&lt;Primary&gt;a</attribute>
+ <attribute name="action">win.Straighten</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Red-eye</attribute>
+ <attribute name="accel">&lt;Primary&gt;y</attribute>
+ <attribute name="action">win.RedEye</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Adjust</attribute>
+ <attribute name="accel">&lt;Primary&gt;d</attribute>
+ <attribute name="action">win.Adjust</attribute>
+ </item>
+ </section>
+ </submenu>
+ <item>
+ <attribute name="label" translatable="yes">Re_vert to Original</attribute>
+ <attribute name="action">win.Revert</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Copy Color Adjustments</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;c</attribute>
+ <attribute name="action">win.CopyColorAdjustments</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Paste Color Adjustments</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;v</attribute>
+ <attribute name="action">win.PasteColorAdjustments</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Toggle _Flag</attribute>
+ <attribute name="accel">&lt;Primary&gt;g</attribute>
+ <attribute name="action">win.Flag</attribute>
+ </item>
+ <submenu>
+ <attribute name="label" translatable="yes">_Set Rating</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="no">★★★★★</attribute>
+ <attribute name="accel">5</attribute>
+ <attribute name="action">win.RateFive</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★★</attribute>
+ <attribute name="accel">4</attribute>
+ <attribute name="action">win.RateFour</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★</attribute>
+ <attribute name="accel">3</attribute>
+ <attribute name="action">win.RateThree</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★</attribute>
+ <attribute name="accel">2</attribute>
+ <attribute name="action">win.RateTwo</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★</attribute>
+ <attribute name="accel">1</attribute>
+ <attribute name="action">win.RateOne</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Unrated</attribute>
+ <attribute name="accel">0</attribute>
+ <attribute name="action">win.RateUnrated</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Rejected</attribute>
+ <attribute name="accel">9</attribute>
+ <attribute name="action">win.RateRejected</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Increase</attribute>
+ <attribute name="accel">greater</attribute>
+ <attribute name="action">win.IncreaseRating</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Decrease</attribute>
+ <attribute name="accel">less</attribute>
+ <attribute name="action">win.DecreaseRating</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Edit _Title…</attribute>
+ <attribute name="action">win.EditTitle</attribute>
+ <attribute name="accel">F2</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Edit _Comment…</attribute>
+ <attribute name="action">win.EditComment</attribute>
+ <attribute name="accel">F3</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Adjust Date and Time…</attribute>
+ <attribute name="accel">F4</attribute>
+ <attribute name="action">win.AdjustDateTime</attribute>
+ </item>
+ </section>
+ <section>
+ <submenu>
+ <attribute name="label" translatable="yes">_Developer</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Shotwell</attribute>
+ <attribute name="action">win.RawDeveloper</attribute>
+ <attribute name="target">Shotwell</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Camera</attribute>
+ <attribute name="action">win.RawDeveloper</attribute>
+ <attribute name="target">Camera</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Open With E_xternal Editor</attribute>
+ <attribute name="accel">&lt;Primary&gt;Return</attribute>
+ <attribute name="action">win.ExternalEdit</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Open With RA_W Editor</attribute>
+ <attribute name="action">win.ExternalEditRAW</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">Ta_gs</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Add _Tags…</attribute>
+ <attribute name="accel">&lt;Primary&gt;t</attribute>
+ <attribute name="action">win.AddTags</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Modif_y Tags…</attribute>
+ <attribute name="accel">&lt;Primary&gt;m</attribute>
+ <attribute name="action">win.ModifyTags</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <attribute name="accel">F1</attribute>
+ <attribute name="action">win.CommonHelpContents</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Frequently Asked Questions</attribute>
+ <attribute name="action">win.CommonHelpFAQ</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Report a Problem…</attribute>
+ <attribute name="action">win.CommonHelpReportProblem</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_About</attribute>
+ <attribute name="action">win.CommonAbout</attribute>
+ </item>
+ </section>
+ </submenu>
+ </menu>
+</interface>
diff --git a/data/ui/photo_context.ui b/data/ui/photo_context.ui
new file mode 100644
index 0000000..00019b8
--- /dev/null
+++ b/data/ui/photo_context.ui
@@ -0,0 +1,147 @@
+<?xml version="1.0"?>
+<interface domain="shotwell">
+ <menu id="PhotoContextMenu">
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Enhance</attribute>
+ <attribute name="accel">&lt;Primary&gt;e</attribute>
+ <attribute name="action">win.Enhance</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Re_vert to Original</attribute>
+ <attribute name="action">win.Revert</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Add Tags…</attribute>
+ <attribute name="accel">&lt;Primary&gt;t</attribute>
+ <attribute name="action">win.AddTags</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Modif_y Tags…</attribute>
+ <attribute name="accel">&lt;Primary&gt;m</attribute>
+ <attribute name="action">win.ModifyTags</attribute>
+ </item>
+ <attribute name="id">ContextTagsPlaceholder</attribute>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Toggle _Flag</attribute>
+ <attribute name="accel">&lt;Primary&gt;g</attribute>
+ <attribute name="action">win.Flag</attribute>
+ </item>
+ <submenu>
+ <attribute name="label" translatable="yes">_Set Rating</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="no">★★★★★</attribute>
+ <attribute name="accel">5</attribute>
+ <attribute name="action">win.RateFive</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★★</attribute>
+ <attribute name="accel">4</attribute>
+ <attribute name="action">win.RateFour</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★</attribute>
+ <attribute name="accel">3</attribute>
+ <attribute name="action">win.RateThree</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★</attribute>
+ <attribute name="accel">2</attribute>
+ <attribute name="action">win.RateTwo</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★</attribute>
+ <attribute name="accel">1</attribute>
+ <attribute name="action">win.RateOne</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Unrated</attribute>
+ <attribute name="accel">0</attribute>
+ <attribute name="action">win.RateUnrated</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Rejected</attribute>
+ <attribute name="accel">9</attribute>
+ <attribute name="action">win.RateRejected</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Increase</attribute>
+ <attribute name="accel">greater</attribute>
+ <attribute name="action">win.IncreaseRating</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Decrease</attribute>
+ <attribute name="accel">less</attribute>
+ <attribute name="action">win.DecreaseRating</attribute>
+ </item>
+ </section>
+ </submenu>
+
+ <submenu>
+ <attribute name="label" translatable="yes">_Developer</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Shotwell</attribute>
+ <attribute name="action">win.RawDeveloper</attribute>
+ <attribute name="target">Shotwell</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Camera</attribute>
+ <attribute name="action">win.RawDeveloper</attribute>
+ <attribute name="target">Camera</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Edit _Title…</attribute>
+ <attribute name="action">win.EditTitle</attribute>
+ <attribute name="accel">F2</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Edit _Comment…</attribute>
+ <attribute name="action">win.EditComment</attribute>
+ <attribute name="accel">F3</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Open With E_xternal Editor</attribute>
+ <attribute name="accel">&lt;Primary&gt;Return</attribute>
+ <attribute name="action">win.ExternalEdit</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Open With RA_W Editor</attribute>
+ <attribute name="action">win.ExternalEditRAW</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">View Eve_nt for Photo</attribute>
+ <attribute name="action">win.CommonJumpToEvent</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Show in File Mana_ger</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;m</attribute>
+ <attribute name="action">win.CommonJumpToFile</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Send T_o…</attribute>
+ <attribute name="action">win.SendTo</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Move to Trash</attribute>
+ <attribute name="accel">Delete</attribute>
+ <attribute name="action">win.MoveToTrash</attribute>
+ </item>
+ </section>
+ </menu>
+</interface>
diff --git a/data/ui/preferences_dialog.ui b/data/ui/preferences_dialog.ui
new file mode 100644
index 0000000..0699008
--- /dev/null
+++ b/data/ui/preferences_dialog.ui
@@ -0,0 +1,705 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.40.0 -->
+<interface domain="shotwell">
+ <requires lib="gtk+" version="3.18"/>
+ <template class="PreferencesDialog" parent="GtkDialog">
+ <property name="can-focus">False</property>
+ <property name="destroy-with-parent">True</property>
+ <property name="type-hint">dialog</property>
+ <property name="skip-taskbar-hint">True</property>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="dialog-vbox3">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkStackSidebar">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="stack">preferences_stack</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkStack" id="preferences_stack">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">64</property>
+ <property name="margin-end">64</property>
+ <property name="margin-top">32</property>
+ <property name="margin-bottom">32</property>
+ <property name="transition-type">slide-up</property>
+ <child>
+ <!-- n-columns=3 n-rows=15 -->
+ <object class="GtkGrid" id="table1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">64</property>
+ <property name="margin-end">64</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="border-width">6</property>
+ <property name="row-spacing">4</property>
+ <property name="column-spacing">8</property>
+ <child>
+ <object class="GtkFileChooserButton" id="library_dir_button">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="action">select-folder</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="default_raw_developer_combo">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">14</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="library location">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="margin-top">14</property>
+ <property name="margin-bottom">3</property>
+ <property name="hexpand">True</property>
+ <property name="label" translatable="yes">Library Location</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">3</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label4">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">_Import photos to:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">library_dir_button</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="autoimport">
+ <property name="label" translatable="yes">_Watch library directory for new files</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">start</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">5</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="importing">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="margin-top">14</property>
+ <property name="margin-bottom">3</property>
+ <property name="hexpand">True</property>
+ <property name="label" translatable="yes">Importing</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">6</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="dir_structure_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">_Directory structure:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">dir_pattern_combo</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">7</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="dir_pattern_example">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Example:</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">9</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="lowercase">
+ <property name="label" translatable="yes">R_ename imported files to lowercase</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">start</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">10</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label10">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="margin-top">14</property>
+ <property name="margin-bottom">3</property>
+ <property name="label" translatable="yes">Metadata</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">11</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="write_metadata">
+ <property name="label" translatable="yes">Write tags, titles, and other _metadata to photo files</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">start</property>
+ <property name="use-underline">True</property>
+ <property name="draw-indicator">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">12</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label3">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="margin-top">14</property>
+ <property name="margin-bottom">3</property>
+ <property name="label" translatable="yes">RAW Developer</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">13</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label6">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">De_fault:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">default_raw_developer_combo</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">14</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="dir_pattern_combo">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">7</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="dir_pattern_entry">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="invisible-char">•</property>
+ <property name="primary-icon-activatable">False</property>
+ <property name="secondary-icon-activatable">False</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">8</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="dynamic example">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="hexpand">True</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">9</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="hbox1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel" id="patern">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">_Pattern:</property>
+ <property name="use-underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="pattern_help">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <attributes>
+ <attribute name="underline" value="True"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">8</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkRadioButton" id="transparent_checker_radio">
+ <property name="label" translatable="yes">Checkered</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">start</property>
+ <property name="draw-indicator">True</property>
+ <property name="group">transparent_solid_radio</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="box1">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkRadioButton" id="transparent_solid_radio">
+ <property name="label" translatable="yes">Solid color</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">start</property>
+ <property name="active">True</property>
+ <property name="draw-indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkColorButton" id="transparent_solid_color">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack-type">end</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="transparent_none_radio">
+ <property name="label" translatable="yes">None</property>
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="receives-default">False</property>
+ <property name="halign">start</property>
+ <property name="draw-indicator">True</property>
+ <property name="group">transparent_solid_radio</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="tooltip-text" translatable="yes">When viewing images that are transparent, they will be drawn against this background.</property>
+ <property name="halign">start</property>
+ <property name="valign">start</property>
+ <property name="label" translatable="yes">Transparent Background:</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">Use dark theme</property>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSwitch" id="switch_dark">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="halign">start</property>
+ </object>
+ <packing>
+ <property name="left-attach">1</property>
+ <property name="top-attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label5">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="halign">start</property>
+ <property name="margin-bottom">3</property>
+ <property name="hexpand">True</property>
+ <property name="label" translatable="yes">Display</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="left-attach">0</property>
+ <property name="top-attach">0</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="name">library_stack</property>
+ <property name="title" translatable="yes">Library</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkListBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="valign">start</property>
+ <child>
+ <object class="GtkListBoxRow">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="margin-start">6</property>
+ <property name="margin-end">6</property>
+ <property name="margin-top">6</property>
+ <property name="margin-bottom">6</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Photos</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="photo_editor_combo">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <style>
+ <class name="flat"/>
+ </style>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="pack-type">end</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkListBoxRow">
+ <property name="visible">True</property>
+ <property name="can-focus">True</property>
+ <property name="margin-start">6</property>
+ <property name="margin-end">6</property>
+ <property name="margin-top">6</property>
+ <property name="margin-bottom">6</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">RAW</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="raw_editor_combo">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <style>
+ <class name="flat"/>
+ </style>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack-type">end</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="name">external_editors</property>
+ <property name="title" translatable="yes">External Editors</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="name">plugins</property>
+ <property name="title" translatable="yes">Plugins</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="name">profiles</property>
+ <property name="title" translatable="yes">Profiles</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <child type="titlebar">
+ <object class="GtkHeaderBar" id="headerbar">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="title" translatable="yes">Shotwell Preferences</property>
+ <property name="show-close-button">True</property>
+ </object>
+ </child>
+ </template>
+ <object class="GtkSizeGroup">
+ <property name="mode">vertical</property>
+ <widgets>
+ <widget name="transparent_checker_radio"/>
+ <widget name="box1"/>
+ <widget name="transparent_none_radio"/>
+ </widgets>
+ </object>
+</interface>
diff --git a/data/ui/printing_widget.ui b/data/ui/printing_widget.ui
new file mode 100644
index 0000000..86f215d
--- /dev/null
+++ b/data/ui/printing_widget.ui
@@ -0,0 +1,339 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
+<interface domain="shotwell">
+ <requires lib="gtk+" version="3.18"/>
+ <template class="CustomPrintTab" parent="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_left">12</property>
+ <property name="margin_right">12</property>
+ <property name="margin_top">12</property>
+ <property name="margin_bottom">12</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="lbl_PrintedImageSize">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">&lt;b&gt;Printed Image Size&lt;/b&gt;</property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="box2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_left">12</property>
+ <property name="margin_top">2</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">6</property>
+ <property name="row_homogeneous">True</property>
+ <child>
+ <object class="GtkRadioButton" id="standard_size_radio">
+ <property name="label" translatable="yes">Use a _standard size:</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="halign">start</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">custom_size_radio</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="standard_sizes_combo">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="custom_size_radio">
+ <property name="label" translatable="yes">Use a c_ustom size:</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="halign">start</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="box4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">4</property>
+ <child>
+ <object class="GtkEntry" id="custom_width_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">●</property>
+ <property name="width_chars">10</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="lbl_MultSymbol">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label">×</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="custom_height_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">●</property>
+ <property name="width_chars">10</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="units_combo">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="active">0</property>
+ <items>
+ <item translatable="yes" comments="Abbrevation for &quot;inch&quot;">in.</item>
+ <item translatable="yes" comments="Abbrevation for &quot;centimeters&quot;">cm</item>
+ </items>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="aspect_ratio_check">
+ <property name="label" translatable="yes">_Match photo aspect ratio</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="halign">start</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkRadioButton" id="image_per_page_radio">
+ <property name="label" translatable="yes">_Autosize:</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="halign">start</property>
+ <property name="use_underline">True</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">custom_size_radio</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="image_per_page_combo">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">6</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="lbl_Titles">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">&lt;b&gt;Titles&lt;/b&gt;</property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="box6">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_left">12</property>
+ <property name="margin_top">2</property>
+ <child>
+ <object class="GtkCheckButton" id="title_print_check">
+ <property name="label" translatable="yes">Print image _title</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="halign">start</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFontButton" id="title_print_font">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="margin_left">49</property>
+ <property name="font">Sans 12</property>
+ <property name="preview_text"/>
+ <property name="show_preview_entry">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="lbl_PixelResolution">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="margin_top">12</property>
+ <property name="label" translatable="yes">&lt;b&gt;Pixel Resolution&lt;/b&gt;</property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="box7">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_left">12</property>
+ <property name="margin_top">2</property>
+ <child>
+ <object class="GtkLabel" id="lbl_OutputPhotoAt">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">_Output photo at:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">ppi_entry</property>
+ <property name="ellipsize">start</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="box8">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_left">65</property>
+ <child>
+ <object class="GtkEntry" id="ppi_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="margin_right">8</property>
+ <property name="invisible_char">●</property>
+ <property name="width_chars">13</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="lbl_PixelsPerInch">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">pixels per inch</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">5</property>
+ </packing>
+ </child>
+ </template>
+</interface>
diff --git a/data/ui/progress_pane_widget.ui b/data/ui/progress_pane_widget.ui
new file mode 100644
index 0000000..239de60
--- /dev/null
+++ b/data/ui/progress_pane_widget.ui
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.22.0 -->
+<interface>
+ <requires lib="gtk+" version="3.22"/>
+ <template class="PublishingUIProgressPane" parent="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkProgressBar" id="progress_bar">
+ <property name="height_request">64</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_start">32</property>
+ <property name="margin_end">32</property>
+ <property name="margin_top">108</property>
+ <property name="show_text">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">32</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </template>
+</interface>
diff --git a/data/ui/saved_search_dialog.ui b/data/ui/saved_search_dialog.ui
new file mode 100644
index 0000000..f56fd17
--- /dev/null
+++ b/data/ui/saved_search_dialog.ui
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.22.0 -->
+<interface domain="shotwell">
+ <requires lib="gtk+" version="3.18"/>
+ <template class="SavedSearchDialog" parent="GtkDialog">
+ <property name="can_focus">False</property>
+ <property name="border_width">0</property>
+ <property name="title" translatable="yes">Search</property>
+ <property name="resizable">False</property>
+ <property name="modal">True</property>
+ <property name="destroy_with_parent">True</property>
+ <property name="type_hint">dialog</property>
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
+ <property name="can_focus">False</property>
+ <property name="margin_right">18</property>
+ <property name="margin_bottom">12</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="button1">
+ <property name="label" translatable="yes">Cancel</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="button2">
+ <property name="label" translatable="yes">OK</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="has_default">True</property>
+ <property name="receives_default">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="criteria">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">18</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox" id="hbox3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_bottom">18</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="Name of search:">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_Name of search:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">search_title</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="search_title">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">•</property>
+ <property name="activates_default">True</property>
+ <property name="width_chars">20</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="hbox2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_bottom">6</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="Match">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_Match</property>
+ <property name="use_underline">True</property>
+ <property name="justify">right</property>
+ <property name="mnemonic_widget">operator</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="operator">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="active">0</property>
+ <items>
+ <item translatable="yes">any</item>
+ <item translatable="yes">all</item>
+ <item translatable="yes">none</item>
+ </items>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="padding">1</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="of the following:">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">of the following:</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow" id="scrolled">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="shadow_type">in</property>
+ <property name="min_content_height">176</property>
+ <child>
+ <object class="GtkViewport">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkListBox" id="row_listbox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkListBoxRow">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkButton" id="add_criteria">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="valign">start</property>
+ <property name="relief">none</property>
+ <child>
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="icon_name">list-add-symbolic</property>
+ <property name="icon_size">1</property>
+ </object>
+ </child>
+ <style>
+ <class name="image-button"/>
+ </style>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">button1</action-widget>
+ <action-widget response="-5">button2</action-widget>
+ </action-widgets>
+ <child type="titlebar">
+ <placeholder/>
+ </child>
+ </template>
+</interface>
diff --git a/data/ui/savedsearch.ui b/data/ui/savedsearch.ui
new file mode 100644
index 0000000..3cdd640
--- /dev/null
+++ b/data/ui/savedsearch.ui
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<interface domain="shotwell">
+ <menu id="SearchContextMenu">
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Re_name…</attribute>
+ <attribute name="action">win.RenameSearch</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Edit…</attribute>
+ <attribute name="action">win.EditSearch</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Delete</attribute>
+ <attribute name="action">win.DeleteSearch</attribute>
+ </item>
+ </section>
+ </menu>
+</interface>
diff --git a/data/ui/search_bar.ui b/data/ui/search_bar.ui
new file mode 100644
index 0000000..9d56962
--- /dev/null
+++ b/data/ui/search_bar.ui
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface domain="shotwell">
+ <menu id='popup-menu'>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Rejected _Only</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">8</attribute>
+ <attribute name="accel">&lt;Primary&gt;8</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">All + _Rejected</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">1</attribute>
+ <attribute name="accel">&lt;Primary&gt;9</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_All Photos</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">2</attribute>
+ <attribute name="accel">&lt;Primary&gt;0</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">3</attribute>
+ <attribute name="accel">&lt;Primary&gt;1</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">4</attribute>
+ <attribute name="accel">&lt;Primary&gt;2</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">5</attribute>
+ <attribute name="accel">&lt;Primary&gt;3</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">6</attribute>
+ <attribute name="accel">&lt;Primary&gt;4</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">7</attribute>
+ <attribute name="accel">&lt;Primary&gt;5</attribute>
+ </item>
+ </section>
+ </menu>
+</interface>
diff --git a/data/ui/search_sidebar_context.ui b/data/ui/search_sidebar_context.ui
new file mode 100644
index 0000000..a925800
--- /dev/null
+++ b/data/ui/search_sidebar_context.ui
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface domain="shotwell">
+ <menu id='popup-menu'>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Ne_w Saved Search…</attribute>
+ <attribute name="action">win.CommonNewSearch</attribute>
+ <attribute name="accel">&lt;Primary&gt;s</attribute>
+ </item>
+ </section>
+ </menu>
+</interface>
diff --git a/data/ui/set_background_dialog.ui b/data/ui/set_background_dialog.ui
new file mode 100644
index 0000000..d00125e
--- /dev/null
+++ b/data/ui/set_background_dialog.ui
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
+<interface domain="shotwell">
+ <requires lib="gtk+" version="3.18"/>
+ <template class="SetBackgroundPhotoDialog" parent="GtkDialog">
+ <property name="width_request">400</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">5</property>
+ <property name="title" translatable="yes">Set as Desktop Background</property>
+ <property name="type_hint">normal</property>
+ <property name="skip_taskbar_hint">True</property>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="dialog-vbox2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox" id="dialog-action_area2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="cancel_button">
+ <property name="label">_Cancel</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="ok_button">
+ <property name="label">_OK</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="has_default">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="hbox2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkCheckButton" id="desktop_background_checkbox">
+ <property name="label" translatable="yes">Use for Desktop</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="halign">start</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="on_checkbox_clicked" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="screensaver_checkbox">
+ <property name="label" translatable="yes">Use for Lock Screen</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="halign">start</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="on_checkbox_clicked" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">cancel_button</action-widget>
+ <action-widget response="-5">ok_button</action-widget>
+ </action-widgets>
+ </template>
+</interface>
diff --git a/data/ui/set_background_slideshow_dialog.ui b/data/ui/set_background_slideshow_dialog.ui
new file mode 100644
index 0000000..93c3a99
--- /dev/null
+++ b/data/ui/set_background_slideshow_dialog.ui
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
+<interface domain="shotwell">
+ <requires lib="gtk+" version="3.18"/>
+ <object class="GtkAdjustment" id="adjustment1">
+ <property name="upper">100</property>
+ <property name="value">50</property>
+ <property name="step_increment">10</property>
+ <property name="page_increment">10</property>
+ <property name="page_size">10</property>
+ </object>
+ <template class="SetBackgroundSlideshowDialog" parent="GtkDialog">
+ <property name="width_request">400</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">5</property>
+ <property name="title" translatable="yes">Set as Desktop Slideshow</property>
+ <property name="type_hint">normal</property>
+ <property name="skip_taskbar_hint">True</property>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="dialog-vbox2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox" id="dialog-action_area2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="cancel_button">
+ <property name="label">_Cancel</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="ok_button">
+ <property name="label">_OK</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="has_default">True</property>
+ <property name="receives_default">True</property>
+ <property name="has_tooltip">True</property>
+ <property name="tooltip_text" translatable="yes">Generate desktop background slideshow</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="hbox1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">5</property>
+ <child>
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Show each photo for</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="delay_value_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">period of time</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScale" id="delay_scale">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="tooltip_text" translatable="yes">How long each photo is shown on the desktop background</property>
+ <property name="adjustment">adjustment1</property>
+ <property name="draw_value">False</property>
+ <signal name="value-changed" handler="on_delay_scale_value_changed" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="hbox2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkCheckButton" id="desktop_background_checkbox">
+ <property name="label" translatable="yes">Use for Desktop</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="halign">start</property>
+ <property name="active">True</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="on_checkbox_clicked" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="screensaver_checkbox">
+ <property name="label" translatable="yes">Use for Lock Screen</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="halign">start</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="on_checkbox_clicked" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">cancel_button</action-widget>
+ <action-widget response="-5">ok_button</action-widget>
+ </action-widgets>
+ </template>
+</interface>
diff --git a/data/ui/sidebar_default_context.ui b/data/ui/sidebar_default_context.ui
new file mode 100644
index 0000000..1bb0b33
--- /dev/null
+++ b/data/ui/sidebar_default_context.ui
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface domain="shotwell">
+ <menu id='popup-menu'>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Ne_w Saved Search…</attribute>
+ <attribute name="action">sidebar.search.new</attribute>
+ <attribute name="accel">&lt;Primary&gt;s</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">New _Tag…</attribute>
+ <attribute name="action">sidebar.tag.new</attribute>
+ </item>
+ </section>
+ </menu>
+</interface>
diff --git a/data/ui/slideshow_settings.ui b/data/ui/slideshow_settings.ui
new file mode 100644
index 0000000..1abfa39
--- /dev/null
+++ b/data/ui/slideshow_settings.ui
@@ -0,0 +1,274 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.22.1 -->
+<interface>
+ <requires lib="gtk+" version="3.20"/>
+ <object class="GtkAdjustment" id="delay_adjustment">
+ <property name="lower">1</property>
+ <property name="upper">30</property>
+ <property name="value">3</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">1</property>
+ </object>
+ <object class="GtkAdjustment" id="transition_effect_adjustment">
+ <property name="lower">0.10000000000000001</property>
+ <property name="upper">1</property>
+ <property name="value">0.29999999999999999</property>
+ <property name="step_increment">0.10000000000000001</property>
+ <property name="page_increment">1</property>
+ </object>
+ <template class="SlideshowPageSettingsDialog" parent="GtkDialog">
+ <property name="can_focus">False</property>
+ <property name="title" translatable="yes">Settings</property>
+ <property name="modal">True</property>
+ <property name="type_hint">dialog</property>
+ <child>
+ <placeholder/>
+ </child>
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
+ <property name="can_focus">False</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="button1">
+ <property name="label" translatable="yes">_Cancel</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="button2">
+ <property name="label" translatable="yes">_OK</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="has_default">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_underline">True</property>
+ <style>
+ <class name="default-action"/>
+ </style>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="slideshow_settings_pane">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox" id="dialog-vbox7">
+ <property name="can_focus">False</property>
+ <property name="margin_left">8</property>
+ <property name="margin_right">8</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkGrid" id="grid3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="row_spacing">4</property>
+ <property name="column_spacing">4</property>
+ <child>
+ <object class="GtkLabel" id="delay_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">end</property>
+ <property name="label" translatable="yes">_Duration:</property>
+ <property name="tooltip-text" translatable="yes">The time (in seconds) to show each photo</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">delay_hscale</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="transition_effect_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">end</property>
+ <property name="label" translatable="yes">_Transition effect:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">transition_effect_selector</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="transition_delay_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">end</property>
+ <property name="label" translatable="yes">Transition d_uration:</property>
+ <property name="tooltip-text" translatable="yes">The time (in seconds) to show each transition between photos</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="show_title_button">
+ <property name="label" translatable="yes">Show t_itle</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="halign">start</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">3</property>
+ <property name="width">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="transition_effect_selector">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScale" id="delay_hscale">
+ <property name="width_request">150</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="adjustment">delay_adjustment</property>
+ <property name="fill_level">300</property>
+ <property name="draw_value">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScale" id="transition_effect_hscale">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="adjustment">transition_effect_adjustment</property>
+ <property name="fill_level">3</property>
+ <property name="draw_value">False</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="delay_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">●</property>
+ <property name="adjustment">delay_adjustment</property>
+ <property name="numeric">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="transition_effect_entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">●</property>
+ <property name="activates_default">True</property>
+ <property name="adjustment">transition_effect_adjustment</property>
+ <property name="digits">1</property>
+ <property name="numeric">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="seconds_label_3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">seconds</property>
+ </object>
+ <packing>
+ <property name="left_attach">3</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="seconds_label_4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">seconds</property>
+ </object>
+ <packing>
+ <property name="left_attach">3</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="padding">4</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">button1</action-widget>
+ <action-widget response="-5">button2</action-widget>
+ </action-widgets>
+ </template>
+</interface>
diff --git a/data/ui/static_message_pane_widget.ui b/data/ui/static_message_pane_widget.ui
new file mode 100644
index 0000000..8b57f3d
--- /dev/null
+++ b/data/ui/static_message_pane_widget.ui
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.40.0 -->
+<interface>
+ <requires lib="gtk+" version="3.22"/>
+ <template class="PublishingUIStaticMessagePane" parent="GtkBox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="static_msg_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-start">16</property>
+ <property name="margin-end">16</property>
+ <property name="margin-top">97</property>
+ <property name="margin-bottom">24</property>
+ <property name="label" comments="This is a placeholder string and may be ignored.">This is populated from within the code;
+changes made here will not display.</property>
+ <property name="wrap">True</property>
+ <property name="max-width-chars">70</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinner" id="spinner">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </template>
+</interface>
diff --git a/data/ui/tag_sidebar_context.ui b/data/ui/tag_sidebar_context.ui
new file mode 100644
index 0000000..b810c28
--- /dev/null
+++ b/data/ui/tag_sidebar_context.ui
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface domain="shotwell">
+ <menu id='popup-menu'>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">New _Tag…</attribute>
+ <attribute name="action">sidebar.tag.new</attribute>
+ </item>
+ </section>
+ </menu>
+</interface>
diff --git a/data/ui/tags.ui b/data/ui/tags.ui
new file mode 100644
index 0000000..03378ae
--- /dev/null
+++ b/data/ui/tags.ui
@@ -0,0 +1,465 @@
+<?xml version="1.0"?>
+<interface domain="shotwell">
+ <menu id="MenuBar">
+ <submenu>
+ <attribute name="label" translatable="yes">_File</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Import From Folder…</attribute>
+ <attribute name="accel">&lt;Primary&gt;i</attribute>
+ <attribute name="action">win.CommonFileImport</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Import From _Application…</attribute>
+ <attribute name="action">win.ExternalLibraryImport</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Export…</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;e</attribute>
+ <attribute name="action">win.Export</attribute>
+ </item>
+ </section>
+ <section>
+ <attribute name="id">FileExtrasPlaceholder</attribute>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Show in File Mana_ger</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;m</attribute>
+ <attribute name="action">win.CommonJumpToFile</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Empty T_rash</attribute>
+ <attribute name="action">win.CommonEmptyTrash</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Quit</attribute>
+ <attribute name="accel">&lt;Primary&gt;q</attribute>
+ <attribute name="action">win.CommonQuit</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Edit</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Undo</attribute>
+ <attribute name="accel">&lt;Primary&gt;z</attribute>
+ <attribute name="action">win.CommonUndo</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Redo</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;z</attribute>
+ <attribute name="action">win.CommonRedo</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Find</attribute>
+ <attribute name="action">win.CommonFind</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Ne_w Saved Search…</attribute>
+ <attribute name="accel">&lt;Primary&gt;s</attribute>
+ <attribute name="action">win.CommonNewSearch</attribute>
+ </item>
+ </section>
+ <section>
+ <attribute name="id">EditExtrasPlaceholder</attribute>
+ <item>
+ <attribute name="label" translatable="yes">R_emove From Library</attribute>
+ <attribute name="accel">&lt;Shift&gt;Delete</attribute>
+ <attribute name="action">win.RemoveFromLibrary</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Move to Trash</attribute>
+ <attribute name="accel">Delete</attribute>
+ <attribute name="action">win.MoveToTrash</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Select _All</attribute>
+ <attribute name="accel">&lt;Primary&gt;a</attribute>
+ <attribute name="action">win.CommonSelectAll</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Preferences</attribute>
+ <attribute name="action">win.CommonPreferences</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_View</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Basic Information</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;i</attribute>
+ <attribute name="action">win.CommonDisplayBasicProperties</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">E_xtended Information</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;x</attribute>
+ <attribute name="action">win.CommonDisplayExtendedProperties</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Search Bar</attribute>
+ <attribute name="accel">F8</attribute>
+ <attribute name="action">win.CommonDisplaySearchbar</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">S_idebar</attribute>
+ <attribute name="accel">F9</attribute>
+ <attribute name="action">win.CommonDisplaySidebar</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">T_oolbar</attribute>
+ <attribute name="accel">&lt;Primary&gt;F9</attribute>
+ <attribute name="action">win.CommonDisplayToolbar</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Titles</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;t</attribute>
+ <attribute name="action">win.ViewTitle</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Comments</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;c</attribute>
+ <attribute name="action">win.ViewComment</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Ta_gs</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;g</attribute>
+ <attribute name="action">win.ViewTags</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Ratings</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;n</attribute>
+ <attribute name="action">win.ViewRatings</attribute>
+ </item>
+ </section>
+ <section>
+ <submenu>
+ <attribute name="label" translatable="yes">_Filter Photos</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="no">★★★★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">7</attribute>
+ <attribute name="accel">&lt;Primary&gt;5</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">6</attribute>
+ <attribute name="accel">&lt;Primary&gt;4</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">5</attribute>
+ <attribute name="accel">&lt;Primary&gt;3</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">4</attribute>
+ <attribute name="accel">&lt;Primary&gt;2</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">3</attribute>
+ <attribute name="accel">&lt;Primary&gt;1</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_All Photos</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">2</attribute>
+ <attribute name="accel">&lt;Primary&gt;0</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">All + _Rejected</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">1</attribute>
+ <attribute name="accel">&lt;Primary&gt;9</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Rejected _Only</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">8</attribute>
+ <attribute name="accel">&lt;Primary&gt;8</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ <section>
+ <submenu>
+ <attribute name="label" translatable="yes">Sort _Photos</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">By _Title</attribute>
+ <attribute name="action">win.SortBy</attribute>
+ <attribute name="target">1</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">By _Filename</attribute>
+ <attribute name="action">win.SortBy</attribute>
+ <attribute name="target">4</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">By Exposure _Date</attribute>
+ <attribute name="action">win.SortBy</attribute>
+ <attribute name="target">2</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">By _Rating</attribute>
+ <attribute name="action">win.SortBy</attribute>
+ <attribute name="target">3</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Ascending</attribute>
+ <attribute name="action">win.Sort</attribute>
+ <attribute name="target">ascending</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">D_escending</attribute>
+ <attribute name="action">win.Sort</attribute>
+ <attribute name="target">descending</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">Sort _Events</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Ascending</attribute>
+ <attribute name="action">win.CommonSortEvents</attribute>
+ <attribute name="target">ascending</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Descending</attribute>
+ <attribute name="action">win.CommonSortEvents</attribute>
+ <attribute name="target">descending</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Zoom _In</attribute>
+ <attribute name="accel">&lt;Primary&gt;plus</attribute>
+ <attribute name="action">win.IncreaseSize</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Zoom _Out</attribute>
+ <attribute name="accel">&lt;Primary&gt;minus</attribute>
+ <attribute name="action">win.DecreaseSize</attribute>
+ </item>
+ </section>
+ <section>
+ <attribute name="id">ViewExtrasFullscreenSlideshowPlaceholder</attribute>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Photos</attribute>
+ <section>
+ <attribute name="id">PhotosExtrasEditsPlaceholder</attribute>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Toggle _Flag</attribute>
+ <attribute name="accel">&lt;Primary&gt;g</attribute>
+ <attribute name="action">win.Flag</attribute>
+ </item>
+ <submenu>
+ <attribute name="label" translatable="yes">_Set Rating</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="no">★★★★★</attribute>
+ <attribute name="accel">5</attribute>
+ <attribute name="action">win.RateFive</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★★</attribute>
+ <attribute name="accel">4</attribute>
+ <attribute name="action">win.RateFour</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★</attribute>
+ <attribute name="accel">3</attribute>
+ <attribute name="action">win.RateThree</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★</attribute>
+ <attribute name="accel">2</attribute>
+ <attribute name="action">win.RateTwo</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★</attribute>
+ <attribute name="accel">1</attribute>
+ <attribute name="action">win.RateOne</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Unrated</attribute>
+ <attribute name="accel">0</attribute>
+ <attribute name="action">win.RateUnrated</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Rejected</attribute>
+ <attribute name="accel">9</attribute>
+ <attribute name="action">win.RateRejected</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Increase</attribute>
+ <attribute name="accel">greater</attribute>
+ <attribute name="action">win.IncreaseRating</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Decrease</attribute>
+ <attribute name="accel">less</attribute>
+ <attribute name="action">win.DecreaseRating</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Edit _Title…</attribute>
+ <attribute name="action">win.EditTitle</attribute>
+ <attribute name="accel">F2</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Edit _Comment…</attribute>
+ <attribute name="action">win.EditComment</attribute>
+ <attribute name="accel">F3</attribute>
+ </item>
+ <attribute name="id">PhotosExtrasDateTimePlaceholder</attribute>
+ </section>
+ <section>
+ <submenu>
+ <attribute name="label" translatable="yes">_Developer</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Shotwell</attribute>
+ <attribute name="action">win.RawDeveloper</attribute>
+ <attribute name="target">Shotwell</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Camera</attribute>
+ <attribute name="action">win.RawDeveloper</attribute>
+ <attribute name="target">Camera</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ <section>
+ <attribute name="id">PhotosExtrasExternalsPlaceholder</attribute>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">Even_ts</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_New Event</attribute>
+ <attribute name="accel">&lt;Primary&gt;n</attribute>
+ <attribute name="action">win.NewEvent</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">View Eve_nt for Photo</attribute>
+ <attribute name="action">win.CommonJumpToEvent</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">Ta_gs</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Add _Tags…</attribute>
+ <attribute name="accel">&lt;Primary&gt;t</attribute>
+ <attribute name="action">win.AddTags</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Modif_y Tags…</attribute>
+ <attribute name="accel">&lt;Primary&gt;m</attribute>
+ <attribute name="action">win.ModifyTags</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="id">RemoveTagFromPhotos</attribute>
+ <attribute name="label" translatable="yes"></attribute>
+ <attribute name="action">win.RemoveTagFromPhotos</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="id">RenameTag</attribute>
+ <attribute name="label" translatable="yes"></attribute>
+ <attribute name="action">win.RenameTag</attribute>
+ </item>
+ <item>
+ <attribute name="id">DeleteTag</attribute>
+ <attribute name="label" translatable="yes"></attribute>
+ <attribute name="action">win.DeleteTag</attribute>
+ </item>
+ </section>
+ </submenu>
+ <!-- Faces menu goes here FacesMenuPlaceholder -->
+ <submenu>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <attribute name="accel">F1</attribute>
+ <attribute name="action">win.CommonHelpContents</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Frequently Asked Questions</attribute>
+ <attribute name="action">win.CommonHelpFAQ</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Report a Problem…</attribute>
+ <attribute name="action">win.CommonHelpReportProblem</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_About</attribute>
+ <attribute name="action">win.CommonAbout</attribute>
+ </item>
+ </section>
+ </submenu>
+ </menu>
+
+ <menu id="TagsContextMenu">
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_New</attribute>
+ <attribute name="action">win.NewChildTagSidebar</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Rename…</attribute>
+ <attribute name="action">win.RenameTag</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Delete</attribute>
+ <attribute name="action">win.DeleteTag</attribute>
+ </item>
+ </section>
+ </menu>
+</interface>
diff --git a/data/ui/textentrydialog.ui b/data/ui/textentrydialog.ui
new file mode 100644
index 0000000..6a2dc78
--- /dev/null
+++ b/data/ui/textentrydialog.ui
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
+<interface domain="shotwell">
+ <requires lib="gtk+" version="3.18"/>
+ <template class="TextEntryDialog" parent="GtkDialog">
+ <property name="can_focus">False</property>
+ <property name="type_hint">dialog</property>
+ <child internal-child="vbox">
+ <object class="GtkBox">
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
+ <child internal-child="action_area">
+ <object class="GtkButtonBox">
+ <property name="can_focus">False</property>
+ <property name="layout_style">end</property>
+ <child>
+ <object class="GtkButton" id="button1">
+ <property name="label" translatable="yes">_Cancel</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="button2">
+ <property name="label" translatable="yes">_Save</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="has_default">True</property>
+ <property name="receives_default">True</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="dialog-vbox2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">3</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <child>
+ <object class="GtkLabel" id="label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="label" translatable="yes">label</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">●</property>
+ <property name="activates_default">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">button1</action-widget>
+ <action-widget response="-5">button2</action-widget>
+ </action-widgets>
+ </template>
+</interface>
diff --git a/data/ui/trash.ui b/data/ui/trash.ui
new file mode 100644
index 0000000..1dc188d
--- /dev/null
+++ b/data/ui/trash.ui
@@ -0,0 +1,322 @@
+<?xml version="1.0"?>
+<interface domain="shotwell">
+ <menu id="MenuBar">
+ <submenu>
+ <attribute name="label" translatable="yes">_File</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Import From Folder…</attribute>
+ <attribute name="accel">&lt;Primary&gt;i</attribute>
+ <attribute name="action">win.CommonFileImport</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Import From _Application…</attribute>
+ <attribute name="action">win.ExternalLibraryImport</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Show in File Mana_ger</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;m</attribute>
+ <attribute name="action">win.CommonJumpToFile</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Empty T_rash</attribute>
+ <attribute name="action">win.CommonEmptyTrash</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Quit</attribute>
+ <attribute name="accel">&lt;Primary&gt;q</attribute>
+ <attribute name="action">win.CommonQuit</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Edit</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Undo</attribute>
+ <attribute name="accel">&lt;Primary&gt;z</attribute>
+ <attribute name="action">win.CommonUndo</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Redo</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;z</attribute>
+ <attribute name="action">win.CommonRedo</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Find</attribute>
+ <attribute name="action">win.CommonFind</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Ne_w Saved Search…</attribute>
+ <attribute name="accel">&lt;Primary&gt;s</attribute>
+ <attribute name="action">win.CommonNewSearch</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Delete</attribute>
+ <attribute name="accel">Delete</attribute>
+ <attribute name="action">win.Delete</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Restore</attribute>
+ <attribute name="action">win.Restore</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Select _All</attribute>
+ <attribute name="accel">&lt;Primary&gt;a</attribute>
+ <attribute name="action">win.CommonSelectAll</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Preferences</attribute>
+ <attribute name="action">win.CommonPreferences</attribute>
+ </item>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_View</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Basic Information</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;i</attribute>
+ <attribute name="action">win.CommonDisplayBasicProperties</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">E_xtended Information</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;x</attribute>
+ <attribute name="action">win.CommonDisplayExtendedProperties</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Search Bar</attribute>
+ <attribute name="accel">F8</attribute>
+ <attribute name="action">win.CommonDisplaySearchbar</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">S_idebar</attribute>
+ <attribute name="accel">F9</attribute>
+ <attribute name="action">win.CommonDisplaySidebar</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">T_oolbar</attribute>
+ <attribute name="accel">&lt;Primary&gt;F9</attribute>
+ <attribute name="action">win.CommonDisplayToolbar</attribute>
+ </item>
+ </section>
+ <section>
+ <submenu>
+ <attribute name="label" translatable="yes">_Filter Photos</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="no">★★★★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">7</attribute>
+ <attribute name="accel">&lt;Primary&gt;5</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">6</attribute>
+ <attribute name="accel">&lt;Primary&gt;4</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">5</attribute>
+ <attribute name="accel">&lt;Primary&gt;3</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">4</attribute>
+ <attribute name="accel">&lt;Primary&gt;2</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="no">★</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">3</attribute>
+ <attribute name="accel">&lt;Primary&gt;1</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_All Photos</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">2</attribute>
+ <attribute name="accel">&lt;Primary&gt;0</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">All + _Rejected</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">1</attribute>
+ <attribute name="accel">&lt;Primary&gt;9</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">Rejected _Only</attribute>
+ <attribute name="action">win.display.rating</attribute>
+ <attribute name="target">8</attribute>
+ <attribute name="accel">&lt;Primary&gt;8</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ <section>
+ <submenu>
+ <attribute name="label" translatable="yes">Sort _Events</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Ascending</attribute>
+ <attribute name="action">win.CommonSortEvents</attribute>
+ <attribute name="target">ascending</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">D_escending</attribute>
+ <attribute name="action">win.CommonSortEvents</attribute>
+ <attribute name="target">descending</attribute>
+ </item>
+ </section>
+ </submenu>
+ </section>
+ </submenu>
+ <submenu>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Help</attribute>
+ <attribute name="accel">F1</attribute>
+ <attribute name="action">win.CommonHelpContents</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Frequently Asked Questions</attribute>
+ <attribute name="action">win.CommonHelpFAQ</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Report a Problem…</attribute>
+ <attribute name="action">win.CommonHelpReportProblem</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_About</attribute>
+ <attribute name="action">win.CommonAbout</attribute>
+ </item>
+ </section>
+ </submenu>
+ </menu>
+ <menu id="TrashContextMenu">
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">_Delete</attribute>
+ <attribute name="accel">Delete</attribute>
+ <attribute name="action">win.Delete</attribute>
+ </item>
+ <item>
+ <attribute name="label" translatable="yes">_Restore</attribute>
+ <attribute name="action">win.Restore</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Show in File Mana_ger</attribute>
+ <attribute name="accel">&lt;Primary&gt;&lt;Shift&gt;m</attribute>
+ <attribute name="action">win.CommonJumpToFile</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Empty T_rash</attribute>
+ <attribute name="action">win.CommonEmptyTrash</attribute>
+ </item>
+ </section>
+ </menu>
+ <menu id="TrashPageMenu">
+ <section>
+ <item>
+ <attribute name="label" translatable="yes">Empty T_rash</attribute>
+ <attribute name="action">win.CommonEmptyTrash</attribute>
+ </item>
+ </section>
+ </menu>
+ <object class="GtkToolbar" id="TrashToolbar">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="toolbar_style">both-horiz</property>
+ <child>
+ <object class="GtkToolButton" id="ToolDelete">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Remove the selected photos from the trash</property>
+ <property name="is_important">True</property>
+ <property name="action_name">win.Delete</property>
+ <property name="label" translatable="yes">_Delete</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="ToolRestore">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Move the selected photos back into the library</property>
+ <property name="is_important">True</property>
+ <property name="action_name">win.Restore</property>
+ <property name="label" translatable="yes">_Restore</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="ToolEmptyTrash">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Delete all photos in the trash</property>
+ <property name="is_important">True</property>
+ <property name="action_name">win.CommonEmptyTrash</property>
+ <property name="label" translatable="yes">Empty Trash</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">
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkToolButton" id="ToolFind">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Find an image by typing text that appears in its name or tags</property>
+ <property name="is_important">True</property>
+ <property name="action_name">win.CommonDisplaySearchbar</property>
+ <property name="label" translatable="yes">Find</property>
+ <property name="use_underline">True</property>
+ <property name="icon_name">edit-find-symbolic</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
+ </object>
+</interface>