1
0
mirror of https://github.com/gryf/wicd.git synced 2026-01-09 07:14:13 +01:00

merged notifications branch

This commit is contained in:
Adam Blackburn
2009-05-05 11:58:36 +08:00
6 changed files with 297 additions and 110 deletions

View File

@@ -1,25 +1,23 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0"?>
<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
<!--Generated with glade3 3.4.5 on Sun Feb 1 21:38:09 2009 -->
<glade-interface> <glade-interface>
<!-- interface-requires gtk+ 2.16 -->
<!-- interface-naming-policy toplevel-contextual -->
<widget class="GtkWindow" id="window1"> <widget class="GtkWindow" id="window1">
<property name="width_request">450</property> <property name="width_request">450</property>
<property name="height_request">400</property> <property name="height_request">400</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="title" translatable="yes">Wicd Network Manager</property> <property name="title" translatable="yes">Wicd Network Manager</property>
<property name="window_position">GTK_WIN_POS_CENTER</property> <property name="window_position">center</property>
<property name="default_width">550</property> <property name="default_width">550</property>
<property name="gravity">GDK_GRAVITY_CENTER</property> <property name="gravity">center</property>
<signal name="destroy" handler="exit"/>
<signal name="delete_event" handler="exit"/>
<child> <child>
<widget class="GtkVBox" id="background_vbox"> <widget class="GtkVBox" id="background_vbox">
<property name="visible">True</property> <property name="visible">True</property>
<child> <child>
<widget class="GtkToolbar" id="toolbar"> <widget class="GtkToolbar" id="toolbar">
<property name="visible">True</property> <property name="visible">True</property>
<property name="toolbar_style">GTK_TOOLBAR_BOTH_HORIZ</property> <property name="toolbar_style">both-horiz</property>
<property name="icon_size">GTK_ICON_SIZE_MENU</property> <property name="icon_size">0</property>
<property name="icon_size_set">True</property> <property name="icon_size_set">True</property>
<child> <child>
<widget class="GtkToolItem" id="menubar"> <widget class="GtkToolItem" id="menubar">
@@ -31,8 +29,8 @@
<property name="visible">True</property> <property name="visible">True</property>
<child> <child>
<widget class="GtkImageMenuItem" id="network_menu"> <widget class="GtkImageMenuItem" id="network_menu">
<property name="label">gtk-network</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="label" translatable="yes">gtk-network</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="use_stock">True</property> <property name="use_stock">True</property>
<child> <child>
@@ -40,12 +38,12 @@
<property name="visible">True</property> <property name="visible">True</property>
<child> <child>
<widget class="GtkImageMenuItem" id="create_ad_hoc_button"> <widget class="GtkImageMenuItem" id="create_ad_hoc_button">
<property name="label">Create an ad-hoc network</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="label" translatable="yes">Create an ad-hoc network</property> <property name="use_stock">False</property>
<property name="use_underline">True</property>
<signal name="activate" handler="create_adhoc_clicked"/> <signal name="activate" handler="create_adhoc_clicked"/>
<child internal-child="image"> <child internal-child="image">
<widget class="GtkImage" id="menu-item-image10"> <widget class="GtkImage" id="image1">
<property name="visible">True</property> <property name="visible">True</property>
<property name="stock">gtk-add</property> <property name="stock">gtk-add</property>
</widget> </widget>
@@ -54,15 +52,15 @@
</child> </child>
<child> <child>
<widget class="GtkImageMenuItem" id="find_hidden_button"> <widget class="GtkImageMenuItem" id="find_hidden_button">
<property name="label">Find a hidden network</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="tooltip" translatable="yes">Enter a hidden network to try to locate.</property> <property name="tooltip" translatable="yes">Enter a hidden network to try to locate.</property>
<property name="label" translatable="yes">Find a hidden network</property> <property name="use_stock">False</property>
<property name="use_underline">True</property>
<signal name="activate" handler="hidden_clicked"/> <signal name="activate" handler="hidden_clicked"/>
<child internal-child="image"> <child internal-child="image">
<widget class="GtkImage" id="menu-item-image9"> <widget class="GtkImage" id="image2">
<property name="visible">True</property> <property name="visible">True</property>
<property name="icon_name">network-wireless</property> <property name="stock">gtk-find</property>
</widget> </widget>
</child> </child>
</widget> </widget>
@@ -74,6 +72,9 @@
</widget> </widget>
</child> </child>
</widget> </widget>
<packing>
<property name="expand">False</property>
</packing>
</child> </child>
<child> <child>
<widget class="GtkToolButton" id="disconnect_button"> <widget class="GtkToolButton" id="disconnect_button">
@@ -86,6 +87,7 @@
<signal name="clicked" handler="disconnect_clicked"/> <signal name="clicked" handler="disconnect_clicked"/>
</widget> </widget>
<packing> <packing>
<property name="expand">False</property>
<property name="homogeneous">True</property> <property name="homogeneous">True</property>
</packing> </packing>
</child> </child>
@@ -99,6 +101,7 @@
<signal name="clicked" handler="refresh_clicked"/> <signal name="clicked" handler="refresh_clicked"/>
</widget> </widget>
<packing> <packing>
<property name="expand">False</property>
<property name="homogeneous">True</property> <property name="homogeneous">True</property>
</packing> </packing>
</child> </child>
@@ -112,6 +115,7 @@
<signal name="clicked" handler="preferences_clicked"/> <signal name="clicked" handler="preferences_clicked"/>
</widget> </widget>
<packing> <packing>
<property name="expand">False</property>
<property name="homogeneous">True</property> <property name="homogeneous">True</property>
</packing> </packing>
</child> </child>
@@ -125,6 +129,7 @@
<signal name="clicked" handler="about_clicked"/> <signal name="clicked" handler="about_clicked"/>
</widget> </widget>
<packing> <packing>
<property name="expand">False</property>
<property name="homogeneous">True</property> <property name="homogeneous">True</property>
</packing> </packing>
</child> </child>
@@ -139,12 +144,14 @@
<signal name="clicked" handler="quit_clicked"/> <signal name="clicked" handler="quit_clicked"/>
</widget> </widget>
<packing> <packing>
<property name="expand">False</property>
<property name="homogeneous">True</property> <property name="homogeneous">True</property>
</packing> </packing>
</child> </child>
</widget> </widget>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="position">0</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -165,12 +172,12 @@
<widget class="GtkScrolledWindow" id="scrolledwindow"> <widget class="GtkScrolledWindow" id="scrolledwindow">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="hscrollbar_policy">automatic</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="vscrollbar_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="shadow_type">GTK_SHADOW_NONE</property> <property name="shadow_type">none</property>
<child> <child>
<widget class="GtkVBox" id="network_list_vbox"> <widget class="GtkVBox" id="network_list_vbox">
<property name="visible">True</property> <property name="visible">True</property>
@@ -198,15 +205,17 @@
</widget> </widget>
<packing> <packing>
<property name="padding">3</property> <property name="padding">3</property>
<property name="position">0</property>
</packing> </packing>
</child> </child>
<child> <child>
<widget class="GtkButton" id="cancel_button"> <widget class="GtkButton" id="cancel_button">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Cancel the current connection attempt</property>
<property name="label" translatable="yes">gtk-cancel</property> <property name="label" translatable="yes">gtk-cancel</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="receives_default">False</property>
<property name="tooltip" translatable="yes">Cancel the current connection attempt</property>
<property name="use_stock">True</property> <property name="use_stock">True</property>
<property name="response_id">0</property>
<signal name="clicked" handler="cancel_clicked"/> <signal name="clicked" handler="cancel_clicked"/>
</widget> </widget>
<packing> <packing>
@@ -238,8 +247,8 @@
<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="border_width">5</property> <property name="border_width">5</property>
<property name="title" translatable="yes">Configure Scripts</property> <property name="title" translatable="yes">Configure Scripts</property>
<property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property> <property name="window_position">center-on-parent</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> <property name="type_hint">dialog</property>
<property name="has_separator">False</property> <property name="has_separator">False</property>
<child internal-child="vbox"> <child internal-child="vbox">
<widget class="GtkVBox" id="dialog-vbox2"> <widget class="GtkVBox" id="dialog-vbox2">
@@ -259,6 +268,7 @@
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">False</property> <property name="fill">False</property>
<property name="position">0</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -272,6 +282,9 @@
<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="label" translatable="yes">Pre-connection Script:</property> <property name="label" translatable="yes">Pre-connection Script:</property>
</widget> </widget>
<packing>
<property name="position">0</property>
</packing>
</child> </child>
<child> <child>
<widget class="GtkEntry" id="pre_entry"> <widget class="GtkEntry" id="pre_entry">
@@ -302,6 +315,9 @@
<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="label" translatable="yes">Post-connection Script:</property> <property name="label" translatable="yes">Post-connection Script:</property>
</widget> </widget>
<packing>
<property name="position">0</property>
</packing>
</child> </child>
<child> <child>
<widget class="GtkEntry" id="post_entry"> <widget class="GtkEntry" id="post_entry">
@@ -332,6 +348,9 @@
<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="label" translatable="yes">Disconnection Script:</property> <property name="label" translatable="yes">Disconnection Script:</property>
</widget> </widget>
<packing>
<property name="position">0</property>
</packing>
</child> </child>
<child> <child>
<widget class="GtkEntry" id="disconnect_entry"> <widget class="GtkEntry" id="disconnect_entry">
@@ -359,32 +378,41 @@
<child internal-child="action_area"> <child internal-child="action_area">
<widget class="GtkHButtonBox" id="dialog-action_area2"> <widget class="GtkHButtonBox" id="dialog-action_area2">
<property name="visible">True</property> <property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property> <property name="layout_style">end</property>
<child> <child>
<widget class="GtkButton" id="button3"> <widget class="GtkButton" id="button3">
<property name="label">gtk-cancel</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="label">gtk-cancel</property> <property name="receives_default">False</property>
<property name="use_stock">True</property> <property name="use_stock">True</property>
<property name="response_id">0</property>
</widget> </widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child> </child>
<child> <child>
<widget class="GtkButton" id="button4"> <widget class="GtkButton" id="button4">
<property name="label">gtk-ok</property>
<property name="response_id">1</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="label">gtk-ok</property> <property name="receives_default">False</property>
<property name="use_stock">True</property> <property name="use_stock">True</property>
<property name="response_id">1</property>
</widget> </widget>
<packing> <packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
</widget> </widget>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="pack_type">GTK_PACK_END</property> <property name="pack_type">end</property>
<property name="position">0</property>
</packing> </packing>
</child> </child>
</widget> </widget>
@@ -392,8 +420,8 @@
</widget> </widget>
<widget class="GtkDialog" id="pref_dialog"> <widget class="GtkDialog" id="pref_dialog">
<property name="border_width">5</property> <property name="border_width">5</property>
<property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property> <property name="window_position">center-on-parent</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> <property name="type_hint">dialog</property>
<property name="has_separator">False</property> <property name="has_separator">False</property>
<child internal-child="vbox"> <child internal-child="vbox">
<widget class="GtkVBox" id="dialog-vbox5"> <widget class="GtkVBox" id="dialog-vbox5">
@@ -414,17 +442,17 @@
<widget class="GtkScrolledWindow" id="scrolledwindow2"> <widget class="GtkScrolledWindow" id="scrolledwindow2">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="hscrollbar_policy">automatic</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="vscrollbar_policy">automatic</property>
<child> <child>
<widget class="GtkViewport" id="viewport3"> <widget class="GtkViewport" id="viewport3">
<property name="visible">True</property> <property name="visible">True</property>
<property name="resize_mode">GTK_RESIZE_QUEUE</property> <property name="resize_mode">queue</property>
<property name="shadow_type">GTK_SHADOW_NONE</property> <property name="shadow_type">none</property>
<child> <child>
<widget class="GtkTable" id="table1"> <widget class="GtkTable" id="table1">
<property name="visible">True</property> <property name="visible">True</property>
<property name="n_rows">18</property> <property name="n_rows">20</property>
<property name="n_columns">2</property> <property name="n_columns">2</property>
<property name="column_spacing">4</property> <property name="column_spacing">4</property>
<property name="row_spacing">4</property> <property name="row_spacing">4</property>
@@ -433,14 +461,14 @@
<property name="visible">True</property> <property name="visible">True</property>
<child> <child>
<widget class="GtkCheckButton" id="pref_prefer_wired_check"> <widget class="GtkCheckButton" id="pref_prefer_wired_check">
<property name="label" translatable="yes">Always switch to a wired connection when available</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="has_tooltip">True</property> <property name="has_tooltip">True</property>
<property name="tooltip" translatable="yes">If selected, wicd will automatically connect to a wired network <property name="tooltip" translatable="yes">If selected, wicd will automatically connect to a wired network
as soon as a cable is plugged in, even if a wireless connection as soon as a cable is plugged in, even if a wireless connection
is already active.</property> is already active.</property>
<property name="label" translatable="yes">Always switch to a wired connection when available</property>
<property name="response_id">0</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
</widget> </widget>
</child> </child>
@@ -490,10 +518,10 @@ is already active.</property>
<property name="left_padding">12</property> <property name="left_padding">12</property>
<child> <child>
<widget class="GtkCheckButton" id="pref_auto_check"> <widget class="GtkCheckButton" id="pref_auto_check">
<property name="label" translatable="yes">Automatically reconnect on network connection loss</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="label" translatable="yes">Automatically reconnect on network connection loss</property> <property name="receives_default">False</property>
<property name="response_id">0</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
</widget> </widget>
</child> </child>
@@ -525,10 +553,10 @@ is already active.</property>
<property name="left_padding">12</property> <property name="left_padding">12</property>
<child> <child>
<widget class="GtkRadioButton" id="pref_use_last_radio"> <widget class="GtkRadioButton" id="pref_use_last_radio">
<property name="label" translatable="yes">Use last wired network profile</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="label" translatable="yes">Use last wired network profile</property> <property name="receives_default">False</property>
<property name="response_id">0</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>
@@ -547,10 +575,10 @@ is already active.</property>
<property name="left_padding">12</property> <property name="left_padding">12</property>
<child> <child>
<widget class="GtkRadioButton" id="pref_prompt_radio"> <widget class="GtkRadioButton" id="pref_prompt_radio">
<property name="label" translatable="yes">Prompt for wired network profile</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="label" translatable="yes">Prompt for wired network profile</property> <property name="receives_default">False</property>
<property name="response_id">0</property>
<property name="active">True</property> <property name="active">True</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
<property name="group">pref_use_last_radio</property> <property name="group">pref_use_last_radio</property>
@@ -570,10 +598,10 @@ is already active.</property>
<property name="left_padding">12</property> <property name="left_padding">12</property>
<child> <child>
<widget class="GtkRadioButton" id="pref_use_def_radio"> <widget class="GtkRadioButton" id="pref_use_def_radio">
<property name="label" translatable="yes">Use default wired network profile</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="label" translatable="yes">Use default wired network profile</property> <property name="receives_default">False</property>
<property name="response_id">0</property>
<property name="active">True</property> <property name="active">True</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
<property name="group">pref_use_last_radio</property> <property name="group">pref_use_last_radio</property>
@@ -766,10 +794,10 @@ is already active.</property>
<property name="left_padding">12</property> <property name="left_padding">12</property>
<child> <child>
<widget class="GtkCheckButton" id="pref_global_check"> <widget class="GtkCheckButton" id="pref_global_check">
<property name="label" translatable="yes">Use global DNS servers</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="label" translatable="yes">Use global DNS servers</property> <property name="receives_default">False</property>
<property name="response_id">0</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
</widget> </widget>
</child> </child>
@@ -840,11 +868,11 @@ is already active.</property>
<property name="left_padding">24</property> <property name="left_padding">24</property>
<child> <child>
<widget class="GtkCheckButton" id="pref_always_check"> <widget class="GtkCheckButton" id="pref_always_check">
<property name="label" translatable="yes">Always show wired interface</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="tooltip" translatable="yes">If enabled, the wired network interface will always be displayed in the main window. This can be useful if your wired network card does not detect when the interface is connected to a cable.</property> <property name="tooltip" translatable="yes">If enabled, the wired network interface will always be displayed in the main window. This can be useful if your wired network card does not detect when the interface is connected to a cable.</property>
<property name="label" translatable="yes">Always show wired interface</property>
<property name="response_id">0</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
</widget> </widget>
</child> </child>
@@ -856,6 +884,41 @@ is already active.</property>
<property name="y_options"></property> <property name="y_options"></property>
</packing> </packing>
</child> </child>
<child>
<widget class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">&lt;b&gt;Notifications&lt;/b&gt;</property>
<property name="use_markup">True</property>
</widget>
<packing>
<property name="right_attach">2</property>
<property name="top_attach">18</property>
<property name="bottom_attach">19</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkAlignment" id="alignment26">
<property name="visible">True</property>
<property name="left_padding">12</property>
<child>
<widget class="GtkCheckButton" id="pref_use_libnotify">
<property name="label" translatable="yes">Display notifications about connection status</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="draw_indicator">True</property>
</widget>
</child>
</widget>
<packing>
<property name="right_attach">2</property>
<property name="top_attach">19</property>
<property name="bottom_attach">20</property>
<property name="y_options"></property>
</packing>
</child>
</widget> </widget>
</child> </child>
</widget> </widget>
@@ -870,8 +933,8 @@ is already active.</property>
<property name="label" translatable="yes">General Settings</property> <property name="label" translatable="yes">General Settings</property>
</widget> </widget>
<packing> <packing>
<property name="type">tab</property>
<property name="tab_fill">False</property> <property name="tab_fill">False</property>
<property name="type">tab</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -885,13 +948,13 @@ is already active.</property>
<widget class="GtkScrolledWindow" id="scrolledwindow3"> <widget class="GtkScrolledWindow" id="scrolledwindow3">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="hscrollbar_policy">automatic</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> <property name="vscrollbar_policy">automatic</property>
<child> <child>
<widget class="GtkViewport" id="viewport4"> <widget class="GtkViewport" id="viewport4">
<property name="visible">True</property> <property name="visible">True</property>
<property name="resize_mode">GTK_RESIZE_QUEUE</property> <property name="resize_mode">queue</property>
<property name="shadow_type">GTK_SHADOW_NONE</property> <property name="shadow_type">none</property>
<child> <child>
<widget class="GtkTable" id="table2"> <widget class="GtkTable" id="table2">
<property name="visible">True</property> <property name="visible">True</property>
@@ -931,23 +994,24 @@ is already active.</property>
<property name="visible">True</property> <property name="visible">True</property>
<child> <child>
<widget class="GtkRadioButton" id="flush_auto_radio"> <widget class="GtkRadioButton" id="flush_auto_radio">
<property name="label" translatable="yes">Automatic (recommended)</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="label" translatable="yes">Automatic (recommended)</property> <property name="receives_default">False</property>
<property name="response_id">0</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>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="position">0</property>
</packing> </packing>
</child> </child>
<child> <child>
<widget class="GtkRadioButton" id="ip_flush_radio"> <widget class="GtkRadioButton" id="ip_flush_radio">
<property name="label" translatable="yes">ip</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="label" translatable="yes">ip</property> <property name="receives_default">False</property>
<property name="response_id">0</property>
<property name="active">True</property> <property name="active">True</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
<property name="group">flush_auto_radio</property> <property name="group">flush_auto_radio</property>
@@ -959,10 +1023,10 @@ is already active.</property>
</child> </child>
<child> <child>
<widget class="GtkRadioButton" id="route_flush_radio"> <widget class="GtkRadioButton" id="route_flush_radio">
<property name="label" translatable="yes">route</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="label" translatable="yes">route</property> <property name="receives_default">False</property>
<property name="response_id">0</property>
<property name="active">True</property> <property name="active">True</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
<property name="group">flush_auto_radio</property> <property name="group">flush_auto_radio</property>
@@ -990,23 +1054,24 @@ is already active.</property>
<property name="visible">True</property> <property name="visible">True</property>
<child> <child>
<widget class="GtkRadioButton" id="link_auto_radio"> <widget class="GtkRadioButton" id="link_auto_radio">
<property name="label" translatable="yes">Automatic (recommended)</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="label" translatable="yes">Automatic (recommended)</property> <property name="receives_default">False</property>
<property name="response_id">0</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>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="position">0</property>
</packing> </packing>
</child> </child>
<child> <child>
<widget class="GtkRadioButton" id="ethtool_radio"> <widget class="GtkRadioButton" id="ethtool_radio">
<property name="label" translatable="yes">ethtool</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="label" translatable="yes">ethtool</property> <property name="receives_default">False</property>
<property name="response_id">0</property>
<property name="active">True</property> <property name="active">True</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
<property name="group">link_auto_radio</property> <property name="group">link_auto_radio</property>
@@ -1018,10 +1083,10 @@ is already active.</property>
</child> </child>
<child> <child>
<widget class="GtkRadioButton" id="miitool_radio"> <widget class="GtkRadioButton" id="miitool_radio">
<property name="label" translatable="yes">mii-tool</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="label" translatable="yes">mii-tool</property> <property name="receives_default">False</property>
<property name="response_id">0</property>
<property name="active">True</property> <property name="active">True</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
<property name="group">link_auto_radio</property> <property name="group">link_auto_radio</property>
@@ -1049,24 +1114,25 @@ is already active.</property>
<property name="visible">True</property> <property name="visible">True</property>
<child> <child>
<widget class="GtkRadioButton" id="dhcp_auto_radio"> <widget class="GtkRadioButton" id="dhcp_auto_radio">
<property name="label" translatable="yes">Automatic (recommended)</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="label" translatable="yes">Automatic (recommended)</property> <property name="receives_default">False</property>
<property name="response_id">0</property>
<property name="active">True</property> <property name="active">True</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
<property name="group">dhclient_radio</property> <property name="group">dhclient_radio</property>
</widget> </widget>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="position">0</property>
</packing> </packing>
</child> </child>
<child> <child>
<widget class="GtkRadioButton" id="dhclient_radio"> <widget class="GtkRadioButton" id="dhclient_radio">
<property name="label" translatable="yes">dhclient</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="label" translatable="yes">dhclient</property> <property name="receives_default">False</property>
<property name="response_id">0</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>
@@ -1077,10 +1143,10 @@ is already active.</property>
</child> </child>
<child> <child>
<widget class="GtkRadioButton" id="dhcpcd_radio"> <widget class="GtkRadioButton" id="dhcpcd_radio">
<property name="label" translatable="yes">dhcpcd</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="label" translatable="yes">dhcpcd</property> <property name="receives_default">False</property>
<property name="response_id">0</property>
<property name="active">True</property> <property name="active">True</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
<property name="group">dhclient_radio</property> <property name="group">dhclient_radio</property>
@@ -1092,10 +1158,10 @@ is already active.</property>
</child> </child>
<child> <child>
<widget class="GtkRadioButton" id="pump_radio"> <widget class="GtkRadioButton" id="pump_radio">
<property name="label" translatable="yes">pump</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="label" translatable="yes">pump</property> <property name="receives_default">False</property>
<property name="response_id">0</property>
<property name="active">True</property> <property name="active">True</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
<property name="group">dhclient_radio</property> <property name="group">dhclient_radio</property>
@@ -1147,23 +1213,24 @@ is already active.</property>
<property name="visible">True</property> <property name="visible">True</property>
<child> <child>
<widget class="GtkRadioButton" id="sudo_auto_radio"> <widget class="GtkRadioButton" id="sudo_auto_radio">
<property name="label" translatable="yes">Automatic (recommended)</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="label" translatable="yes">Automatic (recommended)</property> <property name="receives_default">False</property>
<property name="response_id">0</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>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="position">0</property>
</packing> </packing>
</child> </child>
<child> <child>
<widget class="GtkRadioButton" id="gksudo_radio"> <widget class="GtkRadioButton" id="gksudo_radio">
<property name="label" translatable="yes">gksudo</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="label" translatable="yes">gksudo</property> <property name="receives_default">False</property>
<property name="response_id">0</property>
<property name="active">True</property> <property name="active">True</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
<property name="group">sudo_auto_radio</property> <property name="group">sudo_auto_radio</property>
@@ -1175,10 +1242,10 @@ is already active.</property>
</child> </child>
<child> <child>
<widget class="GtkRadioButton" id="kdesu_radio"> <widget class="GtkRadioButton" id="kdesu_radio">
<property name="label" translatable="yes">kdesu</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="label" translatable="yes">kdesu</property> <property name="receives_default">False</property>
<property name="response_id">0</property>
<property name="active">True</property> <property name="active">True</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
<property name="group">sudo_auto_radio</property> <property name="group">sudo_auto_radio</property>
@@ -1190,10 +1257,10 @@ is already active.</property>
</child> </child>
<child> <child>
<widget class="GtkRadioButton" id="ktsuss_radio"> <widget class="GtkRadioButton" id="ktsuss_radio">
<property name="label" translatable="yes">ktsuss</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="label" translatable="yes">ktsuss</property> <property name="receives_default">False</property>
<property name="response_id">0</property>
<property name="active">True</property> <property name="active">True</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
<property name="group">sudo_auto_radio</property> <property name="group">sudo_auto_radio</property>
@@ -1228,9 +1295,9 @@ is already active.</property>
<property name="label" translatable="yes">External Programs</property> <property name="label" translatable="yes">External Programs</property>
</widget> </widget>
<packing> <packing>
<property name="type">tab</property>
<property name="position">1</property> <property name="position">1</property>
<property name="tab_fill">False</property> <property name="tab_fill">False</property>
<property name="type">tab</property>
</packing> </packing>
</child> </child>
<child> <child>
@@ -1270,6 +1337,7 @@ to read its description.</property>
</widget> </widget>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="position">0</property>
</packing> </packing>
</child> </child>
</widget> </widget>
@@ -1316,10 +1384,10 @@ to read its description.</property>
<property name="left_padding">12</property> <property name="left_padding">12</property>
<child> <child>
<widget class="GtkCheckButton" id="pref_dbm_check"> <widget class="GtkCheckButton" id="pref_dbm_check">
<property name="label" translatable="yes">Use dBm to measure signal strength</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="label" translatable="yes">Use dBm to measure signal strength</property> <property name="receives_default">False</property>
<property name="response_id">0</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
</widget> </widget>
</child> </child>
@@ -1337,10 +1405,10 @@ to read its description.</property>
<property name="left_padding">12</property> <property name="left_padding">12</property>
<child> <child>
<widget class="GtkCheckButton" id="pref_debug_check"> <widget class="GtkCheckButton" id="pref_debug_check">
<property name="label" translatable="yes">Enable debug mode</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="label" translatable="yes">Enable debug mode</property> <property name="receives_default">False</property>
<property name="response_id">0</property>
<property name="draw_indicator">True</property> <property name="draw_indicator">True</property>
</widget> </widget>
</child> </child>
@@ -1477,9 +1545,9 @@ WPA supplicant driver.</property>
<property name="label" translatable="yes">Advanced Settings</property> <property name="label" translatable="yes">Advanced Settings</property>
</widget> </widget>
<packing> <packing>
<property name="type">tab</property>
<property name="position">2</property> <property name="position">2</property>
<property name="tab_fill">False</property> <property name="tab_fill">False</property>
<property name="type">tab</property>
</packing> </packing>
</child> </child>
</widget> </widget>
@@ -1490,34 +1558,41 @@ WPA supplicant driver.</property>
<child internal-child="action_area"> <child internal-child="action_area">
<widget class="GtkHButtonBox" id="dialog-action_area5"> <widget class="GtkHButtonBox" id="dialog-action_area5">
<property name="visible">True</property> <property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property> <property name="layout_style">end</property>
<child> <child>
<widget class="GtkButton" id="button2"> <widget class="GtkButton" id="button2">
<property name="label" translatable="yes">gtk-cancel</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="receives_default">True</property> <property name="receives_default">True</property>
<property name="label" translatable="yes">gtk-cancel</property>
<property name="use_stock">True</property> <property name="use_stock">True</property>
<property name="response_id">0</property>
</widget> </widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child> </child>
<child> <child>
<widget class="GtkButton" id="button1"> <widget class="GtkButton" id="button1">
<property name="label" translatable="yes">gtk-ok</property>
<property name="response_id">1</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="receives_default">True</property> <property name="receives_default">True</property>
<property name="label" translatable="yes">gtk-ok</property>
<property name="use_stock">True</property> <property name="use_stock">True</property>
<property name="response_id">1</property>
</widget> </widget>
<packing> <packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property> <property name="position">1</property>
</packing> </packing>
</child> </child>
</widget> </widget>
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="pack_type">GTK_PACK_END</property> <property name="pack_type">end</property>
<property name="position">0</property>
</packing> </packing>
</child> </child>
</widget> </widget>

