eric7/Preferences/ConfigurationPages/EditorAPIsPage.py

branch
eric7
changeset 9151
8c5296fe3056
parent 8881
54e42bc2437a
child 9152
8a68afaf1ba2
diff -r 0eab9aafa3b2 -r 8c5296fe3056 eric7/Preferences/ConfigurationPages/EditorAPIsPage.py
--- a/eric7/Preferences/ConfigurationPages/EditorAPIsPage.py	Wed Jun 15 08:54:13 2022 +0200
+++ b/eric7/Preferences/ConfigurationPages/EditorAPIsPage.py	Wed Jun 15 09:44:07 2022 +0200
@@ -7,11 +7,14 @@
 Module implementing the Editor APIs configuration page.
 """
 
-from PyQt6.QtCore import QDir, pyqtSlot, QFileInfo
-from PyQt6.QtWidgets import QInputDialog
+import pathlib
+
+from PyQt6.QtCore import pyqtSlot
+from PyQt6.QtWidgets import QDialog
 
 from EricWidgets.EricApplication import ericApp
 from EricWidgets import EricMessageBox
+from EricWidgets.EricListSelectionDialog import EricListSelectionDialog
 from EricWidgets.EricPathPicker import EricPathPickerModes
 
 from .ConfigurationPageBase import ConfigurationPageBase
@@ -240,21 +243,21 @@
         """
         installedAPIFiles = self.__currentAPI.installedAPIFiles()
         if installedAPIFiles:
-            installedAPIFilesPath = QFileInfo(installedAPIFiles[0]).path()
-            installedAPIFilesShort = []
-            for installedAPIFile in installedAPIFiles:
-                installedAPIFilesShort.append(
-                    QFileInfo(installedAPIFile).fileName())
-            file, ok = QInputDialog.getItem(
-                self,
-                self.tr("Add from installed APIs"),
-                self.tr("Select from the list of installed API files"),
-                installedAPIFilesShort,
-                0, False)
-            if ok:
-                self.apiList.addItem(Utilities.toNativeSeparators(
-                    QFileInfo(QDir(installedAPIFilesPath), file)
-                    .absoluteFilePath()))
+            installedAPIFilesPath = pathlib.Path(installedAPIFiles[0]).parent
+            installedAPIFilesShort = [
+                pathlib.Path(f).name for f in installedAPIFiles
+            ]
+            dlg = EricListSelectionDialog(
+                sorted(installedAPIFilesShort),
+                title=self.tr("Add from installed APIs"),
+                message=self.tr("Select from the list of installed API files"),
+                checkBoxSelection=True,
+                parent=self
+            )
+            if dlg.exec() == QDialog.DialogCode.Accepted:
+                self.apiList.addItems([
+                    str(installedAPIFilesPath / s) for s in dlg.getSelection()
+                ])
         else:
             EricMessageBox.warning(
                 self,
@@ -272,19 +275,21 @@
         """
         pluginAPIFiles = self.pluginManager.getPluginApiFiles(
             self.__currentApiLanguage)
-        pluginAPIFilesDict = {}
-        for apiFile in pluginAPIFiles:
-            pluginAPIFilesDict[QFileInfo(apiFile).fileName()] = apiFile
-        file, ok = QInputDialog.getItem(
-            self,
-            self.tr("Add from Plugin APIs"),
-            self.tr(
+        pluginAPIFilesDict = {
+            pathlib.Path(f).name:pathlib.Path(f) for f in pluginAPIFiles
+        }
+        dlg = EricListSelectionDialog(
+            sorted(pluginAPIFilesDict.keys()),
+            title=self.tr("Add from Plugin APIs"),
+            message=self.tr(
                 "Select from the list of API files installed by plugins"),
-            sorted(pluginAPIFilesDict.keys()),
-            0, False)
-        if ok:
-            self.apiList.addItem(Utilities.toNativeSeparators(
-                pluginAPIFilesDict[file]))
+            checkBoxSelection=True,
+            parent=self
+        )
+        if dlg.exec() == QDialog.DialogCode.Accepted:
+            self.apiList.addItems([
+                str(pluginAPIFilesDict[s]) for s in dlg.getSelection()
+            ])
         self.prepareApiButton.setEnabled(self.apiList.count() > 0)
         
     @pyqtSlot()

eric ide

mercurial