eric6/Preferences/ProgramsDialog.py

Sun, 21 Jun 2020 18:26:12 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 21 Jun 2020 18:26:12 +0200
changeset 7635
0cdead130a81
parent 7451
f04328aef87a
child 7771
787a6b3f8c9f
permissions
-rw-r--r--

Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).

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
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
10
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 import os
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 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
13 import sys
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3484
diff changeset
15 from PyQt5.QtCore import pyqtSlot, Qt, QProcess
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3484
diff changeset
16 from PyQt5.QtGui import QCursor
7263
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
17 from PyQt5.QtWidgets import (
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
18 QApplication, QTreeWidgetItem, QHeaderView, QDialog, QDialogButtonBox
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
19 )
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
21 from E5Gui.E5Application import e5App
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
23 from .Ui_ProgramsDialog import Ui_ProgramsDialog
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 import Preferences
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 import Utilities
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27
394
da5696492639 Changed algorithm to detect eric tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 308
diff changeset
28
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 class ProgramsDialog(QDialog, Ui_ProgramsDialog):
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 Class implementing the Programs page.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 """
7425
bd0eff406c6b ProgramsDialog: implemented interims filter solution to hide unavailable tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
33 ToolAvailableRole = Qt.UserRole + 1
bd0eff406c6b ProgramsDialog: implemented interims filter solution to hide unavailable tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
34
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
35 def __init__(self, parent=None):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 Constructor
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 @param parent The parent widget of this dialog. (QWidget)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 """
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
41 super(ProgramsDialog, self).__init__(parent)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 self.setupUi(self)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 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
44 self.setWindowFlags(Qt.Window)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 self.__hasSearched = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47
3010
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2737
diff changeset
48 self.programsList.headerItem().setText(
3038
7fe9a53280bd Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
49 self.programsList.columnCount(), "")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50
3010
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2737
diff changeset
51 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
52 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
53 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
54 self.tr("Press to search for programs"))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55
7426
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
56 self.showComboBox.addItems([
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
57 self.tr("All Supported Tools"),
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
58 self.tr("Available Tools Only"),
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
59 self.tr("Unavailable Tools Only"),
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
60 ])
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
61
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 def show(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 Public slot to show the dialog.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 QDialog.show(self)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 if not self.__hasSearched:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 self.on_programsSearchButton_clicked()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 def on_buttonBox_clicked(self, button):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 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
73
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 @param button button that was clicked (QAbstractButton)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 if button == self.searchButton:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 self.on_programsSearchButton_clicked()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 @pyqtSlot()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 def on_programsSearchButton_clicked(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 Private slot to search for all supported/required programs.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 QApplication.processEvents()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 self.programsList.clear()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 header = self.programsList.header()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 header.setSortIndicator(0, Qt.AscendingOrder)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 header.setSortIndicatorShown(False)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91
7198
684261ef2165 Removed the Qt4 runtime stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7192
diff changeset
92 # 1. do the Qt5 programs
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 # 1a. Translation Converter
7263
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
94 exe = (
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
95 Utilities.isWindowsPlatform() and
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
96 "{0}.exe".format(Utilities.generateQtToolName("lrelease")) or
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 Utilities.generateQtToolName("lrelease")
7263
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
98 )
2615
bdc9b4659826 Added a method to determine the Qt binaries path to the Globals package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2596
diff changeset
99 exe = os.path.join(Utilities.getQtBinariesPath(), exe)
3010
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2737
diff changeset
100 version = self.__createProgramEntry(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
101 self.tr("Translation Converter (Qt)"), exe, '-version',
3010
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2737
diff changeset
102 'lrelease', -1)
2297
e8a46f81517c Adjusted some display strings to be independant of the Qt version (Qt4/Qt5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
103 # 1b. Qt Designer
1368
4489ee4feb59 Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1173
diff changeset
104 if Utilities.isWindowsPlatform():
3025
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3010
diff changeset
105 exe = os.path.join(
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3010
diff changeset
106 Utilities.getQtBinariesPath(),
2596
32c4afbe0801 Changed the logic to access the Qt tools (executables) to use the information compiled into Qt (QLibraryInfo.location(...)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
107 "{0}.exe".format(Utilities.generateQtToolName("designer")))
1368
4489ee4feb59 Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1173
diff changeset
108 elif Utilities.isMacPlatform():
4489ee4feb59 Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1173
diff changeset
109 exe = Utilities.getQtMacBundle("designer")
4489ee4feb59 Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1173
diff changeset
110 else:
3025
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3010
diff changeset
111 exe = os.path.join(
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3010
diff changeset
112 Utilities.getQtBinariesPath(),
2596
32c4afbe0801 Changed the logic to access the Qt tools (executables) to use the information compiled into Qt (QLibraryInfo.location(...)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
113 Utilities.generateQtToolName("designer"))
3010
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2737
diff changeset
114 self.__createProgramEntry(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
115 self.tr("Qt Designer"), exe, version=version)
2297
e8a46f81517c Adjusted some display strings to be independant of the Qt version (Qt4/Qt5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
116 # 1c. Qt Linguist
1368
4489ee4feb59 Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1173
diff changeset
117 if Utilities.isWindowsPlatform():
3025
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3010
diff changeset
118 exe = os.path.join(
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3010
diff changeset
119 Utilities.getQtBinariesPath(),
2596
32c4afbe0801 Changed the logic to access the Qt tools (executables) to use the information compiled into Qt (QLibraryInfo.location(...)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
120 "{0}.exe".format(Utilities.generateQtToolName("linguist")))
1368
4489ee4feb59 Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1173
diff changeset
121 elif Utilities.isMacPlatform():
4489ee4feb59 Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1173
diff changeset
122 exe = Utilities.getQtMacBundle("linguist")
4489ee4feb59 Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1173
diff changeset
123 else:
3025
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3010
diff changeset
124 exe = os.path.join(
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3010
diff changeset
125 Utilities.getQtBinariesPath(),
2596
32c4afbe0801 Changed the logic to access the Qt tools (executables) to use the information compiled into Qt (QLibraryInfo.location(...)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
126 Utilities.generateQtToolName("linguist"))
3010
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2737
diff changeset
127 self.__createProgramEntry(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
128 self.tr("Qt Linguist"), exe, version=version)
2297
e8a46f81517c Adjusted some display strings to be independant of the Qt version (Qt4/Qt5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
129 # 1d. Qt Assistant
1368
4489ee4feb59 Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1173
diff changeset
130 if Utilities.isWindowsPlatform():
3025
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3010
diff changeset
131 exe = os.path.join(
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3010
diff changeset
132 Utilities.getQtBinariesPath(),
2596
32c4afbe0801 Changed the logic to access the Qt tools (executables) to use the information compiled into Qt (QLibraryInfo.location(...)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
133 "{0}.exe".format(Utilities.generateQtToolName("assistant")))
1368
4489ee4feb59 Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1173
diff changeset
134 elif Utilities.isMacPlatform():
4489ee4feb59 Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1173
diff changeset
135 exe = Utilities.getQtMacBundle("assistant")
4489ee4feb59 Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1173
diff changeset
136 else:
3025
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3010
diff changeset
137 exe = os.path.join(
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3010
diff changeset
138 Utilities.getQtBinariesPath(),
2596
32c4afbe0801 Changed the logic to access the Qt tools (executables) to use the information compiled into Qt (QLibraryInfo.location(...)).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
139 Utilities.generateQtToolName("assistant"))
3010
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2737
diff changeset
140 self.__createProgramEntry(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
141 self.tr("Qt Assistant"), exe, version=version)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 # 2. do the PyQt programs
7635
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7451
diff changeset
144 # 2.1 do the PyQt5 programs
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7451
diff changeset
145 # 2.1a. Translation Extractor PyQt5
3010
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2737
diff changeset
146 self.__createProgramEntry(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
147 self.tr("Translation Extractor (Python, PyQt5)"),
5696
68af0e9c57ad Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
148 Utilities.generatePyQtToolPath("pylupdate5"),
2737
dbe5497851fa Started implementation of support for PyQt5 projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2615
diff changeset
149 '-version', 'pylupdate', -1)
7635
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7451
diff changeset
150 # 2.1b. Forms Compiler PyQt5
3010
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2737
diff changeset
151 self.__createProgramEntry(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
152 self.tr("Forms Compiler (Python, PyQt5)"),
7192
a22eee00b052 Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
153 Utilities.generatePyQtToolPath("pyuic5", ["py3uic5"]),
2737
dbe5497851fa Started implementation of support for PyQt5 projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2615
diff changeset
154 '--version', 'Python User', 4)
7635
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7451
diff changeset
155 # 2.1c. Resource Compiler PyQt5
3010
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2737
diff changeset
156 self.__createProgramEntry(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
157 self.tr("Resource Compiler (Python, PyQt5)"),
5696
68af0e9c57ad Started implementing the capability to configure the path to the PyQt tools or determine it based on the current Python interpreter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5624
diff changeset
158 Utilities.generatePyQtToolPath("pyrcc5"),
5110
6520a41afb84 Added a fix for latest PyQt 5.7 and later.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
159 '-version', '', -1, versionRe='Resource Compiler|pyrcc5')
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160
7635
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7451
diff changeset
161 # 3. do the PySide programs
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7451
diff changeset
162 # 3.1 do the PySide2 programs
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7451
diff changeset
163 # 3.1a. Translation Extractor PySide2
6291
94e0e688dcad PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6288
diff changeset
164 self.__createProgramEntry(
94e0e688dcad PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6288
diff changeset
165 self.tr("Translation Extractor (Python, PySide2)"),
7635
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7451
diff changeset
166 Utilities.generatePySideToolPath("pyside2-lupdate"),
6291
94e0e688dcad PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6288
diff changeset
167 '-version', '', -1, versionRe='lupdate')
7635
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7451
diff changeset
168 # 3.1b. Forms Compiler PySide2
6291
94e0e688dcad PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6288
diff changeset
169 self.__createProgramEntry(
94e0e688dcad PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6288
diff changeset
170 self.tr("Forms Compiler (Python, PySide2)"),
7635
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7451
diff changeset
171 Utilities.generatePySideToolPath("pyside2-uic"),
7451
f04328aef87a PySide2 support: separated pyside2-uic options from those for pyuic5 and fixed tool detection for PySide2
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7426
diff changeset
172 '--version', '', -1, versionRe='uic')
7635
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7451
diff changeset
173 # 3.1c Resource Compiler PySide2
6291
94e0e688dcad PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6288
diff changeset
174 self.__createProgramEntry(
94e0e688dcad PySide2 support: started to implement support for PySide2.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6288
diff changeset
175 self.tr("Resource Compiler (Python, PySide2)"),
7635
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7451
diff changeset
176 Utilities.generatePySideToolPath("pyside2-rcc"),
7451
f04328aef87a PySide2 support: separated pyside2-uic options from those for pyuic5 and fixed tool detection for PySide2
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7426
diff changeset
177 '-version', '', -1, versionRe='rcc')
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178
7635
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7451
diff changeset
179 # 4. do the Conda program(s)
6672
2af01e538c57 Started implementing support conda virtual environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6667
diff changeset
180 exe = Preferences.getConda("CondaExecutable")
2af01e538c57 Started implementing support conda virtual environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6667
diff changeset
181 if not exe:
2af01e538c57 Started implementing support conda virtual environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6667
diff changeset
182 exe = "conda"
2af01e538c57 Started implementing support conda virtual environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6667
diff changeset
183 if Utilities.isWindowsPlatform():
2af01e538c57 Started implementing support conda virtual environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6667
diff changeset
184 exe += ".exe"
2af01e538c57 Started implementing support conda virtual environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6667
diff changeset
185 self.__createProgramEntry(
2af01e538c57 Started implementing support conda virtual environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6667
diff changeset
186 self.tr("conda Manager"), exe, '--version', 'conda', -1)
2af01e538c57 Started implementing support conda virtual environments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6667
diff changeset
187
7635
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7451
diff changeset
188 # 5. do the pip program(s)
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
189 virtualenvManager = e5App().getObject("VirtualEnvManager")
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
190 for venvName in virtualenvManager.getVirtualenvNames():
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
191 interpreter = virtualenvManager.getVirtualenvInterpreter(venvName)
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
192 self.__createProgramEntry(
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
193 self.tr("PyPI Package Management"), interpreter, '--version',
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
194 'pip', 1, exeModule=["-m", "pip"])
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
7635
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7451
diff changeset
196 # 6. do the CORBA and Protobuf programs
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7451
diff changeset
197 # 6a. omniORB
6
52e8c820d0dd Removed some superfluous unicode() calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
198 exe = Preferences.getCorba("omniidl")
5968
c5112b5cb7a9 Started to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5878
diff changeset
199 if not exe:
c5112b5cb7a9 Started to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5878
diff changeset
200 exe = "omniidl"
6527
402067bb8029 Preferences omniidl.exe (CORBA support) and protoc.exe (Protobuf support) paths setting bug fix.
Christos Sevastiadis <csevast@auth.gr>
parents: 6291
diff changeset
201 if Utilities.isWindowsPlatform():
402067bb8029 Preferences omniidl.exe (CORBA support) and protoc.exe (Protobuf support) paths setting bug fix.
Christos Sevastiadis <csevast@auth.gr>
parents: 6291
diff changeset
202 exe += ".exe"
3025
67064c71df21 Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3010
diff changeset
203 self.__createProgramEntry(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
204 self.tr("CORBA IDL Compiler"), exe, '-V', 'omniidl', -1)
7635
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7451
diff changeset
205 # 6b. protobuf
5968
c5112b5cb7a9 Started to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5878
diff changeset
206 exe = Preferences.getProtobuf("protoc")
c5112b5cb7a9 Started to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5878
diff changeset
207 if not exe:
c5112b5cb7a9 Started to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5878
diff changeset
208 exe = "protoc"
6527
402067bb8029 Preferences omniidl.exe (CORBA support) and protoc.exe (Protobuf support) paths setting bug fix.
Christos Sevastiadis <csevast@auth.gr>
parents: 6291
diff changeset
209 if Utilities.isWindowsPlatform():
402067bb8029 Preferences omniidl.exe (CORBA support) and protoc.exe (Protobuf support) paths setting bug fix.
Christos Sevastiadis <csevast@auth.gr>
parents: 6291
diff changeset
210 exe += ".exe"
5968
c5112b5cb7a9 Started to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5878
diff changeset
211 self.__createProgramEntry(
c5112b5cb7a9 Started to add support for Google protobuf protocol files.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5878
diff changeset
212 self.tr("Protobuf Compiler"), exe, '--version', 'libprotoc', -1)
7635
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7451
diff changeset
213 # 6c. grpc
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
214 exe = Preferences.getProtobuf("grpcPython")
411f7ba577d5 Continued to add support for Google protobuf protocol files. Added support for gRPC.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5968
diff changeset
215 if not exe:
411f7ba577d5 Continued to add support for Google protobuf protocol files. Added support for gRPC.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5968
diff changeset
216 exe = sys.executable
411f7ba577d5 Continued to add support for Google protobuf protocol files. Added support for gRPC.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5968
diff changeset
217 self.__createProgramEntry(
5974
dfb291b5b620 Changed "grpc" to "gRPC" in visible strings and source docu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5970
diff changeset
218 self.tr("gRPC Compiler"), exe, '--version', 'libprotoc', -1,
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
219 exeModule=['-m', 'grpc_tools.protoc'])
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220
7635
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7451
diff changeset
221 # 7. do the spell checking entry
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
222 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223 import enchant
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
225 text = os.path.dirname(enchant.__file__)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226 except AttributeError:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227 text = "enchant"
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
228 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
229 version = enchant.__version__
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
230 except AttributeError:
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
231 version = self.tr("(unknown)")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
232 except (ImportError, AttributeError, OSError):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233 text = "enchant"
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 version = ""
3010
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2737
diff changeset
235 self.__createEntry(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
236 self.tr("Spell Checker - PyEnchant"), text, version)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
237
7635
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7451
diff changeset
238 # 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
239 try:
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
240 import pygments
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
241 try:
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
242 text = os.path.dirname(pygments.__file__)
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
243 except AttributeError:
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
244 text = "pygments"
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
245 try:
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
246 version = pygments.__version__
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
247 except AttributeError:
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
248 version = self.tr("(unknown)")
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
249 except (ImportError, AttributeError, OSError):
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
250 text = "pygments"
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 version = ""
3010
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2737
diff changeset
252 self.__createEntry(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
253 self.tr("Source Highlighter - Pygments"), text, version)
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
254
7635
0cdead130a81 Removed support for Python2 and removed support for Qt4 (PyQt4 and pyside).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7451
diff changeset
255 # 9. do the MicroPython related entries
7326
eab46b63ed91 ProgramsDialog: added a section for the MicroPython tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7263
diff changeset
256 exe = Preferences.getMicroPython("MpyCrossCompiler")
eab46b63ed91 ProgramsDialog: added a section for the MicroPython tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7263
diff changeset
257 if not exe:
eab46b63ed91 ProgramsDialog: added a section for the MicroPython tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7263
diff changeset
258 exe = "mpy-cross"
eab46b63ed91 ProgramsDialog: added a section for the MicroPython tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7263
diff changeset
259 self.__createProgramEntry(
eab46b63ed91 ProgramsDialog: added a section for the MicroPython tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7263
diff changeset
260 self.tr("MicroPython - MPY Cross Compiler"), exe, '--version',
eab46b63ed91 ProgramsDialog: added a section for the MicroPython tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7263
diff changeset
261 'MicroPython', 1)
eab46b63ed91 ProgramsDialog: added a section for the MicroPython tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7263
diff changeset
262 self.__createProgramEntry(
eab46b63ed91 ProgramsDialog: added a section for the MicroPython tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7263
diff changeset
263 self.tr("MicroPython - ESP Tool"), sys.executable, 'version',
eab46b63ed91 ProgramsDialog: added a section for the MicroPython tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7263
diff changeset
264 'esptool', -1, exeModule=['-m', 'esptool'])
eab46b63ed91 ProgramsDialog: added a section for the MicroPython tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7263
diff changeset
265 exe = Preferences.getMicroPython("DfuUtilPath")
eab46b63ed91 ProgramsDialog: added a section for the MicroPython tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7263
diff changeset
266 if not exe:
eab46b63ed91 ProgramsDialog: added a section for the MicroPython tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7263
diff changeset
267 exe = "dfu-util"
eab46b63ed91 ProgramsDialog: added a section for the MicroPython tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7263
diff changeset
268 self.__createProgramEntry(
eab46b63ed91 ProgramsDialog: added a section for the MicroPython tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7263
diff changeset
269 self.tr("MicroPython - PyBoard Flasher"), exe, '--version',
eab46b63ed91 ProgramsDialog: added a section for the MicroPython tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7263
diff changeset
270 'dfu-util', -1)
eab46b63ed91 ProgramsDialog: added a section for the MicroPython tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7263
diff changeset
271
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
272 # 10. do the plugin related programs
53
c3eb7cc1ff8b Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
273 pm = e5App().getObject("PluginManager")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
274 for info in pm.getPluginExeDisplayData():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
275 if info["programEntry"]:
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
276 if "exeModule" not in info:
411f7ba577d5 Continued to add support for Google protobuf protocol files. Added support for gRPC.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5968
diff changeset
277 info["exeModule"] = None
6068
97a787b53663 Extended the programs dialog to allow plug-ins to specify the line containing version information with a regular expression (key 'versionRe').
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
278 if "versionRe" not in info:
97a787b53663 Extended the programs dialog to allow plug-ins to specify the line containing version information with a regular expression (key 'versionRe').
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
279 info["versionRe"] = None
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
280 self.__createProgramEntry(
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
281 info["header"],
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
282 info["exe"],
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
283 versionCommand=info["versionCommand"],
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
284 versionStartsWith=info["versionStartsWith"],
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
285 versionPosition=info["versionPosition"],
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
286 version=info["version"],
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
287 versionCleanup=info["versionCleanup"],
6068
97a787b53663 Extended the programs dialog to allow plug-ins to specify the line containing version information with a regular expression (key 'versionRe').
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6048
diff changeset
288 versionRe=info["versionRe"],
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
289 exeModule=info["exeModule"],
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
290 )
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
291 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
292 self.__createEntry(
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
293 info["header"],
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
294 info["text"],
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
295 info["version"]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
296 )
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
297
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
298 self.programsList.sortByColumn(0, Qt.AscendingOrder)
7426
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
299 self.on_showComboBox_currentIndexChanged(
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
300 self.showComboBox.currentIndex())
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
301 QApplication.restoreOverrideCursor()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
302
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
303 self.__hasSearched = True
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
304
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
305 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
306 versionCommand="", versionStartsWith="",
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
307 versionPosition=0, 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
308 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
309 exeModule=None):
0
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 to generate a program entry.
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 @param description descriptive text (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
314 @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
315 @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
316 (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
317 @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
318 (string)
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2737
diff changeset
319 @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
320 (integer)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
321 @keyparam version version string to show (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
322 @keyparam versionCleanup tuple of two integers giving string positions
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
323 start and stop for the version string (tuple of integers)
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
324 @keyparam versionRe regexp to determine the line identifying version
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
325 info (string). Takes precedence over versionStartsWith.
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
326 @keyparam exeModule list of command line parameters to execute a 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
327 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
328 (list of str)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
329 @return version string of detected or given version (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
330 """
3010
befeff46ec0f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2737
diff changeset
331 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
332 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
333 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
334 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
335 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
336 itm = QTreeWidgetItem(self.programsList, [description])
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
337 font = itm.font(0)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
338 font.setBold(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
339 itm.setFont(0, font)
6665
adb59475e671 Some changes to the Qt Help tools detection.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
340 rememberedExe = exe
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
341 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
342 itm.setText(1, self.tr("(not configured)"))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
343 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
344 if os.path.isabs(exe):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
345 if not Utilities.isExecutable(exe):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
346 exe = ""
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
347 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
348 exe = Utilities.getExecutablePath(exe)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
349 if exe:
7426
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
350 available = True
7263
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
351 if (
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
352 versionCommand and
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
353 (versionStartsWith != "" or
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
354 (versionRe is not None and versionRe != "")) and
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
355 versionPosition
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
356 ):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
357 proc = QProcess()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
358 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
359 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
360 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
361 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
362 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
363 proc.start(exe, args)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
364 finished = proc.waitForFinished(10000)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
365 if finished:
3038
7fe9a53280bd Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
366 output = str(proc.readAllStandardOutput(),
7fe9a53280bd Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
367 Preferences.getSystem("IOEncoding"),
7fe9a53280bd Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
368 'replace')
7263
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
369 if (
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
370 exeModule and
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
371 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
372 ("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
373 "ModuleNotFoundError:" in output or
7263
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
374 proc.exitCode() != 0)
c1af2e327675 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
375 ):
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
376 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
377 available = False
3194
c95193671ab5 Little correction to the programs dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
378 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
379 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
380 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
381 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
382 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
383 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
384 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
385 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
386 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
387 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
388 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
389 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
390 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
391 ]
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
392 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
393 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
394 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
395 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
396 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
397 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
398 available = False
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
399 else:
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
400 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
401 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
402 if exeModule:
7426
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
403 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
404 "{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
405 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
406 else:
7426
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
407 citm = QTreeWidgetItem(itm, [exe, version])
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
408 citm.setData(0, self.ToolAvailableRole, available)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
409 itm.setExpanded(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
410 else:
6665
adb59475e671 Some changes to the Qt Help tools detection.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
411 if itm.childCount() == 0:
adb59475e671 Some changes to the Qt Help tools detection.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
412 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
413 else:
7426
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
414 citm = QTreeWidgetItem(
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
415 itm, [rememberedExe, self.tr("(not found)")])
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
416 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
417 itm.setExpanded(True)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
418 QApplication.processEvents()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
419 self.programsList.header().resizeSections(QHeaderView.ResizeToContents)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
420 self.programsList.header().setStretchLastSection(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
421 return version
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
422
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
423 def __createEntry(self, description, entryText, entryVersion):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
424 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
425 Private method to generate a program entry.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
426
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
427 @param description descriptive text (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
428 @param entryText text to show (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
429 @param entryVersion version string to show (string).
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
430 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
431 itm = QTreeWidgetItem(self.programsList, [description])
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
432 font = itm.font(0)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
433 font.setBold(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
434 itm.setFont(0, font)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
435
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
436 if len(entryVersion):
7426
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
437 citm = QTreeWidgetItem(itm, [entryText, entryVersion])
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
438 itm.setExpanded(True)
7426
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
439 citm.setData(0, self.ToolAvailableRole,
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
440 not entryVersion.startswith("("))
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
441 # assume version starting with '(' is an unavailability
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
442 else:
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
443 itm.setText(1, self.tr("(not found)"))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
444 QApplication.processEvents()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
445 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
446 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
447
7426
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
448 @pyqtSlot(int)
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
449 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
450 """
7426
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
451 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
452
7426
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
453 @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
454 @type int
7425
bd0eff406c6b ProgramsDialog: implemented interims filter solution to hide unavailable tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
455 """
7426
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
456 if index == 0:
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
457 # All Supported Tools
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
458 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
459 topItem = self.programsList.topLevelItem(topIndex)
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
460 for childIndex in range(topItem.childCount()):
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
461 topItem.child(childIndex).setHidden(False)
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
462 topItem.setHidden(False)
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
463 else:
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
464 # 1 = Available Tools Only
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
465 # 2 = Unavailable Tools Only
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
466 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
467 topItem = self.programsList.topLevelItem(topIndex)
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
468 if topItem.childCount() == 0:
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
469 topItem.setHidden(index == 1)
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
470 else:
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
471 availabilityList = []
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
472 for childIndex in range(topItem.childCount()):
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
473 childItem = topItem.child(childIndex)
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
474 available = childItem.data(0, self.ToolAvailableRole)
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
475 if index == 1:
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
476 childItem.setHidden(not available)
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
477 else:
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
478 childItem.setHidden(available)
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
479 availabilityList.append(available)
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
480 if index == 1:
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
481 topItem.setHidden(not any(availabilityList))
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
482 else:
dc171b1d8261 ProgramsDialog: added filter capability to the dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7425
diff changeset
483 topItem.setHidden(all(availabilityList))

eric ide

mercurial