Reviewers: ,


Please review this at http://codereview.tryton.org/36002/

Affected files:
  M tryton/gui/window/dblogin.py


Index: tryton/gui/window/dblogin.py
===================================================================
--- a/tryton/gui/window/dblogin.py
+++ b/tryton/gui/window/dblogin.py
@@ -85,6 +85,7 @@
         self.port_entry = gtk.Entry()
         self.port_entry.connect('focus-out-event', self.display_dbwidget)
         self.port_entry.connect('changed', self.update_profiles, 'port')
+        self.port_entry.connect('insert_text', self.insert_text_port)
         self.port_entry.set_activates_default(True)
         table.attach(port, 0, 1, 2, 3, yoptions=False, xoptions=gtk.FILL)
         table.attach(self.port_entry, 1, 2, 2, 3, yoptions=False)
@@ -344,6 +345,15 @@
self.profiles.set(self.current_profile['name'], 'database', dbname)
             self.validate_profile(self.current_profile['name'])

+    def insert_text_port(self, entry, new_text, new_text_length, position):
+        value = entry.get_text()
+        position = entry.get_position()
+        new_value = value[:position] + new_text + value[position:]
+        try:
+            int(new_value)
+        except ValueError:
+            entry.stop_emission('insert-text')
+

 class DBLogin(object):
     def __init__(self, parent):
@@ -578,6 +588,10 @@
                 CONFIG['login.profile'] = profile
             host, port = (self.entry_host.get_text().split(':', 1)
                 + ['8070'])[:2]
+            try:
+                port = int(port)
+            except ValueError:
+                continue
             database = self.entry_database.get_text()
             login = self.entry_login.get_text()
             CONFIG['login.server'] = host
@@ -586,7 +600,7 @@
             CONFIG['login.expanded'] = self.expander.props.expanded
             CONFIG['login.login'] = login
             result = (self.entry_login.get_text(),
-                self.entry_password.get_text(), host, int(port), database)
+                self.entry_password.get_text(), host, port, database)

         if res != gtk.RESPONSE_OK:
             parent.present()


--
[email protected] mailing list

Reply via email to