[shotwell] Make slideshow settings templated
- From: Jens Georg <jensgeorg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [shotwell] Make slideshow settings templated
- Date: Mon, 10 Apr 2017 16:36:14 +0000 (UTC)
commit 3c4c0b80836407e5d247d1970ebbfd2b1a76c671
Author: Jens Georg <mail jensge org>
Date: Fri Apr 7 19:57:10 2017 +0200
Make slideshow settings templated
Signed-off-by: Jens Georg <mail jensge org>
org.gnome.Shotwell.gresource.xml | 1 +
po/POTFILES.in | 1 +
src/SlideshowPage.vala | 54 ++------
src/config/Config.vala | 6 -
ui/shotwell.ui | 174 -------------------------
ui/slideshow_settings.ui | 265 ++++++++++++++++++++++++++++++++++++++
6 files changed, 281 insertions(+), 220 deletions(-)
---
diff --git a/org.gnome.Shotwell.gresource.xml b/org.gnome.Shotwell.gresource.xml
index 3fada2b..6a8f849 100644
--- a/org.gnome.Shotwell.gresource.xml
+++ b/org.gnome.Shotwell.gresource.xml
@@ -22,6 +22,7 @@
<file preprocess="xml-stripblanks">ui/set_background_slideshow_dialog.ui</file>
<file compressed="true">ui/shotwell.ui</file>
<file preprocess="xml-stripblanks">ui/sidebar_default_context.ui</file>
+ <file preprocess="xml-stripblanks">ui/slideshow_settings.ui</file>
<file preprocess="xml-stripblanks">ui/tag_sidebar_context.ui</file>
<file preprocess="xml-stripblanks">ui/tags.ui</file>
<file preprocess="xml-stripblanks">ui/trash.ui</file>
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 4a3d74b..fc57c46 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -127,6 +127,7 @@ ui/set_background_dialog.ui
ui/set_background_slideshow_dialog.ui
ui/shotwell.ui
ui/sidebar_default_context.ui
+ui/slideshow_settings.ui
ui/tag_sidebar_context.ui
ui/tags.ui
ui/trash.ui
diff --git a/src/SlideshowPage.vala b/src/SlideshowPage.vala
index ebf7962..fcb6430 100644
--- a/src/SlideshowPage.vala
+++ b/src/SlideshowPage.vala
@@ -23,46 +23,33 @@ class SlideshowPage : SinglePhotoPage {
public signal void hide_toolbar();
+ [GtkTemplate (ui = "/org/gnome/Shotwell/ui/slideshow_settings.ui")]
private class SettingsDialog : Gtk.Dialog {
- private Gtk.Builder builder = null;
+ [GtkChild]
+ Gtk.Adjustment delay_adjustment;
+ [GtkChild]
Gtk.SpinButton delay_entry;
- Gtk.Scale delay_hscale;
+ [GtkChild]
Gtk.ComboBoxText transition_effect_selector;
+ [GtkChild]
Gtk.Scale transition_effect_hscale;
+ [GtkChild]
Gtk.SpinButton transition_effect_entry;
+ [GtkChild]
Gtk.Adjustment transition_effect_adjustment;
+ [GtkChild]
Gtk.CheckButton show_title_button;
- Gtk.Box pane;
public SettingsDialog() {
- builder = AppWindow.create_builder();
- pane = builder.get_object("slideshow_settings_pane") as Gtk.Box;
- get_content_area().add(pane);
-
double delay = Config.Facade.get_instance().get_slideshow_delay();
-
- set_modal(true);
+
set_transient_for(AppWindow.get_fullscreen());
-
- add_buttons(Resources.CANCEL_LABEL, Gtk.ResponseType.CANCEL,
- Resources.OK_LABEL, Gtk.ResponseType.OK);
- set_title(_("Settings"));
-
- Gtk.Adjustment adjustment = new Gtk.Adjustment(delay, Config.Facade.SLIDESHOW_DELAY_MIN,
Config.Facade.SLIDESHOW_DELAY_MAX, 0.1, 1, 0);
- delay_hscale = builder.get_object("delay_hscale") as Gtk.Scale;
- delay_hscale.adjustment = adjustment;
-
- delay_entry = builder.get_object("delay_entry") as Gtk.SpinButton;
- delay_entry.adjustment = adjustment;
- delay_entry.set_value(delay);
- delay_entry.set_numeric(true);
- delay_entry.set_activates_default(true);
- transition_effect_selector = builder.get_object("transition_effect_selector") as
Gtk.ComboBoxText;
-
+ delay_adjustment.value = delay;
+
// get last effect id
string effect_id = Config.Facade.get_instance().get_slideshow_transition_effect_id();
-
+
// null effect first, always, and set active in case no other one is found
string null_display_name = TransitionEffectsManager.get_instance().get_effect_name(
TransitionEffectsManager.NULL_EFFECT_ID);
@@ -84,24 +71,11 @@ class SlideshowPage : SinglePhotoPage {
transition_effect_selector.changed.connect(on_transition_changed);
double transition_delay = Config.Facade.get_instance().get_slideshow_transition_delay();
- transition_effect_adjustment = new Gtk.Adjustment(transition_delay,
- Config.Facade.SLIDESHOW_TRANSITION_DELAY_MIN, Config.Facade.SLIDESHOW_TRANSITION_DELAY_MAX,
- 0.1, 1, 0);
- transition_effect_hscale = builder.get_object("transition_effect_hscale") as Gtk.Scale;
- transition_effect_hscale.adjustment = transition_effect_adjustment;
-
- transition_effect_entry = builder.get_object("transition_effect_entry") as Gtk.SpinButton;
- transition_effect_entry.adjustment = transition_effect_adjustment;
- transition_effect_entry.set_value(transition_delay);
- transition_effect_entry.set_numeric(true);
- transition_effect_entry.set_activates_default(true);
+ transition_effect_adjustment.value = transition_delay;
bool show_title = Config.Facade.get_instance().get_slideshow_show_title();
- show_title_button = builder.get_object("show_title_button") as Gtk.CheckButton;
show_title_button.active = show_title;
- set_default_response(Gtk.ResponseType.OK);
-
on_transition_changed();
}
diff --git a/src/config/Config.vala b/src/config/Config.vala
index c86abd1..64530fd 100644
--- a/src/config/Config.vala
+++ b/src/config/Config.vala
@@ -16,12 +16,6 @@
namespace Config {
public class Facade : ConfigurationFacade {
- public const double SLIDESHOW_DELAY_MAX = 30.0;
- public const double SLIDESHOW_DELAY_MIN = 1.0;
- public const double SLIDESHOW_DELAY_DEFAULT = 3.0;
- public const double SLIDESHOW_TRANSITION_DELAY_MAX = 1.0;
- public const double SLIDESHOW_TRANSITION_DELAY_MIN = 0.1;
- public const double SLIDESHOW_TRANSITION_DELAY_DEFAULT = 0.3;
public const int WIDTH_DEFAULT = 1024;
public const int HEIGHT_DEFAULT = 768;
public const int SIDEBAR_MIN_POSITION = 180;
diff --git a/ui/shotwell.ui b/ui/shotwell.ui
index 40b9cf1..58fc234 100644
--- a/ui/shotwell.ui
+++ b/ui/shotwell.ui
@@ -879,180 +879,6 @@
</packing>
</child>
</object>
- <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">_Delay:</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_elay:</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="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="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>
- </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="digits">1</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>
<object class="GtkBox" id="static_msg_pane_widget">
<property name="visible">True</property>
<property name="can_focus">False</property>
diff --git a/ui/slideshow_settings.ui b/ui/slideshow_settings.ui
new file mode 100644
index 0000000..6f597b1
--- /dev/null
+++ b/ui/slideshow_settings.ui
@@ -0,0 +1,265 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
+<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">0.10000000000000001</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="SettingsDialog" 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 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="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="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">_Delay:</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_elay:</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="0">button1</action-widget>
+ <action-widget response="0">button2</action-widget>
+ </action-widgets>
+ </template>
+</interface>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]