diff -r 2dc55ddafc68 -r 84f7f7867b5f eric7/Project/Project.py --- a/eric7/Project/Project.py Mon Sep 20 07:29:27 2021 +0200 +++ b/eric7/Project/Project.py Mon Sep 20 19:47:18 2021 +0200 @@ -103,10 +103,13 @@ @signal completeRepopulateItem(str) emitted after an item of the model was repopulated @signal vcsStatusMonitorData(list) emitted to signal the VCS status data + @signal vcsStatusMonitorAllData(dict) emitted to signal all VCS status + (key is project relative file name, value is status) @signal vcsStatusMonitorStatus(str, str) emitted to signal the status of the monitoring thread (ok, nok, op, off) and a status message @signal vcsStatusMonitorInfo(str) emitted to signal some info of the monitoring thread + @signal vcsCommitted() emitted to indicate a completed commit action @signal reinitVCS() emitted after the VCS has been reinitialized @signal showMenu(str, QMenu) emitted when a menu is about to be shown. The name of the menu and a reference to the menu are given. @@ -151,8 +154,10 @@ prepareRepopulateItem = pyqtSignal(str) completeRepopulateItem = pyqtSignal(str) vcsStatusMonitorData = pyqtSignal(list) + vcsStatusMonitorAllData = pyqtSignal(dict) vcsStatusMonitorStatus = pyqtSignal(str, str) vcsStatusMonitorInfo = pyqtSignal(str) + vcsCommitted = pyqtSignal() reinitVCS = pyqtSignal() showMenu = pyqtSignal(str, QMenu) lexerAssociationsChanged = pyqtSignal() @@ -2826,15 +2831,7 @@ # reinit VCS self.vcs = self.initVCS() # start the VCS monitor thread - if self.vcs is not None: - self.vcs.startStatusMonitor(self) - self.vcs.vcsStatusMonitorData.connect( - self.__model.changeVCSStates) - self.vcs.vcsStatusMonitorStatus.connect( - self.__statusMonitorStatus) - self.vcs.vcsStatusMonitorInfo.connect( - self.vcsStatusMonitorInfo) - self.vcs.vcsStatusChanged.connect(self.__vcsStatusChanged) + self.__vcsConnectStatusMonitor() self.reinitVCS.emit() if self.pudata["VCSSTATUSMONITORINTERVAL"]: @@ -3074,18 +3071,7 @@ self.__readSession(quiet=True) # start the VCS monitor thread - if self.vcs is not None: - self.vcs.startStatusMonitor(self) - self.vcs.vcsStatusMonitorData.connect( - self.__model.changeVCSStates) - self.vcs.vcsStatusMonitorData.connect( - self.vcsStatusMonitorData) - self.vcs.vcsStatusMonitorStatus.connect( - self.vcsStatusMonitorStatus) - self.vcs.vcsStatusMonitorInfo.connect( - self.vcsStatusMonitorInfo) - self.vcs.vcsStatusChanged.connect( - self.__vcsStatusChanged) + self.__vcsConnectStatusMonitor() def reopenProject(self): """ @@ -4925,6 +4911,27 @@ """ self.projectChanged.emit() + def __vcsConnectStatusMonitor(self): + """ + Private method to start the VCS monitor and connect its signals. + """ + if self.vcs is not None: + self.vcs.committed.connect(self.vcsCommitted) + + self.vcs.startStatusMonitor(self) + self.vcs.vcsStatusMonitorData.connect( + self.__model.changeVCSStates) + self.vcs.vcsStatusMonitorData.connect( + self.vcsStatusMonitorData) + self.vcs.vcsStatusMonitorAllData.connect( + self.vcsStatusMonitorAllData) + self.vcs.vcsStatusMonitorStatus.connect( + self.vcsStatusMonitorStatus) + self.vcs.vcsStatusMonitorInfo.connect( + self.vcsStatusMonitorInfo) + self.vcs.vcsStatusChanged.connect( + self.__vcsStatusChanged) + ######################################################################### ## Below is the interface to the checker tools #########################################################################