gtk4: settings dialog
This commit is contained in:
parent
be614316a9
commit
e40b081eb1
|
@ -20,76 +20,49 @@
|
|||
~ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.12"/>
|
||||
<object class="GtkImage" id="img_properties">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="stock">gtk-properties</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="img_delete">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="stock">gtk-delete</property>
|
||||
</object>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<object class="GtkBox" id="box">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="margin_left">5</property>
|
||||
<property name="margin_right">5</property>
|
||||
<property name="margin_top">5</property>
|
||||
<property name="margin_bottom">5</property>
|
||||
<property name="visible">1</property>
|
||||
<property name="margin-start">5</property>
|
||||
<property name="margin-end">5</property>
|
||||
<property name="margin-top">5</property>
|
||||
<property name="margin-bottom">5</property>
|
||||
<property name="spacing">3</property>
|
||||
<property name="vexpand">0</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="lbl_name">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="visible">1</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="label">label</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="hexpand">1</property>
|
||||
<property name="vexpand">1</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="btn_properties">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<property name="visible">1</property>
|
||||
<property name="can-focus">1</property>
|
||||
<property name="receives-default">1</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="image">img_properties</property>
|
||||
<property name="always_show_image">True</property>
|
||||
<property name="icon-name">gtk-properties</property>
|
||||
<style>
|
||||
<class name="btn_circle"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btn_delete">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="visible">1</property>
|
||||
<property name="can-focus">1</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="image">img_delete</property>
|
||||
<property name="always_show_image">True</property>
|
||||
<property name="icon-name">edit-delete</property>
|
||||
<style>
|
||||
<class name="btn_circle"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
||||
|
|
|
@ -20,81 +20,58 @@
|
|||
~ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.12"/>
|
||||
<object class="GtkImage" id="img_properties">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="stock">gtk-properties</property>
|
||||
</object>
|
||||
<object class="GtkImage" id="img_disable">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="icon-name">_Cancel</property>
|
||||
</object>
|
||||
<requires lib="gtk" version="4.0"/>
|
||||
<object class="GtkBox" id="box">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="margin_left">5</property>
|
||||
<property name="margin_right">5</property>
|
||||
<property name="margin_top">5</property>
|
||||
<property name="margin_bottom">5</property>
|
||||
<property name="visible">1</property>
|
||||
<property name="margin-start">5</property>
|
||||
<property name="margin-end">5</property>
|
||||
<property name="margin-top">5</property>
|
||||
<property name="margin-bottom">5</property>
|
||||
<property name="vexpand">0</property>
|
||||
<child>
|
||||
<object class="GtkImage" id="img_plugin_icon">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="visible">1</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="stock">gtk-about</property>
|
||||
<property name="icon-name">gtk-about</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="box2">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="margin_left">5</property>
|
||||
<property name="visible">1</property>
|
||||
<property name="margin-start">5</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="hexpand">1</property>
|
||||
<property name="vexpand">1</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="lbl_plugin_name">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="visible">1</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">end</property>
|
||||
<property name="label">Plugin Name</property>
|
||||
<property name="xalign">0.05000000074505806</property>
|
||||
<property name="yalign">1</property>
|
||||
<property name="hexpand">1</property>
|
||||
<property name="vexpand">1</property>
|
||||
<style>
|
||||
<class name="lbl_plugin_name"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="lbl_plugin_description">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="visible">1</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="label">Plugin Description</property>
|
||||
<property name="xalign">0.05000000074505806</property>
|
||||
<property name="yalign">0</property>
|
||||
<property name="hexpand">1</property>
|
||||
<property name="vexpand">1</property>
|
||||
<style>
|
||||
<class name="lbl_plugin_description"/>
|
||||
</style>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLinkButton" id="btn_plugin_extra_link">
|
||||
|
@ -111,21 +88,15 @@
|
|||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="box3">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="visible">1</property>
|
||||
<property name="spacing">5</property>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="switch_enable">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="visible">1</property>
|
||||
<property name="can-focus">1</property>
|
||||
<property name="halign">end</property>
|
||||
<property name="valign">center</property>
|
||||
</object>
|
||||
|
@ -135,9 +106,8 @@
|
|||
<property name="visible">False</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="image">img_disable</property>
|
||||
<property name="icon-name">gtk-cancel</property>
|
||||
<property name="tooltip-text" translatable="yes">Disable permanently</property>
|
||||
<property name="always_show_image">True</property>
|
||||
<style>
|
||||
<class name="btn_circle"/>
|
||||
</style>
|
||||
|
@ -145,24 +115,18 @@
|
|||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btn_properties">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">True</property>
|
||||
<property name="visible">1</property>
|
||||
<property name="can-focus">1</property>
|
||||
<property name="receives-default">1</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="image">img_properties</property>
|
||||
<property name="always_show_image">True</property>
|
||||
<property name="icon-name">gtk-properties</property>
|
||||
<style>
|
||||
<class name="btn_circle"/>
|
||||
</style>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -55,7 +55,6 @@ class SettingsDialog:
|
|||
self.warn_bar_rpc_server_shown = False
|
||||
|
||||
builder = utility.create_gtk_builder(SETTINGS_DIALOG_GLADE)
|
||||
builder.connect_signals(self)
|
||||
|
||||
self.window = builder.get_object('window_settings')
|
||||
self.box_short_breaks = builder.get_object('box_short_breaks')
|
||||
|
@ -80,18 +79,26 @@ class SettingsDialog:
|
|||
self.info_bar_long_break.hide()
|
||||
self.warn_bar_rpc_server.hide()
|
||||
|
||||
self.window.connect("close-request", self.on_window_delete)
|
||||
builder.get_object('reset_menu').connect('clicked', self.on_reset_menu_clicked)
|
||||
self.spin_short_break_interval.connect('value-changed', self.on_spin_short_break_interval_change)
|
||||
self.info_bar_long_break.connect('close', self.on_info_bar_long_break_close)
|
||||
self.info_bar_long_break.connect('response', self.on_info_bar_long_break_close)
|
||||
self.spin_long_break_interval.connect('value-changed', self.on_spin_long_break_interval_change)
|
||||
self.warn_bar_rpc_server.connect('close', self.on_warn_bar_rpc_server_close)
|
||||
self.warn_bar_rpc_server.connect('response', self.on_warn_bar_rpc_server_close)
|
||||
builder.get_object('btn_add_break').connect('clicked', self.add_break)
|
||||
|
||||
# Set the current values of input fields
|
||||
self.__initialize(config)
|
||||
|
||||
# Update relative states
|
||||
# GtkSwitch state-set signal is available only from 3.14
|
||||
if Gtk.get_minor_version() >= 14:
|
||||
# Add event listener to postpone switch
|
||||
self.switch_postpone.connect('state-set', self.on_switch_postpone_activate)
|
||||
self.on_switch_postpone_activate(self.switch_postpone, self.switch_postpone.get_active())
|
||||
# Add event listener to RPC server switch
|
||||
self.switch_rpc_server.connect('state-set', self.on_switch_rpc_server_activate)
|
||||
self.on_switch_rpc_server_activate(self.switch_rpc_server, self.switch_rpc_server.get_active())
|
||||
# Add event listener to postpone switch
|
||||
self.switch_postpone.connect('state-set', self.on_switch_postpone_activate)
|
||||
self.on_switch_postpone_activate(self.switch_postpone, self.switch_postpone.get_active())
|
||||
# Add event listener to RPC server switch
|
||||
self.switch_rpc_server.connect('state-set', self.on_switch_rpc_server_activate)
|
||||
self.on_switch_rpc_server_activate(self.switch_rpc_server, self.switch_rpc_server.get_active())
|
||||
|
||||
self.initializing = False
|
||||
|
||||
def __initialize(self, config):
|
||||
|
@ -103,8 +110,8 @@ class SettingsDialog:
|
|||
self.__create_break_item(long_break, False)
|
||||
|
||||
for plugin_config in utility.load_plugins_config(config):
|
||||
self.box_plugins.pack_start(self.__create_plugin_item(plugin_config), False, False, 0)
|
||||
|
||||
self.box_plugins.append(self.__create_plugin_item(plugin_config))
|
||||
|
||||
self.spin_short_break_duration.set_value(config.get('short_break_duration'))
|
||||
self.spin_long_break_duration.set_value(config.get('long_break_duration'))
|
||||
self.spin_short_break_interval.set_value(config.get('short_break_interval'))
|
||||
|
@ -152,7 +159,7 @@ class SettingsDialog:
|
|||
)
|
||||
)
|
||||
box.set_visible(True)
|
||||
parent_box.pack_start(box, False, False, 0)
|
||||
parent_box.append(box)
|
||||
return box
|
||||
|
||||
def on_reset_menu_clicked(self, button):
|
||||
|
@ -279,7 +286,7 @@ class SettingsDialog:
|
|||
"""
|
||||
Show the SettingsDialog.
|
||||
"""
|
||||
self.window.show()
|
||||
self.window.present()
|
||||
|
||||
def on_switch_postpone_activate(self, switch, state):
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue