[shotwell] Extract preferences ui
- From: Jens Georg <jensgeorg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [shotwell] Extract preferences ui
- Date: Mon, 10 Apr 2017 16:36:24 +0000 (UTC)
commit 79d4477f2b1c556f0655f0022ba9e895936d5723
Author: Jens Georg <mail jensge org>
Date: Sun Apr 9 22:44:34 2017 +0200
Extract preferences ui
Signed-off-by: Jens Georg <mail jensge org>
org.gnome.Shotwell.gresource.xml | 1 +
po/POTFILES.in | 1 +
src/Dialogs.vala | 96 +++----
src/library/LibraryWindow.vala | 2 +-
ui/preferences_dialog.ui | 574 ++++++++++++++++++++++++++++++++++++++
ui/shotwell.ui | 568 -------------------------------------
6 files changed, 620 insertions(+), 622 deletions(-)
---
diff --git a/org.gnome.Shotwell.gresource.xml b/org.gnome.Shotwell.gresource.xml
index 6a8f849..9899e71 100644
--- a/org.gnome.Shotwell.gresource.xml
+++ b/org.gnome.Shotwell.gresource.xml
@@ -14,6 +14,7 @@
<file preprocess="xml-stripblanks">ui/offline.ui</file>
<file preprocess="xml-stripblanks">ui/photo_context.ui</file>
<file preprocess="xml-stripblanks">ui/photo.ui</file>
+ <file preprocess="xml-stripblanks">ui/preferences_dialog.ui</file>
<file preprocess="xml-stripblanks">ui/printing_widget.ui</file>
<file preprocess="xml-stripblanks">ui/savedsearch.ui</file>
<file preprocess="xml-stripblanks">ui/search_bar.ui</file>
diff --git a/po/POTFILES.in b/po/POTFILES.in
index fc57c46..4879da0 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -119,6 +119,7 @@ ui/media.ui
ui/offline.ui
ui/photo_context.ui
ui/photo.ui
+ui/preferences_dialog.ui
ui/printing_widget.ui
ui/savedsearch.ui
ui/search_bar.ui
diff --git a/src/Dialogs.vala b/src/Dialogs.vala
index d2f2cb0..c4c0224 100644
--- a/src/Dialogs.vala
+++ b/src/Dialogs.vala
@@ -2261,7 +2261,8 @@ public class WelcomeDialog : Gtk.Dialog {
}
}
-public class PreferencesDialog {
+[GtkTemplate (ui = "/org/gnome/Shotwell/ui/preferences_dialog.ui")]
+public class PreferencesDialog : Gtk.Dialog {
private class PathFormat {
public PathFormat(string name, string? pattern) {
this.name = name;
@@ -2273,56 +2274,61 @@ public class PreferencesDialog {
private static PreferencesDialog preferences_dialog;
- private Gtk.Dialog dialog;
- private Gtk.Builder builder;
+ [GtkChild]
private Gtk.Adjustment bg_color_adjustment;
+ [GtkChild]
private Gtk.Scale bg_color_slider;
+ [GtkChild]
private Gtk.ComboBox photo_editor_combo;
+ [GtkChild]
private Gtk.ComboBox raw_editor_combo;
private SortedList<AppInfo> external_raw_apps;
private SortedList<AppInfo> external_photo_apps;
+ [GtkChild]
private Gtk.FileChooserButton library_dir_button;
+ [GtkChild]
private Gtk.ComboBoxText dir_pattern_combo;
+ [GtkChild]
private Gtk.Entry dir_pattern_entry;
+ [GtkChild]
private Gtk.Label dir_pattern_example;
private bool allow_closing = false;
private string? lib_dir = null;
private Gee.ArrayList<PathFormat> path_formats = new Gee.ArrayList<PathFormat>();
private GLib.DateTime example_date = new GLib.DateTime.local(2009, 3, 10, 18, 16, 11);
+ [GtkChild]
private Gtk.CheckButton lowercase;
private Plugins.ManifestWidgetMediator plugins_mediator = new Plugins.ManifestWidgetMediator();
+ [GtkChild]
private Gtk.ComboBoxText default_raw_developer_combo;
+ [GtkChild]
+ private Gtk.CheckButton autoimport;
+ [GtkChild]
+ private Gtk.CheckButton write_metadata;
+ [GtkChild]
+ private Gtk.Label pattern_help;
+ [GtkChild]
+ private Gtk.Notebook preferences_notebook;
+
private PreferencesDialog() {
- builder = AppWindow.create_builder();
-
- dialog = builder.get_object("preferences_dialog") as Gtk.Dialog;
bool use_header;
Gtk.Settings.get_default ().get ("gtk-dialogs-use-header", out use_header);
if (!use_header) {
Gtk.Widget null_titlebar = null;
- dialog.set_titlebar (null_titlebar);
+ set_titlebar (null_titlebar);
}
- dialog.set_parent_window(AppWindow.get_instance().get_parent_window());
- dialog.set_transient_for(AppWindow.get_instance());
- dialog.delete_event.connect(on_delete);
- dialog.response.connect(on_close);
+ set_parent_window(AppWindow.get_instance().get_parent_window());
+ set_transient_for(AppWindow.get_instance());
+ delete_event.connect(on_delete);
+ response.connect(on_close);
- bg_color_adjustment = builder.get_object("bg_color_adjustment") as Gtk.Adjustment;
bg_color_adjustment.set_value(bg_color_adjustment.get_upper() -
(Config.Facade.get_instance().get_bg_color().red * 65535.0));
bg_color_adjustment.value_changed.connect(on_value_changed);
- bg_color_slider = builder.get_object("bg_color_slider") as Gtk.Scale;
bg_color_slider.button_press_event.connect(on_bg_color_reset);
- library_dir_button = builder.get_object("library_dir_button") as Gtk.FileChooserButton;
-
- photo_editor_combo = builder.get_object("external_photo_editor_combo") as Gtk.ComboBox;
- raw_editor_combo = builder.get_object("external_raw_editor_combo") as Gtk.ComboBox;
-
- Gtk.Label pattern_help = builder.get_object("pattern_help") as Gtk.Label;
-
// Ticket #3162 - Move dir pattern blurb into Gnome help.
// Because specifying a particular snippet of the help requires
// us to know where its located, we can't hardcode a URL anymore;
@@ -2340,9 +2346,6 @@ public class PreferencesDialog {
pattern_help.activate_link.connect(on_local_pattern_help);
}
- dir_pattern_combo = builder.get_object("dir choser") as Gtk.ComboBoxText;
- dir_pattern_entry = builder.get_object("dir_pattern_entry") as Gtk.Entry;
- dir_pattern_example = builder.get_object("dynamic example") as Gtk.Label;
add_to_dir_formats(_("Year%sMonth%sDay").printf(Path.DIR_SEPARATOR_S, Path.DIR_SEPARATOR_S),
"%Y" + Path.DIR_SEPARATOR_S + "%m" + Path.DIR_SEPARATOR_S + "%d");
add_to_dir_formats(_("Year%sMonth").printf(Path.DIR_SEPARATOR_S), "%Y" +
@@ -2353,33 +2356,24 @@ public class PreferencesDialog {
add_to_dir_formats(_("Custom"), null); // Custom must always be last.
dir_pattern_combo.changed.connect(on_dir_pattern_combo_changed);
dir_pattern_entry.changed.connect(on_dir_pattern_entry_changed);
-
- (builder.get_object("dir_structure_label") as Gtk.Label).set_mnemonic_widget(dir_pattern_combo);
-
- lowercase = builder.get_object("lowercase") as Gtk.CheckButton;
+
lowercase.toggled.connect(on_lowercase_toggled);
-
- var notebook = builder.get_object("preferences-notebook") as Gtk.Notebook;
- (notebook.get_nth_page (2) as Gtk.Container).add (plugins_mediator.widget);
+
+ (preferences_notebook.get_nth_page (2) as Gtk.Container).add (plugins_mediator.widget);
populate_preference_options();
photo_editor_combo.changed.connect(on_photo_editor_changed);
raw_editor_combo.changed.connect(on_raw_editor_changed);
- Gtk.CheckButton auto_import_button = builder.get_object("autoimport") as Gtk.CheckButton;
- auto_import_button.set_active(Config.Facade.get_instance().get_auto_import_from_library());
+ autoimport.set_active(Config.Facade.get_instance().get_auto_import_from_library());
- Gtk.CheckButton commit_metadata_button = builder.get_object("write_metadata") as Gtk.CheckButton;
- commit_metadata_button.set_active(Config.Facade.get_instance().get_commit_metadata_to_masters());
+ write_metadata.set_active(Config.Facade.get_instance().get_commit_metadata_to_masters());
- default_raw_developer_combo = builder.get_object("default_raw_developer") as Gtk.ComboBoxText;
default_raw_developer_combo.append_text(RawDeveloper.CAMERA.get_label());
default_raw_developer_combo.append_text(RawDeveloper.SHOTWELL.get_label());
set_raw_developer_combo(Config.Facade.get_instance().get_default_raw_developer());
default_raw_developer_combo.changed.connect(on_default_raw_developer_changed);
-
- dialog.map_event.connect(map_event);
}
public void populate_preference_options() {
@@ -2493,31 +2487,25 @@ public class PreferencesDialog {
on_dir_pattern_combo_changed();
}
- public static void show() {
+ public static void show_preferences() {
if (preferences_dialog == null)
preferences_dialog = new PreferencesDialog();
preferences_dialog.populate_preference_options();
- preferences_dialog.dialog.show_all();
+ preferences_dialog.show_all();
preferences_dialog.library_dir_button.set_current_folder(AppDirs.get_import_dir().get_path());
// Ticket #3001: Cause the dialog to become active if the user chooses 'Preferences'
// from the menus a second time.
- preferences_dialog.dialog.present();
+ preferences_dialog.present();
}
// For items that should only be committed when the dialog is closed, not as soon as the change
// is made.
private void commit_on_close() {
Config.Facade.get_instance().commit_bg_color();
-
- Gtk.CheckButton? autoimport = builder.get_object("autoimport") as Gtk.CheckButton;
- if (autoimport != null)
- Config.Facade.get_instance().set_auto_import_from_library(autoimport.active);
-
- Gtk.CheckButton? commit_metadata = builder.get_object("write_metadata") as Gtk.CheckButton;
- if (commit_metadata != null)
- Config.Facade.get_instance().set_commit_metadata_to_masters(commit_metadata.active);
+ Config.Facade.get_instance().set_auto_import_from_library(autoimport.active);
+ Config.Facade.get_instance().set_commit_metadata_to_masters(write_metadata.active);
if (lib_dir != null)
AppDirs.set_import_dir(lib_dir);
@@ -2536,14 +2524,14 @@ public class PreferencesDialog {
return true;
commit_on_close();
- return dialog.hide_on_delete(); //prevent widgets from getting destroyed
+ return hide_on_delete(); //prevent widgets from getting destroyed
}
private void on_close() {
if (!get_allow_closing())
return;
- dialog.hide();
+ hide();
commit_on_close();
}
@@ -2600,7 +2588,7 @@ public class PreferencesDialog {
}
private void set_allow_closing(bool allow) {
- dialog.set_deletable(allow);
+ set_deletable(allow);
allow_closing = allow;
}
@@ -2666,13 +2654,15 @@ public class PreferencesDialog {
lib_dir = library_dir_button.get_filename();
}
- private bool map_event() {
+ public override bool map_event(Gdk.EventAny event) {
+ var result = base.map_event(event);
// Set the signal for the lib dir button after the dialog is displayed,
// because the FileChooserButton has a nasty habit of selecting a
// different folder when displayed if the provided path doesn't exist.
// See ticket #3000 for more info.
library_dir_button.current_folder_changed.connect(on_current_folder_changed);
- return true;
+
+ return result;
}
private void add_to_dir_formats(string name, string? pattern) {
diff --git a/src/library/LibraryWindow.vala b/src/library/LibraryWindow.vala
index 0a39318..8153412 100644
--- a/src/library/LibraryWindow.vala
+++ b/src/library/LibraryWindow.vala
@@ -645,7 +645,7 @@ public class LibraryWindow : AppWindow {
}
private void on_preferences() {
- PreferencesDialog.show();
+ PreferencesDialog.show_preferences();
}
private void on_display_basic_properties(GLib.SimpleAction action, Variant? value) {
diff --git a/ui/preferences_dialog.ui b/ui/preferences_dialog.ui
new file mode 100644
index 0000000..37a51ba
--- /dev/null
+++ b/ui/preferences_dialog.ui
@@ -0,0 +1,574 @@
+<?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="bg_color_adjustment">
+ <property name="upper">65535</property>
+ <property name="step_increment">1000</property>
+ <property name="page_increment">1000</property>
+ <property name="page_size">1000</property>
+ </object>
+ <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="GtkNotebook" id="preferences_notebook">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="show_border">False</property>
+ <child>
+ <object class="GtkGrid" id="table1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</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">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="slider container">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">white</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScale" id="bg_color_slider">
+ <property name="width_request">150</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="adjustment">bg_color_adjustment</property>
+ <property name="draw_value">False</property>
+ <property name="value_pos">left</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">black</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">1</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">13</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>
+ <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">2</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="bg_color_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="margin_left">10</property>
+ <property name="hexpand">True</property>
+ <property name="label" translatable="yes">_Background:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">bg_color_slider</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</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="margin_left">10</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">3</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="margin_left">10</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">4</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">5</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="margin_left">10</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">6</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="margin_left">34</property>
+ <property name="label" translatable="yes">Example:</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">8</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="margin_left">10</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">9</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">10</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="margin_left">10</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">11</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">12</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="margin_left">10</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">13</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">6</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">7</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">8</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="margin_left">34</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">7</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="library-tab">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Library</property>
+ </object>
+ <packing>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="hbox4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ <property name="border_width">6</property>
+ <child>
+ <object class="GtkBox" id="vbox2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_left">6</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label7">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="margin_left">4</property>
+ <property name="margin_right">4</property>
+ <property name="hexpand">True</property>
+ <property name="label" translatable="yes">E_xternal photo editor:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">photo_editor_combo</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label8">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="margin_left">4</property>
+ <property name="margin_right">4</property>
+ <property name="label" translatable="yes">External _RAW editor:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">raw_editor_combo</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">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="vbox3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkComboBox" id="photo_editor_combo">
+ <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">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="raw_editor_combo">
+ <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>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="external-editors-tab">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">External Editors</property>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="plugins-tab">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Plugins</property>
+ </object>
+ <packing>
+ <property name="position">2</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child type="tab">
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</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">Shotwell Preferences</property>
+ <property name="show_close_button">True</property>
+ </object>
+ </child>
+ </template>
+</interface>
diff --git a/ui/shotwell.ui b/ui/shotwell.ui
index 58fc234..7eb7efe 100644
--- a/ui/shotwell.ui
+++ b/ui/shotwell.ui
@@ -2,574 +2,6 @@
<!-- Generated with glade 3.20.0 -->
<interface domain="shotwell">
<requires lib="gtk+" version="3.18"/>
- <object class="GtkAdjustment" id="bg_color_adjustment">
- <property name="upper">65535</property>
- <property name="step_increment">1000</property>
- <property name="page_increment">1000</property>
- <property name="page_size">1000</property>
- </object>
- <object class="GtkDialog" id="preferences_dialog">
- <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="GtkNotebook" id="preferences-notebook">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="show_border">False</property>
- <child>
- <object class="GtkGrid" id="table1">
- <property name="visible">True</property>
- <property name="can_focus">False</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">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="slider container">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">white</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkScale" id="bg_color_slider">
- <property name="width_request">150</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="adjustment">bg_color_adjustment</property>
- <property name="draw_value">False</property>
- <property name="value_pos">left</property>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">black</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">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="default_raw_developer">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">13</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>
- <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">2</property>
- <property name="width">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="bg_color_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="margin_left">10</property>
- <property name="hexpand">True</property>
- <property name="label" translatable="yes">_Background:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">bg_color_slider</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</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="margin_left">10</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">3</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="margin_left">10</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">4</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">5</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="margin_left">10</property>
- <property name="label" translatable="yes">_Directory structure:</property>
- <property name="use_underline">True</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">6</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="example">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="margin_left">34</property>
- <property name="label" translatable="yes">Example:</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">8</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="margin_left">10</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">9</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">10</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="margin_left">10</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">11</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">12</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="margin_left">10</property>
- <property name="label" translatable="yes">De_fault:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">default_raw_developer</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">13</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="dir choser">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">6</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">7</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">8</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="margin_left">34</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">7</property>
- </packing>
- </child>
- </object>
- </child>
- <child type="tab">
- <object class="GtkLabel" id="library-tab">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Library</property>
- </object>
- <packing>
- <property name="tab_fill">False</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="hbox4">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="valign">start</property>
- <property name="border_width">6</property>
- <child>
- <object class="GtkBox" id="vbox2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin_left">6</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkLabel" id="label7">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="margin_left">4</property>
- <property name="margin_right">4</property>
- <property name="hexpand">True</property>
- <property name="label" translatable="yes">E_xternal photo editor:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">external_photo_editor_combo</property>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label8">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="margin_left">4</property>
- <property name="margin_right">4</property>
- <property name="label" translatable="yes">External _RAW editor:</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">external_raw_editor_combo</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">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="vbox3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">6</property>
- <child>
- <object class="GtkComboBox" id="external_photo_editor_combo">
- <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">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBox" id="external_raw_editor_combo">
- <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>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- <child type="tab">
- <object class="GtkLabel" id="external-editors-tab">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">External Editors</property>
- </object>
- <packing>
- <property name="position">1</property>
- <property name="tab_fill">False</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="border_width">12</property>
- <property name="orientation">vertical</property>
- <child>
- <placeholder/>
- </child>
- </object>
- <packing>
- <property name="position">2</property>
- </packing>
- </child>
- <child type="tab">
- <object class="GtkLabel" id="plugins-tab">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Plugins</property>
- </object>
- <packing>
- <property name="position">2</property>
- <property name="tab_fill">False</property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
- <child type="tab">
- <placeholder/>
- </child>
- </object>
- <packing>
- <property name="expand">True</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">Shotwell Preferences</property>
- <property name="show_close_button">True</property>
- </object>
- </child>
- </object>
<object class="GtkBox" id="criteria">
<property name="visible">True</property>
<property name="can_focus">False</property>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]