passwd lock systray

This commit is contained in:
Marcos Pinto 2007-05-25 07:10:22 +00:00
parent 41a9fcbeb4
commit 163a6ad771
3 changed files with 158 additions and 124 deletions

View File

@ -14,41 +14,33 @@
<child internal-child="vbox"> <child internal-child="vbox">
<widget class="GtkVBox" id="dialog-vbox3"> <widget class="GtkVBox" id="dialog-vbox3">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="spacing">2</property> <property name="spacing">2</property>
<child> <child>
<widget class="GtkNotebook" id="notebook"> <widget class="GtkNotebook" id="notebook">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="homogeneous">True</property>
<child> <child>
<widget class="GtkScrolledWindow" id="scroll_downloads"> <widget class="GtkScrolledWindow" id="scroll_downloads">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="hscrollbar_policy">GTK_POLICY_NEVER</property> <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<child> <child>
<widget class="GtkViewport" id="viewport1"> <widget class="GtkViewport" id="viewport1">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="resize_mode">GTK_RESIZE_QUEUE</property>
<property name="shadow_type">GTK_SHADOW_NONE</property> <property name="shadow_type">GTK_SHADOW_NONE</property>
<child> <child>
<widget class="GtkVBox" id="vbox4"> <widget class="GtkVBox" id="vbox4">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<child> <child>
<widget class="GtkFrame" id="frame1"> <widget class="GtkFrame" id="frame1">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label_xalign">0</property> <property name="label_xalign">0</property>
<property name="shadow_type">GTK_SHADOW_NONE</property> <property name="shadow_type">GTK_SHADOW_NONE</property>
<child> <child>
<widget class="GtkAlignment" id="alignment1"> <widget class="GtkAlignment" id="alignment1">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="left_padding">12</property> <property name="left_padding">12</property>
<child> <child>
<widget class="GtkTable" id="table1"> <widget class="GtkTable" id="table1">
@ -59,6 +51,7 @@
<widget class="GtkRadioButton" id="radio_ask_save"> <widget class="GtkRadioButton" id="radio_ask_save">
<property name="visible">True</property> <property name="visible">True</property>
<property name="label" translatable="yes">Ask me where to save each download</property> <property name="label" translatable="yes">Ask me where to save each download</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
</widget> </widget>
<packing> <packing>
@ -69,8 +62,8 @@
<widget class="GtkRadioButton" id="radio_save_all_to"> <widget class="GtkRadioButton" id="radio_save_all_to">
<property name="visible">True</property> <property name="visible">True</property>
<property name="label" translatable="yes">Save all downloads to:</property> <property name="label" translatable="yes">Save all downloads to:</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
<property name="group">radio_ask_save</property>
</widget> </widget>
<packing> <packing>
<property name="top_attach">1</property> <property name="top_attach">1</property>
@ -96,7 +89,6 @@
<child> <child>
<widget class="GtkLabel" id="label15"> <widget class="GtkLabel" id="label15">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">&lt;b&gt;Download Location&lt;/b&gt;</property> <property name="label" translatable="yes">&lt;b&gt;Download Location&lt;/b&gt;</property>
<property name="use_markup">True</property> <property name="use_markup">True</property>
</widget> </widget>
@ -112,24 +104,20 @@
<child> <child>
<widget class="GtkFrame" id="frame6"> <widget class="GtkFrame" id="frame6">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label_xalign">0</property> <property name="label_xalign">0</property>
<property name="shadow_type">GTK_SHADOW_NONE</property> <property name="shadow_type">GTK_SHADOW_NONE</property>
<child> <child>
<widget class="GtkAlignment" id="alignment6"> <widget class="GtkAlignment" id="alignment6">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="left_padding">12</property> <property name="left_padding">12</property>
<child> <child>
<widget class="GtkTable" id="table7"> <widget class="GtkTable" id="table7">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="n_rows">1</property> <property name="n_rows">1</property>
<property name="n_columns">2</property> <property name="n_columns">2</property>
<child> <child>
<widget class="GtkLabel" id="label33"> <widget class="GtkLabel" id="label33">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="xalign">0</property> <property name="xalign">0</property>
<property name="label" translatable="yes">Maximum simultaneous active torrents:</property> <property name="label" translatable="yes">Maximum simultaneous active torrents:</property>
</widget> </widget>
@ -139,8 +127,8 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="xalign">1</property>
<property name="adjustment">0 0 100 1 10 10</property> <property name="adjustment">0 0 100 1 10 10</property>
<property name="climb_rate">1</property>
<property name="snap_to_ticks">True</property> <property name="snap_to_ticks">True</property>
<property name="update_policy">GTK_UPDATE_IF_VALID</property> <property name="update_policy">GTK_UPDATE_IF_VALID</property>
</widget> </widget>
@ -157,7 +145,6 @@
<child> <child>
<widget class="GtkLabel" id="label32"> <widget class="GtkLabel" id="label32">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">&lt;b&gt;Torrents&lt;/b&gt;</property> <property name="label" translatable="yes">&lt;b&gt;Torrents&lt;/b&gt;</property>
<property name="use_markup">True</property> <property name="use_markup">True</property>
</widget> </widget>
@ -174,18 +161,17 @@
<child> <child>
<widget class="GtkFrame" id="frame7"> <widget class="GtkFrame" id="frame7">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label_xalign">0</property> <property name="label_xalign">0</property>
<property name="shadow_type">GTK_SHADOW_NONE</property> <property name="shadow_type">GTK_SHADOW_NONE</property>
<child> <child>
<widget class="GtkAlignment" id="alignment7"> <widget class="GtkAlignment" id="alignment7">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="left_padding">12</property> <property name="left_padding">12</property>
<child> <child>
<widget class="GtkCheckButton" id="chk_compact"> <widget class="GtkCheckButton" id="chk_compact">
<property name="visible">True</property> <property name="visible">True</property>
<property name="label" translatable="yes">Use compact storage allocation</property> <property name="label" translatable="yes">Use compact storage allocation</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
</widget> </widget>
</child> </child>
@ -194,7 +180,6 @@
<child> <child>
<widget class="GtkLabel" id="label35"> <widget class="GtkLabel" id="label35">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">&lt;b&gt;Compact Allocation&lt;/b&gt;</property> <property name="label" translatable="yes">&lt;b&gt;Compact Allocation&lt;/b&gt;</property>
<property name="use_markup">True</property> <property name="use_markup">True</property>
</widget> </widget>
@ -211,13 +196,11 @@
<child> <child>
<widget class="GtkFrame" id="frame2"> <widget class="GtkFrame" id="frame2">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label_xalign">0</property> <property name="label_xalign">0</property>
<property name="shadow_type">GTK_SHADOW_NONE</property> <property name="shadow_type">GTK_SHADOW_NONE</property>
<child> <child>
<widget class="GtkAlignment" id="alignment2"> <widget class="GtkAlignment" id="alignment2">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="left_padding">12</property> <property name="left_padding">12</property>
<child> <child>
<widget class="GtkTable" id="table2"> <widget class="GtkTable" id="table2">
@ -228,8 +211,8 @@
<widget class="GtkCheckButton" id="chk_seedbottom"> <widget class="GtkCheckButton" id="chk_seedbottom">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Queue torrents to bottom when they begin seeding</property> <property name="label" translatable="yes">Queue torrents to bottom when they begin seeding</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
</widget> </widget>
<packing> <packing>
@ -240,6 +223,7 @@
<widget class="GtkCheckButton" id="chk_autoseed"> <widget class="GtkCheckButton" id="chk_autoseed">
<property name="visible">True</property> <property name="visible">True</property>
<property name="label" translatable="yes">Stop seeding torrents when their share ratio reaches:</property> <property name="label" translatable="yes">Stop seeding torrents when their share ratio reaches:</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
</widget> </widget>
<packing> <packing>
@ -251,9 +235,8 @@
<widget class="GtkSpinButton" id="ratio_spinner"> <widget class="GtkSpinButton" id="ratio_spinner">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="width_chars">5</property>
<property name="xalign">0.5</property>
<property name="adjustment">0 0 10 0.050000000000000003 10 9</property> <property name="adjustment">0 0 10 0.050000000000000003 10 9</property>
<property name="climb_rate">1</property>
<property name="digits">2</property> <property name="digits">2</property>
<property name="snap_to_ticks">True</property> <property name="snap_to_ticks">True</property>
</widget> </widget>
@ -272,7 +255,6 @@
<child> <child>
<widget class="GtkLabel" id="label18"> <widget class="GtkLabel" id="label18">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">&lt;b&gt;Seeding&lt;/b&gt;</property> <property name="label" translatable="yes">&lt;b&gt;Seeding&lt;/b&gt;</property>
<property name="use_markup">True</property> <property name="use_markup">True</property>
</widget> </widget>
@ -301,7 +283,6 @@
<child> <child>
<widget class="GtkLabel" id="label11"> <widget class="GtkLabel" id="label11">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Downloads</property> <property name="label" translatable="yes">Downloads</property>
</widget> </widget>
<packing> <packing>
@ -314,23 +295,19 @@
<widget class="GtkScrolledWindow" id="scroll_network"> <widget class="GtkScrolledWindow" id="scroll_network">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<child> <child>
<widget class="GtkViewport" id="viewport5"> <widget class="GtkViewport" id="viewport5">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="resize_mode">GTK_RESIZE_QUEUE</property>
<property name="shadow_type">GTK_SHADOW_NONE</property> <property name="shadow_type">GTK_SHADOW_NONE</property>
<child> <child>
<widget class="GtkVBox" id="vbox6"> <widget class="GtkVBox" id="vbox6">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<child> <child>
<widget class="GtkLabel" id="label36"> <widget class="GtkLabel" id="label36">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">&lt;b&gt;Warning - Changes to these settings will only be applied the next time Deluge is restarted&lt;/b&gt;</property> <property name="label" translatable="yes">&lt;b&gt;Warning - Changes to these settings will only be applied the next time Deluge is restarted&lt;/b&gt;</property>
<property name="use_markup">True</property> <property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_CENTER</property> <property name="justify">GTK_JUSTIFY_CENTER</property>
@ -343,13 +320,11 @@
<child> <child>
<widget class="GtkFrame" id="frame8"> <widget class="GtkFrame" id="frame8">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label_xalign">0</property> <property name="label_xalign">0</property>
<property name="shadow_type">GTK_SHADOW_NONE</property> <property name="shadow_type">GTK_SHADOW_NONE</property>
<child> <child>
<widget class="GtkAlignment" id="alignment8"> <widget class="GtkAlignment" id="alignment8">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="left_padding">12</property> <property name="left_padding">12</property>
<child> <child>
<widget class="GtkTable" id="table6"> <widget class="GtkTable" id="table6">
@ -363,6 +338,7 @@
<widget class="GtkButton" id="btn_test_port"> <widget class="GtkButton" id="btn_test_port">
<property name="visible">True</property> <property name="visible">True</property>
<property name="label" translatable="yes">Test Port</property> <property name="label" translatable="yes">Test Port</property>
<property name="use_underline">True</property>
</widget> </widget>
<packing> <packing>
<property name="left_attach">3</property> <property name="left_attach">3</property>
@ -399,8 +375,8 @@
<widget class="GtkSpinButton" id="spin_port_max"> <widget class="GtkSpinButton" id="spin_port_max">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="xalign">0.5</property>
<property name="adjustment">0 0 65535 1 10 10</property> <property name="adjustment">0 0 65535 1 10 10</property>
<property name="climb_rate">1</property>
</widget> </widget>
<packing> <packing>
<property name="left_attach">3</property> <property name="left_attach">3</property>
@ -411,8 +387,8 @@
<widget class="GtkSpinButton" id="spin_port_min"> <widget class="GtkSpinButton" id="spin_port_min">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="xalign">0.5</property>
<property name="adjustment">0 0 65535 1 10 10</property> <property name="adjustment">0 0 65535 1 10 10</property>
<property name="climb_rate">1</property>
</widget> </widget>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">1</property>
@ -442,7 +418,6 @@
<child> <child>
<widget class="GtkLabel" id="label25"> <widget class="GtkLabel" id="label25">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">&lt;b&gt;TCP Port&lt;/b&gt;</property> <property name="label" translatable="yes">&lt;b&gt;TCP Port&lt;/b&gt;</property>
<property name="use_markup">True</property> <property name="use_markup">True</property>
</widget> </widget>
@ -459,20 +434,18 @@
<child> <child>
<widget class="GtkFrame" id="frame11"> <widget class="GtkFrame" id="frame11">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label_xalign">0</property> <property name="label_xalign">0</property>
<property name="shadow_type">GTK_SHADOW_NONE</property> <property name="shadow_type">GTK_SHADOW_NONE</property>
<child> <child>
<widget class="GtkAlignment" id="alignment11"> <widget class="GtkAlignment" id="alignment11">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="left_padding">12</property> <property name="left_padding">12</property>
<child> <child>
<widget class="GtkCheckButton" id="chk_upnp"> <widget class="GtkCheckButton" id="chk_upnp">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Enable UPnP support</property> <property name="label" translatable="yes">Enable UPnP support</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
</widget> </widget>
</child> </child>
@ -481,7 +454,6 @@
<child> <child>
<widget class="GtkLabel" id="label21"> <widget class="GtkLabel" id="label21">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">&lt;b&gt;UPnP&lt;/b&gt;</property> <property name="label" translatable="yes">&lt;b&gt;UPnP&lt;/b&gt;</property>
<property name="use_markup">True</property> <property name="use_markup">True</property>
</widget> </widget>
@ -498,26 +470,23 @@
<child> <child>
<widget class="GtkFrame" id="frame9"> <widget class="GtkFrame" id="frame9">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label_xalign">0</property> <property name="label_xalign">0</property>
<property name="shadow_type">GTK_SHADOW_NONE</property> <property name="shadow_type">GTK_SHADOW_NONE</property>
<child> <child>
<widget class="GtkAlignment" id="alignment9"> <widget class="GtkAlignment" id="alignment9">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="left_padding">12</property> <property name="left_padding">12</property>
<child> <child>
<widget class="GtkTable" id="table8"> <widget class="GtkTable" id="table8">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="n_rows">2</property> <property name="n_rows">2</property>
<property name="n_columns">2</property> <property name="n_columns">2</property>
<child> <child>
<widget class="GtkCheckButton" id="chk_dht"> <widget class="GtkCheckButton" id="chk_dht">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Enable Mainline DHT</property> <property name="label" translatable="yes">Enable Mainline DHT</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
</widget> </widget>
<packing> <packing>
@ -527,7 +496,6 @@
<child> <child>
<widget class="GtkLabel" id="label13"> <widget class="GtkLabel" id="label13">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Max number of DHT connections:</property> <property name="label" translatable="yes">Max number of DHT connections:</property>
</widget> </widget>
<packing> <packing>
@ -540,15 +508,15 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="xalign">1</property>
<property name="adjustment">0 0 100 1 10 10</property> <property name="adjustment">0 0 100 1 10 10</property>
<property name="climb_rate">1</property>
</widget> </widget>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">1</property>
<property name="right_attach">2</property> <property name="right_attach">2</property>
<property name="top_attach">1</property> <property name="top_attach">1</property>
<property name="bottom_attach">2</property> <property name="bottom_attach">2</property>
<property name="x_options">GTK_FILL</property> <property name="x_options"></property>
</packing> </packing>
</child> </child>
</widget> </widget>
@ -558,7 +526,6 @@
<child> <child>
<widget class="GtkLabel" id="label16"> <widget class="GtkLabel" id="label16">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">&lt;b&gt;DHT&lt;/b&gt;</property> <property name="label" translatable="yes">&lt;b&gt;DHT&lt;/b&gt;</property>
<property name="use_markup">True</property> <property name="use_markup">True</property>
</widget> </widget>
@ -591,7 +558,6 @@
<child> <child>
<widget class="GtkLabel" id="label14"> <widget class="GtkLabel" id="label14">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Network</property> <property name="label" translatable="yes">Network</property>
</widget> </widget>
<packing> <packing>
@ -605,29 +571,24 @@
<widget class="GtkScrolledWindow" id="scroll_bandwidth"> <widget class="GtkScrolledWindow" id="scroll_bandwidth">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<child> <child>
<widget class="GtkViewport" id="viewport6"> <widget class="GtkViewport" id="viewport6">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="resize_mode">GTK_RESIZE_QUEUE</property>
<property name="shadow_type">GTK_SHADOW_NONE</property> <property name="shadow_type">GTK_SHADOW_NONE</property>
<child> <child>
<widget class="GtkVBox" id="vbox7"> <widget class="GtkVBox" id="vbox7">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<child> <child>
<widget class="GtkFrame" id="frame5"> <widget class="GtkFrame" id="frame5">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label_xalign">0</property> <property name="label_xalign">0</property>
<property name="shadow_type">GTK_SHADOW_NONE</property> <property name="shadow_type">GTK_SHADOW_NONE</property>
<child> <child>
<widget class="GtkAlignment" id="alignment5"> <widget class="GtkAlignment" id="alignment5">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="left_padding">12</property> <property name="left_padding">12</property>
<child> <child>
<widget class="GtkTable" id="table5"> <widget class="GtkTable" id="table5">
@ -673,9 +634,8 @@
<widget class="GtkSpinButton" id="spin_max_upload"> <widget class="GtkSpinButton" id="spin_max_upload">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="width_chars">10</property>
<property name="xalign">1</property>
<property name="adjustment">-1 -1 1024 1 10 10</property> <property name="adjustment">-1 -1 1024 1 10 10</property>
<property name="climb_rate">1</property>
</widget> </widget>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">1</property>
@ -700,9 +660,8 @@
<widget class="GtkSpinButton" id="spin_num_download"> <widget class="GtkSpinButton" id="spin_num_download">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="width_chars">10</property>
<property name="xalign">1</property>
<property name="adjustment">-1 -1 100 1 10 10</property> <property name="adjustment">-1 -1 100 1 10 10</property>
<property name="climb_rate">1</property>
</widget> </widget>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">1</property>
@ -749,9 +708,8 @@
<widget class="GtkSpinButton" id="spin_num_upload"> <widget class="GtkSpinButton" id="spin_num_upload">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="width_chars">10</property>
<property name="xalign">1</property>
<property name="adjustment">-1 -1 100 1 10 10</property> <property name="adjustment">-1 -1 100 1 10 10</property>
<property name="climb_rate">1</property>
</widget> </widget>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">1</property>
@ -765,9 +723,8 @@
<widget class="GtkSpinButton" id="spin_max_download"> <widget class="GtkSpinButton" id="spin_max_download">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="width_chars">10</property>
<property name="xalign">1</property>
<property name="adjustment">-1 -1 2048 1 10 10</property> <property name="adjustment">-1 -1 2048 1 10 10</property>
<property name="climb_rate">1</property>
</widget> </widget>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">1</property>
@ -807,7 +764,6 @@
<child> <child>
<widget class="GtkLabel" id="label31"> <widget class="GtkLabel" id="label31">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">&lt;b&gt;Bandwidth Usage&lt;/b&gt;</property> <property name="label" translatable="yes">&lt;b&gt;Bandwidth Usage&lt;/b&gt;</property>
<property name="use_markup">True</property> <property name="use_markup">True</property>
</widget> </widget>
@ -839,7 +795,6 @@
<child> <child>
<widget class="GtkLabel" id="label12"> <widget class="GtkLabel" id="label12">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Bandwidth</property> <property name="label" translatable="yes">Bandwidth</property>
</widget> </widget>
<packing> <packing>
@ -853,39 +808,70 @@
<widget class="GtkScrolledWindow" id="scroll_other"> <widget class="GtkScrolledWindow" id="scroll_other">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<child> <child>
<widget class="GtkViewport" id="viewport7"> <widget class="GtkViewport" id="viewport7">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="resize_mode">GTK_RESIZE_QUEUE</property>
<property name="shadow_type">GTK_SHADOW_NONE</property> <property name="shadow_type">GTK_SHADOW_NONE</property>
<child> <child>
<widget class="GtkVBox" id="vbox8"> <widget class="GtkVBox" id="vbox8">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<child> <child>
<widget class="GtkFrame" id="frame3"> <widget class="GtkFrame" id="frame3">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label_xalign">0</property> <property name="label_xalign">0</property>
<property name="shadow_type">GTK_SHADOW_NONE</property> <property name="shadow_type">GTK_SHADOW_NONE</property>
<child> <child>
<widget class="GtkAlignment" id="alignment3"> <widget class="GtkAlignment" id="alignment3">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="left_padding">12</property> <property name="left_padding">12</property>
<child> <child>
<widget class="GtkTable" id="table3"> <widget class="GtkTable" id="table3">
<property name="visible">True</property> <property name="visible">True</property>
<property name="n_rows">2</property> <property name="n_rows">3</property>
<property name="n_columns">2</property> <property name="n_columns">2</property>
<child>
<widget class="GtkEntry" id="txt_tray_passwd">
<property name="visibility">False</property>
<property name="editable">True</property>
<property name="visibility">False</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkCheckButton" id="chk_lock_tray">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Password protect system tray</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="top_attach">2</property>
<property name="bottom_attach">3</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
<property name="x_padding">12</property>
</packing>
</child>
<child> <child>
<widget class="GtkCheckButton" id="chk_min_on_close"> <widget class="GtkCheckButton" id="chk_min_on_close">
<property name="visible">True</property> <property name="visible">True</property>
<property name="label" translatable="yes">Minimize to tray on close</property> <property name="label" translatable="yes">Minimize to tray on close</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
</widget> </widget>
<packing> <packing>
@ -899,6 +885,7 @@
<widget class="GtkCheckButton" id="chk_use_tray"> <widget class="GtkCheckButton" id="chk_use_tray">
<property name="visible">True</property> <property name="visible">True</property>
<property name="label" translatable="yes">Enable system tray icon</property> <property name="label" translatable="yes">Enable system tray icon</property>
<property name="use_underline">True</property>
<property name="active">True</property> <property name="active">True</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
</widget> </widget>
@ -913,7 +900,6 @@
<child> <child>
<widget class="GtkLabel" id="label19"> <widget class="GtkLabel" id="label19">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">&lt;b&gt;System Tray&lt;/b&gt;</property> <property name="label" translatable="yes">&lt;b&gt;System Tray&lt;/b&gt;</property>
<property name="use_markup">True</property> <property name="use_markup">True</property>
</widget> </widget>
@ -929,24 +915,20 @@
<child> <child>
<widget class="GtkFrame" id="frame4"> <widget class="GtkFrame" id="frame4">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label_xalign">0</property> <property name="label_xalign">0</property>
<property name="shadow_type">GTK_SHADOW_NONE</property> <property name="shadow_type">GTK_SHADOW_NONE</property>
<child> <child>
<widget class="GtkAlignment" id="alignment4"> <widget class="GtkAlignment" id="alignment4">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="left_padding">12</property> <property name="left_padding">12</property>
<child> <child>
<widget class="GtkTable" id="table4"> <widget class="GtkTable" id="table4">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="n_rows">1</property> <property name="n_rows">1</property>
<property name="n_columns">3</property> <property name="n_columns">3</property>
<child> <child>
<widget class="GtkLabel" id="label28"> <widget class="GtkLabel" id="label28">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="xalign">0</property> <property name="xalign">0</property>
<property name="label" translatable="yes">GUI update interval</property> <property name="label" translatable="yes">GUI update interval</property>
</widget> </widget>
@ -956,21 +938,20 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="editable">False</property>
<property name="adjustment">0.5 0.5 5 0.5 0.5 1</property> <property name="adjustment">0.5 0.5 5 0.5 0.5 1</property>
<property name="climb_rate">1</property>
<property name="digits">1</property> <property name="digits">1</property>
<property name="snap_to_ticks">True</property> <property name="snap_to_ticks">True</property>
</widget> </widget>
<packing> <packing>
<property name="left_attach">1</property> <property name="left_attach">1</property>
<property name="right_attach">2</property> <property name="right_attach">2</property>
<property name="x_options">GTK_FILL</property> <property name="x_options"></property>
</packing> </packing>
</child> </child>
<child> <child>
<widget class="GtkLabel" id="label30"> <widget class="GtkLabel" id="label30">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">seconds</property> <property name="label" translatable="yes">seconds</property>
</widget> </widget>
<packing> <packing>
@ -986,7 +967,6 @@
<child> <child>
<widget class="GtkLabel" id="label20"> <widget class="GtkLabel" id="label20">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">&lt;b&gt;Performance&lt;/b&gt;</property> <property name="label" translatable="yes">&lt;b&gt;Performance&lt;/b&gt;</property>
<property name="use_markup">True</property> <property name="use_markup">True</property>
</widget> </widget>
@ -1016,7 +996,6 @@
<child> <child>
<widget class="GtkLabel" id="label10"> <widget class="GtkLabel" id="label10">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="label" translatable="yes">Other</property> <property name="label" translatable="yes">Other</property>
</widget> </widget>
<packing> <packing>
@ -1028,25 +1007,24 @@
</child> </child>
</widget> </widget>
<packing> <packing>
<property name="position">1</property> <property name="position">2</property>
</packing> </packing>
</child> </child>
<child internal-child="action_area"> <child internal-child="action_area">
<widget class="GtkHButtonBox" id="dialog-action_area3"> <widget class="GtkHButtonBox" id="dialog-action_area3">
<property name="visible">True</property> <property name="visible">True</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="layout_style">GTK_BUTTONBOX_END</property> <property name="layout_style">GTK_BUTTONBOX_END</property>
<child> <child>
<widget class="GtkButton" id="button2"> <widget class="GtkButton" id="button2">
<property name="visible">True</property> <property name="visible">True</property>
<property name="label" translatable="yes">gtk-cancel</property> <property name="label">gtk-cancel</property>
<property name="use_stock">True</property> <property name="use_stock">True</property>
</widget> </widget>
</child> </child>
<child> <child>
<widget class="GtkButton" id="button1"> <widget class="GtkButton" id="button1">
<property name="visible">True</property> <property name="visible">True</property>
<property name="label" translatable="yes">gtk-ok</property> <property name="label">gtk-ok</property>
<property name="use_stock">True</property> <property name="use_stock">True</property>
<property name="response_id">1</property> <property name="response_id">1</property>
</widget> </widget>

