eric7/Preferences/ConfigurationPages/EditorAPIsPage.py

Wed, 15 Jun 2022 09:44:07 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 15 Jun 2022 09:44:07 +0200
branch
eric7
changeset 9151
8c5296fe3056
parent 8881
54e42bc2437a
child 9152
8a68afaf1ba2
permissions
-rw-r--r--

Changed API configuration page to allow to select multiple API files at once.

0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
8881
54e42bc2437a Updated copyright for 2022.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
3 # Copyright (c) 2006 - 2022 Detlev Offenbach <detlev@die-offenbachs.de>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the Editor APIs configuration page.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
9151
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
10 import pathlib
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
11
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
12 from PyQt6.QtCore import pyqtSlot
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
13 from PyQt6.QtWidgets import QDialog
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
8358
144a6b854f70 Sorted the eric specific extensions into packages named like the corresponding PyQt packages (i.e. EricCore,EricGui and EricWidgets).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8356
diff changeset
15 from EricWidgets.EricApplication import ericApp
144a6b854f70 Sorted the eric specific extensions into packages named like the corresponding PyQt packages (i.e. EricCore,EricGui and EricWidgets).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8356
diff changeset
16 from EricWidgets import EricMessageBox
9151
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
17 from EricWidgets.EricListSelectionDialog import EricListSelectionDialog
8358
144a6b854f70 Sorted the eric specific extensions into packages named like the corresponding PyQt packages (i.e. EricCore,EricGui and EricWidgets).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8356
diff changeset
18 from EricWidgets.EricPathPicker import EricPathPickerModes
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
20 from .ConfigurationPageBase import ConfigurationPageBase
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7
diff changeset
21 from .Ui_EditorAPIsPage import Ui_EditorAPIsPage
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 import Preferences
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 import Utilities
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
26
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 class EditorAPIsPage(ConfigurationPageBase, Ui_EditorAPIsPage):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 Class implementing the Editor APIs configuration page.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 def __init__(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 Constructor
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8151
diff changeset
35 super().__init__()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 self.setupUi(self)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 self.setObjectName("EditorAPIsPage")
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8327
diff changeset
39 self.apiFilePicker.setMode(EricPathPickerModes.OPEN_FILE_MODE)
4575
464a6b049f89 Changed the Python2 debugger and Editor APIs pages to use the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4554
diff changeset
40 self.apiFilePicker.setToolTip(self.tr(
464a6b049f89 Changed the Python2 debugger and Editor APIs pages to use the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4554
diff changeset
41 "Press to select an API file via a selection dialog"))
464a6b049f89 Changed the Python2 debugger and Editor APIs pages to use the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4554
diff changeset
42 self.apiFilePicker.setFilters(self.tr(
464a6b049f89 Changed the Python2 debugger and Editor APIs pages to use the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4554
diff changeset
43 "API File (*.api);;All Files (*)"))
3186
a05eff845522 Changed all the file or directory selection buttons to QToolButton and gave them an icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
44
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
45 self.prepareApiButton.setText(self.tr("Compile APIs"))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 self.__currentAPI = None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 self.__inPreparation = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 # set initial values
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8327
diff changeset
50 self.pluginManager = ericApp().getObject("PluginManager")
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 500
diff changeset
51 self.apiAutoPrepareCheckBox.setChecked(
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 Preferences.getEditor("AutoPrepareAPIs"))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53
2408
dc3a7c9d8f6e Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
54 import QScintilla.Lexers
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 self.apis = {}
3025
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
56 apiLanguages = sorted(
5358
2584d0a08bf4 Finished the project specific API code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5350
diff changeset
57 [''] + list(QScintilla.Lexers.getSupportedApiLanguages()))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 for lang in apiLanguages:
5427
614e88cfbd84 Added some eye candy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
59 self.apiLanguageComboBox.addItem(
614e88cfbd84 Added some eye candy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
60 QScintilla.Lexers.getLanguageIcon(lang, False),
614e88cfbd84 Added some eye candy.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
61 lang)
5349
bccda3b5920a Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
62 self.__currentApiLanguage = ""
8151
8c1445825e7b Changed code to not use QComboBox.activated[str] and QComboBoc.highlighted[str] signals but the int variants instead.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
63 self.on_apiLanguageComboBox_activated(0)
5349
bccda3b5920a Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
64
bccda3b5920a Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
65 def __apiKey(self, language, projectType):
bccda3b5920a Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
66 """
bccda3b5920a Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
67 Private method to generate a key for the apis dictionary.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68
5349
bccda3b5920a Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
69 @param language programming language of the API
bccda3b5920a Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
70 @type str
bccda3b5920a Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
71 @param projectType project type of the API
bccda3b5920a Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
72 @type str
bccda3b5920a Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
73 @return key to be used
bccda3b5920a Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
74 @rtype str
bccda3b5920a Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
75 """
8234
fcb6b4b96274 Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
76 key = (language, projectType) if projectType else (language, "")
5349
bccda3b5920a Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
77 return key
bccda3b5920a Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
78
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 def save(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 Public slot to save the Editor APIs configuration.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 """
3025
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
83 Preferences.setEditor(
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3020
diff changeset
84 "AutoPrepareAPIs",
7
c679fb30c8f3 Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
85 self.apiAutoPrepareCheckBox.isChecked())
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86
5350
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
87 language = self.apiLanguageComboBox.currentText()
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
88 projectType = self.projectTypeComboBox.itemData(
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
89 self.projectTypeComboBox.currentIndex())
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
90 key = self.__apiKey(language, projectType)
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
91 self.apis[key] = self.__editorGetApisFromApiList()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92
5349
bccda3b5920a Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
93 for (language, projectType), apis in self.apis.items():
5350
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
94 Preferences.setEditorAPI(language, projectType, apis)
5349
bccda3b5920a Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
95
5350
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
96 @pyqtSlot(int)
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
97 def on_projectTypeComboBox_activated(self, index):
5349
bccda3b5920a Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
98 """
5350
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
99 Private slot to handle the selection of a project type.
5349
bccda3b5920a Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
100
5350
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
101 @param index index of the selected entry
5349
bccda3b5920a Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
102 @type str
bccda3b5920a Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
103 """
5350
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
104 if self.__currentApiProjectTypeIndex == index:
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
105 return
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
106
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
107 self.__currentApiProjectTypeIndex = index
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
108 self.__fillApisList()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109
8151
8c1445825e7b Changed code to not use QComboBox.activated[str] and QComboBoc.highlighted[str] signals but the int variants instead.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
110 @pyqtSlot(int)
8c1445825e7b Changed code to not use QComboBox.activated[str] and QComboBoc.highlighted[str] signals but the int variants instead.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
111 def on_apiLanguageComboBox_activated(self, index):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 Private slot to fill the api listbox of the api page.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114
8151
8c1445825e7b Changed code to not use QComboBox.activated[str] and QComboBoc.highlighted[str] signals but the int variants instead.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
115 @param index index of the selected entry
8c1445825e7b Changed code to not use QComboBox.activated[str] and QComboBoc.highlighted[str] signals but the int variants instead.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
116 @type int
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 """
8151
8c1445825e7b Changed code to not use QComboBox.activated[str] and QComboBoc.highlighted[str] signals but the int variants instead.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
118 language = self.apiLanguageComboBox.itemText(index)
8c1445825e7b Changed code to not use QComboBox.activated[str] and QComboBoc.highlighted[str] signals but the int variants instead.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
119
5349
bccda3b5920a Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
120 if self.__currentApiLanguage == language:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 return
5350
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
122
7164
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
123 self.__fillProjectTypeComboBox(language)
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
124
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
125 def __fillProjectTypeComboBox(self, language):
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
126 """
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
127 Private slot to fill the selection of available project types for the
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
128 given language.
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
129
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
130 @param language selected API language
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
131 @type str
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
132 """
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
133 self.projectTypeComboBox.clear()
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
134
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
135 apiProjectTypes = sorted(
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
136 [("", "")] +
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
137 [(trans, ptype) for ptype, trans in
8366
2a9f5153c438 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
138 ericApp().getObject("Project").getProjectTypes(language)
2a9f5153c438 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
139 .items()
7164
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
140 ]
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
141 )
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
142 for projectTypeStr, projectType in apiProjectTypes:
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
143 self.projectTypeComboBox.addItem(projectTypeStr, projectType)
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
144
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
145 self.__currentApiProjectTypeIndex = -1
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
146 self.__currentApiProjectType = ""
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
147
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
148 self.on_projectTypeComboBox_activated(0)
5350
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
149
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
150 def __fillApisList(self):
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
151 """
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
152 Private slot to fill the list of API files.
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
153 """
7263
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
154 self.apis[
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
155 self.__apiKey(self.__currentApiLanguage,
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
156 self.__currentApiProjectType)
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
157 ] = self.__editorGetApisFromApiList()
5350
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
158
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
159 self.__currentApiLanguage = self.apiLanguageComboBox.currentText()
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
160 self.__currentApiProjectType = self.projectTypeComboBox.itemData(
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
161 self.projectTypeComboBox.currentIndex())
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 self.apiList.clear()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163
5350
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
164 if not self.__currentApiLanguage:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 self.apiGroup.setEnabled(False)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 return
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 self.apiGroup.setEnabled(True)
3098
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
169 self.deleteApiFileButton.setEnabled(False)
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
170 self.addApiFileButton.setEnabled(False)
4575
464a6b049f89 Changed the Python2 debugger and Editor APIs pages to use the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4554
diff changeset
171 self.apiFilePicker.clear()
3098
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
172
5350
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
173 key = self.__apiKey(self.__currentApiLanguage,
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
174 self.__currentApiProjectType)
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
175 if key not in self.apis:
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
176 # populate on demand
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
177 self.apis[key] = Preferences.getEditorAPI(
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
178 self.__currentApiLanguage,
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
179 projectType=self.__currentApiProjectType)[:]
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
180 for api in self.apis[key]:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 if api:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 self.apiList.addItem(api)
3098
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
183 self.prepareApiButton.setEnabled(self.apiList.count() > 0)
2408
dc3a7c9d8f6e Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
184
dc3a7c9d8f6e Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
185 from QScintilla.APIsManager import APIsManager
5350
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
186 self.__currentAPI = APIsManager().getAPIs(
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
187 self.__currentApiLanguage,
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
188 projectType=self.__currentApiProjectType)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 if self.__currentAPI is not None:
500
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 130
diff changeset
190 self.__currentAPI.apiPreparationFinished.connect(
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 130
diff changeset
191 self.__apiPreparationFinished)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 130
diff changeset
192 self.__currentAPI.apiPreparationCancelled.connect(
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 130
diff changeset
193 self.__apiPreparationCancelled)
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 130
diff changeset
194 self.__currentAPI.apiPreparationStarted.connect(
c3abc7895a01 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 130
diff changeset
195 self.__apiPreparationStarted)
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 500
diff changeset
196 self.addInstalledApiFileButton.setEnabled(
3098
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
197 len(self.__currentAPI.installedAPIFiles()) > 0)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 self.addInstalledApiFileButton.setEnabled(False)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201 self.addPluginApiFileButton.setEnabled(
4830
f609a22f43bd Fixed a few code style issues detected by the updated pep8 checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
202 len(self.pluginManager.getPluginApiFiles(
5349
bccda3b5920a Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
203 self.__currentApiLanguage)) > 0)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 def __editorGetApisFromApiList(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207 Private slot to retrieve the api filenames from the list.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 @return list of api filenames (list of strings)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 apis = []
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 for row in range(self.apiList.count()):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 apis.append(self.apiList.item(row).text())
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 return apis
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
215
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 @pyqtSlot()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 def on_addApiFileButton_clicked(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219 Private slot to add the api file displayed to the listbox.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220 """
4575
464a6b049f89 Changed the Python2 debugger and Editor APIs pages to use the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4554
diff changeset
221 file = self.apiFilePicker.text()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
222 if file:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223 self.apiList.addItem(Utilities.toNativeSeparators(file))
4575
464a6b049f89 Changed the Python2 debugger and Editor APIs pages to use the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4554
diff changeset
224 self.apiFilePicker.clear()
3098
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
225 self.prepareApiButton.setEnabled(self.apiList.count() > 0)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227 @pyqtSlot()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
228 def on_deleteApiFileButton_clicked(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
229 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
230 Private slot to delete the currently selected file of the listbox.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
231 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
232 crow = self.apiList.currentRow()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233 if crow >= 0:
4554
f3428ddd577c Fixed a few style and coding issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
234 itm = self.apiList.takeItem(crow) # __IGNORE_WARNING__
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235 del itm
3098
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
236 self.prepareApiButton.setEnabled(self.apiList.count() > 0)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
237
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
238 @pyqtSlot()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
239 def on_addInstalledApiFileButton_clicked(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
240 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
241 Private slot to add an API file from the list of installed API files
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242 for the selected lexer language.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
243 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244 installedAPIFiles = self.__currentAPI.installedAPIFiles()
1118
2ff50209a57f Fixed a bug in the editor APIs page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
245 if installedAPIFiles:
9151
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
246 installedAPIFilesPath = pathlib.Path(installedAPIFiles[0]).parent
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
247 installedAPIFilesShort = [
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
248 pathlib.Path(f).name for f in installedAPIFiles
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
249 ]
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
250 dlg = EricListSelectionDialog(
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
251 sorted(installedAPIFilesShort),
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
252 title=self.tr("Add from installed APIs"),
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
253 message=self.tr("Select from the list of installed API files"),
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
254 checkBoxSelection=True,
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
255 parent=self
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
256 )
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
257 if dlg.exec() == QDialog.DialogCode.Accepted:
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
258 self.apiList.addItems([
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
259 str(installedAPIFilesPath / s) for s in dlg.getSelection()
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
260 ])
1118
2ff50209a57f Fixed a bug in the editor APIs page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
261 else:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8327
diff changeset
262 EricMessageBox.warning(
3020
542e97d4ecb3 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3010
diff changeset
263 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
264 self.tr("Add from installed APIs"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
265 self.tr("""There are no APIs installed yet."""
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
266 """ Selection is not available."""))
1118
2ff50209a57f Fixed a bug in the editor APIs page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
267 self.addInstalledApiFileButton.setEnabled(False)
3098
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
268 self.prepareApiButton.setEnabled(self.apiList.count() > 0)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
269
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
270 @pyqtSlot()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
271 def on_addPluginApiFileButton_clicked(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
272 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
273 Private slot to add an API file from the list of API files installed
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
274 by plugins for the selected lexer language.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
275 """
3010
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2964
diff changeset
276 pluginAPIFiles = self.pluginManager.getPluginApiFiles(
5349
bccda3b5920a Started implementing project type specific APIs.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4830
diff changeset
277 self.__currentApiLanguage)
9151
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
278 pluginAPIFilesDict = {
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
279 pathlib.Path(f).name:pathlib.Path(f) for f in pluginAPIFiles
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
280 }
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
281 dlg = EricListSelectionDialog(
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
282 sorted(pluginAPIFilesDict.keys()),
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
283 title=self.tr("Add from Plugin APIs"),
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
284 message=self.tr(
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
285 "Select from the list of API files installed by plugins"),
9151
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
286 checkBoxSelection=True,
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
287 parent=self
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
288 )
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
289 if dlg.exec() == QDialog.DialogCode.Accepted:
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
290 self.apiList.addItems([
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
291 str(pluginAPIFilesDict[s]) for s in dlg.getSelection()
8c5296fe3056 Changed API configuration page to allow to select multiple API files at once.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8881
diff changeset
292 ])
3098
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
293 self.prepareApiButton.setEnabled(self.apiList.count() > 0)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
294
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
295 @pyqtSlot()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
296 def on_prepareApiButton_clicked(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
297 """
3010
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2964
diff changeset
298 Private slot to prepare the API file for the currently selected
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2964
diff changeset
299 language.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
300 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
301 if self.__inPreparation:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
302 self.__currentAPI and self.__currentAPI.cancelPreparation()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
303 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
304 if self.__currentAPI is not None:
564
b3d966393ba9 Did some code cleanup.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 500
diff changeset
305 self.__currentAPI.prepareAPIs(
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
306 ondemand=True,
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
307 rawList=self.__editorGetApisFromApiList())
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
308
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
309 def __apiPreparationFinished(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
310 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
311 Private method called after the API preparation has finished.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
312 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
313 self.prepareApiProgressBar.reset()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
314 self.prepareApiProgressBar.setRange(0, 100)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
315 self.prepareApiProgressBar.setValue(0)
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
316 self.prepareApiButton.setText(self.tr("Compile APIs"))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
317 self.__inPreparation = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
318
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
319 def __apiPreparationCancelled(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
320 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
321 Private slot called after the API preparation has been cancelled.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
322 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
323 self.__apiPreparationFinished()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
324
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
325 def __apiPreparationStarted(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
326 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
327 Private method called after the API preparation has started.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
328 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
329 self.prepareApiProgressBar.setRange(0, 0)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
330 self.prepareApiProgressBar.setValue(0)
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
331 self.prepareApiButton.setText(self.tr("Cancel compilation"))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
332 self.__inPreparation = True
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
333
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
334 def saveState(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
335 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
336 Public method to save the current state of the widget.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
337
5350
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
338 @return tuple containing the index of the selected lexer language
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
339 and the index of the selected project type
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
340 @rtype tuple of int and int
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
341 """
5350
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
342 return (
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
343 self.apiLanguageComboBox.currentIndex(),
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
344 self.projectTypeComboBox.currentIndex()
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
345 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
346
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
347 def setState(self, state):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
348 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
349 Public method to set the state of the widget.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
350
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
351 @param state state data generated by saveState
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
352 """
5350
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
353 self.apiLanguageComboBox.setCurrentIndex(state[0])
3010
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2964
diff changeset
354 self.on_apiLanguageComboBox_activated(
8151
8c1445825e7b Changed code to not use QComboBox.activated[str] and QComboBoc.highlighted[str] signals but the int variants instead.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
355 self.apiLanguageComboBox.currentIndex())
7164
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
356
6da6a0a5a448 Made "MicroPython" a selectable programming language in order to not mess with the normal API selections.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
357 self.projectTypeComboBox.setCurrentIndex(state[1])
5350
57e82ffafdfc Adjusted the APIs configuration page to support project type specific API sets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5349
diff changeset
358 self.on_projectTypeComboBox_activated(state[1])
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
359
3098
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
360 @pyqtSlot()
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
361 def on_apiList_itemSelectionChanged(self):
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
362 """
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
363 Private slot to react on changes of API selections.
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
364 """
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
365 self.deleteApiFileButton.setEnabled(
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
366 len(self.apiList.selectedItems()) > 0)
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
367
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
368 @pyqtSlot(str)
4575
464a6b049f89 Changed the Python2 debugger and Editor APIs pages to use the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4554
diff changeset
369 def on_apiFilePicker_textChanged(self, txt):
3098
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
370 """
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
371 Private slot to handle the entering of an API file name.
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
372
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
373 @param txt text of the line edit (string)
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
374 """
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
375 enable = txt != ""
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
376
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
377 if enable:
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
378 # check for already added file
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
379 for row in range(self.apiList.count()):
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
380 if txt == self.apiList.item(row).text():
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
381 enable = False
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
382 break
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
383
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
384 self.addApiFileButton.setEnabled(enable)
02ee75d31584 Fixed a bug in the APIs configuration page of the config dialog and improved its functionality.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3038
diff changeset
385
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 882
diff changeset
386
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
387 def create(dlg):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
388 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
389 Module function to create the configuration page.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
390
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
391 @param dlg reference to the configuration dialog
2964
84b65fb9e780 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2408
diff changeset
392 @return reference to the instantiated page (ConfigurationPageBase)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
393 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
394 page = EditorAPIsPage()
880
52ed20236a1c Added the option to not use the native file dialog to prevent crashes on Linux.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
395 return page

eric ide

mercurial