summaryrefslogtreecommitdiff
path: root/SoftwareProperties/dialog_edit.py
diff options
context:
space:
mode:
Diffstat (limited to 'SoftwareProperties/dialog_edit.py')
-rw-r--r--SoftwareProperties/dialog_edit.py73
1 files changed, 53 insertions, 20 deletions
diff --git a/SoftwareProperties/dialog_edit.py b/SoftwareProperties/dialog_edit.py
index 05cbddba..59788915 100644
--- a/SoftwareProperties/dialog_edit.py
+++ b/SoftwareProperties/dialog_edit.py
@@ -41,6 +41,7 @@ class dialog_edit:
self.gladexml = gtk.glade.XML("%s/glade/SoftwarePropertiesDialogs.glade" % datadir)
self.main = self.gladexml.get_widget("dialog_edit")
self.main.set_transient_for(parent)
+ self.button_edit_ok = self.gladexml.get_widget("button_edit_ok")
# type
combo_type = self.gladexml.get_widget("combobox_type")
@@ -70,29 +71,61 @@ class dialog_edit:
entry = self.gladexml.get_widget("entry_comment")
entry.set_text(source_entry.comment)
+ # finally set the signal so that the check function is not tiggered
+ # during initialisation
+ self.gladexml.signal_connect("on_entry_source_line_changed",
+ self.check_line)
+
+ def check_line(self, *args):
+ """Check for a valid apt line and set the sensitiveness of the
+ button 'add' accordingly"""
+ line = self.get_line()
+ if line == False:
+ self.button_edit_ok.set_sensitive(False)
+ return
+ source_entry = aptsources.SourceEntry(line)
+ if (source_entry.invalid == True or source_entry.disabled == True):
+ self.button_edit_ok.set_sensitive(False)
+ else:
+ self.button_edit_ok.set_sensitive(True)
+
+ def get_line(self):
+ """Collect all values from the entries and create an apt line"""
+ combo_type = self.gladexml.get_widget("combobox_type")
+ if combo_type.get_active() == 0:
+ line = "deb"
+ else:
+ line = "deb-src"
+
+ entry = self.gladexml.get_widget("entry_uri")
+ text = entry.get_text()
+ if len(text) < 1 or text.find(" ") != -1 or text.find("#") != -1:
+ return False
+ line = line + " " + entry.get_text()
+
+ entry = self.gladexml.get_widget("entry_dist")
+ text = entry.get_text()
+ if len(text) < 1 or text.find(" ") != -1 or text.find("#") != -1:
+ return False
+ line = line + " " + entry.get_text()
+
+ entry = self.gladexml.get_widget("entry_comps")
+ text = entry.get_text()
+ if len(text) < 1 or text.find("#") != -1:
+ return False
+ line = line + " " + entry.get_text()
+
+ entry = self.gladexml.get_widget("entry_comment")
+ if entry.get_text() != "":
+ line = line + " #" + entry.get_text() + "\n"
+ else:
+ line = line + "\n"
+ return line
+
def run(self):
res = self.main.run()
if res == gtk.RESPONSE_OK:
- # get values
- combo_type = self.gladexml.get_widget("combobox_type")
- if combo_type.get_active() == 0:
- line = "deb"
- else:
- line = "deb-src"
- entry = self.gladexml.get_widget("entry_uri")
- line = line + " " + entry.get_text()
-
- entry = self.gladexml.get_widget("entry_dist")
- line = line + " " + entry.get_text()
-
- entry = self.gladexml.get_widget("entry_comps")
- line = line + " " + entry.get_text()
-
- entry = self.gladexml.get_widget("entry_comment")
- if entry.get_text() != "":
- line = line + " #" + entry.get_text() + "\n"
- else:
- line = line + "\n"
+ line = self.get_line()
# change repository
index = self.sourceslist.list.index(self.source_entry)