View File

@ -40,6 +40,8 @@ class PreferencesDlg:
try: try:
self.glade.get_widget("chk_use_tray").set_active(self.preferences.get("enable_system_tray", bool, default=True)) self.glade.get_widget("chk_use_tray").set_active(self.preferences.get("enable_system_tray", bool, default=True))
self.glade.get_widget("chk_min_on_close").set_active(self.preferences.get("close_to_tray", bool, default=False)) self.glade.get_widget("chk_min_on_close").set_active(self.preferences.get("close_to_tray", bool, default=False))
self.glade.get_widget("chk_lock_tray").set_active(self.preferences.get("lock_tray", bool, default=False))
self.glade.get_widget("txt_tray_passwd").set_text(self.preferences.get("tray_passwd", default=""))
if(self.preferences.get("use_default_dir", bool, False)): if(self.preferences.get("use_default_dir", bool, False)):
self.glade.get_widget("radio_save_all_to").set_active(True) self.glade.get_widget("radio_save_all_to").set_active(True)
else: else:
@ -72,6 +74,8 @@ class PreferencesDlg:
if r == 1: if r == 1:
self.preferences.set("enable_system_tray", self.glade.get_widget("chk_use_tray").get_active()) self.preferences.set("enable_system_tray", self.glade.get_widget("chk_use_tray").get_active())
self.preferences.set("close_to_tray", self.glade.get_widget("chk_min_on_close").get_active()) self.preferences.set("close_to_tray", self.glade.get_widget("chk_min_on_close").get_active())
self.preferences.set("lock_tray", self.glade.get_widget("chk_lock_tray").get_active())
self.preferences.set("tray_passwd", self.glade.get_widget("txt_tray_passwd").get_text())
self.preferences.set("use_default_dir", self.glade.get_widget("radio_save_all_to").get_active()) self.preferences.set("use_default_dir", self.glade.get_widget("radio_save_all_to").get_active())
self.preferences.set("default_download_path", self.glade.get_widget("download_path_button").get_filename()) self.preferences.set("default_download_path", self.glade.get_widget("download_path_button").get_filename())
self.preferences.set("auto_end_seeding", self.glade.get_widget("chk_autoseed").get_active()) self.preferences.set("auto_end_seeding", self.glade.get_widget("chk_autoseed").get_active())

