Project/CreateDialogCodeDialog.py

changeset 1869
3e34d5c362d9
parent 1862
b1498278335f
child 1870
2fb653ff32ec
--- a/Project/CreateDialogCodeDialog.py	Sat May 19 18:04:58 2012 +0200
+++ b/Project/CreateDialogCodeDialog.py	Sun May 20 11:14:50 2012 +0200
@@ -36,6 +36,7 @@
     Class implementing a dialog to generate code for a Qt4 dialog.
     """
     DialogClasses = {"QDialog", "QWidget", "QMainWindow", "QWizard"}
+    Separator = 25 * "="
     
     def __init__(self, formName, project, parent=None):
         """
@@ -88,17 +89,22 @@
             except ImportError:
                 pass
         
-        # NOTE: improve parsing by recording unrecognized classes and allowing the
-        #       user to select one
         if self.__module is not None:
             self.filenameEdit.setText(self.srcFile)
             
             classesList = []
+            vagueClassesList = []
             for cls in list(self.__module.classes.values()):
                 if not set(cls.super).isdisjoint(CreateDialogCodeDialog.DialogClasses):
                     classesList.append(cls.name)
+                else:
+                    vagueClassesList.append(cls.name)
             classesList.sort()
             self.classNameCombo.addItems(classesList)
+            if vagueClassesList:
+                if classesList:
+                    self.classNameCombo.addItem(CreateDialogCodeDialog.Separator)
+                self.classNameCombo.addItems(sorted(vagueClassesList))
         
         if os.path.exists(self.srcFile) and \
            self.__module is not None and \
@@ -455,7 +461,14 @@
         
         @param index index of the activated item (integer)
         """
-        self.__updateSlotsModel()
+        if self.classNameCombo.currentText() == CreateDialogCodeDialog.Separator:
+            self.okButton.setEnabled(False)
+            self.filterEdit.clear()
+            self.slotsModel.clear()
+            self.slotsModel.setHorizontalHeaderLabels([""])
+        else:
+            self.okButton.setEnabled(True)
+            self.__updateSlotsModel()
         
     def on_filterEdit_textChanged(self, text):
         """

eric ide

mercurial