commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

r6232 - trunk/gnue-forms/src/uidrivers/gtk2


From: johannes
Subject: r6232 - trunk/gnue-forms/src/uidrivers/gtk2
Date: Mon, 30 Aug 2004 13:47:57 -0500 (CDT)

Author: johannes
Date: 2004-08-30 13:47:56 -0500 (Mon, 30 Aug 2004)
New Revision: 6232

Modified:
   trunk/gnue-forms/src/uidrivers/gtk2/UILoginHandler.py
Log:
Make sure the dialog is freed after fetching the results.


Modified: trunk/gnue-forms/src/uidrivers/gtk2/UILoginHandler.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/gtk2/UILoginHandler.py       2004-08-30 
14:05:38 UTC (rev 6231)
+++ trunk/gnue-forms/src/uidrivers/gtk2/UILoginHandler.py       2004-08-30 
18:47:56 UTC (rev 6232)
@@ -46,82 +46,83 @@
                               (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
                                gtk.STOCK_OK    ,  gtk.RESPONSE_OK))
 
-    self.dialog.set_border_width (10)
+    try:
+      self.dialog.set_border_width (10)
 
-    imageFile = gConfigForms('loginPNG')
-    if not os.path.exists (imageFile):
-      imageFile = os.path.join (os.path.normpath ( \
-          GConfig.getInstalledBase ('forms_images', 'common_images')),
-          gConfigForms ('loginPNG'))
+      imageFile = gConfigForms('loginPNG')
+      if not os.path.exists (imageFile):
+        imageFile = os.path.join (os.path.normpath ( \
+            GConfig.getInstalledBase ('forms_images', 'common_images')),
+            gConfigForms ('loginPNG'))
 
-    bmp = gtk.Image ()
-    bmp.set_from_file (imageFile)
-    self.dialog.vbox.pack_start (bmp)
-    bmp.show ()
+      bmp = gtk.Image ()
+      bmp.set_from_file (imageFile)
+      self.dialog.vbox.pack_start (bmp)
+      bmp.show ()
 
-    text = u_('Login required for %(newline)s"%(description)s"') \
-           % {'newline': len (description) and '\n' or '',
-              'description': description or connection}
-    label = gtk.Label (text)
-    label.set_line_wrap (True)
-    label.set_justify (gtk.JUSTIFY_CENTER)
-    self.dialog.vbox.pack_start (label, True, True, 20)
-    label.show ()
-
-    table = gtk.Table (len (fields), 2)
-    self.textEntries = []
-
-    for ix in range (len (fields)):
-      item = fields [ix]
-      text = "%s" % item [1]
-      if isinstance (text, types.StringType):
-        text = unicode (text, i18n.encoding)
+      text = u_('Login required for %(newline)s"%(description)s"') \
+             % {'newline': len (description) and '\n' or '',
+                'description': description or connection}
       label = gtk.Label (text)
-      label.set_alignment (0, label.get_alignment () [1])
-      table.attach (label, 0, 1, ix, ix + 1)
+      label.set_line_wrap (True)
+      label.set_justify (gtk.JUSTIFY_CENTER)
+      self.dialog.vbox.pack_start (label, True, True, 20)
       label.show ()
 
-      entry = gtk.Entry ()
-      if item [2]:
-        entry.set_visibility (0)
-      table.attach (entry, 1, 2, ix, ix + 1)
-      entry.connect ('key-press-event', self._keypress, ix + 1)
-      entry.show ()
+      table = gtk.Table (len (fields), 2)
+      self.textEntries = []
 
-      self.textEntries.append (entry)
+      for ix in range (len (fields)):
+        item = fields [ix]
+        text = "%s" % item [1]
+        if isinstance (text, types.StringType):
+          text = unicode (text, i18n.encoding)
+        label = gtk.Label (text)
+        label.set_alignment (0, label.get_alignment () [1])
+        table.attach (label, 0, 1, ix, ix + 1)
+        label.show ()
 
-    table.show ()
-    self.dialog.vbox.pack_start (table, True, True, 10)
+        entry = gtk.Entry ()
+        if item [2]:
+          entry.set_visibility (0)
+        table.attach (entry, 1, 2, ix, ix + 1)
+        entry.connect ('key-press-event', self._keypress, ix + 1)
+        entry.show ()
 
-    # Add an error text if given
-    if error is not None:
-      if isinstance (error, types.StringType):
-        print "Error:", error
-        error = unicode (error, i18n.encoding)
-      label = gtk.Label (error)
-      label.set_line_wrap (True)
-      label.modify_fg (gtk.STATE_NORMAL, gtk.gdk.color_parse ('red'))
-      self.dialog.vbox.pack_start (label, True, True, 10)
-      label.show ()
+        self.textEntries.append (entry)
 
-    # focus first entry
-    self.textEntries [0].grab_focus ()
+      table.show ()
+      self.dialog.vbox.pack_start (table, True, True, 10)
 
-    self.dialog.set_position (1)  # for center
-    self.dialog.show_all ()
+      # Add an error text if given
+      if error is not None:
+        if isinstance (error, types.StringType):
+          error = unicode (error, i18n.encoding)
+        label = gtk.Label (error)
+        label.set_line_wrap (True)
+        label.modify_fg (gtk.STATE_NORMAL, gtk.gdk.color_parse ('red'))
+        self.dialog.vbox.pack_start (label, True, True, 10)
+        label.show ()
 
-    result = self.dialog.run ()
-    self.dialog.destroy ()
+      # focus first entry
+      self.textEntries [0].grab_focus ()
+  
+      self.dialog.set_position (1)  # for center
+      self.dialog.show_all ()
 
-    self._completed = result == gtk.RESPONSE_OK
-    if not self._completed:
-      raise GLoginHandler.UserCanceledLogin
+      result = self.dialog.run ()
+      self._completed = result == gtk.RESPONSE_OK
+      if not self._completed:
+        raise GLoginHandler.UserCanceledLogin
 
-    result = {}
-    for ix in range (len (fields)):
-      text = unicode (self.textEntries [ix].get_text (), 'utf-8')
-      result [fields [ix][0]] = text
+      result = {}
+      for ix in range (len (fields)):
+        text = unicode (self.textEntries [ix].get_text (), 'utf-8')
+        result [fields [ix][0]] = text
 
+    finally:
+      self.dialog.destroy ()
+
     return result
 
 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]