Preferences/ProgramsDialog.py

branch
Py2 comp.
changeset 3057
10516539f238
parent 2791
a9577f248f04
parent 3010
befeff46ec0f
child 3058
0a02c433f52d
equal deleted inserted replaced
3056:9986ec0e559a 3057:10516539f238
42 self.setupUi(self) 42 self.setupUi(self)
43 self.setObjectName("ProgramsDialog") 43 self.setObjectName("ProgramsDialog")
44 44
45 self.__hasSearched = False 45 self.__hasSearched = False
46 46
47 self.programsList.headerItem().setText(self.programsList.columnCount(), "") 47 self.programsList.headerItem().setText(
48 48 self.programsList.columnCount(), "")
49 self.searchButton = \ 49
50 self.buttonBox.addButton(self.trUtf8("Search"), QDialogButtonBox.ActionRole) 50 self.searchButton = self.buttonBox.addButton(
51 self.searchButton.setToolTip(self.trUtf8("Press to search for programs")) 51 self.trUtf8("Search"), QDialogButtonBox.ActionRole)
52 self.searchButton.setToolTip(
53 self.trUtf8("Press to search for programs"))
52 54
53 def show(self): 55 def show(self):
54 """ 56 """
55 Public slot to show the dialog. 57 Public slot to show the dialog.
56 """ 58 """
84 # 1a. Translation Converter 86 # 1a. Translation Converter
85 exe = Utilities.isWindowsPlatform() and \ 87 exe = Utilities.isWindowsPlatform() and \
86 "{0}.exe".format(Utilities.generateQtToolName("lrelease")) or \ 88 "{0}.exe".format(Utilities.generateQtToolName("lrelease")) or \
87 Utilities.generateQtToolName("lrelease") 89 Utilities.generateQtToolName("lrelease")
88 exe = os.path.join(Utilities.getQtBinariesPath(), exe) 90 exe = os.path.join(Utilities.getQtBinariesPath(), exe)
89 version = self.__createProgramEntry(self.trUtf8("Translation Converter (Qt)"), 91 version = self.__createProgramEntry(
90 exe, '-version', 'lrelease', -1) 92 self.trUtf8("Translation Converter (Qt)"), exe, '-version',
93 'lrelease', -1)
91 # 1b. Qt Designer 94 # 1b. Qt Designer
92 if Utilities.isWindowsPlatform(): 95 if Utilities.isWindowsPlatform():
93 exe = os.path.join(Utilities.getQtBinariesPath(), 96 exe = os.path.join(Utilities.getQtBinariesPath(),
94 "{0}.exe".format(Utilities.generateQtToolName("designer"))) 97 "{0}.exe".format(Utilities.generateQtToolName("designer")))
95 elif Utilities.isMacPlatform(): 98 elif Utilities.isMacPlatform():
96 exe = Utilities.getQtMacBundle("designer") 99 exe = Utilities.getQtMacBundle("designer")
97 else: 100 else:
98 exe = os.path.join(Utilities.getQtBinariesPath(), 101 exe = os.path.join(Utilities.getQtBinariesPath(),
99 Utilities.generateQtToolName("designer")) 102 Utilities.generateQtToolName("designer"))
100 self.__createProgramEntry(self.trUtf8("Qt Designer"), exe, version=version) 103 self.__createProgramEntry(
104 self.trUtf8("Qt Designer"), exe, version=version)
101 # 1c. Qt Linguist 105 # 1c. Qt Linguist
102 if Utilities.isWindowsPlatform(): 106 if Utilities.isWindowsPlatform():
103 exe = os.path.join(Utilities.getQtBinariesPath(), 107 exe = os.path.join(Utilities.getQtBinariesPath(),
104 "{0}.exe".format(Utilities.generateQtToolName("linguist"))) 108 "{0}.exe".format(Utilities.generateQtToolName("linguist")))
105 elif Utilities.isMacPlatform(): 109 elif Utilities.isMacPlatform():
106 exe = Utilities.getQtMacBundle("linguist") 110 exe = Utilities.getQtMacBundle("linguist")
107 else: 111 else:
108 exe = os.path.join(Utilities.getQtBinariesPath(), 112 exe = os.path.join(Utilities.getQtBinariesPath(),
109 Utilities.generateQtToolName("linguist")) 113 Utilities.generateQtToolName("linguist"))
110 self.__createProgramEntry(self.trUtf8("Qt Linguist"), exe, version=version) 114 self.__createProgramEntry(
115 self.trUtf8("Qt Linguist"), exe, version=version)
111 # 1d. Qt Assistant 116 # 1d. Qt Assistant
112 if Utilities.isWindowsPlatform(): 117 if Utilities.isWindowsPlatform():
113 exe = os.path.join(Utilities.getQtBinariesPath(), 118 exe = os.path.join(Utilities.getQtBinariesPath(),
114 "{0}.exe".format(Utilities.generateQtToolName("assistant"))) 119 "{0}.exe".format(Utilities.generateQtToolName("assistant")))
115 elif Utilities.isMacPlatform(): 120 elif Utilities.isMacPlatform():
116 exe = Utilities.getQtMacBundle("assistant") 121 exe = Utilities.getQtMacBundle("assistant")
117 else: 122 else:
118 exe = os.path.join(Utilities.getQtBinariesPath(), 123 exe = os.path.join(Utilities.getQtBinariesPath(),
119 Utilities.generateQtToolName("assistant")) 124 Utilities.generateQtToolName("assistant"))
120 self.__createProgramEntry(self.trUtf8("Qt Assistant"), exe, version=version) 125 self.__createProgramEntry(
126 self.trUtf8("Qt Assistant"), exe, version=version)
121 127
122 # 2. do the PyQt programs 128 # 2. do the PyQt programs
123 # 2a. Translation Extractor PyQt4 129 # 2a. Translation Extractor PyQt4
124 self.__createProgramEntry(self.trUtf8("Translation Extractor (Python, PyQt4)"), 130 self.__createProgramEntry(
131 self.trUtf8("Translation Extractor (Python, PyQt4)"),
125 Utilities.isWindowsPlatform() and "pylupdate4.exe" or "pylupdate4", 132 Utilities.isWindowsPlatform() and "pylupdate4.exe" or "pylupdate4",
126 '-version', 'pylupdate', -1) 133 '-version', 'pylupdate', -1)
127 # 2b. Forms Compiler PyQt4 134 # 2b. Forms Compiler PyQt4
128 self.__createProgramEntry(self.trUtf8("Forms Compiler (Python, PyQt4)"), 135 self.__createProgramEntry(
136 self.trUtf8("Forms Compiler (Python, PyQt4)"),
129 Utilities.isWindowsPlatform() and "pyuic4.bat" or "pyuic4", 137 Utilities.isWindowsPlatform() and "pyuic4.bat" or "pyuic4",
130 '--version', 'Python User', 4) 138 '--version', 'Python User', 4)
131 # 2c. Resource Compiler PyQt4 139 # 2c. Resource Compiler PyQt4
132 self.__createProgramEntry(self.trUtf8("Resource Compiler (Python, PyQt4)"), 140 self.__createProgramEntry(
141 self.trUtf8("Resource Compiler (Python, PyQt4)"),
133 Utilities.isWindowsPlatform() and "pyrcc4.exe" or "pyrcc4", 142 Utilities.isWindowsPlatform() and "pyrcc4.exe" or "pyrcc4",
134 '-version', 'Resource Compiler', -1) 143 '-version', 'Resource Compiler', -1)
135 # 2d. Translation Extractor PyQt5 144 # 2d. Translation Extractor PyQt5
136 self.__createProgramEntry(self.trUtf8("Translation Extractor (Python, PyQt5)"), 145 self.__createProgramEntry(
146 self.trUtf8("Translation Extractor (Python, PyQt5)"),
137 Utilities.isWindowsPlatform() and "pylupdate5.exe" or "pylupdate5", 147 Utilities.isWindowsPlatform() and "pylupdate5.exe" or "pylupdate5",
138 '-version', 'pylupdate', -1) 148 '-version', 'pylupdate', -1)
139 # 2e. Forms Compiler PyQt4 149 # 2e. Forms Compiler PyQt4
140 self.__createProgramEntry(self.trUtf8("Forms Compiler (Python, PyQt5)"), 150 self.__createProgramEntry(
151 self.trUtf8("Forms Compiler (Python, PyQt5)"),
141 Utilities.isWindowsPlatform() and "pyuic5.bat" or "pyuic5", 152 Utilities.isWindowsPlatform() and "pyuic5.bat" or "pyuic5",
142 '--version', 'Python User', 4) 153 '--version', 'Python User', 4)
143 # 2f. Resource Compiler PyQt4 154 # 2f. Resource Compiler PyQt4
144 self.__createProgramEntry(self.trUtf8("Resource Compiler (Python, PyQt5)"), 155 self.__createProgramEntry(
156 self.trUtf8("Resource Compiler (Python, PyQt5)"),
145 Utilities.isWindowsPlatform() and "pyrcc5.exe" or "pyrcc5", 157 Utilities.isWindowsPlatform() and "pyrcc5.exe" or "pyrcc5",
146 '-version', 'Resource Compiler', -1) 158 '-version', 'Resource Compiler', -1)
147 159
148 # 3. do the PySide programs 160 # 3. do the PySide programs
149 # 3a. Translation Extractor PySide 161 # 3a. Translation Extractor PySide
150 self.__createProgramEntry(self.trUtf8("Translation Extractor (Python, PySide)"), 162 self.__createProgramEntry(
163 self.trUtf8("Translation Extractor (Python, PySide)"),
151 Utilities.generatePySideToolPath("pyside-lupdate"), 164 Utilities.generatePySideToolPath("pyside-lupdate"),
152 '-version', '', -1, versionRe='lupdate') 165 '-version', '', -1, versionRe='lupdate')
153 # 3b. Forms Compiler PySide 166 # 3b. Forms Compiler PySide
154 self.__createProgramEntry(self.trUtf8("Forms Compiler (Python, PySide)"), 167 self.__createProgramEntry(
168 self.trUtf8("Forms Compiler (Python, PySide)"),
155 Utilities.generatePySideToolPath("pyside-uic"), 169 Utilities.generatePySideToolPath("pyside-uic"),
156 '--version', 'PySide User', 5, versionCleanup=(0, -1)) 170 '--version', 'PySide User', 5, versionCleanup=(0, -1))
157 # 3.c Resource Compiler PySide 171 # 3.c Resource Compiler PySide
158 self.__createProgramEntry(self.trUtf8("Resource Compiler (Python, PySide)"), 172 self.__createProgramEntry(
173 self.trUtf8("Resource Compiler (Python, PySide)"),
159 Utilities.generatePySideToolPath("pyside-rcc"), 174 Utilities.generatePySideToolPath("pyside-rcc"),
160 '-version', 'Resource Compiler', -1) 175 '-version', 'Resource Compiler', -1)
161 176
162 # 4. do the Ruby programs 177 # 4. do the Ruby programs
163 # 4a. Forms Compiler for Qt4 178 # 4a. Forms Compiler for Qt4
189 except AttributeError: 204 except AttributeError:
190 version = self.trUtf8("(unknown)") 205 version = self.trUtf8("(unknown)")
191 except (ImportError, AttributeError, OSError): 206 except (ImportError, AttributeError, OSError):
192 text = "enchant" 207 text = "enchant"
193 version = "" 208 version = ""
194 self.__createEntry(self.trUtf8("Spell Checker - PyEnchant"), text, version) 209 self.__createEntry(
210 self.trUtf8("Spell Checker - PyEnchant"), text, version)
195 211
196 # 7. do the pygments entry 212 # 7. do the pygments entry
197 try: 213 try:
198 import pygments 214 import pygments
199 try: 215 try:
205 except AttributeError: 221 except AttributeError:
206 version = self.trUtf8("(unknown)") 222 version = self.trUtf8("(unknown)")
207 except (ImportError, AttributeError, OSError): 223 except (ImportError, AttributeError, OSError):
208 text = "pygments" 224 text = "pygments"
209 version = "" 225 version = ""
210 self.__createEntry(self.trUtf8("Source Highlighter - Pygments"), text, version) 226 self.__createEntry(
227 self.trUtf8("Source Highlighter - Pygments"), text, version)
211 228
212 # do the plugin related programs 229 # do the plugin related programs
213 pm = e5App().getObject("PluginManager") 230 pm = e5App().getObject("PluginManager")
214 for info in pm.getPluginExeDisplayData(): 231 for info in pm.getPluginExeDisplayData():
215 if info["programEntry"]: 232 if info["programEntry"]:
241 """ 258 """
242 Private method to generate a program entry. 259 Private method to generate a program entry.
243 260
244 @param description descriptive text (string) 261 @param description descriptive text (string)
245 @param exe name of the executable program (string) 262 @param exe name of the executable program (string)
246 @param versionCommand command line switch to get the version info (string) 263 @param versionCommand command line switch to get the version info
247 if this is empty, the given version will be shown. 264 (string) if this is empty, the given version will be shown.
248 @param versionStartsWith start of line identifying version info (string) 265 @param versionStartsWith start of line identifying version info
249 @param versionPosition index of part containing the version info (integer) 266 (string)
267 @param versionPosition index of part containing the version info
268 (integer)
250 @keyparam version version string to show (string) 269 @keyparam version version string to show (string)
251 @keyparam versionCleanup tuple of two integers giving string positions 270 @keyparam versionCleanup tuple of two integers giving string positions
252 start and stop for the version string (tuple of integers) 271 start and stop for the version string (tuple of integers)
253 @keyparam versionRe regexp to determine the line identifying version 272 @keyparam versionRe regexp to determine the line identifying version
254 info (string). Takes precedence over versionStartsWith. 273 info (string). Takes precedence over versionStartsWith.
255 @return version string of detected or given version (string) 274 @return version string of detected or given version (string)
256 """ 275 """
257 itmList = self.programsList.findItems(description, Qt.MatchCaseSensitive) 276 itmList = self.programsList.findItems(
277 description, Qt.MatchCaseSensitive)
258 if itmList: 278 if itmList:
259 itm = itmList[0] 279 itm = itmList[0]
260 else: 280 else:
261 itm = QTreeWidgetItem(self.programsList, [description]) 281 itm = QTreeWidgetItem(self.programsList, [description])
262 font = itm.font(0) 282 font = itm.font(0)
283 output = \ 303 output = \
284 str(proc.readAllStandardOutput(), 304 str(proc.readAllStandardOutput(),
285 Preferences.getSystem("IOEncoding"), 305 Preferences.getSystem("IOEncoding"),
286 'replace') 306 'replace')
287 if versionRe is None: 307 if versionRe is None:
288 versionRe = "^{0}".format(re.escape(versionStartsWith)) 308 versionRe = "^{0}".format(
309 re.escape(versionStartsWith))
289 versionRe = re.compile(versionRe, re.UNICODE) 310 versionRe = re.compile(versionRe, re.UNICODE)
290 for line in output.splitlines(): 311 for line in output.splitlines():
291 if versionRe.search(line): 312 if versionRe.search(line):
292 try: 313 try:
293 version = line.split()[versionPosition] 314 version = line.split()[versionPosition]
294 if versionCleanup: 315 if versionCleanup:
295 version = \ 316 version = version[
296 version[versionCleanup[0]:versionCleanup[1]] 317 versionCleanup[0]:versionCleanup[1]
318 ]
297 break 319 break
298 except IndexError: 320 except IndexError:
299 version = self.trUtf8("(unknown)") 321 version = self.trUtf8("(unknown)")
300 else: 322 else:
301 version = self.trUtf8("(not executable)") 323 version = self.trUtf8("(not executable)")

eric ide

mercurial