eric6/Preferences/ProgramsDialog.py

Tue, 22 Dec 2020 19:59:29 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 22 Dec 2020 19:59:29 +0100
changeset 7907
7991ea245c20
parent 7900
72b88fb20261
child 7911
4621c9082a43
permissions
-rw-r--r--

Added support for PyQt6.

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
7360
9190402e4505 Updated copyright for 2020.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7326
diff changeset
3 # Copyright (c) 2006 - 2020 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 Programs 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
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 import os
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 import re
5970
411f7ba577d5 Continued to add support for Google protobuf protocol files. Added support for gRPC.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5968
diff changeset
12 import sys
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3484
diff changeset
14 from PyQt5.QtCore import pyqtSlot, Qt, QProcess
7263
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
15 from PyQt5.QtWidgets import (
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
16 QApplication, QTreeWidgetItem, QHeaderView, QDialog, QDialogButtonBox
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
17 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
19 from E5Gui.E5Application import e5App
7771
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
20 from E5Gui.E5OverrideCursor import E5OverrideCursor
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
22 from .Ui_ProgramsDialog import Ui_ProgramsDialog
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 import Preferences
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 import Utilities
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
394
da5696492639 Changed algorithm to detect eric tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 308
diff changeset
27
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 class ProgramsDialog(QDialog, Ui_ProgramsDialog):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 Class implementing the Programs page.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 """
7425
bd0eff406c6b ProgramsDialog: implemented interims filter solution to hide unavailable tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
32 ToolAvailableRole = Qt.UserRole + 1
bd0eff406c6b ProgramsDialog: implemented interims filter solution to hide unavailable tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
33
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
34 def __init__(self, parent=None):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 Constructor
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 @param parent The parent widget of this dialog. (QWidget)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 """
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2302
diff changeset
40 super(ProgramsDialog, self).__init__(parent)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 self.setupUi(self)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 self.setObjectName("ProgramsDialog")
4278
ccd1e13cb9bd Fixed issues where dialogs could not be minimized on some desktop environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
43 self.setWindowFlags(Qt.Window)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 self.__hasSearched = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46
3010
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2737
diff changeset
47 self.programsList.headerItem().setText(
3038
7fe9a53280bd Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
48 self.programsList.columnCount(), "")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49
3010
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2737
diff changeset
50 self.searchButton = self.buttonBox.addButton(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
51 self.tr("Search"), QDialogButtonBox.ActionRole)
3010
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2737
diff changeset
52 self.searchButton.setToolTip(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
53 self.tr("Press to search for programs"))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54
7426
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
55 self.showComboBox.addItems([
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
56 self.tr("All Supported Tools"),
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
57 self.tr("Available Tools Only"),
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
58 self.tr("Unavailable Tools Only"),
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
59 ])
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
60
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 def show(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 Public slot to show the dialog.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 QDialog.show(self)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 if not self.__hasSearched:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 self.on_programsSearchButton_clicked()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 def on_buttonBox_clicked(self, button):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 Private slot called by a button of the button box clicked.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 @param button button that was clicked (QAbstractButton)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 if button == self.searchButton:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 self.on_programsSearchButton_clicked()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 @pyqtSlot()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 def on_programsSearchButton_clicked(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 Private slot to search for all supported/required programs.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 self.programsList.clear()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 header = self.programsList.header()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 header.setSortIndicator(0, Qt.AscendingOrder)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 header.setSortIndicatorShown(False)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87
7771
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
88 with E5OverrideCursor():
7907
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
89 # 1. do the Qt programs
7771
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
90 # 1a. Translation Converter
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
91 exe = (
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
92 Utilities.isWindowsPlatform() and
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
93 "{0}.exe".format(Utilities.generateQtToolName("lrelease")) or
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
94 Utilities.generateQtToolName("lrelease")
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
95 )
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
96 exe = os.path.join(Utilities.getQtBinariesPath(), exe)
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
97 version = self.__createProgramEntry(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
98 self.tr("Translation Converter (Qt)"), exe, '-version',
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
99 'lrelease', -1)
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
100 # 1b. Qt Designer
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
101 if Utilities.isWindowsPlatform():
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
102 exe = os.path.join(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
103 Utilities.getQtBinariesPath(),
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
104 "{0}.exe".format(Utilities.generateQtToolName("designer")))
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
105 elif Utilities.isMacPlatform():
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
106 exe = Utilities.getQtMacBundle("designer")
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
107 else:
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
108 exe = os.path.join(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
109 Utilities.getQtBinariesPath(),
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
110 Utilities.generateQtToolName("designer"))
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
111 self.__createProgramEntry(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
112 self.tr("Qt Designer"), exe, version=version)
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
113 # 1c. Qt Linguist
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
114 if Utilities.isWindowsPlatform():
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
115 exe = os.path.join(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
116 Utilities.getQtBinariesPath(),
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
117 "{0}.exe".format(Utilities.generateQtToolName("linguist")))
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
118 elif Utilities.isMacPlatform():
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
119 exe = Utilities.getQtMacBundle("linguist")
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
120 else:
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
121 exe = os.path.join(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
122 Utilities.getQtBinariesPath(),
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
123 Utilities.generateQtToolName("linguist"))
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
124 self.__createProgramEntry(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
125 self.tr("Qt Linguist"), exe, version=version)
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
126 # 1d. Qt Assistant
6672
2af01e538c57 Started implementing support conda virtual environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6667
diff changeset
127 if Utilities.isWindowsPlatform():
7771
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
128 exe = os.path.join(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
129 Utilities.getQtBinariesPath(),
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
130 "{0}.exe".format(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
131 Utilities.generateQtToolName("assistant")))
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
132 elif Utilities.isMacPlatform():
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
133 exe = Utilities.getQtMacBundle("assistant")
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
134 else:
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
135 exe = os.path.join(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
136 Utilities.getQtBinariesPath(),
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
137 Utilities.generateQtToolName("assistant"))
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
138 self.__createProgramEntry(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
139 self.tr("Qt Assistant"), exe, version=version)
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
140
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
141 # 2. do the PyQt programs
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
142 # 2.1 do the PyQt5 programs
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
143 # 2.1a. Translation Extractor PyQt5
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
144 self.__createProgramEntry(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
145 self.tr("Translation Extractor (Python, PyQt5)"),
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
146 Utilities.generatePyQtToolPath("pylupdate5"),
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
147 '-version', 'pylupdate', -1)
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
148 # 2.1b. Forms Compiler PyQt5
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
149 self.__createProgramEntry(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
150 self.tr("Forms Compiler (Python, PyQt5)"),
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
151 Utilities.generatePyQtToolPath("pyuic5", ["py3uic5"]),
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
152 '--version', 'Python User', 4)
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
153 # 2.1c. Resource Compiler PyQt5
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
154 self.__createProgramEntry(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
155 self.tr("Resource Compiler (Python, PyQt5)"),
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
156 Utilities.generatePyQtToolPath("pyrcc5"),
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
157 '-version', '', -1, versionRe='Resource Compiler|pyrcc5')
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
158
7907
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
159 # 2.2 do the PyQt6 programs
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
160 # 2.2a. Translation Extractor PyQt6
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
161 self.__createProgramEntry(
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
162 self.tr("Translation Extractor (Python, PyQt6)"),
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
163 Utilities.generatePyQtToolPath("pylupdate6"),
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
164 '--version', versionPosition=0)
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
165 # 2.2b. Forms Compiler PyQt6
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
166 self.__createProgramEntry(
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
167 self.tr("Forms Compiler (Python, PyQt6)"),
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
168 Utilities.generatePyQtToolPath("pyuic6"),
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
169 '--version', versionPosition=0)
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
170
7771
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
171 # 3. do the PySide programs
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
172 # 3.1 do the PySide2 programs
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
173 # 3.1a. Translation Extractor PySide2
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
174 self.__createProgramEntry(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
175 self.tr("Translation Extractor (Python, PySide2)"),
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
176 Utilities.generatePySideToolPath("pyside2-lupdate"),
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
177 '-version', '', -1, versionRe='lupdate')
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
178 # 3.1b. Forms Compiler PySide2
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
179 self.__createProgramEntry(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
180 self.tr("Forms Compiler (Python, PySide2)"),
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
181 Utilities.generatePySideToolPath("pyside2-uic"),
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
182 '--version', '', -1, versionRe='uic')
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
183 # 3.1c Resource Compiler PySide2
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
184 self.__createProgramEntry(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
185 self.tr("Resource Compiler (Python, PySide2)"),
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
186 Utilities.generatePySideToolPath("pyside2-rcc"),
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
187 '-version', '', -1, versionRe='rcc')
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
188
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
189 # 4. do the Conda program(s)
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
190 exe = Preferences.getConda("CondaExecutable")
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
191 if not exe:
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
192 exe = "conda"
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
193 if Utilities.isWindowsPlatform():
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
194 exe += ".exe"
6782
390a45748883 PipInterface: started to convert the pip interface from a menu based plug-in to a widget based interface to be placed in the right side tools bar.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6672
diff changeset
195 self.__createProgramEntry(
7771
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
196 self.tr("conda Manager"), exe, '--version', 'conda', -1)
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
197
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
198 # 5. do the pip program(s)
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
199 virtualenvManager = e5App().getObject("VirtualEnvManager")
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
200 for venvName in virtualenvManager.getVirtualenvNames():
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
201 interpreter = virtualenvManager.getVirtualenvInterpreter(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
202 venvName)
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
203 self.__createProgramEntry(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
204 self.tr("PyPI Package Management"), interpreter,
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
205 '--version', 'pip', 1, exeModule=["-m", "pip"])
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
206
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
207 # 6. do the CORBA and Protobuf programs
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
208 # 6a. omniORB
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
209 exe = Preferences.getCorba("omniidl")
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
210 if not exe:
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
211 exe = "omniidl"
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
212 if Utilities.isWindowsPlatform():
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
213 exe += ".exe"
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
214 self.__createProgramEntry(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
215 self.tr("CORBA IDL Compiler"), exe, '-V', 'omniidl', -1)
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
216 # 6b. protobuf
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
217 exe = Preferences.getProtobuf("protoc")
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
218 if not exe:
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
219 exe = "protoc"
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
220 if Utilities.isWindowsPlatform():
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
221 exe += ".exe"
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
222 self.__createProgramEntry(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
223 self.tr("Protobuf Compiler"), exe, '--version', 'libprotoc',
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
224 -1)
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
225 # 6c. grpc
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
226 exe = Preferences.getProtobuf("grpcPython")
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
227 if not exe:
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
228 exe = sys.executable
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
229 self.__createProgramEntry(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
230 self.tr("gRPC Compiler"), exe, '--version', 'libprotoc', -1,
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
231 exeModule=['-m', 'grpc_tools.protoc'])
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
232
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
233 # 7. do the spell checking entry
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 try:
7771
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
235 import enchant
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
236 try:
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
237 text = os.path.dirname(enchant.__file__)
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
238 except AttributeError:
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
239 text = "enchant"
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
240 try:
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
241 version = enchant.__version__
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
242 except AttributeError:
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
243 version = self.tr("(unknown)")
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
244 except (ImportError, AttributeError, OSError):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
245 text = "enchant"
7771
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
246 version = ""
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
247 self.__createEntry(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
248 self.tr("Spell Checker - PyEnchant"), text, version)
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
249
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
250 # 8. do the pygments entry
686
b672b36f3efb Added code to show the version of the Pygments source highlighter and which variant is used (built-in or external).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 438
diff changeset
251 try:
7771
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
252 import pygments
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
253 try:
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
254 text = os.path.dirname(pygments.__file__)
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
255 except AttributeError:
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
256 text = "pygments"
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
257 try:
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
258 version = pygments.__version__
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
259 except AttributeError:
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
260 version = self.tr("(unknown)")
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
261 except (ImportError, AttributeError, OSError):
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
262 text = "pygments"
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
263 version = ""
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
264 self.__createEntry(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
265 self.tr("Source Highlighter - Pygments"), text, version)
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
266
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
267 # 9. do the MicroPython related entries
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
268 exe = Preferences.getMicroPython("MpyCrossCompiler")
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
269 if not exe:
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
270 exe = "mpy-cross"
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
271 self.__createProgramEntry(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
272 self.tr("MicroPython - MPY Cross Compiler"), exe, '--version',
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
273 'MicroPython', 1)
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
274 self.__createProgramEntry(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
275 self.tr("MicroPython - ESP Tool"), sys.executable, 'version',
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
276 'esptool', -1, exeModule=['-m', 'esptool'])
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
277 exe = Preferences.getMicroPython("DfuUtilPath")
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
278 if not exe:
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
279 exe = "dfu-util"
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
280 self.__createProgramEntry(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
281 self.tr("MicroPython - PyBoard Flasher"), exe, '--version',
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
282 'dfu-util', -1)
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
283
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
284 # 10. do the plugin related programs
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
285 pm = e5App().getObject("PluginManager")
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
286 for info in pm.getPluginExeDisplayData():
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
287 if info["programEntry"]:
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
288 if "exeModule" not in info:
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
289 info["exeModule"] = None
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
290 if "versionRe" not in info:
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
291 info["versionRe"] = None
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
292 self.__createProgramEntry(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
293 info["header"],
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
294 info["exe"],
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
295 versionCommand=info["versionCommand"],
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
296 versionStartsWith=info["versionStartsWith"],
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
297 versionPosition=info["versionPosition"],
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
298 version=info["version"],
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
299 versionCleanup=info["versionCleanup"],
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
300 versionRe=info["versionRe"],
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
301 exeModule=info["exeModule"],
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
302 )
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
303 else:
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
304 self.__createEntry(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
305 info["header"],
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
306 info["text"],
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
307 info["version"]
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
308 )
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
309
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
310 self.programsList.sortByColumn(0, Qt.AscendingOrder)
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
311 self.on_showComboBox_currentIndexChanged(
787a6b3f8c9f Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7635
diff changeset
312 self.showComboBox.currentIndex())
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
313
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
314 self.__hasSearched = True
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
315
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
316 def __createProgramEntry(self, description, exe,
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
317 versionCommand="", versionStartsWith="",
7907
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
318 versionPosition=None, version="",
5970
411f7ba577d5 Continued to add support for Google protobuf protocol files. Added support for gRPC.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5968
diff changeset
319 versionCleanup=None, versionRe=None,
411f7ba577d5 Continued to add support for Google protobuf protocol files. Added support for gRPC.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5968
diff changeset
320 exeModule=None):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
321 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
322 Private method to generate a program entry.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
323
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
324 @param description descriptive text (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
325 @param exe name of the executable program (string)
3010
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2737
diff changeset
326 @param versionCommand command line switch to get the version info
5970
411f7ba577d5 Continued to add support for Google protobuf protocol files. Added support for gRPC.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5968
diff changeset
327 (str). If this is empty, the given version will be shown.
3010
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2737
diff changeset
328 @param versionStartsWith start of line identifying version info
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2737
diff changeset
329 (string)
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2737
diff changeset
330 @param versionPosition index of part containing the version info
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2737
diff changeset
331 (integer)
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7780
diff changeset
332 @param version version string to show (string)
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7780
diff changeset
333 @param versionCleanup tuple of two integers giving string positions
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
334 start and stop for the version string (tuple of integers)
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7780
diff changeset
335 @param versionRe regexp to determine the line identifying version
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
336 info (string). Takes precedence over versionStartsWith.
7900
72b88fb20261 Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7780
diff changeset
337 @param exeModule list of command line parameters to execute a module
5970
411f7ba577d5 Continued to add support for Google protobuf protocol files. Added support for gRPC.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5968
diff changeset
338 with the program given in exe (e.g. to execute a Python module)
411f7ba577d5 Continued to add support for Google protobuf protocol files. Added support for gRPC.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5968
diff changeset
339 (list of str)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
340 @return version string of detected or given version (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
341 """
3010
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2737
diff changeset
342 itmList = self.programsList.findItems(
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2737
diff changeset
343 description, Qt.MatchCaseSensitive)
438
f62a3f9d2e28 Changed code to include Qt Help tools in programs detection and introduced the 'exeDisplayDataList' plug-in function to report back a list of tools to check for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 426
diff changeset
344 if itmList:
f62a3f9d2e28 Changed code to include Qt Help tools in programs detection and introduced the 'exeDisplayDataList' plug-in function to report back a list of tools to check for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 426
diff changeset
345 itm = itmList[0]
f62a3f9d2e28 Changed code to include Qt Help tools in programs detection and introduced the 'exeDisplayDataList' plug-in function to report back a list of tools to check for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 426
diff changeset
346 else:
f62a3f9d2e28 Changed code to include Qt Help tools in programs detection and introduced the 'exeDisplayDataList' plug-in function to report back a list of tools to check for.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 426
diff changeset
347 itm = QTreeWidgetItem(self.programsList, [description])
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
348 font = itm.font(0)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
349 font.setBold(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
350 itm.setFont(0, font)
6665
adb59475e671 Some changes to the Qt Help tools detection.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
351 rememberedExe = exe
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
352 if not exe:
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
353 itm.setText(1, self.tr("(not configured)"))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
354 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
355 if os.path.isabs(exe):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
356 if not Utilities.isExecutable(exe):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
357 exe = ""
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
358 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
359 exe = Utilities.getExecutablePath(exe)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
360 if exe:
7426
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
361 available = True
7907
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
362 if versionCommand and versionPosition is not None:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
363 proc = QProcess()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
364 proc.setProcessChannelMode(QProcess.MergedChannels)
5970
411f7ba577d5 Continued to add support for Google protobuf protocol files. Added support for gRPC.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5968
diff changeset
365 if exeModule:
411f7ba577d5 Continued to add support for Google protobuf protocol files. Added support for gRPC.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5968
diff changeset
366 args = exeModule[:] + [versionCommand]
411f7ba577d5 Continued to add support for Google protobuf protocol files. Added support for gRPC.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5968
diff changeset
367 else:
411f7ba577d5 Continued to add support for Google protobuf protocol files. Added support for gRPC.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5968
diff changeset
368 args = [versionCommand]
411f7ba577d5 Continued to add support for Google protobuf protocol files. Added support for gRPC.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5968
diff changeset
369 proc.start(exe, args)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
370 finished = proc.waitForFinished(10000)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
371 if finished:
3038
7fe9a53280bd Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
372 output = str(proc.readAllStandardOutput(),
7fe9a53280bd Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
373 Preferences.getSystem("IOEncoding"),
7fe9a53280bd Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
374 'replace')
7263
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
375 if (
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
376 exeModule and
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
377 exeModule[0] == "-m" and
6288
67ae52179c8b ProgramsDialog: fixed an issue causing a non-existent module not being detected.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6083
diff changeset
378 ("ImportError:" in output or
6667
d45c9b0c3851 ProgramsDialog: added another condition for failing to load a Python module via -m.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6665
diff changeset
379 "ModuleNotFoundError:" in output or
7263
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
380 proc.exitCode() != 0)
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
381 ):
6083
fc99172cd83e Fixed the output of the programs dialog for failed module imports of programs (i.e. for commands like "python3 -m grpc_tools.protoc").
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6068
diff changeset
382 version = self.tr("(module not found)")
7425
bd0eff406c6b ProgramsDialog: implemented interims filter solution to hide unavailable tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
383 available = False
7907
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
384 elif not versionStartsWith and not versionRe:
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
385 # assume output is just one line
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
386 try:
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
387 version = (
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
388 output.strip().split()[versionPosition]
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
389 )
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
390 if versionCleanup:
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
391 version = version[
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
392 versionCleanup[0]:
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
393 versionCleanup[1]
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
394 ]
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
395 except IndexError:
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
396 version = self.tr("(unknown)")
7991ea245c20 Added support for PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7900
diff changeset
397 available = False
3194
c95193671ab5 Little correction to the programs dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
398 else:
6083
fc99172cd83e Fixed the output of the programs dialog for failed module imports of programs (i.e. for commands like "python3 -m grpc_tools.protoc").
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6068
diff changeset
399 if versionRe is None:
fc99172cd83e Fixed the output of the programs dialog for failed module imports of programs (i.e. for commands like "python3 -m grpc_tools.protoc").
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6068
diff changeset
400 versionRe = "^{0}".format(
fc99172cd83e Fixed the output of the programs dialog for failed module imports of programs (i.e. for commands like "python3 -m grpc_tools.protoc").
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6068
diff changeset
401 re.escape(versionStartsWith))
fc99172cd83e Fixed the output of the programs dialog for failed module imports of programs (i.e. for commands like "python3 -m grpc_tools.protoc").
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6068
diff changeset
402 versionRe = re.compile(versionRe, re.UNICODE)
fc99172cd83e Fixed the output of the programs dialog for failed module imports of programs (i.e. for commands like "python3 -m grpc_tools.protoc").
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6068
diff changeset
403 for line in output.splitlines():
fc99172cd83e Fixed the output of the programs dialog for failed module imports of programs (i.e. for commands like "python3 -m grpc_tools.protoc").
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6068
diff changeset
404 if versionRe.search(line):
fc99172cd83e Fixed the output of the programs dialog for failed module imports of programs (i.e. for commands like "python3 -m grpc_tools.protoc").
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6068
diff changeset
405 try:
fc99172cd83e Fixed the output of the programs dialog for failed module imports of programs (i.e. for commands like "python3 -m grpc_tools.protoc").
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6068
diff changeset
406 version = line.split()[versionPosition]
fc99172cd83e Fixed the output of the programs dialog for failed module imports of programs (i.e. for commands like "python3 -m grpc_tools.protoc").
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6068
diff changeset
407 if versionCleanup:
fc99172cd83e Fixed the output of the programs dialog for failed module imports of programs (i.e. for commands like "python3 -m grpc_tools.protoc").
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6068
diff changeset
408 version = version[
fc99172cd83e Fixed the output of the programs dialog for failed module imports of programs (i.e. for commands like "python3 -m grpc_tools.protoc").
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6068
diff changeset
409 versionCleanup[0]:
fc99172cd83e Fixed the output of the programs dialog for failed module imports of programs (i.e. for commands like "python3 -m grpc_tools.protoc").
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6068
diff changeset
410 versionCleanup[1]
fc99172cd83e Fixed the output of the programs dialog for failed module imports of programs (i.e. for commands like "python3 -m grpc_tools.protoc").
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6068
diff changeset
411 ]
fc99172cd83e Fixed the output of the programs dialog for failed module imports of programs (i.e. for commands like "python3 -m grpc_tools.protoc").
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6068
diff changeset
412 break
fc99172cd83e Fixed the output of the programs dialog for failed module imports of programs (i.e. for commands like "python3 -m grpc_tools.protoc").
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6068
diff changeset
413 except IndexError:
fc99172cd83e Fixed the output of the programs dialog for failed module imports of programs (i.e. for commands like "python3 -m grpc_tools.protoc").
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6068
diff changeset
414 version = self.tr("(unknown)")
7425
bd0eff406c6b ProgramsDialog: implemented interims filter solution to hide unavailable tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
415 available = False
6083
fc99172cd83e Fixed the output of the programs dialog for failed module imports of programs (i.e. for commands like "python3 -m grpc_tools.protoc").
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6068
diff changeset
416 else:
fc99172cd83e Fixed the output of the programs dialog for failed module imports of programs (i.e. for commands like "python3 -m grpc_tools.protoc").
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6068
diff changeset
417 version = self.tr("(unknown)")
7425
bd0eff406c6b ProgramsDialog: implemented interims filter solution to hide unavailable tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
418 available = False
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
419 else:
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
420 version = self.tr("(not executable)")
7425
bd0eff406c6b ProgramsDialog: implemented interims filter solution to hide unavailable tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
421 available = False
5970
411f7ba577d5 Continued to add support for Google protobuf protocol files. Added support for gRPC.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5968
diff changeset
422 if exeModule:
7426
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
423 citm = QTreeWidgetItem(itm, [
5970
411f7ba577d5 Continued to add support for Google protobuf protocol files. Added support for gRPC.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5968
diff changeset
424 "{0} {1}".format(exe, " ".join(exeModule)),
411f7ba577d5 Continued to add support for Google protobuf protocol files. Added support for gRPC.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5968
diff changeset
425 version])
411f7ba577d5 Continued to add support for Google protobuf protocol files. Added support for gRPC.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5968
diff changeset
426 else:
7426
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
427 citm = QTreeWidgetItem(itm, [exe, version])
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
428 citm.setData(0, self.ToolAvailableRole, available)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
429 itm.setExpanded(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
430 else:
6665
adb59475e671 Some changes to the Qt Help tools detection.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
431 if itm.childCount() == 0:
adb59475e671 Some changes to the Qt Help tools detection.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
432 itm.setText(1, self.tr("(not found)"))
adb59475e671 Some changes to the Qt Help tools detection.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
433 else:
7426
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
434 citm = QTreeWidgetItem(
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
435 itm, [rememberedExe, self.tr("(not found)")])
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
436 citm.setData(0, self.ToolAvailableRole, False)
6665
adb59475e671 Some changes to the Qt Help tools detection.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
437 itm.setExpanded(True)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
438 QApplication.processEvents()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
439 self.programsList.header().resizeSections(QHeaderView.ResizeToContents)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
440 self.programsList.header().setStretchLastSection(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
441 return version
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
442
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
443 def __createEntry(self, description, entryText, entryVersion):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
444 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
445 Private method to generate a program entry.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
446
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
447 @param description descriptive text (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
448 @param entryText text to show (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
449 @param entryVersion version string to show (string).
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
450 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
451 itm = QTreeWidgetItem(self.programsList, [description])
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
452 font = itm.font(0)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
453 font.setBold(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
454 itm.setFont(0, font)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
455
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
456 if len(entryVersion):
7426
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
457 citm = QTreeWidgetItem(itm, [entryText, entryVersion])
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
458 itm.setExpanded(True)
7426
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
459 citm.setData(0, self.ToolAvailableRole,
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
460 not entryVersion.startswith("("))
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
461 # assume version starting with '(' is an unavailability
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
462 else:
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
463 itm.setText(1, self.tr("(not found)"))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
464 QApplication.processEvents()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
465 self.programsList.header().resizeSections(QHeaderView.ResizeToContents)
97
c4086afea02b Finished cleaning up the code supported by py3flakes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
466 self.programsList.header().setStretchLastSection(True)
7425
bd0eff406c6b ProgramsDialog: implemented interims filter solution to hide unavailable tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
467
7426
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
468 @pyqtSlot(int)
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
469 def on_showComboBox_currentIndexChanged(self, index):
7425
bd0eff406c6b ProgramsDialog: implemented interims filter solution to hide unavailable tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
470 """
7426
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
471 Private slot to apply the selected show criteria.
7425
bd0eff406c6b ProgramsDialog: implemented interims filter solution to hide unavailable tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
472
7426
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
473 @param index index of the show criterium
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
474 @type int
7425
bd0eff406c6b ProgramsDialog: implemented interims filter solution to hide unavailable tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
475 """
7426
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
476 if index == 0:
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
477 # All Supported Tools
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
478 for topIndex in range(self.programsList.topLevelItemCount()):
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
479 topItem = self.programsList.topLevelItem(topIndex)
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
480 for childIndex in range(topItem.childCount()):
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
481 topItem.child(childIndex).setHidden(False)
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
482 topItem.setHidden(False)
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
483 else:
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
484 # 1 = Available Tools Only
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
485 # 2 = Unavailable Tools Only
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
486 for topIndex in range(self.programsList.topLevelItemCount()):
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
487 topItem = self.programsList.topLevelItem(topIndex)
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
488 if topItem.childCount() == 0:
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
489 topItem.setHidden(index == 1)
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
490 else:
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
491 availabilityList = []
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
492 for childIndex in range(topItem.childCount()):
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
493 childItem = topItem.child(childIndex)
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
494 available = childItem.data(0, self.ToolAvailableRole)
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
495 if index == 1:
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
496 childItem.setHidden(not available)
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
497 else:
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
498 childItem.setHidden(available)
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
499 availabilityList.append(available)
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
500 if index == 1:
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
501 topItem.setHidden(not any(availabilityList))
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
502 else:
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
503 topItem.setHidden(all(availabilityList))

eric ide

mercurial