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("")