Thu, 24 Mar 2022 19:29:13 +0100
Pip Interface: added some performance improvements.
--- a/eric7/APIs/Python3/eric7.api Thu Mar 24 19:27:29 2022 +0100 +++ b/eric7/APIs/Python3/eric7.api Thu Mar 24 19:29:13 2022 +0100 @@ -3124,7 +3124,7 @@ eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_dependenciesList_itemActivated?4(item, column) eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_dependenciesList_itemPressed?4(item, column) eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_dependenciesList_itemSelectionChanged?4() -eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_environmentsComboBox_currentIndexChanged?4(index) +eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_environmentsComboBox_currentTextChanged?4(name) eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_installButton_clicked?4() eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_installUserSiteButton_clicked?4() eric7.PipInterface.PipPackagesWidget.PipPackagesWidget.on_installedFilesCheckBox_clicked?4(checked)
--- a/eric7/Documentation/Help/source.qhp Thu Mar 24 19:27:29 2022 +0100 +++ b/eric7/Documentation/Help/source.qhp Thu Mar 24 19:29:13 2022 +0100 @@ -11428,6 +11428,7 @@ <keyword name="PipPackagesWidget.__pipConfigure" id="PipPackagesWidget.__pipConfigure" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__pipConfigure" /> <keyword name="PipPackagesWidget.__populateEnvironments" id="PipPackagesWidget.__populateEnvironments" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__populateEnvironments" /> <keyword name="PipPackagesWidget.__projectClosed" id="PipPackagesWidget.__projectClosed" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__projectClosed" /> + <keyword name="PipPackagesWidget.__projectOpened" id="PipPackagesWidget.__projectOpened" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__projectOpened" /> <keyword name="PipPackagesWidget.__purgeCache" id="PipPackagesWidget.__purgeCache" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__purgeCache" /> <keyword name="PipPackagesWidget.__refreshDependencyTree" id="PipPackagesWidget.__refreshDependencyTree" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__refreshDependencyTree" /> <keyword name="PipPackagesWidget.__refreshPackagesList" id="PipPackagesWidget.__refreshPackagesList" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.__refreshPackagesList" /> @@ -11457,7 +11458,7 @@ <keyword name="PipPackagesWidget.on_dependenciesList_itemActivated" id="PipPackagesWidget.on_dependenciesList_itemActivated" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_dependenciesList_itemActivated" /> <keyword name="PipPackagesWidget.on_dependenciesList_itemPressed" id="PipPackagesWidget.on_dependenciesList_itemPressed" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_dependenciesList_itemPressed" /> <keyword name="PipPackagesWidget.on_dependenciesList_itemSelectionChanged" id="PipPackagesWidget.on_dependenciesList_itemSelectionChanged" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_dependenciesList_itemSelectionChanged" /> - <keyword name="PipPackagesWidget.on_environmentsComboBox_currentIndexChanged" id="PipPackagesWidget.on_environmentsComboBox_currentIndexChanged" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_environmentsComboBox_currentIndexChanged" /> + <keyword name="PipPackagesWidget.on_environmentsComboBox_currentTextChanged" id="PipPackagesWidget.on_environmentsComboBox_currentTextChanged" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_environmentsComboBox_currentTextChanged" /> <keyword name="PipPackagesWidget.on_installButton_clicked" id="PipPackagesWidget.on_installButton_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_installButton_clicked" /> <keyword name="PipPackagesWidget.on_installUserSiteButton_clicked" id="PipPackagesWidget.on_installUserSiteButton_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_installUserSiteButton_clicked" /> <keyword name="PipPackagesWidget.on_installedFilesCheckBox_clicked" id="PipPackagesWidget.on_installedFilesCheckBox_clicked" ref="eric7.PipInterface.PipPackagesWidget.html#PipPackagesWidget.on_installedFilesCheckBox_clicked" />
--- a/eric7/Documentation/Source/eric7.PipInterface.PipPackagesWidget.html Thu Mar 24 19:27:29 2022 +0100 +++ b/eric7/Documentation/Source/eric7.PipInterface.PipPackagesWidget.html Thu Mar 24 19:29:13 2022 +0100 @@ -143,6 +143,10 @@ <td>Private slot to handle the projectClosed signal.</td> </tr> <tr> +<td><a href="#PipPackagesWidget.__projectOpened">__projectOpened</a></td> +<td>Private slot to handle the projectOpened signal.</td> +</tr> +<tr> <td><a href="#PipPackagesWidget.__purgeCache">__purgeCache</a></td> <td>Private slot to empty the pip cache.</td> </tr> @@ -259,7 +263,7 @@ <td>Private slot reacting on a change of selected items of the dependency tree.</td> </tr> <tr> -<td><a href="#PipPackagesWidget.on_environmentsComboBox_currentIndexChanged">on_environmentsComboBox_currentIndexChanged</a></td> +<td><a href="#PipPackagesWidget.on_environmentsComboBox_currentTextChanged">on_environmentsComboBox_currentTextChanged</a></td> <td>Private slot handling the selection of a Python environment.</td> </tr> <tr> @@ -608,6 +612,13 @@ flag indicating the IDE shutdown </dd> </dl> +<a NAME="PipPackagesWidget.__projectOpened" ID="PipPackagesWidget.__projectOpened"></a> +<h4>PipPackagesWidget.__projectOpened</h4> +<b>__projectOpened</b>(<i></i>) + +<p> + Private slot to handle the projectOpened signal. +</p> <a NAME="PipPackagesWidget.__purgeCache" ID="PipPackagesWidget.__purgeCache"></a> <h4>PipPackagesWidget.__purgeCache</h4> <b>__purgeCache</b>(<i></i>) @@ -956,18 +967,18 @@ Private slot reacting on a change of selected items of the dependency tree. </p> -<a NAME="PipPackagesWidget.on_environmentsComboBox_currentIndexChanged" ID="PipPackagesWidget.on_environmentsComboBox_currentIndexChanged"></a> -<h4>PipPackagesWidget.on_environmentsComboBox_currentIndexChanged</h4> -<b>on_environmentsComboBox_currentIndexChanged</b>(<i>index</i>) +<a NAME="PipPackagesWidget.on_environmentsComboBox_currentTextChanged" ID="PipPackagesWidget.on_environmentsComboBox_currentTextChanged"></a> +<h4>PipPackagesWidget.on_environmentsComboBox_currentTextChanged</h4> +<b>on_environmentsComboBox_currentTextChanged</b>(<i>name</i>) <p> Private slot handling the selection of a Python environment. </p> <dl> -<dt><i>index</i> (int)</dt> +<dt><i>name</i> (str)</dt> <dd> -index of the selected Python environment +name of the selected Python environment </dd> </dl> <a NAME="PipPackagesWidget.on_installButton_clicked" ID="PipPackagesWidget.on_installButton_clicked"></a>
--- a/eric7/PipInterface/PipPackagesWidget.py Thu Mar 24 19:27:29 2022 +0100 +++ b/eric7/PipInterface/PipPackagesWidget.py Thu Mar 24 19:29:13 2022 +0100 @@ -248,10 +248,11 @@ self.on_refreshButton_clicked) venvManager.virtualEnvironmentRemoved.connect( self.on_refreshButton_clicked) + self.__selectedEnvironment = None project = ericApp().getObject("Project") project.projectOpened.connect( - self.on_refreshButton_clicked) + self.__projectOpened) project.projectClosed.connect( self.__projectClosed) @@ -272,6 +273,15 @@ self.viewsStackWidget.setCurrentWidget(self.packagesPage) + @pyqtSlot() + def __projectOpened(self): + """ + Private slot to handle the projectOpened signal. + """ + projectVenv = self.__pip.getProjectEnvironmentString() + if projectVenv: + self.environmentsComboBox.insertItem(1, projectVenv) + @pyqtSlot(bool) def __projectClosed(self, shutdown): """ @@ -281,7 +291,8 @@ @type bool """ if not shutdown: - self.on_refreshButton_clicked() + # the project entry is always at index 1 + self.environmentsComboBox.removeItem(1) def __populateEnvironments(self): """ @@ -465,18 +476,20 @@ self.__updateSearchActionButtons() self.__updateSearchButton() - @pyqtSlot(int) - def on_environmentsComboBox_currentIndexChanged(self, index): + @pyqtSlot(str) + def on_environmentsComboBox_currentTextChanged(self, name): """ Private slot handling the selection of a Python environment. - @param index index of the selected Python environment - @type int + @param name name of the selected Python environment + @type str """ - if self.viewToggleButton.isChecked(): - self.__refreshDependencyTree() - else: - self.__refreshPackagesList() + if name != self.__selectedEnvironment: + if self.viewToggleButton.isChecked(): + self.__refreshDependencyTree() + else: + self.__refreshPackagesList() + self.__selectedEnvironment = name @pyqtSlot() def on_localCheckBox_clicked(self):