11 import textwrap |
11 import textwrap |
12 import os |
12 import os |
13 |
13 |
14 from PyQt5.QtCore import pyqtSlot, Qt, QEventLoop, QRegExp |
14 from PyQt5.QtCore import pyqtSlot, Qt, QEventLoop, QRegExp |
15 from PyQt5.QtGui import QCursor |
15 from PyQt5.QtGui import QCursor |
16 from PyQt5.QtWidgets import QWidget, QToolButton, QApplication, QHeaderView, \ |
16 from PyQt5.QtWidgets import ( |
17 QTreeWidgetItem, QInputDialog, QMenu, QDialog |
17 QWidget, QToolButton, QApplication, QHeaderView, QTreeWidgetItem, |
|
18 QInputDialog, QMenu, QDialog |
|
19 ) |
18 |
20 |
19 from E5Gui.E5Application import e5App |
21 from E5Gui.E5Application import e5App |
20 from E5Gui import E5MessageBox |
22 from E5Gui import E5MessageBox |
21 |
23 |
22 from E5Network.E5XmlRpcClient import E5XmlRpcClient |
24 from E5Network.E5XmlRpcClient import E5XmlRpcClient |
876 self.showDetailsButton.setEnabled(True) |
878 self.showDetailsButton.setEnabled(True) |
877 |
879 |
878 if self.__packageDetailsDialog is not None: |
880 if self.__packageDetailsDialog is not None: |
879 self.__packageDetailsDialog.close() |
881 self.__packageDetailsDialog.close() |
880 |
882 |
881 self.__packageDetailsDialog = \ |
883 self.__packageDetailsDialog = ( |
882 PipPackageDetailsDialog(packageData, self) |
884 PipPackageDetailsDialog(packageData, self) |
|
885 ) |
883 self.__packageDetailsDialog.show() |
886 self.__packageDetailsDialog.show() |
884 else: |
887 else: |
885 E5MessageBox.warning( |
888 E5MessageBox.warning( |
886 self, |
889 self, |
887 self.tr("Search PyPI"), |
890 self.tr("Search PyPI"), |