eric7/Project/Project.py

branch
eric7
changeset 8620
84f7f7867b5f
parent 8618
356a2f1b04b0
child 8761
f05818ae6431
--- 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
     #########################################################################

eric ide

mercurial