View File

@@ -71,6 +71,7 @@ no_install_kde = %NO_INSTALL_KDE%
no_install_acpi = %NO_INSTALL_ACPI% no_install_acpi = %NO_INSTALL_ACPI%
no_install_docs = %NO_INSTALL_DOCS% no_install_docs = %NO_INSTALL_DOCS%
no_install_ncurses = %NO_INSTALL_NCURSES% no_install_ncurses = %NO_INSTALL_NCURSES%
no_use_notifications = %NO_USE_NOTIFICATIONS%
def chdir(file): def chdir(file):
"""Change directory to the location of the specified file. """Change directory to the location of the specified file.

View File

@@ -92,7 +92,8 @@ class configure(Command):
('no-install-acpi', None, 'do not install the suspend.d and resume.d acpi scripts'), ('no-install-acpi', None, 'do not install the suspend.d and resume.d acpi scripts'),
('no-install-pmutils', None, 'do not install the pm-utils hooks'), ('no-install-pmutils', None, 'do not install the pm-utils hooks'),
('no-install-docs', None, 'do not install the auxiliary documentation'), ('no-install-docs', None, 'do not install the auxiliary documentation'),
('no-install-ncurses', None, 'do not install the ncurses client') ('no-install-ncurses', None, 'do not install the ncurses client'),
('no-use-notifications', None, 'do not ever allow the use of libnotify notifications')
] ]
def initialize_options(self): def initialize_options(self):
@@ -127,6 +128,7 @@ class configure(Command):
self.no_install_pmutils = False self.no_install_pmutils = False
self.no_install_docs = False self.no_install_docs = False
self.no_install_ncurses = False self.no_install_ncurses = False
self.no_use_notifications = False
# Determine the default init file location on several different distros # Determine the default init file location on several different distros

