1
0
mirror of https://github.com/gryf/wicd.git synced 2025-12-24 07:02:29 +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"?>
<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
<!--Generated with glade3 3.4.5 on Sun Feb 1 21:38:09 2009 -->
<?xml version="1.0"?>
<glade-interface>
<!-- interface-requires gtk+ 2.16 -->
<!-- interface-naming-policy toplevel-contextual -->
<widget class="GtkWindow" id="window1">
<property name="width_request">450</property>
<property name="height_request">400</property>
<property name="visible">True</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="gravity">GDK_GRAVITY_CENTER</property>
<signal name="destroy" handler="exit"/>
<signal name="delete_event" handler="exit"/>
<property name="gravity">center</property>
<child>
<widget class="GtkVBox" id="background_vbox">
<property name="visible">True</property>
<child>
<widget class="GtkToolbar" id="toolbar">
<property name="visible">True</property>
<property name="toolbar_style">GTK_TOOLBAR_BOTH_HORIZ</property>
<property name="icon_size">GTK_ICON_SIZE_MENU</property>
<property name="toolbar_style">both-horiz</property>
<property name="icon_size">0</property>
<property name="icon_size_set">True</property>
<child>
<widget class="GtkToolItem" id="menubar">
@@ -31,8 +29,8 @@
<property name="visible">True</property>
<child>
<widget class="GtkImageMenuItem" id="network_menu">
<property name="label">gtk-network</property>
<property name="visible">True</property>
<property name="label" translatable="yes">gtk-network</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<child>
@@ -40,12 +38,12 @@
<property name="visible">True</property>
<child>
<widget class="GtkImageMenuItem" id="create_ad_hoc_button">
<property name="label">Create an ad-hoc network</property>
<property name="visible">True</property>
<property name="label" translatable="yes">Create an ad-hoc network</property>
<property name="use_underline">True</property>
<property name="use_stock">False</property>
<signal name="activate" handler="create_adhoc_clicked"/>
<child internal-child="image">
<widget class="GtkImage" id="menu-item-image10">
<widget class="GtkImage" id="image1">
<property name="visible">True</property>
<property name="stock">gtk-add</property>
</widget>
@@ -54,15 +52,15 @@
</child>
<child>
<widget class="GtkImageMenuItem" id="find_hidden_button">
<property name="label">Find a hidden network</property>
<property name="visible">True</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_underline">True</property>
<property name="use_stock">False</property>
<signal name="activate" handler="hidden_clicked"/>
<child internal-child="image">
<widget class="GtkImage" id="menu-item-image9">
<widget class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="icon_name">network-wireless</property>
<property name="stock">gtk-find</property>
</widget>
</child>
</widget>
@@ -74,6 +72,9 @@
</widget>
</child>
</widget>
<packing>
<property name="expand">False</property>
</packing>
</child>
<child>
<widget class="GtkToolButton" id="disconnect_button">
@@ -86,6 +87,7 @@
<signal name="clicked" handler="disconnect_clicked"/>
</widget>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
@@ -99,6 +101,7 @@
<signal name="clicked" handler="refresh_clicked"/>
</widget>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
@@ -112,6 +115,7 @@
<signal name="clicked" handler="preferences_clicked"/>
</widget>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
@@ -125,6 +129,7 @@
<signal name="clicked" handler="about_clicked"/>
</widget>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
@@ -139,12 +144,14 @@
<signal name="clicked" handler="quit_clicked"/>
</widget>
<packing>
<property name="expand">False</property>
<property name="homogeneous">True</property>
</packing>
</child>
</widget>
<packing>
<property name="expand">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
@@ -165,12 +172,12 @@
<widget class="GtkScrolledWindow" id="scrolledwindow">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="hscrollbar_policy">automatic</property>
<property name="vscrollbar_policy">automatic</property>
<child>
<widget class="GtkViewport" id="viewport1">
<property name="visible">True</property>
<property name="shadow_type">GTK_SHADOW_NONE</property>
<property name="shadow_type">none</property>
<child>
<widget class="GtkVBox" id="network_list_vbox">
<property name="visible">True</property>
@@ -198,15 +205,17 @@
</widget>
<packing>
<property name="padding">3</property>
<property name="position">0</property>
</packing>
</child>
<child>
<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="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="response_id">0</property>
<signal name="clicked" handler="cancel_clicked"/>
</widget>
<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="border_width">5</property>
<property name="title" translatable="yes">Configure Scripts</property>
<property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
<property name="window_position">center-on-parent</property>
<property name="type_hint">dialog</property>
<property name="has_separator">False</property>
<child internal-child="vbox">
<widget class="GtkVBox" id="dialog-vbox2">
@@ -259,6 +268,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</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="label" translatable="yes">Pre-connection Script:</property>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<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="label" translatable="yes">Post-connection Script:</property>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<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="label" translatable="yes">Disconnection Script:</property>
</widget>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="disconnect_entry">
@@ -359,32 +378,41 @@
<child internal-child="action_area">
<widget class="GtkHButtonBox" id="dialog-action_area2">
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<property name="layout_style">end</property>
<child>
<widget class="GtkButton" id="button3">
<property name="label">gtk-cancel</property>
<property name="visible">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="response_id">0</property>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkButton" id="button4">
<property name="label">gtk-ok</property>
<property name="response_id">1</property>
<property name="visible">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="response_id">1</property>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</widget>
<packing>
<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>
</child>
</widget>
@@ -392,8 +420,8 @@
</widget>
<widget class="GtkDialog" id="pref_dialog">
<property name="border_width">5</property>
<property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
<property name="window_position">center-on-parent</property>
<property name="type_hint">dialog</property>
<property name="has_separator">False</property>
<child internal-child="vbox">
<widget class="GtkVBox" id="dialog-vbox5">
@@ -414,17 +442,17 @@
<widget class="GtkScrolledWindow" id="scrolledwindow2">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="hscrollbar_policy">automatic</property>
<property name="vscrollbar_policy">automatic</property>
<child>
<widget class="GtkViewport" id="viewport3">
<property name="visible">True</property>
<property name="resize_mode">GTK_RESIZE_QUEUE</property>
<property name="shadow_type">GTK_SHADOW_NONE</property>
<property name="resize_mode">queue</property>
<property name="shadow_type">none</property>
<child>
<widget class="GtkTable" id="table1">
<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="column_spacing">4</property>
<property name="row_spacing">4</property>
@@ -433,14 +461,14 @@
<property name="visible">True</property>
<child>
<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="can_focus">True</property>
<property name="receives_default">False</property>
<property name="has_tooltip">True</property>
<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
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>
</widget>
</child>
@@ -490,10 +518,10 @@ is already active.</property>
<property name="left_padding">12</property>
<child>
<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="can_focus">True</property>
<property name="label" translatable="yes">Automatically reconnect on network connection loss</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="draw_indicator">True</property>
</widget>
</child>
@@ -525,10 +553,10 @@ is already active.</property>
<property name="left_padding">12</property>
<child>
<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="can_focus">True</property>
<property name="label" translatable="yes">Use last wired network profile</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
</widget>
@@ -547,10 +575,10 @@ is already active.</property>
<property name="left_padding">12</property>
<child>
<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="can_focus">True</property>
<property name="label" translatable="yes">Prompt for wired network profile</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">pref_use_last_radio</property>
@@ -570,10 +598,10 @@ is already active.</property>
<property name="left_padding">12</property>
<child>
<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="can_focus">True</property>
<property name="label" translatable="yes">Use default wired network profile</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">pref_use_last_radio</property>
@@ -766,10 +794,10 @@ is already active.</property>
<property name="left_padding">12</property>
<child>
<widget class="GtkCheckButton" id="pref_global_check">
<property name="label" translatable="yes">Use global DNS servers</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Use global DNS servers</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="draw_indicator">True</property>
</widget>
</child>
@@ -840,11 +868,11 @@ is already active.</property>
<property name="left_padding">24</property>
<child>
<widget class="GtkCheckButton" id="pref_always_check">
<property name="label" translatable="yes">Always show wired interface</property>
<property name="visible">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="label" translatable="yes">Always show wired interface</property>
<property name="response_id">0</property>
<property name="draw_indicator">True</property>
</widget>
</child>
@@ -856,6 +884,41 @@ is already active.</property>
<property name="y_options"></property>
</packing>
</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>
</child>
</widget>
@@ -870,8 +933,8 @@ is already active.</property>
<property name="label" translatable="yes">General Settings</property>
</widget>
<packing>
<property name="type">tab</property>
<property name="tab_fill">False</property>
<property name="type">tab</property>
</packing>
</child>
<child>
@@ -885,13 +948,13 @@ is already active.</property>
<widget class="GtkScrolledWindow" id="scrolledwindow3">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
<property name="hscrollbar_policy">automatic</property>
<property name="vscrollbar_policy">automatic</property>
<child>
<widget class="GtkViewport" id="viewport4">
<property name="visible">True</property>
<property name="resize_mode">GTK_RESIZE_QUEUE</property>
<property name="shadow_type">GTK_SHADOW_NONE</property>
<property name="resize_mode">queue</property>
<property name="shadow_type">none</property>
<child>
<widget class="GtkTable" id="table2">
<property name="visible">True</property>
@@ -931,23 +994,24 @@ is already active.</property>
<property name="visible">True</property>
<child>
<widget class="GtkRadioButton" id="flush_auto_radio">
<property name="label" translatable="yes">Automatic (recommended)</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Automatic (recommended)</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="expand">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkRadioButton" id="ip_flush_radio">
<property name="label" translatable="yes">ip</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">ip</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">flush_auto_radio</property>
@@ -959,10 +1023,10 @@ is already active.</property>
</child>
<child>
<widget class="GtkRadioButton" id="route_flush_radio">
<property name="label" translatable="yes">route</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">route</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">flush_auto_radio</property>
@@ -990,23 +1054,24 @@ is already active.</property>
<property name="visible">True</property>
<child>
<widget class="GtkRadioButton" id="link_auto_radio">
<property name="label" translatable="yes">Automatic (recommended)</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Automatic (recommended)</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="expand">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkRadioButton" id="ethtool_radio">
<property name="label" translatable="yes">ethtool</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">ethtool</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">link_auto_radio</property>
@@ -1018,10 +1083,10 @@ is already active.</property>
</child>
<child>
<widget class="GtkRadioButton" id="miitool_radio">
<property name="label" translatable="yes">mii-tool</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">mii-tool</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">link_auto_radio</property>
@@ -1049,24 +1114,25 @@ is already active.</property>
<property name="visible">True</property>
<child>
<widget class="GtkRadioButton" id="dhcp_auto_radio">
<property name="label" translatable="yes">Automatic (recommended)</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Automatic (recommended)</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">dhclient_radio</property>
</widget>
<packing>
<property name="expand">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkRadioButton" id="dhclient_radio">
<property name="label" translatable="yes">dhclient</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">dhclient</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
</widget>
@@ -1077,10 +1143,10 @@ is already active.</property>
</child>
<child>
<widget class="GtkRadioButton" id="dhcpcd_radio">
<property name="label" translatable="yes">dhcpcd</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">dhcpcd</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">dhclient_radio</property>
@@ -1092,10 +1158,10 @@ is already active.</property>
</child>
<child>
<widget class="GtkRadioButton" id="pump_radio">
<property name="label" translatable="yes">pump</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">pump</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">dhclient_radio</property>
@@ -1147,23 +1213,24 @@ is already active.</property>
<property name="visible">True</property>
<child>
<widget class="GtkRadioButton" id="sudo_auto_radio">
<property name="label" translatable="yes">Automatic (recommended)</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Automatic (recommended)</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
</widget>
<packing>
<property name="expand">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<widget class="GtkRadioButton" id="gksudo_radio">
<property name="label" translatable="yes">gksudo</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">gksudo</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">sudo_auto_radio</property>
@@ -1175,10 +1242,10 @@ is already active.</property>
</child>
<child>
<widget class="GtkRadioButton" id="kdesu_radio">
<property name="label" translatable="yes">kdesu</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">kdesu</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">sudo_auto_radio</property>
@@ -1190,10 +1257,10 @@ is already active.</property>
</child>
<child>
<widget class="GtkRadioButton" id="ktsuss_radio">
<property name="label" translatable="yes">ktsuss</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">ktsuss</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="active">True</property>
<property name="draw_indicator">True</property>
<property name="group">sudo_auto_radio</property>
@@ -1228,9 +1295,9 @@ is already active.</property>
<property name="label" translatable="yes">External Programs</property>
</widget>
<packing>
<property name="type">tab</property>
<property name="position">1</property>
<property name="tab_fill">False</property>
<property name="type">tab</property>
</packing>
</child>
<child>
@@ -1270,6 +1337,7 @@ to read its description.</property>
</widget>
<packing>
<property name="expand">False</property>
<property name="position">0</property>
</packing>
</child>
</widget>
@@ -1316,10 +1384,10 @@ to read its description.</property>
<property name="left_padding">12</property>
<child>
<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="can_focus">True</property>
<property name="label" translatable="yes">Use dBm to measure signal strength</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="draw_indicator">True</property>
</widget>
</child>
@@ -1337,10 +1405,10 @@ to read its description.</property>
<property name="left_padding">12</property>
<child>
<widget class="GtkCheckButton" id="pref_debug_check">
<property name="label" translatable="yes">Enable debug mode</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="label" translatable="yes">Enable debug mode</property>
<property name="response_id">0</property>
<property name="receives_default">False</property>
<property name="draw_indicator">True</property>
</widget>
</child>
@@ -1477,9 +1545,9 @@ WPA supplicant driver.</property>
<property name="label" translatable="yes">Advanced Settings</property>
</widget>
<packing>
<property name="type">tab</property>
<property name="position">2</property>
<property name="tab_fill">False</property>
<property name="type">tab</property>
</packing>
</child>
</widget>
@@ -1490,34 +1558,41 @@ WPA supplicant driver.</property>
<child internal-child="action_area">
<widget class="GtkHButtonBox" id="dialog-action_area5">
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<property name="layout_style">end</property>
<child>
<widget class="GtkButton" id="button2">
<property name="label" translatable="yes">gtk-cancel</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="label" translatable="yes">gtk-cancel</property>
<property name="use_stock">True</property>
<property name="response_id">0</property>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<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="can_focus">True</property>
<property name="receives_default">True</property>
<property name="label" translatable="yes">gtk-ok</property>
<property name="use_stock">True</property>
<property name="response_id">1</property>
</widget>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</widget>
<packing>
<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>
</child>
</widget>