View File

@ -230,6 +230,40 @@ class DelugeGTK:
def tray_popup(self, status_icon, button, activate_time): def tray_popup(self, status_icon, button, activate_time):
self.tray_menu.popup(None, None, gtk.status_icon_position_menu, self.tray_menu.popup(None, None, gtk.status_icon_position_menu,
button, activate_time, status_icon) button, activate_time, status_icon)
def unlock_tray(self,comingnext):
entered_pass = gtk.Entry(25)
entered_pass.set_activates_default(True)
entered_pass.set_width_chars(25)
entered_pass.set_visibility(False)
entered_pass.show()
tray_lock = gtk.Dialog(title=_("Deluge is locked"), parent=self.window,
buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
label = gtk.Label(_("Deluge is password protected.\nTo show the Deluge window, please enter your password"))
label.set_line_wrap(True)
label.set_justify(gtk.JUSTIFY_CENTER)
tray_lock.set_position(gtk.WIN_POS_CENTER_ALWAYS)
tray_lock.set_size_request(400, 200)
tray_lock.set_default_response(gtk.RESPONSE_ACCEPT)
tray_lock.vbox.pack_start(label)
tray_lock.vbox.pack_start(entered_pass)
tray_lock.show_all()
if tray_lock.run() == gtk.RESPONSE_ACCEPT:
if self.config.get("tray_passwd", default="") == entered_pass.get_text():
if comingnext == "mainwinshow":
self.window.show()
elif comingnext == "prefwinshow":
self.preferences_dialog.show()
self.apply_prefs()
self.config.save_to_file()
elif comingnext == "quitus":
self.save_window_geometry()
self.window.hide()
self.shutdown()
tray_lock.destroy()
return True
def tray_clicked(self, status_icon): def tray_clicked(self, status_icon):
if self.window.get_property("visible"): if self.window.get_property("visible"):
@ -238,13 +272,19 @@ class DelugeGTK:
else: else:
self.window.present() self.window.present()
else: else:
self.window.show() if self.config.get("lock_tray", bool, default=False) == True:
self.unlock_tray("mainwinshow")
else:
self.window.show()
def force_show_hide(self, arg=None): def force_show_hide(self, arg=None):
if self.window.get_property("visible"): if self.window.get_property("visible"):
self.window.hide() self.window.hide()
else: else:
self.window.show() if self.config.get("lock_tray", bool, default=False) == True:
self.unlock_tray("mainwinshow")
else:
self.window.show()
def build_torrent_table(self): def build_torrent_table(self):
## Create the torrent listview ## Create the torrent listview
@ -354,13 +394,13 @@ class DelugeGTK:
if file_filter is None: if file_filter is None:
file_filter = [False] * len(all_files) file_filter = [False] * len(all_files)
assert(len(all_files) == len(file_filter)) assert(len(all_files) == len(file_filter))
i=0 i=0
for f in all_files: for f in all_files:
self.file_store.append([not file_filter[i], f['path'], common.fsize(f['size']), self.file_store.append([not file_filter[i], f['path'], common.fsize(f['size']),
f['offset'], '%.2f%%'%f['progress']]) f['offset'], '%.2f%%'%f['progress']])
i=i+1 i=i+1
return True return True
def torrent_view_clicked(self, widget, event): def torrent_view_clicked(self, widget, event):
print widget print widget
@ -460,10 +500,19 @@ class DelugeGTK:
dialogs.show_about_dialog() dialogs.show_about_dialog()
def show_pref_dialog(self, arg=None): def show_pref_dialog(self, arg=None):
self.preferences_dialog.show() if self.window.get_property("visible"):
self.apply_prefs() self.preferences_dialog.show()
self.config.save_to_file() self.apply_prefs()
self.config.save_to_file()
else:
if self.config.get("lock_tray", bool, default=False) == True:
self.unlock_tray("prefwinshow")
else:
self.preferences_dialog.show()
self.apply_prefs()
self.config.save_to_file()
def show_plugin_dialog(self, arg=None): def show_plugin_dialog(self, arg=None):
self.plugin_dialog.show() self.plugin_dialog.show()
@ -507,10 +556,10 @@ class DelugeGTK:
# UID, Q#, Name, Size, Progress, Message, Seeders, Peers, DL, UL, ETA, Share # UID, Q#, Name, Size, Progress, Message, Seeders, Peers, DL, UL, ETA, Share
def get_list_from_unique_id(self, unique_id): def get_list_from_unique_id(self, unique_id):
state = self.manager.get_torrent_state(unique_id) state = self.manager.get_torrent_state(unique_id)
queue = int(state['queue_pos']) + 1 queue = int(state['queue_pos']) + 1
name = state['name'] name = state['name']
size = long(state['total_size']) size = long(state['total_size'])
progress = float(state['progress'] * 100) progress = float(state['progress'] * 100)
message = self.get_message_from_state(state) message = self.get_message_from_state(state)
@ -587,19 +636,15 @@ class DelugeGTK:
dlrate, _('Upload'), ulrate) dlrate, _('Upload'), ulrate)
if 'DHT_nodes' in core_state.keys(): if 'DHT_nodes' in core_state.keys():
dht_peers = core_state['DHT_nodes'] dht_peers = str(dht_peers)
if dht_peers == -1: self.statusbar_temp_msg = self.statusbar_temp_msg + ' [DHT: %s]'%(dht_peers)
dht_peers = '?'
else:
dht_peers = str(dht_peers)
self.statusbar_temp_msg = self.statusbar_temp_msg + ' [DHT: %s]'%(dht_peers)
msg = _("Deluge Bittorrent Client") + "\n" + \
_("Connections") + ": " + str(connections) + "\n" + _("Download") + ": " + \
dlrate + "\n" + _("Upload") + ": " + ulrate
self.tray_icon.set_tooltip(msg)
msg = _("Deluge Bittorrent Client") + "\n" + \
_("Connections") + ": " + str(connections) + "\n" + _("Download") + ": " + \
dlrate + "\n" + _("Upload") + ": " + ulrate
self.tray_icon.set_tooltip(msg)
#Update any active plugins #Update any active plugins
self.plugins.update_active_plugins() self.plugins.update_active_plugins()
@ -787,9 +832,9 @@ class DelugeGTK:
except core.InsufficientFreeSpaceError, e: except core.InsufficientFreeSpaceError, e:
nice_need = common.fsize(e.needed_space) nice_need = common.fsize(e.needed_space)
nice_free = common.fsize(e.free_space) nice_free = common.fsize(e.free_space)
dialogs.show_popup_warning(self.window, _("There is not enough free disk space to complete your download.") + "\n" + \ dialogs.show_popup_warning(self.window, _("There is not enough free disk space to complete your download.") + "\n" + \
_("Space Needed:") + " " + nice_need + "\n" + \ _("Space Needed:") + " " + nice_need + "\n" + \
_("Available Space:") + " " + nice_free) _("Available Space:") + " " + nice_free)
@ -869,9 +914,9 @@ class DelugeGTK:
def remove_toggle_warning(self, args, warning): def remove_toggle_warning(self, args, warning):
if not args.get_active(): if not args.get_active():
warning.set_text(" ") warning.set_text(" ")
else: else:
warning.set_markup("<i>" + _("Warning - all downloaded files for this torrent will be deleted!") + "</i>") warning.set_markup("<i>" + _("Warning - all downloaded files for this torrent will be deleted!") + "</i>")
return False return False
def update_tracker(self, obj=None): def update_tracker(self, obj=None):
torrent = self.get_selected_torrent() torrent = self.get_selected_torrent()
@ -988,9 +1033,19 @@ class DelugeGTK:
self.quit() self.quit()
def quit(self, widget=None): def quit(self, widget=None):
self.save_window_geometry() if self.window.get_property("visible"):
self.window.hide() self.save_window_geometry()
self.shutdown() self.window.hide()
self.shutdown()
else:
if self.config.get("lock_tray", bool, default=False) == True:
self.unlock_tray("quitus")
else:
self.save_window_geometry()
self.window.hide()
self.shutdown()
def shutdown(self): def shutdown(self):
enabled_plugins = ':'.join(self.plugins.get_enabled_plugins()) enabled_plugins = ':'.join(self.plugins.get_enabled_plugins())
@ -1001,9 +1056,6 @@ class DelugeGTK:
self.manager.quit() self.manager.quit()
gtk.main_quit() gtk.main_quit()
## For testing purposes, create a copy of the interface ## For testing purposes, create a copy of the interface
if __name__ == "__main__": if __name__ == "__main__":
interface = DelugeGTK() interface = DelugeGTK()