View File

@@ -141,10 +141,12 @@ class WiredProfileChooser:
class appGui(object): class appGui(object):
""" The main wicd GUI class. """ """ The main wicd GUI class. """
def __init__(self, standalone=False): def __init__(self, standalone=False, tray=None):
""" Initializes everything needed for the GUI. """ """ Initializes everything needed for the GUI. """
setup_dbus() setup_dbus()
self.tray = tray
gladefile = os.path.join(wpath.share, "wicd.glade") gladefile = os.path.join(wpath.share, "wicd.glade")
self.wTree = gtk.glade.XML(gladefile) self.wTree = gtk.glade.XML(gladefile)
self.window = self.wTree.get_widget("window1") self.window = self.wTree.get_widget("window1")
@@ -305,7 +307,7 @@ class appGui(object):
def settings_dialog(self, widget, event=None): def settings_dialog(self, widget, event=None):
""" Displays a general settings dialog. """ """ Displays a general settings dialog. """
if not self.pref: if not self.pref:
self.pref = PreferencesDialog(self.wTree) self.pref = PreferencesDialog(self, self.wTree)
else: else:
self.pref.load_preferences_diag() self.pref.load_preferences_diag()
if self.pref.run() == 1: if self.pref.run() == 1:

View File

@@ -41,6 +41,8 @@ wired = None
from translations import language from translations import language
USER_SETTINGS_DIR = os.path.expanduser('~/.wicd/')
def setup_dbus(): def setup_dbus():
global daemon, wireless, wired global daemon, wireless, wired
daemon = dbusmanager.get_interface('daemon') daemon = dbusmanager.get_interface('daemon')
@@ -49,8 +51,9 @@ def setup_dbus():
class PreferencesDialog(object): class PreferencesDialog(object):
""" Class for handling the wicd preferences dialog window. """ """ Class for handling the wicd preferences dialog window. """
def __init__(self, wTree): def __init__(self, parent, wTree):
setup_dbus() setup_dbus()
self.parent = parent
self.wTree = wTree self.wTree = wTree
self.prep_settings_diag() self.prep_settings_diag()
self.load_preferences_diag() self.load_preferences_diag()
@@ -141,6 +144,24 @@ class PreferencesDialog(object):
self.backendcombo.set_active(self.backends.index(cur_backend)) self.backendcombo.set_active(self.backends.index(cur_backend))
except ValueError: except ValueError:
self.backendcombo.set_active(0) self.backendcombo.set_active(0)
self.notificationscheckbox.set_active(
os.path.exists(
os.path.join(USER_SETTINGS_DIR, 'USE_NOTIFICATIONS')
))
# if pynotify isn't installed disable the option
try:
import pynotify
except ImportError:
self.notificationscheckbox.set_active(False)
self.notificationscheckbox.set_sensitive(False)
# if notifications were disabled with the configure flag
if wpath.no_use_notifications:
self.notificationscheckbox.set_active(False)
self.notificationscheckbox.hide()
self.wTree.get_widget('label2').hide()
self.wTree.get_widget("notebook2").set_current_page(0) self.wTree.get_widget("notebook2").set_current_page(0)
@@ -221,6 +242,19 @@ class PreferencesDialog(object):
[width, height] = self.dialog.get_size() [width, height] = self.dialog.get_size()
daemon.WriteWindowSize(width, height, "pref") daemon.WriteWindowSize(width, height, "pref")
not_path = os.path.join(USER_SETTINGS_DIR, 'USE_NOTIFICATIONS')
if self.notificationscheckbox.get_active():
if not os.path.exists(not_path):
open(not_path, 'w')
else:
if os.path.exists(not_path):
os.remove(not_path)
# if this GUI was started by a tray icon,
# instantly change the notifications there
if self.parent.tray:
self.parent.tray.icon_info.use_notify = \
self.notificationscheckbox.get_active()
def set_label(self, glade_str, label): def set_label(self, glade_str, label):
""" Sets the label for the given widget in wicd.glade. """ """ Sets the label for the given widget in wicd.glade. """
@@ -305,6 +339,9 @@ class PreferencesDialog(object):
'use_last_used_profile') 'use_last_used_profile')
self.notificationscheckbox = setup_label("pref_use_libnotify",
'display_notifications')
# DHCP Clients # DHCP Clients
self.dhcpautoradio = setup_label("dhcp_auto_radio", "wicd_auto_config") self.dhcpautoradio = setup_label("dhcp_auto_radio", "wicd_auto_config")
self.dhclientradio = self.wTree.get_widget("dhclient_radio") self.dhclientradio = self.wTree.get_widget("dhclient_radio")