View File

@@ -71,6 +71,7 @@ no_install_kde = %NO_INSTALL_KDE%
no_install_acpi = %NO_INSTALL_ACPI%
no_install_docs = %NO_INSTALL_DOCS%
no_install_ncurses = %NO_INSTALL_NCURSES%
no_use_notifications = %NO_USE_NOTIFICATIONS%
def chdir(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-pmutils', None, 'do not install the pm-utils hooks'),
('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):
@@ -127,6 +128,7 @@ class configure(Command):
self.no_install_pmutils = False
self.no_install_docs = False
self.no_install_ncurses = False
self.no_use_notifications = False
# Determine the default init file location on several different distros

View File

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

View File

@@ -41,6 +41,8 @@ wired = None
from translations import language
USER_SETTINGS_DIR = os.path.expanduser('~/.wicd/')
def setup_dbus():
global daemon, wireless, wired
daemon = dbusmanager.get_interface('daemon')
@@ -49,8 +51,9 @@ def setup_dbus():
class PreferencesDialog(object):
""" Class for handling the wicd preferences dialog window. """
def __init__(self, wTree):
def __init__(self, parent, wTree):
setup_dbus()
self.parent = parent
self.wTree = wTree
self.prep_settings_diag()
self.load_preferences_diag()
@@ -141,6 +144,24 @@ class PreferencesDialog(object):
self.backendcombo.set_active(self.backends.index(cur_backend))
except ValueError:
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)
@@ -221,6 +242,19 @@ class PreferencesDialog(object):
[width, height] = self.dialog.get_size()
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):
""" Sets the label for the given widget in wicd.glade. """
@@ -305,6 +339,9 @@ class PreferencesDialog(object):
'use_last_used_profile')
self.notificationscheckbox = setup_label("pref_use_libnotify",
'display_notifications')
# DHCP Clients
self.dhcpautoradio = setup_label("dhcp_auto_radio", "wicd_auto_config")
self.dhclientradio = self.wTree.get_widget("dhclient_radio")

