439 self.statusLabel.show() |
439 self.statusLabel.show() |
440 self.statusLabel.setText(self.tr("Getting installed packages...")) |
440 self.statusLabel.setText(self.tr("Getting installed packages...")) |
441 |
441 |
442 with EricOverrideCursor(): |
442 with EricOverrideCursor(): |
443 # 1. populate with installed packages |
443 # 1. populate with installed packages |
444 self.packagesList.setUpdatesEnabled(False) |
|
445 installedPackages = self.__pip.getInstalledPackages( |
444 installedPackages = self.__pip.getInstalledPackages( |
446 venvName, |
445 venvName, |
447 localPackages=self.localCheckBox.isChecked(), |
446 localPackages=self.localCheckBox.isChecked(), |
448 notRequired=self.notRequiredCheckBox.isChecked(), |
447 notRequired=self.notRequiredCheckBox.isChecked(), |
449 usersite=self.userCheckBox.isChecked(), |
448 usersite=self.userCheckBox.isChecked(), |
450 ) |
449 ) |
451 for package, version in installedPackages: |
450 for package, version in installedPackages: |
452 QTreeWidgetItem(self.packagesList, [package, version, "", ""]) |
451 QTreeWidgetItem(self.packagesList, [package, version, "", ""]) |
453 self.packagesList.setUpdatesEnabled(True) |
452 self.packagesList.sortItems( |
|
453 PipPackagesWidget.PackageColumn, Qt.SortOrder.AscendingOrder |
|
454 ) |
|
455 self.packagesList.resizeColumnToContents( |
|
456 PipPackagesWidget.PackageColumn |
|
457 ) |
|
458 self.packagesList.resizeColumnToContents( |
|
459 PipPackagesWidget.InstalledVersionColumn |
|
460 ) |
|
461 QApplication.processEvents() |
|
462 |
|
463 # 2. update with vulnerability information |
|
464 if self.vulnerabilityCheckBox.isChecked(): |
|
465 self.__updateVulnerabilityData() |
|
466 self.packagesList.resizeColumnToContents( |
|
467 PipPackagesWidget.VulnerabilityColumn |
|
468 ) |
454 self.statusLabel.setText(self.tr("Getting outdated packages...")) |
469 self.statusLabel.setText(self.tr("Getting outdated packages...")) |
455 QApplication.processEvents() |
470 QApplication.processEvents() |
456 |
471 |
457 # 2. update with update information |
472 # 3. update with update information |
458 self.packagesList.setUpdatesEnabled(False) |
473 self.__pip.getOutdatedPackages( |
459 outdatedPackages = self.__pip.getOutdatedPackages( |
|
460 venvName, |
474 venvName, |
461 localPackages=self.localCheckBox.isChecked(), |
475 localPackages=self.localCheckBox.isChecked(), |
462 notRequired=self.notRequiredCheckBox.isChecked(), |
476 notRequired=self.notRequiredCheckBox.isChecked(), |
463 usersite=self.userCheckBox.isChecked(), |
477 usersite=self.userCheckBox.isChecked(), |
|
478 callback=self.__updateOutdatedInfo, |
464 ) |
479 ) |
465 for package, _version, latest in outdatedPackages: |
480 |
466 items = self.packagesList.findItems( |
481 else: |
467 package, |
482 self.__updateActionButtons() |
468 Qt.MatchFlag.MatchExactly | Qt.MatchFlag.MatchCaseSensitive, |
483 self.__updateSearchActionButtons() |
469 ) |
484 self.__updateSearchButton() |
470 if items: |
485 self.__updateSearchMoreButton(False) |
471 itm = items[0] |
486 |
472 itm.setText( |
487 def __updateOutdatedInfo(self, outdatedPackages): |
473 PipPackagesWidget.AvailableVersionColumn, latest |
488 """ |
474 ) |
489 Private method to process the list of outdated packages. |
475 QApplication.processEvents() |
490 |
476 |
491 @param outdatedPackages list of tuples containing the package name, |
477 # 3. update with vulnerability information |
492 installed version and available version |
478 if self.vulnerabilityCheckBox.isChecked(): |
493 @type list of tuple of (str, str, str) |
479 self.__updateVulnerabilityData() |
494 """ |
480 |
495 for package, _version, latest in outdatedPackages: |
481 self.packagesList.sortItems( |
496 items = self.packagesList.findItems( |
482 PipPackagesWidget.PackageColumn, Qt.SortOrder.AscendingOrder |
497 package, |
483 ) |
498 Qt.MatchFlag.MatchExactly | Qt.MatchFlag.MatchCaseSensitive, |
484 for col in range(self.packagesList.columnCount()): |
499 ) |
485 self.packagesList.resizeColumnToContents(col) |
500 if items: |
486 self.packagesList.setUpdatesEnabled(True) |
501 items[0].setText(PipPackagesWidget.AvailableVersionColumn, latest) |
487 self.statusLabel.hide() |
502 self.packagesList.resizeColumnToContents( |
|
503 PipPackagesWidget.AvailableVersionColumn |
|
504 ) |
|
505 self.statusLabel.hide() |
488 |
506 |
489 self.__updateActionButtons() |
507 self.__updateActionButtons() |
490 self.__updateSearchActionButtons() |
508 self.__updateSearchActionButtons() |
491 self.__updateSearchButton() |
509 self.__updateSearchButton() |
492 self.__updateSearchMoreButton(False) |
510 self.__updateSearchMoreButton(False) |