--- 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 #########################################################################