View File

@@ -43,6 +43,16 @@ import pango
import atexit
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
from wicd import wpath
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.'
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")
if __name__ == '__main__':
@@ -115,10 +130,11 @@ class TrayIcon(object):
else:
self.tr = self.StatusTrayIconGUI()
self.icon_info = self.TrayConnectionInfo(self.tr, animate)
self.tr.icon_info = self.icon_info
def is_embedded(self):
if USE_EGG:
raise NotImplementedError
raise NotImplementedError()
else:
return self.tr.is_embedded()
@@ -138,12 +154,37 @@ class TrayIcon(object):
self.max_snd_gain = 10000
self.max_rcv_gain = 10000
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:
self.update_tray_icon()
else:
handle_no_dbus()
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
def wired_profile_chooser(self):
""" Launch the wired profile chooser. """
@@ -154,8 +195,12 @@ class TrayIcon(object):
""" Sets the icon info for a wired state. """
wired_ip = info[0]
self.tr.set_from_file(os.path.join(wpath.images, "wired.png"))
self.tr.set_tooltip(language['connected_to_wired'].replace('$A',
wired_ip))
status_string = language['connected_to_wired'].replace('$A',
wired_ip)
self.tr.set_tooltip(status_string)
self._show_notification(language['wired_network'],
language['connection_established'],
'network-wired')
@catchdbus
def set_wireless_state(self, info):
@@ -169,22 +214,38 @@ class TrayIcon(object):
if wireless.GetWirelessProperty(cur_net_id, "encryption"):
lock = "-lock"
self.tr.set_tooltip(language['connected_to_wireless']
status_string = (language['connected_to_wireless']
.replace('$A', self.network)
.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._show_notification(self.network,
language['connection_established'],
'network-wireless')
def set_connecting_state(self, info):
""" Sets the icon info for a connecting state. """
wired = False
if info[0] == 'wired' and len(info) == 1:
cur_network = language['wired_network']
wired = True
else:
cur_network = info[1]
self.tr.set_tooltip(language['connecting'] + " to " +
cur_network + "...")
status_string = language['connecting'] + " to " + \
cur_network + "..."
self.tr.set_tooltip(status_string)
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
def set_not_connected_state(self, info=None):
@@ -198,6 +259,7 @@ class TrayIcon(object):
else:
status = language['not_connected']
self.tr.set_tooltip(status)
self._show_notification(language['disconnected'], None, 'stop')
@catchdbus
def update_tray_icon(self, state=None, info=None):
@@ -206,6 +268,14 @@ class TrayIcon(object):
if not state or not info:
[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:
self.set_wired_state(info)
@@ -552,7 +622,7 @@ class TrayIcon(object):
def toggle_wicd_gui(self):
""" Toggles the wicd GUI. """
if not self.gui_win:
self.gui_win = gui.appGui()
self.gui_win = gui.appGui(tray=self)
elif not self.gui_win.is_visible:
self.gui_win.show_win()
else: