MultiProject/MultiProject.py

changeset 495
b31b0bffa5b0
parent 486
e4711a55e482
child 517
fe6fe492f82e
--- a/MultiProject/MultiProject.py	Wed Aug 11 17:12:04 2010 +0200
+++ b/MultiProject/MultiProject.py	Wed Aug 11 19:55:34 2010 +0200
@@ -36,7 +36,7 @@
     """
     Class implementing the project management functionality.
     
-    @signal dirty(int) emitted when the dirty state changes
+    @signal dirty(bool) emitted when the dirty state changes
     @signal newMultiProject() emitted after a new multi project was generated
     @signal multiProjectOpened() emitted after a multi project file was read
     @signal multiProjectClosed() emitted after a multi project was closed
@@ -52,6 +52,15 @@
             has been removed
     @signal projectOpened(filename) emitted after the project has been opened
     """
+    dirty = pyqtSignal(bool)
+    newMultiProject = pyqtSignal()
+    multiProjectOpened = pyqtSignal()
+    multiProjectClosed = pyqtSignal()
+    multiProjectPropertiesChanged = pyqtSignal()
+    showMenu = pyqtSignal(str, QMenu)
+    projectDataChanged = pyqtSignal(dict)
+    projectAdded = pyqtSignal(dict)
+    projectRemoved = pyqtSignal(dict)
     projectOpened = pyqtSignal(str)
     
     def __init__(self, project, parent = None, filename = None):
@@ -132,7 +141,7 @@
         """
         self.dirty = b
         self.saveAct.setEnabled(b)
-        self.emit(SIGNAL("dirty"), bool(b))
+        self.dirty.emit(bool(b))
     
     def isDirty(self):
         """
@@ -397,7 +406,7 @@
                 for project in self.projects:
                     if project['master']:
                         project['master'] = False
-                        self.emit(SIGNAL("projectDataChanged"), project)
+                        self.projectDataChanged.emit(project)
                         self.setDirty(True)
                         break
             
@@ -409,7 +418,7 @@
                 'description' : description, 
             }
             self.projects.append(project)
-            self.emit(SIGNAL("projectAdded"), project)
+            self.projectAdded.emit(project)
             self.setDirty(True)
     
     def changeProjectProperties(self, pro):
@@ -424,7 +433,7 @@
                 if project['master']:
                     if project['file'] != pro['file']:
                         project['master'] = False
-                        self.emit(SIGNAL("projectDataChanged"), project)
+                        self.projectDataChanged.emit(project)
                         self.setDirty(True)
                     break
         
@@ -435,7 +444,7 @@
                 project['name'] = pro['name']
                 project['master'] = pro['master']
                 project['description'] = pro['description']
-                self.emit(SIGNAL("projectDataChanged"), project)
+                self.projectDataChanged.emit(project)
                 self.setDirty(True)
     
     def getProjects(self):
@@ -468,13 +477,13 @@
         for project in self.projects:
             if project['file'] == fn:
                 self.projects.remove(project)
-                self.emit(SIGNAL("projectRemoved"), project)
+                self.projectRemoved.emit(project)
                 self.setDirty(True)
                 break
     
-    def newMultiProject(self):
+    def __newMultiProject(self):
         """
-        Public slot to build a new multi project.
+        Private slot to build a new multi project.
         
         This method displays the new multi project dialog and initializes
         the multi project object with the data entered.
@@ -492,7 +501,7 @@
             self.saveasAct.setEnabled(True)
             self.addProjectAct.setEnabled(True)
             self.propsAct.setEnabled(True)
-            self.emit(SIGNAL('newMultiProject'))
+            self.newMultiProject.emit()
     
     def __showProperties(self):
         """
@@ -502,7 +511,7 @@
         if dlg.exec_() == QDialog.Accepted:
             dlg.storeData()
             self.setDirty(True)
-            self.emit(SIGNAL('multiProjectPropertiesChanged'))
+            self.multiProjectPropertiesChanged.emit()
     
     def openMultiProject(self, fn = None, openMaster = True):
         """
@@ -541,7 +550,7 @@
                 self.addProjectAct.setEnabled(True)
                 self.propsAct.setEnabled(True)
                 
-                self.emit(SIGNAL('multiProjectOpened'))
+                self.multiProjectOpened.emit()
                 
                 if openMaster and Preferences.getMultiProject("OpenMasterAutomatically"):
                     self.__openMasterProject(False)
@@ -603,8 +612,8 @@
             self.name = QFileInfo(fn).baseName()
             self.__writeMultiProject(fn)
             
-            self.emit(SIGNAL('multiProjectClosed'))
-            self.emit(SIGNAL('multiProjectOpened'))
+            self.multiProjectClosed.emit()
+            self.multiProjectOpened.emit()
             return True
         else:
             return False
@@ -665,7 +674,7 @@
         self.addProjectAct.setEnabled(False)
         self.propsAct.setEnabled(False)
         
-        self.emit(SIGNAL('multiProjectClosed'))
+        self.multiProjectClosed.emit()
         
         return True
 
@@ -687,7 +696,7 @@
             """<p>This opens a dialog for entering the info for a"""
             """ new multiproject.</p>"""
         ))
-        act.triggered[()].connect(self.newMultiProject)
+        act.triggered[()].connect(self.__newMultiProject)
         self.actions.append(act)
 
         act = E5Action(self.trUtf8('Open multiproject'),
@@ -783,8 +792,7 @@
         
         # connect the aboutToShow signals
         self.recentMenu.aboutToShow.connect(self.__showContextMenuRecent)
-        self.connect(self.recentMenu, SIGNAL('triggered(QAction *)'),
-                     self.__openRecent)
+        self.recentMenu.triggered.connect(self.__openRecent)
         menu.aboutToShow.connect(self.__showMenu)
         
         # build the main menu
@@ -834,7 +842,7 @@
         """
         self.menuRecentAct.setEnabled(len(self.recent) > 0)
         
-        self.emit(SIGNAL("showMenu"), "Main", self.__menus["Main"])
+        self.showMenu.emit("Main", self.__menus["Main"])
     
     def __syncRecent(self):
         """

eric ide

mercurial