From db2d00b2b45ffad7044989f9dc92dfbbb705b737 Mon Sep 17 00:00:00 2001 From: Adam Blackburn Date: Fri, 9 Jan 2009 20:40:30 +0800 Subject: [PATCH 1/6] Removed network expanders --- wicd/netentry.py | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/wicd/netentry.py b/wicd/netentry.py index fca87fb..903c3cd 100644 --- a/wicd/netentry.py +++ b/wicd/netentry.py @@ -495,7 +495,6 @@ class NetworkEntry(gtk.HBox): wired = dbus_ifaces["wired"] wireless = dbus_ifaces["wireless"] gtk.HBox.__init__(self, False, 2) - self.expander = gtk.Expander() self.image = gtk.Image() self.pack_start(self.image, False, False) @@ -512,8 +511,6 @@ class NetworkEntry(gtk.HBox): # Set up the VBox that goes in the gtk.Expander self.expander_vbox = gtk.VBox(False, 1) self.expander_vbox.show() - self.expander_vbox.pack_start(self.expander) - self.expander_vbox.pack_start(self.connect_hbox, False, False) self.pack_end(self.expander_vbox) # Set up the advanced settings button @@ -545,7 +542,8 @@ class NetworkEntry(gtk.HBox): aligner = gtk.Alignment(xscale=1.0) aligner.add(self.vbox_top) aligner.set_padding(0, 0, 15, 0) - self.expander.add(aligner) + self.expander_vbox.pack_start(aligner) + self.expander_vbox.pack_start(self.connect_hbox, False, False) def destroy_called(self, *args): """ Clean up everything. """ @@ -564,10 +562,8 @@ class WiredNetworkEntry(NetworkEntry): #self.image.set_from_icon_name("network-wired", 6) self.image.set_from_file(wpath.images + "wired.png") self.image.show() - self.expander.show() self.connect_button.show() - self.expander.set_label(language['wired_network']) #self.reset_static_checkboxes() self.is_full_gui = True @@ -628,11 +624,8 @@ class WiredNetworkEntry(NetworkEntry): else: self.combo_profile_names.set_active(0) print "wired profiles found" - self.expander.set_expanded(False) else: print "no wired profiles found" - if not wired.GetAlwaysShowWiredInterface(): - self.expander.set_expanded(True) self.profile_help.show() self.check_enable() self.wireddis = self.connect("destroy", self.destroy_called) @@ -793,13 +786,10 @@ class WirelessNetworkEntry(NetworkEntry): wireless.GetWirelessProperty(networkID, 'encryption_method')) - # The the expander label. - self.expander.set_use_markup(True) - - self.expander.set_label(self._escape(self.essid) + " " + - self.lbl_strength.get_label() + " " + - self.lbl_encryption.get_label() + " " + - self.lbl_mac.get_label()) + # self.expander.set_label(self._escape(self.essid) + " " + + # self.lbl_strength.get_label() + " " + + # self.lbl_encryption.get_label() + " " + + # self.lbl_mac.get_label()) # Pack the network status HBox. self.hbox_status.pack_start(self.lbl_strength, True, True) From 285e47763b8317d6cad448f8cf1992d5ddf79db8 Mon Sep 17 00:00:00 2001 From: Adam Blackburn Date: Fri, 9 Jan 2009 21:12:48 +0800 Subject: [PATCH 2/6] Added a name label --- wicd/netentry.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/wicd/netentry.py b/wicd/netentry.py index 903c3cd..c441f7e 100644 --- a/wicd/netentry.py +++ b/wicd/netentry.py @@ -507,6 +507,9 @@ class NetworkEntry(gtk.HBox): # Set up the Disconnect button self.disconnect_button = gtk.Button(stock=gtk.STOCK_DISCONNECT) self.connect_hbox.pack_start(self.disconnect_button, False, False) + + # Create a label to hold the name of the entry + self.name_label = gtk.Label() # Set up the VBox that goes in the gtk.Expander self.expander_vbox = gtk.VBox(False, 1) @@ -542,6 +545,7 @@ class NetworkEntry(gtk.HBox): aligner = gtk.Alignment(xscale=1.0) aligner.add(self.vbox_top) aligner.set_padding(0, 0, 15, 0) + self.expander_vbox.pack_start(self.name_label) self.expander_vbox.pack_start(aligner) self.expander_vbox.pack_start(self.connect_hbox, False, False) @@ -563,6 +567,8 @@ class WiredNetworkEntry(NetworkEntry): self.image.set_from_file(wpath.images + "wired.png") self.image.show() self.connect_button.show() + + self.name_label.set_label(language['wired_network']) #self.reset_static_checkboxes() self.is_full_gui = True @@ -786,10 +792,10 @@ class WirelessNetworkEntry(NetworkEntry): wireless.GetWirelessProperty(networkID, 'encryption_method')) - # self.expander.set_label(self._escape(self.essid) + " " + - # self.lbl_strength.get_label() + " " + - # self.lbl_encryption.get_label() + " " + - # self.lbl_mac.get_label()) + self.name_label.set_markup(self._escape(self.essid) + " " + + self.lbl_strength.get_label() + " " + + self.lbl_encryption.get_label() + " " + + self.lbl_mac.get_label()) # Pack the network status HBox. self.hbox_status.pack_start(self.lbl_strength, True, True) From fa20f7ec01fb2fbe65acb7da81b7bcac3bc657c5 Mon Sep 17 00:00:00 2001 From: Adam Blackburn Date: Fri, 9 Jan 2009 21:53:59 +0800 Subject: [PATCH 3/6] Added an information button and a dialog --- wicd/netentry.py | 55 +++++++++++++++++++++++++++++++----------------- 1 file changed, 36 insertions(+), 19 deletions(-) diff --git a/wicd/netentry.py b/wicd/netentry.py index c441f7e..2af4535 100644 --- a/wicd/netentry.py +++ b/wicd/netentry.py @@ -497,19 +497,24 @@ class NetworkEntry(gtk.HBox): gtk.HBox.__init__(self, False, 2) self.image = gtk.Image() self.pack_start(self.image, False, False) + + # Create an HBox to hold the buttons + self.buttons_hbox = gtk.HBox(False, 3) + self.buttons_hbox.set_border_width(5) # Set up the Connect button self.connect_button = gtk.Button(stock=gtk.STOCK_CONNECT) self.connect_hbox = gtk.HBox(False, 2) - self.connect_hbox.pack_start(self.connect_button, False, False) + self.buttons_hbox.pack_start(self.connect_button, False, False) self.connect_hbox.show() # Set up the Disconnect button self.disconnect_button = gtk.Button(stock=gtk.STOCK_DISCONNECT) - self.connect_hbox.pack_start(self.disconnect_button, False, False) + self.buttons_hbox.pack_start(self.disconnect_button, False, False) # Create a label to hold the name of the entry self.name_label = gtk.Label() + self.name_label.set_alignment(0, 0.5) # Set up the VBox that goes in the gtk.Expander self.expander_vbox = gtk.VBox(False, 1) @@ -534,13 +539,11 @@ class NetworkEntry(gtk.HBox): self.script_button.set_image(self.script_image) self.script_button.set_label(language['scripts']) - self.settings_hbox = gtk.HBox(False, 3) - self.settings_hbox.set_border_width(5) - self.settings_hbox.pack_start(self.script_button, False, False) - self.settings_hbox.pack_start(self.advanced_button, False, False) - + self.buttons_hbox.pack_start(self.script_button, False, False) + self.buttons_hbox.pack_start(self.advanced_button, False, False) + self.vbox_top = gtk.VBox(False, 0) - self.vbox_top.pack_end(self.settings_hbox, False, False) + self.vbox_top.pack_end(self.buttons_hbox, False, False) aligner = gtk.Alignment(xscale=1.0) aligner.add(self.vbox_top) @@ -792,22 +795,18 @@ class WirelessNetworkEntry(NetworkEntry): wireless.GetWirelessProperty(networkID, 'encryption_method')) - self.name_label.set_markup(self._escape(self.essid) + " " + - self.lbl_strength.get_label() + " " + - self.lbl_encryption.get_label() + " " + - self.lbl_mac.get_label()) + self.name_label.set_markup(self._escape(self.essid)) - # Pack the network status HBox. - self.hbox_status.pack_start(self.lbl_strength, True, True) - self.hbox_status.pack_start(self.lbl_encryption, True, True) - self.hbox_status.pack_start(self.lbl_mac, True, True) - self.hbox_status.pack_start(self.lbl_mode, True, True) - self.hbox_status.pack_start(self.lbl_channel, True, True) + information_button = gtk.Button(stock=gtk.STOCK_INFO) + + self.buttons_hbox.pack_start(information_button, False, False) + + information_button.connect('clicked', self.show_info_dialog) # 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.hbox_status, True, True) + # self.vbox_top.pack_start(self.hbox_status, True, True) if to_bool(self.format_entry(networkID, "automatic")): self.chkbox_autoconnect.set_active(True) @@ -822,7 +821,25 @@ class WirelessNetworkEntry(NetworkEntry): self.show_all() self.advanced_dialog = WirelessSettingsDialog(networkID) self.wifides = self.connect("destroy", self.destroy_called) + + def show_info_dialog(self, button=None): + dialog = gtk.Dialog() + vbox = dialog.vbox + # Pack the network status HBox. + vbox.pack_start(self.lbl_strength, True, True) + vbox.pack_start(self.lbl_encryption, True, True) + vbox.pack_start(self.lbl_mac, True, True) + vbox.pack_start(self.lbl_mode, True, True) + vbox.pack_start(self.lbl_channel, True, True) + + vbox.show_all() + + dialog.add_button(gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE) + + dialog.run() + dialog.destroy() + def _escape(self, val): """ Escapes special characters so they're displayed correctly. """ return val.replace("&", "&").replace("<", "<").\ From adcea1f44ad34338c059b1e6c137783c4eecd11f Mon Sep 17 00:00:00 2001 From: Adam Blackburn Date: Fri, 9 Jan 2009 22:54:24 +0800 Subject: [PATCH 4/6] Information dialog now uses real labels instead of grey labels --- wicd/netentry.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/wicd/netentry.py b/wicd/netentry.py index 2af4535..5bc23d0 100644 --- a/wicd/netentry.py +++ b/wicd/netentry.py @@ -774,11 +774,11 @@ class WirelessNetworkEntry(NetworkEntry): "essid")) print "ESSID : " + self.essid # Make the combo box. - self.lbl_strength = GreyLabel() - self.lbl_encryption = GreyLabel() - self.lbl_mac = GreyLabel() - self.lbl_channel = GreyLabel() - self.lbl_mode = GreyLabel() + self.lbl_strength = gtk.Label() + self.lbl_encryption = gtk.Label() + self.lbl_mac = gtk.Label() + self.lbl_channel = gtk.Label() + self.lbl_mode = gtk.Label() self.hbox_status = gtk.HBox(False, 5) self.chkbox_autoconnect = gtk.CheckButton(language['automatic_connect']) From 9841fa77880e4219b274ea1d787a3e2b8cf1e05a Mon Sep 17 00:00:00 2001 From: Adam Blackburn Date: Sat, 10 Jan 2009 08:36:19 +0800 Subject: [PATCH 5/6] Made the information dialog look nicer -- added description labels and left aligned everything --- wicd/netentry.py | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/wicd/netentry.py b/wicd/netentry.py index 5bc23d0..1d793bf 100644 --- a/wicd/netentry.py +++ b/wicd/netentry.py @@ -775,10 +775,15 @@ class WirelessNetworkEntry(NetworkEntry): print "ESSID : " + self.essid # Make the combo box. self.lbl_strength = gtk.Label() + self.lbl_strength.set_alignment(0, 0.5) self.lbl_encryption = gtk.Label() + self.lbl_encryption.set_alignment(0, 0.5) self.lbl_mac = gtk.Label() + self.lbl_mac.set_alignment(0, 0.5) self.lbl_channel = gtk.Label() + self.lbl_channel.set_alignment(0, 0.5) self.lbl_mode = gtk.Label() + self.lbl_mode.set_alignment(0, 0.5) self.hbox_status = gtk.HBox(False, 5) self.chkbox_autoconnect = gtk.CheckButton(language['automatic_connect']) @@ -824,14 +829,35 @@ class WirelessNetworkEntry(NetworkEntry): def show_info_dialog(self, button=None): dialog = gtk.Dialog() + + dialog.set_title('Network Information') + vbox = dialog.vbox + + table = gtk.Table(5, 2) + table.set_col_spacings(4) + vbox.pack_start(table) + + class LeftAlignedLabel(gtk.Label): + def __init__(self, label=None): + gtk.Label.__init__(self, label) + self.set_alignment(0.0, 0.5) # Pack the network status HBox. - vbox.pack_start(self.lbl_strength, True, True) - vbox.pack_start(self.lbl_encryption, True, True) - vbox.pack_start(self.lbl_mac, True, True) - vbox.pack_start(self.lbl_mode, True, True) - vbox.pack_start(self.lbl_channel, True, True) + table.attach(LeftAlignedLabel('Signal strength'), 0, 1, 0, 1) + table.attach(self.lbl_strength, 1, 2, 0, 1) + + table.attach(LeftAlignedLabel('Encryption type'), 0, 1, 1, 2) + table.attach(self.lbl_encryption, 1, 2, 1, 2) + + table.attach(LeftAlignedLabel('Access point address'), 0, 1, 2, 3) + table.attach(self.lbl_mac, 1, 2, 2, 3) + + table.attach(LeftAlignedLabel('Mode'), 0, 1, 3, 4) + table.attach(self.lbl_mode, 1, 2, 3, 4) + + table.attach(LeftAlignedLabel('Channel'), 0, 1, 4, 5) + table.attach(self.lbl_channel, 1, 2, 4, 5) vbox.show_all() From ac6df8d37042f8f44d0f3d18a8f6306df929aef3 Mon Sep 17 00:00:00 2001 From: Adam Blackburn Date: Sat, 10 Jan 2009 11:03:41 +0800 Subject: [PATCH 6/6] A few minor cosmetic changes Changed main GUI name from Wicd Manager to Wicd Network Manager --- data/wicd.glade | 1088 +++++++++++++++++++++++----------------------- wicd/netentry.py | 18 +- 2 files changed, 551 insertions(+), 555 deletions(-) diff --git a/data/wicd.glade b/data/wicd.glade index bb6bdc2..e5a9d7f 100644 --- a/data/wicd.glade +++ b/data/wicd.glade @@ -1,12 +1,12 @@ - + 450 400 True - Wicd Manager + Wicd Network Manager GTK_WIN_POS_CENTER 550 GDK_GRAVITY_CENTER @@ -429,15 +429,44 @@ 4 4 - + True 24 - + + True + 0 + DNS domain: + + + + + 6 + 7 + + + + + + True + True + + + 1 + 2 + 6 + 7 + + + + + True + 12 + + True True - 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. - Always show wired interface + Automatically reconnect on network connection loss 0 True @@ -445,278 +474,44 @@ 2 - 3 - 4 + 16 + 17 - - True - True - - - 1 - 2 - 7 - 8 - - - - - - True - True - - - 1 - 2 - 8 - 9 - - - - - - True - True - - - 1 - 2 - 9 - 10 - - - - - + True 0 - <b>Global DNS Servers</b> + <b>Automatic Reconnection</b> True 2 - 4 - 5 + 15 + 16 - + True 12 - + True True - Use global DNS servers - 0 - True - - - - - 2 - 5 - 6 - - - - - - True - 24 - - - True - 0 - Search domain: - - - - - 7 - 8 - - - - - - True - 24 - - - True - 0 - DNS server 1: - - - - - 8 - 9 - - - - - - True - 24 - - - True - 0 - DNS server 2: - - - - - 9 - 10 - - - - - - True - True - - - 1 - 2 - 10 - 11 - - - - - - True - 24 - - - True - 0 - DNS server 3: - - - - - 10 - 11 - - - - - - True - 0 - <b>Network Interfaces</b> - True - - - 2 - - - - - - True - True - - - 1 - 2 - 1 - 2 - - - - - - True - True - - - 1 - 2 - 2 - 3 - - - - - - True - 12 - - - True - 0 - Wireless interface: - - - - - 1 - 2 - - - - - - True - 12 - - - True - 0 - Wired interface: - - - - - 2 - 3 - - - - - - True - 0 - <b>Wired automatic connection</b> - True - - - 2 - 11 - 12 - - - - - - True - 12 - - - True - True - Use default wired network profile + Use last wired network profile 0 True True - pref_use_last_radio 2 - 12 - 13 + 14 + 15 @@ -744,89 +539,294 @@ - + True 12 - + True True - Use last wired network profile + Use default wired network profile 0 True True + pref_use_last_radio 2 - 14 - 15 + 12 + 13 - + True 0 - <b>Automatic Reconnection</b> + <b>Wired automatic connection</b> True 2 - 15 - 16 + 11 + 12 - + True 12 - + True - True - Automatically reconnect on network connection loss - 0 - True + 0 + Wired interface: - 2 - 16 - 17 + 2 + 3 - + + True + 12 + + + True + 0 + Wireless interface: + + + + + 1 + 2 + + + + + True True 1 2 - 6 - 7 + 2 + 3 + - + + True + True + + + 1 + 2 + 1 + 2 + + + + + + True + 0 + <b>Network Interfaces</b> + True + + + 2 + + + + + True 24 - + True 0 - DNS domain: + DNS server 3: - 6 - 7 + 10 + 11 + + + + + + True + True + + + 1 + 2 + 10 + 11 + + + + + + True + 24 + + + True + 0 + DNS server 2: + + + + + 9 + 10 + + + + + + True + 24 + + + True + 0 + DNS server 1: + + + + + 8 + 9 + + + + + + True + 24 + + + True + 0 + Search domain: + + + + + 7 + 8 + + + + + + True + 12 + + + True + True + Use global DNS servers + 0 + True + + + + + 2 + 5 + 6 + + + + + + True + 0 + <b>Global DNS Servers</b> + True + + + 2 + 4 + 5 + + + + + + True + True + + + 1 + 2 + 9 + 10 + + + + + + True + True + + + 1 + 2 + 8 + 9 + + + + + + True + True + + + 1 + 2 + 7 + 8 + + + + + + True + 24 + + + True + True + 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. + Always show wired interface + 0 + True + + + + + 2 + 3 + 4 @@ -871,13 +871,146 @@ True 6 - + True 0 - <b>DHCP Client</b> + <b>Route Table Flushing</b> True + 4 + 5 + + + + + + True + 0 + <b>Wired Link Detection</b> + True + + + 2 + 3 + + + + + + True + 12 + + + True + + + True + True + Automatic (recommended) + 0 + True + True + + + False + + + + + True + True + ip + 0 + True + True + flush_auto_radio + + + False + 1 + + + + + True + True + route + 0 + True + True + flush_auto_radio + + + False + 2 + + + + + + + 5 + 6 + + + + + + True + 12 + + + True + + + True + True + Automatic (recommended) + 0 + True + True + + + False + + + + + True + True + ethtool + 0 + True + True + link_auto_radio + + + False + 1 + + + + + True + True + mii-tool + 0 + True + True + link_auto_radio + + + False + 2 + + + + + + + 3 + 4 @@ -956,146 +1089,13 @@ - - True - 12 - - - True - - - True - True - Automatic (recommended) - 0 - True - True - - - False - - - - - True - True - ethtool - 0 - True - True - link_auto_radio - - - False - 1 - - - - - True - True - mii-tool - 0 - True - True - link_auto_radio - - - False - 2 - - - - - - - 3 - 4 - - - - - - True - 12 - - - True - - - True - True - Automatic (recommended) - 0 - True - True - - - False - - - - - True - True - ip - 0 - True - True - flush_auto_radio - - - False - 1 - - - - - True - True - route - 0 - True - True - flush_auto_radio - - - False - 2 - - - - - - - 5 - 6 - - - - - + True 0 - <b>Wired Link Detection</b> + <b>DHCP Client</b> True - 2 - 3 - - - - - - True - 0 - <b>Route Table Flushing</b> - True - - - 4 - 5 @@ -1134,135 +1134,67 @@ 10 2 - - True - - - 5 - 6 - GTK_FILL - - - - - + True 0 - You should almost always use wext as the -WPA supplicant driver. + Hover your mouse over the selected backend +to read its description. True 1 2 - 2 - 3 + 5 + 6 - + True - 0 - <b>Backend</b> - True - - - 2 - 3 - 4 - - - - - - True - True + + + True + + + False + + 1 2 - 4 - 5 + 1 + 2 - + + True + + + 2 + 3 + GTK_FILL + + + + + True 12 - + True 0 - Backend: + Driver: - 4 - 5 - - - - - - True - 0 - <b>Debugging</b> - True - - - 2 - 6 - 7 - - - - - - True - 0 - <b>WPA Supplicant</b> - True - - - 2 - - - - - - True - 0 - <b>Wireless Interface</b> - True - - - 2 - 8 - 9 - - - - - - True - 12 - - - True - True - Enable debug mode - 0 - True - - - - - 2 - 7 - 8 + 1 + 2 @@ -1288,67 +1220,135 @@ WPA supplicant driver. - + True 12 - + + True + True + Enable debug mode + 0 + True + + + + + 2 + 7 + 8 + + + + + + True + 0 + <b>Wireless Interface</b> + True + + + 2 + 8 + 9 + + + + + + True + 0 + <b>WPA Supplicant</b> + True + + + 2 + + + + + + True + 0 + <b>Debugging</b> + True + + + 2 + 6 + 7 + + + + + + True + 12 + + True 0 - Driver: + Backend: - 1 - 2 + 4 + 5 - + True - - - 2 - 3 - GTK_FILL - - - - - - True - - - True - - - False - - + True 1 2 - 1 - 2 + 4 + 5 - + True 0 - Hover your mouse over the selected backend -to read its description. + <b>Backend</b> + True + + + 2 + 3 + 4 + + + + + + True + 0 + You should almost always use wext as the +WPA supplicant driver. True 1 2 + 2 + 3 + + + + + + True + + 5 6 + GTK_FILL diff --git a/wicd/netentry.py b/wicd/netentry.py index 1d793bf..77920e4 100644 --- a/wicd/netentry.py +++ b/wicd/netentry.py @@ -499,14 +499,12 @@ class NetworkEntry(gtk.HBox): self.pack_start(self.image, False, False) # Create an HBox to hold the buttons - self.buttons_hbox = gtk.HBox(False, 3) - self.buttons_hbox.set_border_width(5) + self.buttons_hbox = gtk.HBox(False, 6) + # self.buttons_hbox.set_border_width(5) # Set up the Connect button self.connect_button = gtk.Button(stock=gtk.STOCK_CONNECT) - self.connect_hbox = gtk.HBox(False, 2) self.buttons_hbox.pack_start(self.connect_button, False, False) - self.connect_hbox.show() # Set up the Disconnect button self.disconnect_button = gtk.Button(stock=gtk.STOCK_DISCONNECT) @@ -545,12 +543,8 @@ class NetworkEntry(gtk.HBox): self.vbox_top = gtk.VBox(False, 0) self.vbox_top.pack_end(self.buttons_hbox, False, False) - aligner = gtk.Alignment(xscale=1.0) - aligner.add(self.vbox_top) - aligner.set_padding(0, 0, 15, 0) self.expander_vbox.pack_start(self.name_label) - self.expander_vbox.pack_start(aligner) - self.expander_vbox.pack_start(self.connect_hbox, False, False) + self.expander_vbox.pack_start(self.vbox_top) def destroy_called(self, *args): """ Clean up everything. """ @@ -767,7 +761,7 @@ class WirelessNetworkEntry(NetworkEntry): self.networkID = networkID self.image.set_padding(0, 0) - self.image.set_alignment(.5, 0) + self.image.set_alignment(0.5, 0.5) self.image.set_size_request(60, -1) #self.image.set_from_icon_name("network-wired", 6) self.essid = noneToBlankString(wireless.GetWirelessProperty(networkID, @@ -833,9 +827,11 @@ class WirelessNetworkEntry(NetworkEntry): dialog.set_title('Network Information') vbox = dialog.vbox + dialog.set_has_separator(False) + # dialog.set_border_width(12) table = gtk.Table(5, 2) - table.set_col_spacings(4) + table.set_col_spacings(12) vbox.pack_start(table) class LeftAlignedLabel(gtk.Label):