overhauled config gui navigation, fixed spacing in general page, renamed comments

This commit is contained in:
Patrick Ulbrich
2013-08-02 19:24:53 +02:00
parent 5a166a28ee
commit 4eb64e5e1c
2 changed files with 318 additions and 246 deletions

View File

@@ -43,6 +43,7 @@ class ConfigWindow:
builder.add_from_file(get_data_file("config_window.ui"))
builder.connect_signals({ \
"config_window_deleted" : self._on_config_window_deleted, \
"btn_page_toggled" : self._on_btn_page_toggled, \
"btn_add_account_clicked" : self._on_btn_add_account_clicked, \
"btn_edit_account_clicked" : self._on_btn_edit_account_clicked, \
"btn_remove_account_clicked" : self._on_btn_remove_account_clicked, \
@@ -61,7 +62,14 @@ class ConfigWindow:
self.daemon_enabled = False
#
# general tab
# toggle buttons / notebook
#
self._notebook = builder.get_object("notebook")
self._box_navigation = builder.get_object("box_navigation")
self._box_navigation.get_children()[0].set_active(True)
#
# general page
#
self._image_logo = builder.get_object("image_logo")
pb = GdkPixbuf.Pixbuf.new_from_file_at_size(get_data_file("mailnag.svg"), 180, 180)
@@ -72,7 +80,7 @@ class ConfigWindow:
self._switch_daemon_enabled = builder.get_object("switch_daemon_enabled")
#
# accounts tab
# accounts page
#
self._accounts = AccountList()
@@ -99,7 +107,7 @@ class ConfigWindow:
self._spinbutton_interval = builder.get_object("spinbutton_interval")
#
# plugins tab
# plugins page
#
self._treeview_plugins = builder.get_object("treeview_plugins")
self._liststore_plugins = builder.get_object("liststore_plugins")
@@ -279,6 +287,18 @@ class ConfigWindow:
os.remove(autostart_file)
def _on_btn_page_toggled(self, button):
if not button.get_active(): return
page = 0
for btn in self._box_navigation.get_children():
if btn == button:
self._notebook.set_current_page(page)
else:
btn.set_active(False)
page += 1
def _on_account_toggled(self, cell, path):
model = self._liststore_accounts
iter = model.get_iter(path)

View File

@@ -16,24 +16,112 @@
<property name="resizable">False</property>
<signal name="delete-event" handler="config_window_deleted" swapped="no"/>
<child>
<object class="GtkNotebook" id="notebook1">
<object class="GtkBox" id="box1">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkBox" id="box2">
<object class="GtkBox" id="box_navigation">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">24</property>
<property name="margin_left">18</property>
<property name="margin_right">18</property>
<property name="margin_top">6</property>
<property name="margin_bottom">6</property>
<property name="homogeneous">True</property>
<style>
<class name="linked"/>
</style>
<child>
<object class="GtkBox" id="box5">
<object class="GtkToggleButton" id="btn_page1">
<property name="label" translatable="yes">General</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="toggled" handler="btn_page_toggled" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="btn_page2">
<property name="label" translatable="yes">Accounts</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="toggled" handler="btn_page_toggled" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkToggleButton" id="btn_page3">
<property name="label" translatable="yes">Plugins</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="toggled" handler="btn_page_toggled" swapped="no"/>
</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">0</property>
</packing>
</child>
<child>
<object class="GtkNotebook" id="notebook">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="show_tabs">False</property>
<property name="show_border">False</property>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
<object class="GtkImage" id="image_logo">
<object class="GtkBox" id="box5">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkImage" id="image_logo">
<property name="visible">True</property>
<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="GtkLabel" id="label_app_desc">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label">APP_DESC</property>
<property name="use_markup">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>
@@ -42,10 +130,12 @@
</packing>
</child>
<child>
<object class="GtkLabel" id="label_app_desc">
<object class="GtkLabel" id="label8">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label">APP_DESC</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">&lt;a href="https://github.com/pulb/mailnag"&gt;Mailnag&lt;/a&gt; - An extendable mail notification daemon.
Copyright (c) 2011 - 2013 Patrick Ulbrich
and contributors.</property>
<property name="use_markup">True</property>
</object>
<packing>
@@ -54,169 +144,104 @@
<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="GtkLabel" id="label8">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">&lt;a href="https://github.com/pulb/mailnag"&gt;Mailnag&lt;/a&gt; - An extendable mail notification daemon.
Copyright (c) 2011 - 2013 Patrick Ulbrich
and contributors.</property>
<property name="use_markup">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkSwitch" id="switch_daemon_enabled">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="halign">center</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
<child type="tab">
<object class="GtkLabel" id="label5">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">General</property>
</object>
<packing>
<property name="tab_fill">False</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">12</property>
<property name="orientation">vertical</property>
<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="GtkTreeView" id="treeview_accounts">
<object class="GtkSwitch" id="switch_daemon_enabled">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="model">liststore_accounts</property>
<property name="headers_visible">False</property>
<property name="rules_hint">True</property>
<property name="enable_search">False</property>
<property name="search_column">1</property>
<signal name="row-activated" handler="treeview_accounts_row_activated" swapped="no"/>
<child internal-child="selection">
<object class="GtkTreeSelection" id="treeview-selection"/>
<property name="halign">center</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">2</property>
</packing>
</child>
</object>
</child>
<child type="tab">
<placeholder/>
</child>
<child>
<object class="GtkBox" id="box3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">12</property>
<property name="orientation">vertical</property>
<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="GtkTreeView" id="treeview_accounts">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="model">liststore_accounts</property>
<property name="headers_visible">False</property>
<property name="rules_hint">True</property>
<property name="enable_search">False</property>
<property name="search_column">1</property>
<signal name="row-activated" handler="treeview_accounts_row_activated" swapped="no"/>
<child internal-child="selection">
<object class="GtkTreeSelection" id="treeview-selection"/>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkToolbar" id="toolbar1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="toolbar_style">icons</property>
<property name="icon_size">1</property>
<style>
<class name="inline-toolbar"/>
</style>
<child>
<object class="GtkToolButton" id="btn_add_account">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Add Account</property>
<property name="icon_name">list-add-symbolic</property>
<signal name="clicked" handler="btn_add_account_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton" id="btn_remove_account">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Remove Account</property>
<property name="icon_name">list-remove-symbolic</property>
<signal name="clicked" handler="btn_remove_account_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton" id="btn_edit_account">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Edit Account</property>
<property name="icon_name">text-editor-symbolic</property>
<signal name="clicked" handler="btn_edit_account_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</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="GtkBox" id="box1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_top">12</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="label9">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">Check interval:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="spinbutton_interval">
<object class="GtkToolbar" id="toolbar1">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="invisible_char">•</property>
<property name="invisible_char_set">True</property>
<property name="progress_pulse_step">0.10000000149011612</property>
<property name="adjustment">adjustment1</property>
<property name="numeric">True</property>
<property name="can_focus">False</property>
<property name="toolbar_style">icons</property>
<property name="icon_size">1</property>
<style>
<class name="inline-toolbar"/>
</style>
<child>
<object class="GtkToolButton" id="btn_add_account">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Add Account</property>
<property name="icon_name">list-add-symbolic</property>
<signal name="clicked" handler="btn_add_account_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton" id="btn_remove_account">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Remove Account</property>
<property name="icon_name">list-remove-symbolic</property>
<signal name="clicked" handler="btn_remove_account_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
<child>
<object class="GtkToolButton" id="btn_edit_account">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Edit Account</property>
<property name="icon_name">text-editor-symbolic</property>
<signal name="clicked" handler="btn_edit_account_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
@@ -225,118 +250,145 @@ and contributors.</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label10">
<object class="GtkBox" id="box4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">minutes</property>
<property name="margin_top">12</property>
<property name="spacing">6</property>
<child>
<object class="GtkLabel" id="label9">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">start</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">Check interval:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="spinbutton_interval">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="invisible_char">•</property>
<property name="invisible_char_set">True</property>
<property name="progress_pulse_step">0.10000000149011612</property>
<property name="adjustment">adjustment1</property>
<property name="numeric">True</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label10">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">minutes</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
</object>
<packing>
<property name="expand">True</property>
<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">2</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
<child type="tab">
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Accounts</property>
</object>
<packing>
<property name="position">1</property>
<property name="tab_fill">False</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box9">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="border_width">12</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkScrolledWindow" id="scrolledwindow2">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="shadow_type">in</property>
<child>
<object class="GtkTreeView" id="treeview_plugins">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="model">liststore_plugins</property>
<property name="headers_visible">False</property>
<property name="rules_hint">True</property>
<property name="enable_search">False</property>
<property name="search_column">1</property>
<signal name="cursor-changed" handler="treeview_plugins_cursor_changed" swapped="no"/>
<signal name="row-activated" handler="treeview_plugins_row_activated" swapped="no"/>
<child internal-child="selection">
<object class="GtkTreeSelection" id="treeview-selection4"/>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
<child type="tab">
<placeholder/>
</child>
<child>
<object class="GtkToolbar" id="toolbar2">
<object class="GtkBox" id="box9">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="toolbar_style">icons</property>
<property name="icon_size">1</property>
<style>
<class name="inline-toolbar"/>
</style>
<property name="border_width">12</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkToolButton" id="btn_edit_plugin">
<object class="GtkScrolledWindow" id="scrolledwindow2">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="shadow_type">in</property>
<child>
<object class="GtkTreeView" id="treeview_plugins">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="model">liststore_plugins</property>
<property name="headers_visible">False</property>
<property name="rules_hint">True</property>
<property name="enable_search">False</property>
<property name="search_column">1</property>
<signal name="cursor-changed" handler="treeview_plugins_cursor_changed" swapped="no"/>
<signal name="row-activated" handler="treeview_plugins_row_activated" swapped="no"/>
<child internal-child="selection">
<object class="GtkTreeSelection" id="treeview-selection3"/>
</child>
</object>
</child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkToolbar" id="toolbar2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Edit Plugin</property>
<property name="icon_name">text-editor-symbolic</property>
<signal name="clicked" handler="btn_edit_plugin_clicked" swapped="no"/>
<property name="toolbar_style">icons</property>
<property name="icon_size">1</property>
<style>
<class name="inline-toolbar"/>
</style>
<child>
<object class="GtkToolButton" id="btn_edit_plugin">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Edit Plugin</property>
<property name="icon_name">text-editor-symbolic</property>
<signal name="clicked" handler="btn_edit_plugin_clicked" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="homogeneous">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">1</property>
<property name="position">2</property>
</packing>
</child>
<child type="tab">
<placeholder/>
</child>
</object>
<packing>
<property name="position">2</property>
</packing>
</child>
<child type="tab">
<object class="GtkLabel" id="label2">
<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>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>