mirror of
https://github.com/gryf/wicd.git
synced 2025-12-19 20:38:00 +01:00
merge add support for nevershow buttons and options (Robin Becker 2011-09-18)
This commit is contained in:
45
data/wicd.ui
45
data/wicd.ui
@@ -502,7 +502,7 @@
|
||||
<child>
|
||||
<object class="GtkTable" id="table1">
|
||||
<property name="visible">True</property>
|
||||
<property name="n_rows">20</property>
|
||||
<property name="n_rows">22</property>
|
||||
<property name="n_columns">2</property>
|
||||
<property name="column_spacing">4</property>
|
||||
<property name="row_spacing">4</property>
|
||||
@@ -562,6 +562,41 @@ is already active.</property>
|
||||
<property name="y_options">GTK_FILL</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkAlignment" id="alignment13_1">
|
||||
<property name="visible">True</property>
|
||||
<property name="left_padding">12</property>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="pref_show_never_connect_check">
|
||||
<property name="label" translatable="yes">Show never connect networks</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="receives_default">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">19</property>
|
||||
<property name="bottom_attach">20</property>
|
||||
<property name="y_options"/>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label12_1">
|
||||
<property name="visible">True</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="label" translatable="yes"><b>Never Connect</b></property>
|
||||
<property name="use_markup">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">18</property>
|
||||
<property name="bottom_attach">19</property>
|
||||
<property name="y_options"/>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkAlignment" id="alignment13">
|
||||
<property name="visible">True</property>
|
||||
@@ -943,8 +978,8 @@ is already active.</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">18</property>
|
||||
<property name="bottom_attach">19</property>
|
||||
<property name="top_attach">20</property>
|
||||
<property name="bottom_attach">21</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
@@ -964,8 +999,8 @@ is already active.</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="right_attach">2</property>
|
||||
<property name="top_attach">19</property>
|
||||
<property name="bottom_attach">20</property>
|
||||
<property name="top_attach">21</property>
|
||||
<property name="bottom_attach">22</property>
|
||||
<property name="y_options"></property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
@@ -139,6 +139,9 @@ class WiredProfileChooser:
|
||||
dialog.destroy()
|
||||
|
||||
|
||||
def get_wireless_prop(net_id, prop):
|
||||
return wireless.GetWirelessProperty(net_id, prop)
|
||||
|
||||
class appGui(object):
|
||||
""" The main wicd GUI class. """
|
||||
def __init__(self, standalone=False, tray=None):
|
||||
@@ -571,8 +574,10 @@ class appGui(object):
|
||||
num_networks = wireless.GetNumberOfNetworks()
|
||||
instruct_label = self.wTree.get_object("label_instructions")
|
||||
if num_networks > 0:
|
||||
skip_never_connect = not daemon.GetShowNeverConnect()
|
||||
instruct_label.show()
|
||||
for x in range(0, num_networks):
|
||||
for x in xrange(0, num_networks):
|
||||
if skip_never_connect and misc.to_bool(get_wireless_prop(x,'never')): continue
|
||||
if printLine:
|
||||
sep = gtk.HSeparator()
|
||||
self.network_list.pack_start(sep, padding=10, fill=False,
|
||||
|
||||
@@ -813,6 +813,7 @@ class WirelessNetworkEntry(NetworkEntry):
|
||||
|
||||
print "ESSID : " + self.essid
|
||||
self.chkbox_autoconnect = gtk.CheckButton(language['automatic_connect'])
|
||||
self.chkbox_neverconnect = gtk.CheckButton(language['never_connect'])
|
||||
|
||||
self.set_signal_strength(wireless.GetWirelessProperty(networkID,
|
||||
'quality'),
|
||||
@@ -833,14 +834,23 @@ class WirelessNetworkEntry(NetworkEntry):
|
||||
# Add the wireless network specific parts to the NetworkEntry
|
||||
# VBox objects.
|
||||
self.vbox_top.pack_start(self.chkbox_autoconnect, False, False)
|
||||
self.vbox_top.pack_start(self.chkbox_neverconnect, False, False)
|
||||
|
||||
if to_bool(self.format_entry(networkID, "automatic")):
|
||||
self.chkbox_autoconnect.set_active(True)
|
||||
else:
|
||||
self.chkbox_autoconnect.set_active(False)
|
||||
|
||||
if to_bool(self.format_entry(networkID, "never")):
|
||||
self.chkbox_autoconnect.set_sensitive(False)
|
||||
self.connect_button.set_sensitive(False)
|
||||
self.chkbox_neverconnect.set_active(True)
|
||||
else:
|
||||
self.chkbox_neverconnect.set_active(False)
|
||||
|
||||
# Connect signals.
|
||||
self.chkbox_autoconnect.connect("toggled", self.update_autoconnect)
|
||||
self.chkbox_neverconnect.connect("toggled", self.update_neverconnect)
|
||||
|
||||
# Show everything
|
||||
self.show_all()
|
||||
@@ -863,6 +873,18 @@ class WirelessNetworkEntry(NetworkEntry):
|
||||
get_active()))
|
||||
wireless.SaveWirelessNetworkProperty(self.networkID, "automatic")
|
||||
|
||||
def update_neverconnect(self, widget=None):
|
||||
""" Called when the neverconnect checkbox is toggled. """
|
||||
wireless.SetWirelessProperty(self.networkID, "never",
|
||||
noneToString(self.chkbox_neverconnect.get_active()))
|
||||
wireless.SaveWirelessNetworkProperty(self.networkID, "never")
|
||||
if self.chkbox_neverconnect.get_active():
|
||||
self.chkbox_autoconnect.set_sensitive(False)
|
||||
self.connect_button.set_sensitive(False)
|
||||
else:
|
||||
self.chkbox_autoconnect.set_sensitive(True)
|
||||
self.connect_button.set_sensitive(True)
|
||||
|
||||
def destroy_called(self, *args):
|
||||
""" Clean up everything. """
|
||||
self.disconnect(self.wifides)
|
||||
@@ -874,6 +896,8 @@ class WirelessNetworkEntry(NetworkEntry):
|
||||
|
||||
def update_connect_button(self, state, apbssid):
|
||||
""" Update the connection/disconnect button for this entry. """
|
||||
if to_bool(self.format_entry(self.networkID, "never")):
|
||||
self.connect_button.set_sensitive(False)
|
||||
if not apbssid:
|
||||
apbssid = wireless.GetApBssid()
|
||||
if state == misc.WIRELESS and \
|
||||
|
||||
@@ -80,6 +80,7 @@ class PreferencesDialog(object):
|
||||
self.displaytypecheckbox.set_active(daemon.GetSignalDisplayType())
|
||||
self.verifyapcheckbox.set_active(daemon.GetShouldVerifyAp())
|
||||
self.preferwiredcheckbox.set_active(daemon.GetPreferWiredNetwork())
|
||||
self.showneverconnectcheckbox.set_active(daemon.GetShowNeverConnect())
|
||||
|
||||
dhcp_list = [self.dhcpautoradio, self.dhclientradio, self.dhcpcdradio,
|
||||
self.pumpradio, self.udhcpcradio]
|
||||
@@ -199,6 +200,7 @@ class PreferencesDialog(object):
|
||||
daemon.SetSignalDisplayType(int(self.displaytypecheckbox.get_active()))
|
||||
daemon.SetShouldVerifyAp(bool(self.verifyapcheckbox.get_active()))
|
||||
daemon.SetPreferWiredNetwork(bool(self.preferwiredcheckbox.get_active()))
|
||||
daemon.SetShowNeverConnect(bool(self.showneverconnectcheckbox.get_active()))
|
||||
if self.showlistradiobutton.get_active():
|
||||
daemon.SetWiredAutoConnectMethod(2)
|
||||
elif self.lastusedradiobutton.get_active():
|
||||
@@ -327,6 +329,8 @@ class PreferencesDialog(object):
|
||||
|
||||
self.reconnectcheckbox = setup_label("pref_auto_check",
|
||||
'auto_reconnect')
|
||||
self.showneverconnectcheckbox = setup_label("pref_show_never_connect_check",
|
||||
'show_never_connect')
|
||||
self.debugmodecheckbox = setup_label("pref_debug_check",
|
||||
'use_debug_mode')
|
||||
self.displaytypecheckbox = setup_label("pref_dbm_check",
|
||||
|
||||
@@ -765,7 +765,9 @@ class TrayIcon(object):
|
||||
sep.show()
|
||||
|
||||
if num_networks > 0:
|
||||
for x in range(0, num_networks):
|
||||
skip_never_connect = not daemon.GetShowNeverConnect()
|
||||
for x in xrange(0, num_networks):
|
||||
if skip_never_connect and misc.to_bool(get_prop(x,"never")): continue
|
||||
essid = get_prop(x, "essid")
|
||||
if status == misc.WIRELESS and info[1] == essid:
|
||||
is_active = True
|
||||
|
||||
@@ -105,6 +105,9 @@ language['dhcp_failed'] = _('''Connection Failed: Unable to Get IP Address''')
|
||||
language['setting_static_ip'] = _('''Setting static IP addresses...''')
|
||||
language['connecting_to_daemon'] = _('''Connecting to daemon...''')
|
||||
language['automatic_connect'] = _('''Automatically connect to this network''')
|
||||
language['never_connect'] = _('Never connect to this network')
|
||||
language['show_never_connect'] = _('Show never connect networks')
|
||||
language['hide_never_connect'] = _('Hide never connect networks')
|
||||
language['add_new_wired_profile'] = _('''Add a new wired profile''')
|
||||
language['dhcp_client'] = _('''DHCP Client''')
|
||||
language['display_type_dialog'] = _('''Use dBm to measure signal strength''')
|
||||
|
||||
@@ -101,6 +101,7 @@ class WicdDaemon(dbus.service.Object):
|
||||
self.connection_info = [""]
|
||||
self.auto_connecting = False
|
||||
self.prefer_wired = False
|
||||
self.show_never_connect = True
|
||||
self.dhcp_client = 0
|
||||
self.link_detect_tool = 0
|
||||
self.flush_tool = 0
|
||||
@@ -565,6 +566,20 @@ class WicdDaemon(dbus.service.Object):
|
||||
self.config.set("Settings", "prefer_wired", bool(value), write=True)
|
||||
self.prefer_wired = bool(value)
|
||||
|
||||
@dbus.service.method('org.wicd.daemon')
|
||||
def GetShowNeverConnect(self):
|
||||
""" Returns True if show_never_connect is set
|
||||
|
||||
if True then the client will show networks marked as never connect
|
||||
"""
|
||||
return self.show_never_connect
|
||||
|
||||
@dbus.service.method('org.wicd.daemon')
|
||||
def SetShowNeverConnect(self, value):
|
||||
""" Sets the how_never_connect state. """
|
||||
self.config.set("Settings", "show_never_connect", bool(value), write=True)
|
||||
self.show_never_connect = bool(value)
|
||||
|
||||
@dbus.service.method('org.wicd.daemon')
|
||||
def SetConnectionStatus(self, state, info):
|
||||
""" Sets the connection status.
|
||||
@@ -875,6 +890,8 @@ class WicdDaemon(dbus.service.Object):
|
||||
self.SetSudoApp(app_conf.get("Settings", "sudo_app", default=0))
|
||||
self.SetPreferWiredNetwork(app_conf.get("Settings", "prefer_wired",
|
||||
default=False))
|
||||
self.SetShowNeverConnect(app_conf.get("Settings", "show_never_connect",
|
||||
default=True))
|
||||
app_conf.write()
|
||||
|
||||
if os.path.isfile(wireless_conf):
|
||||
@@ -1302,6 +1319,12 @@ class WirelessDaemon(dbus.service.Object):
|
||||
if self.debug_mode:
|
||||
print network["essid"] + ' has profile'
|
||||
if bool(network.get('automatic')):
|
||||
try:
|
||||
if network.get('never'):
|
||||
print network["essid"],'marked never connect'
|
||||
continue
|
||||
except:
|
||||
print network["essid"],'has no never connect value'
|
||||
print 'trying to automatically connect to...' + \
|
||||
network["essid"]
|
||||
self.ConnectWireless(x)
|
||||
|
||||
Reference in New Issue
Block a user