View File

@@ -43,6 +43,16 @@ import pango
import atexit import atexit
from dbus import DBusException from dbus import DBusException
HAS_NOTIFY = True
try:
import pygtk
pygtk.require('2.0')
import pynotify
if not pynotify.init("Wicd"):
HAS_NOTIFY = False
except ImportError:
HAS_NOTIFY = False
# Wicd specific imports # Wicd specific imports
from wicd import wpath from wicd import wpath
from wicd import misc from wicd import misc
@@ -63,6 +73,11 @@ if not hasattr(gtk, "StatusIcon"):
print 'Unable to load tray icon: Missing both egg.trayicon and gtk.StatusIcon modules.' print 'Unable to load tray icon: Missing both egg.trayicon and gtk.StatusIcon modules.'
ICON_AVAIL = False ICON_AVAIL = False
print "Has notifications support", HAS_NOTIFY
if wpath.no_use_notifications:
print 'Notifications disabled during setup.py configure'
misc.RenameProcess("wicd-client") misc.RenameProcess("wicd-client")
if __name__ == '__main__': if __name__ == '__main__':
@@ -115,10 +130,11 @@ class TrayIcon(object):
else: else:
self.tr = self.StatusTrayIconGUI() self.tr = self.StatusTrayIconGUI()
self.icon_info = self.TrayConnectionInfo(self.tr, animate) self.icon_info = self.TrayConnectionInfo(self.tr, animate)
self.tr.icon_info = self.icon_info
def is_embedded(self): def is_embedded(self):
if USE_EGG: if USE_EGG:
raise NotImplementedError raise NotImplementedError()
else: else:
return self.tr.is_embedded() return self.tr.is_embedded()
@@ -138,12 +154,37 @@ class TrayIcon(object):
self.max_snd_gain = 10000 self.max_snd_gain = 10000
self.max_rcv_gain = 10000 self.max_rcv_gain = 10000
self.animate = animate self.animate = animate
# keep track of the last state to provide appropriate
# notifications
self._last_bubble = None
self.last_state = None
self.should_notify = True
self.use_notify = os.path.exists(os.path.join(
os.path.expanduser('~/.wicd'),
'USE_NOTIFICATIONS'))
if DBUS_AVAIL: if DBUS_AVAIL:
self.update_tray_icon() self.update_tray_icon()
else: else:
handle_no_dbus() handle_no_dbus()
self.set_not_connected_state() self.set_not_connected_state()
def _show_notification(self, title, details, image=None):
if self.should_notify:
if not self._last_bubble:
self._last_bubble = pynotify.Notification(title, details,
image)
self._last_bubble.show()
else:
self._last_bubble.clear_actions()
self._last_bubble.clear_hints()
self._last_bubble.update(title, details, image)
self._last_bubble.show()
self.should_notify = False
@catchdbus @catchdbus
def wired_profile_chooser(self): def wired_profile_chooser(self):
""" Launch the wired profile chooser. """ """ Launch the wired profile chooser. """
@@ -154,8 +195,12 @@ class TrayIcon(object):
""" Sets the icon info for a wired state. """ """ Sets the icon info for a wired state. """
wired_ip = info[0] wired_ip = info[0]
self.tr.set_from_file(os.path.join(wpath.images, "wired.png")) self.tr.set_from_file(os.path.join(wpath.images, "wired.png"))
self.tr.set_tooltip(language['connected_to_wired'].replace('$A', status_string = language['connected_to_wired'].replace('$A',
wired_ip)) wired_ip)
self.tr.set_tooltip(status_string)
self._show_notification(language['wired_network'],
language['connection_established'],
'network-wired')
@catchdbus @catchdbus
def set_wireless_state(self, info): def set_wireless_state(self, info):
@@ -169,22 +214,38 @@ class TrayIcon(object):
if wireless.GetWirelessProperty(cur_net_id, "encryption"): if wireless.GetWirelessProperty(cur_net_id, "encryption"):
lock = "-lock" lock = "-lock"
status_string = (language['connected_to_wireless']
self.tr.set_tooltip(language['connected_to_wireless']
.replace('$A', self.network) .replace('$A', self.network)
.replace('$B', sig_string) .replace('$B', sig_string)
.replace('$C', str(wireless_ip))) .replace('$C', str(wireless_ip)))
self.tr.set_tooltip(status_string)
self.set_signal_image(int(strength), lock) self.set_signal_image(int(strength), lock)
self._show_notification(self.network,
language['connection_established'],
'network-wireless')
def set_connecting_state(self, info): def set_connecting_state(self, info):
""" Sets the icon info for a connecting state. """ """ Sets the icon info for a connecting state. """
wired = False
if info[0] == 'wired' and len(info) == 1: if info[0] == 'wired' and len(info) == 1:
cur_network = language['wired_network'] cur_network = language['wired_network']
wired = True
else: else:
cur_network = info[1] cur_network = info[1]
self.tr.set_tooltip(language['connecting'] + " to " + status_string = language['connecting'] + " to " + \
cur_network + "...") cur_network + "..."
self.tr.set_tooltip(status_string)
self.tr.set_from_file(os.path.join(wpath.images, "no-signal.png")) self.tr.set_from_file(os.path.join(wpath.images, "no-signal.png"))
if wired:
self._show_notification(cur_network,
language['establishing_connection'],
'network-wired')
else:
self._show_notification(cur_network,
language['establishing_connection'],
'network-wireless')
@catchdbus @catchdbus
def set_not_connected_state(self, info=None): def set_not_connected_state(self, info=None):
@@ -198,6 +259,7 @@ class TrayIcon(object):
else: else:
status = language['not_connected'] status = language['not_connected']
self.tr.set_tooltip(status) self.tr.set_tooltip(status)
self._show_notification(language['disconnected'], None, 'stop')
@catchdbus @catchdbus
def update_tray_icon(self, state=None, info=None): def update_tray_icon(self, state=None, info=None):
@@ -206,6 +268,14 @@ class TrayIcon(object):
if not state or not info: if not state or not info:
[state, info] = daemon.GetConnectionStatus() [state, info] = daemon.GetConnectionStatus()
# should this state change display a notification?
self.should_notify = not wpath.no_use_notifications and \
(self.last_state != state) and \
HAS_NOTIFY and \
self.use_notify
self.last_state = state
if state == misc.WIRED: if state == misc.WIRED:
self.set_wired_state(info) self.set_wired_state(info)
@@ -552,7 +622,7 @@ class TrayIcon(object):
def toggle_wicd_gui(self): def toggle_wicd_gui(self):
""" Toggles the wicd GUI. """ """ Toggles the wicd GUI. """
if not self.gui_win: if not self.gui_win:
self.gui_win = gui.appGui() self.gui_win = gui.appGui(tray=self)
elif not self.gui_win.is_visible: elif not self.gui_win.is_visible:
self.gui_win.show_win() self.gui_win.show_win()
else: else: