src/eric7/Testing/TestingWidget.py

branch
eric7
changeset 10452
5e262757999c
parent 10451
aa89d938d5cf
child 10453
16235de22ee7
diff -r aa89d938d5cf -r 5e262757999c src/eric7/Testing/TestingWidget.py
--- a/src/eric7/Testing/TestingWidget.py	Sun Dec 31 14:11:11 2023 +0100
+++ b/src/eric7/Testing/TestingWidget.py	Sun Dec 31 14:57:43 2023 +0100
@@ -239,6 +239,7 @@
         self.__editors = []
         self.__testExecutor = None
         self.__recentLog = ""
+        self.__projectString = ""
 
         self.__markersWindow = None
 
@@ -311,6 +312,7 @@
             venvName = ericApp().getObject("DebugUI").getProjectEnvironmentString()
             if venvName:
                 self.venvComboBox.addItem(venvName)
+                self.__projectString = venvName
         self.venvComboBox.addItems(sorted(self.__venvManager.getVirtualenvNames()))
         self.venvComboBox.setCurrentText(currentText)
 
@@ -1294,10 +1296,20 @@
         """
         Private slot to handle a project being opened.
         """
-        self.venvComboBox.insertItem(
-            1, ericApp().getObject("DebugUI").getProjectEnvironmentString()
+        self.__projectString = (
+            ericApp().getObject("DebugUI").getProjectEnvironmentString()
         )
-        self.venvComboBox.setCurrentIndex(1)
+
+        if self.__projectString:
+            # 1a. remove old project venv entries
+            while (row := self.venvComboBox.findText(self.__projectString)) != -1:
+                self.venvComboBox.removeItem(row)
+
+            # 1b. add a new project venv entry
+            self.venvComboBox.insertItem(1, self.__projectString)
+            self.venvComboBox.setCurrentIndex(1)
+
+        # 2. set some other project related stuff
         self.frameworkComboBox.setCurrentText(
             self.__project.getProjectTestingFramework()
         )
@@ -1308,8 +1320,12 @@
         """
         Private slot to handle a project being closed.
         """
-        self.venvComboBox.removeItem(1)  # <project> is always at index 1
-        self.venvComboBox.setCurrentText("")
+        if self.__projectString:
+            while (row := self.venvComboBox.findText(self.__projectString)) != -1:
+                self.venvComboBox.removeItem(row)
+
+            self.venvComboBox.setCurrentText("")
+
         self.frameworkComboBox.setCurrentText("")
         self.__insertDiscovery("")
 

eric ide

mercurial