Project/Project.py

branch
Py2 comp.
changeset 2911
ce77f0b1ee67
parent 2847
1843ef6e2656
parent 2853
0866c3aac79f
child 3056
9986ec0e559a
--- a/Project/Project.py	Mon Aug 12 22:21:53 2013 +0200
+++ b/Project/Project.py	Sun Sep 08 19:04:07 2013 +0200
@@ -89,6 +89,7 @@
             of the menu and a reference to the menu are given.
     @signal lexerAssociationsChanged() emitted after the lexer associations have been
             changed
+    @signal projectChanged() emitted to signal a change of the project
     """
     dirty = pyqtSignal(int)
     projectLanguageAdded = pyqtSignal(str)
@@ -122,6 +123,7 @@
     reinitVCS = pyqtSignal()
     showMenu = pyqtSignal(str, QMenu)
     lexerAssociationsChanged = pyqtSignal()
+    projectChanged = pyqtSignal()
     
     keynames = [
         "PROGLANGUAGE", "MIXEDLANGUAGE", "PROJECTTYPE",
@@ -589,6 +591,8 @@
         self.__dirty = b
         self.saveAct.setEnabled(b)
         self.dirty.emit(bool(b))
+        if self.__dirty:
+            self.projectChanged.emit()
         
     def isDirty(self):
         """
@@ -2279,6 +2283,7 @@
                     self.vcs.startStatusMonitor(self)
                     self.vcs.vcsStatusMonitorData.connect(self.__model.changeVCSStates)
                     self.vcs.vcsStatusMonitorStatus.connect(self.__statusMonitorStatus)
+                    self.vcs.vcsStatusChanged.connect(self.__vcsStatusChanged)
                 self.reinitVCS.emit()
             
             if self.pudata["VCSSTATUSMONITORINTERVAL"]:
@@ -2474,6 +2479,8 @@
                             self.__model.changeVCSStates)
                         self.vcs.vcsStatusMonitorStatus.connect(
                             self.__statusMonitorStatus)
+                        self.vcs.vcsStatusChanged.connect(
+                            self.__vcsStatusChanged)
                 else:
                     QApplication.restoreOverrideCursor()
         
@@ -3959,6 +3966,12 @@
             .getPluginDisplayStrings("version_control")
         return len(vcsSystemsDict) != 0
     
+    def __vcsStatusChanged(self):
+        """
+        Private slot to handle a change of the overall VCS status.
+        """
+        self.projectChanged.emit()
+    
     #########################################################################
     ## Below is the interface to the checker tools
     #########################################################################

eric ide

mercurial