Preferences/ProgramsDialog.py

Mon, 24 Jun 2013 19:12:10 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 24 Jun 2013 19:12:10 +0200
changeset 2737
dbe5497851fa
parent 2615
bdc9b4659826
child 2791
a9577f248f04
child 3010
befeff46ec0f
permissions
-rw-r--r--

Started implementation of support for PyQt5 projects.

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
2302
f29e9405c851 Updated copyright for 2013.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2297
diff changeset
3 # Copyright (c) 2006 - 2013 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
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12
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
13 from PyQt4.QtCore import pyqtSlot, Qt, QProcess
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 from PyQt4.QtGui import QApplication, QTreeWidgetItem, QHeaderView, QCursor, \
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 QDialog, QDialogButtonBox
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
55
b5c84934de9c Renamed E4Gui to E5Gui.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 53
diff changeset
17 from E5Gui.E5Application import e5App
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
12
1d8dd9706f46 First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6
diff changeset
19 from .Ui_ProgramsDialog import Ui_ProgramsDialog
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 import Preferences
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 import Utilities
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23
394
da5696492639 Changed algorithm to detect eric tools.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 308
diff changeset
24
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 class ProgramsDialog(QDialog, Ui_ProgramsDialog):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 Class implementing the Programs page.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 """
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
29 def __init__(self, parent=None):
0
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 Constructor
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 @param parent The parent widget of this dialog. (QWidget)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 """
1131
7781e396c903 Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
35 super().__init__(parent)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 self.setupUi(self)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 self.setObjectName("ProgramsDialog")
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 self.__hasSearched = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 self.programsList.headerItem().setText(self.programsList.columnCount(), "")
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 self.searchButton = \
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 self.buttonBox.addButton(self.trUtf8("Search"), QDialogButtonBox.ActionRole)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 self.searchButton.setToolTip(self.trUtf8("Press to search for programs"))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 def show(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 Public slot to show the dialog.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 QDialog.show(self)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 if not self.__hasSearched:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 self.on_programsSearchButton_clicked()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 def on_buttonBox_clicked(self, button):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 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
58
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 @param button button that was clicked (QAbstractButton)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 if button == self.searchButton:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 self.on_programsSearchButton_clicked()
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 @pyqtSlot()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 def on_programsSearchButton_clicked(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 Private slot to search for all supported/required programs.
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 QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 QApplication.processEvents()
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 self.programsList.clear()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 header = self.programsList.header()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 header.setSortIndicator(0, Qt.AscendingOrder)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 header.setSortIndicatorShown(False)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76
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
77 # 1. do the Qt4/Qt5 programs
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 # 1a. Translation Converter
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 exe = Utilities.isWindowsPlatform() and \
426
161992758137 Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 394
diff changeset
80 "{0}.exe".format(Utilities.generateQtToolName("lrelease")) or \
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 Utilities.generateQtToolName("lrelease")
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
82 exe = os.path.join(Utilities.getQtBinariesPath(), exe)
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
83 version = self.__createProgramEntry(self.trUtf8("Translation Converter (Qt)"),
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 exe, '-version', '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
85 # 1b. Qt Designer
1368
4489ee4feb59 Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1173
diff changeset
86 if Utilities.isWindowsPlatform():
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
87 exe = os.path.join(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
88 "{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
89 elif Utilities.isMacPlatform():
4489ee4feb59 Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1173
diff changeset
90 exe = Utilities.getQtMacBundle("designer")
4489ee4feb59 Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1173
diff changeset
91 else:
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
92 exe = os.path.join(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
93 Utilities.generateQtToolName("designer"))
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
94 self.__createProgramEntry(self.trUtf8("Qt Designer"), exe, version=version)
e8a46f81517c Adjusted some display strings to be independant of the Qt version (Qt4/Qt5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
95 # 1c. Qt Linguist
1368
4489ee4feb59 Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1173
diff changeset
96 if Utilities.isWindowsPlatform():
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
97 exe = os.path.join(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
98 "{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
99 elif Utilities.isMacPlatform():
4489ee4feb59 Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1173
diff changeset
100 exe = Utilities.getQtMacBundle("linguist")
4489ee4feb59 Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1173
diff changeset
101 else:
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
102 exe = os.path.join(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
103 Utilities.generateQtToolName("linguist"))
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
104 self.__createProgramEntry(self.trUtf8("Qt Linguist"), exe, version=version)
e8a46f81517c Adjusted some display strings to be independant of the Qt version (Qt4/Qt5).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
105 # 1d. Qt Assistant
1368
4489ee4feb59 Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1173
diff changeset
106 if Utilities.isWindowsPlatform():
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
107 exe = os.path.join(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
108 "{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
109 elif Utilities.isMacPlatform():
4489ee4feb59 Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1173
diff changeset
110 exe = Utilities.getQtMacBundle("assistant")
4489ee4feb59 Fixed a few Mac OS X related issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1173
diff changeset
111 else:
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
112 exe = os.path.join(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("assistant"))
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
114 self.__createProgramEntry(self.trUtf8("Qt Assistant"), exe, version=version)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 # 2. do the PyQt programs
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 # 2a. Translation Extractor PyQt4
2737
dbe5497851fa Started implementation of support for PyQt5 projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2615
diff changeset
118 self.__createProgramEntry(self.trUtf8("Translation Extractor (Python, PyQt4)"),
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
119 Utilities.isWindowsPlatform() and "pylupdate4.exe" or "pylupdate4",
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 '-version', 'pylupdate', -1)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 # 2b. Forms Compiler PyQt4
2737
dbe5497851fa Started implementation of support for PyQt5 projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2615
diff changeset
122 self.__createProgramEntry(self.trUtf8("Forms Compiler (Python, PyQt4)"),
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
123 Utilities.isWindowsPlatform() and "pyuic4.bat" or "pyuic4",
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 '--version', 'Python User', 4)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 # 2c. Resource Compiler PyQt4
2737
dbe5497851fa Started implementation of support for PyQt5 projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2615
diff changeset
126 self.__createProgramEntry(self.trUtf8("Resource Compiler (Python, PyQt4)"),
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
127 Utilities.isWindowsPlatform() and "pyrcc4.exe" or "pyrcc4",
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 '-version', 'Resource Compiler', -1)
2737
dbe5497851fa Started implementation of support for PyQt5 projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2615
diff changeset
129 # 2d. Translation Extractor PyQt5
dbe5497851fa Started implementation of support for PyQt5 projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2615
diff changeset
130 self.__createProgramEntry(self.trUtf8("Translation Extractor (Python, PyQt5)"),
dbe5497851fa Started implementation of support for PyQt5 projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2615
diff changeset
131 Utilities.isWindowsPlatform() and "pylupdate5.exe" or "pylupdate5",
dbe5497851fa Started implementation of support for PyQt5 projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2615
diff changeset
132 '-version', 'pylupdate', -1)
dbe5497851fa Started implementation of support for PyQt5 projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2615
diff changeset
133 # 2e. Forms Compiler PyQt4
dbe5497851fa Started implementation of support for PyQt5 projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2615
diff changeset
134 self.__createProgramEntry(self.trUtf8("Forms Compiler (Python, PyQt5)"),
dbe5497851fa Started implementation of support for PyQt5 projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2615
diff changeset
135 Utilities.isWindowsPlatform() and "pyuic5.bat" or "pyuic5",
dbe5497851fa Started implementation of support for PyQt5 projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2615
diff changeset
136 '--version', 'Python User', 4)
dbe5497851fa Started implementation of support for PyQt5 projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2615
diff changeset
137 # 2f. Resource Compiler PyQt4
dbe5497851fa Started implementation of support for PyQt5 projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2615
diff changeset
138 self.__createProgramEntry(self.trUtf8("Resource Compiler (Python, PyQt5)"),
dbe5497851fa Started implementation of support for PyQt5 projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2615
diff changeset
139 Utilities.isWindowsPlatform() and "pyrcc5.exe" or "pyrcc5",
dbe5497851fa Started implementation of support for PyQt5 projects.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2615
diff changeset
140 '-version', 'Resource Compiler', -1)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 # 3. do the PySide programs
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 # 3a. Translation Extractor PySide
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
144 self.__createProgramEntry(self.trUtf8("Translation Extractor (Python, PySide)"),
1173
c826cd21e273 Adjustments for PySide on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1140
diff changeset
145 Utilities.generatePySideToolPath("pyside-lupdate"),
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
146 '-version', '', -1, versionRe='lupdate')
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 # 3b. Forms Compiler PySide
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
148 self.__createProgramEntry(self.trUtf8("Forms Compiler (Python, PySide)"),
1173
c826cd21e273 Adjustments for PySide on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1140
diff changeset
149 Utilities.generatePySideToolPath("pyside-uic"),
c826cd21e273 Adjustments for PySide on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1140
diff changeset
150 '--version', 'PySide User', 5, versionCleanup=(0, -1))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 # 3.c Resource Compiler PySide
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
152 self.__createProgramEntry(self.trUtf8("Resource Compiler (Python, PySide)"),
1173
c826cd21e273 Adjustments for PySide on Windows.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1140
diff changeset
153 Utilities.generatePySideToolPath("pyside-rcc"),
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 '-version', 'Resource Compiler', -1)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 # 4. do the Ruby programs
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 # 4a. Forms Compiler for Qt4
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
158 self.__createProgramEntry(self.trUtf8("Forms Compiler (Ruby, Qt4)"),
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
159 Utilities.isWindowsPlatform() and "rbuic4.exe" or "rbuic4",
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 '-version', 'Qt', -1)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 # 4b. Resource Compiler for Qt4
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
162 self.__createProgramEntry(self.trUtf8("Resource Compiler (Ruby, Qt4)"),
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
163 Utilities.isWindowsPlatform() and "rbrcc.exe" or "rbrcc",
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 '-version', 'Ruby Resource Compiler', -1)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165
901
99b4cb6910ad Removed check for some eric tools in the programs dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 896
diff changeset
166 # 5. do the CORBA programs
99b4cb6910ad Removed check for some eric tools in the programs dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 896
diff changeset
167 # 5a. omniORB
6
52e8c820d0dd Removed some superfluous unicode() calls.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
168 exe = Preferences.getCorba("omniidl")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 if Utilities.isWindowsPlatform():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 exe += ".exe"
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 self.__createProgramEntry(self.trUtf8("CORBA IDL Compiler"), exe,
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 '-V', 'omniidl', -1)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173
901
99b4cb6910ad Removed check for some eric tools in the programs dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 896
diff changeset
174 # 6. do the spell checking entry
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 import enchant
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 text = os.path.dirname(enchant.__file__)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 except AttributeError:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 text = "enchant"
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 try:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 version = enchant.__version__
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 except AttributeError:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 version = self.trUtf8("(unknown)")
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 except (ImportError, AttributeError, OSError):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 text = "enchant"
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 version = ""
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 self.__createEntry(self.trUtf8("Spell Checker - PyEnchant"), text, version)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189
901
99b4cb6910ad Removed check for some eric tools in the programs dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 896
diff changeset
190 # 7. 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
191 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
192 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
193 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
194 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
195 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
196 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
197 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
198 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
199 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
200 version = self.trUtf8("(unknown)")
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
201 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
202 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
203 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
204 self.__createEntry(self.trUtf8("Source Highlighter - Pygments"), text, 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
205
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 # do the plugin related programs
53
c3eb7cc1ff8b Renamed e5App to e5App.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
207 pm = e5App().getObject("PluginManager")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 for info in pm.getPluginExeDisplayData():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 if info["programEntry"]:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 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
211 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
212 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
213 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
214 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
215 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
216 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
217 versionCleanup=info["versionCleanup"],
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 )
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220 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
221 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
222 info["text"],
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223 info["version"]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224 )
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
225
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226 self.programsList.sortByColumn(0, Qt.AscendingOrder)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227 QApplication.restoreOverrideCursor()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
228
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
229 self.__hasSearched = True
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
230
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
231 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
232 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
233 versionPosition=0, version="",
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
234 versionCleanup=None, versionRe=None):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
236 Private method to generate a program entry.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
237
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
238 @param description descriptive text (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
239 @param exe name of the executable program (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
240 @param versionCommand command line switch to get the version info (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
241 if this is empty, the given version will be shown.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242 @param versionStartsWith start of line identifying version info (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
243 @param versionPosition index of part containing the version info (integer)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244 @keyparam version version string to show (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
245 @keyparam versionCleanup tuple of two integers giving string positions
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
246 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
247 @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
248 info (string). Takes precedence over versionStartsWith.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
249 @return version string of detected or given version (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
250 """
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
251 itmList = self.programsList.findItems(description, Qt.MatchCaseSensitive)
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
252 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
253 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
254 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
255 itm = QTreeWidgetItem(self.programsList, [description])
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
256 font = itm.font(0)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
257 font.setBold(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
258 itm.setFont(0, font)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
259 if not exe:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
260 itm.setText(1, self.trUtf8("(not configured)"))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
261 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
262 if os.path.isabs(exe):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
263 if not Utilities.isExecutable(exe):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
264 exe = ""
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
265 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
266 exe = Utilities.getExecutablePath(exe)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
267 if exe:
157
c8d5916b9934 Fixed an issue related to the Programs dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
268 if versionCommand and \
c8d5916b9934 Fixed an issue related to the Programs dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
269 (versionStartsWith != "" or \
c8d5916b9934 Fixed an issue related to the Programs dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
270 (versionRe is not None and versionRe != "")) and \
c8d5916b9934 Fixed an issue related to the Programs dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
271 versionPosition:
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
272 proc = QProcess()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
273 proc.setProcessChannelMode(QProcess.MergedChannels)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
274 proc.start(exe, [versionCommand])
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
275 finished = proc.waitForFinished(10000)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
276 if finished:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
277 output = \
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
278 str(proc.readAllStandardOutput(),
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 901
diff changeset
279 Preferences.getSystem("IOEncoding"),
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
280 'replace')
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
281 if versionRe is None:
426
161992758137 Did some more string format conversions.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 394
diff changeset
282 versionRe = "^{0}".format(re.escape(versionStartsWith))
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
283 versionRe = re.compile(versionRe, re.UNICODE)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
284 for line in output.splitlines():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
285 if versionRe.search(line):
157
c8d5916b9934 Fixed an issue related to the Programs dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
286 try:
c8d5916b9934 Fixed an issue related to the Programs dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
287 version = line.split()[versionPosition]
c8d5916b9934 Fixed an issue related to the Programs dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
288 if versionCleanup:
c8d5916b9934 Fixed an issue related to the Programs dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
289 version = \
c8d5916b9934 Fixed an issue related to the Programs dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
290 version[versionCleanup[0]:versionCleanup[1]]
c8d5916b9934 Fixed an issue related to the Programs dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
291 break
c8d5916b9934 Fixed an issue related to the Programs dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
292 except IndexError:
c8d5916b9934 Fixed an issue related to the Programs dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 97
diff changeset
293 version = self.trUtf8("(unknown)")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
294 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
295 version = self.trUtf8("(not executable)")
97
c4086afea02b Finished cleaning up the code supported by py3flakes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
296 QTreeWidgetItem(itm, [exe, version])
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
297 itm.setExpanded(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
298 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
299 itm.setText(1, self.trUtf8("(not found)"))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
300 QApplication.processEvents()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
301 self.programsList.header().resizeSections(QHeaderView.ResizeToContents)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
302 self.programsList.header().setStretchLastSection(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
303 return version
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 __createEntry(self, description, entryText, entryVersion):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
306 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
307 Private method to generate a program entry.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
308
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
309 @param description descriptive text (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
310 @param entryText text to show (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
311 @param entryVersion version string to show (string).
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 itm = QTreeWidgetItem(self.programsList, [description])
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
314 font = itm.font(0)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
315 font.setBold(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
316 itm.setFont(0, font)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
317
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
318 if len(entryVersion):
97
c4086afea02b Finished cleaning up the code supported by py3flakes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 55
diff changeset
319 QTreeWidgetItem(itm, [entryText, entryVersion])
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
320 itm.setExpanded(True)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
321 else:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
322 itm.setText(1, self.trUtf8("(not found)"))
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
323 QApplication.processEvents()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
324 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
325 self.programsList.header().setStretchLastSection(True)

eric ide

mercurial