Preferences/ProgramsDialog.py

changeset 157
c8d5916b9934
parent 97
c4086afea02b
child 308
f25c7e8802b8
equal deleted inserted replaced
156:478787b5607e 157:c8d5916b9934
224 if not Utilities.isExecutable(exe): 224 if not Utilities.isExecutable(exe):
225 exe = "" 225 exe = ""
226 else: 226 else:
227 exe = Utilities.getExecutablePath(exe) 227 exe = Utilities.getExecutablePath(exe)
228 if exe: 228 if exe:
229 if versionCommand and versionStartsWith and versionPosition: 229 if versionCommand and \
230 (versionStartsWith != "" or \
231 (versionRe is not None and versionRe != "")) and \
232 versionPosition:
230 proc = QProcess() 233 proc = QProcess()
231 proc.setProcessChannelMode(QProcess.MergedChannels) 234 proc.setProcessChannelMode(QProcess.MergedChannels)
232 proc.start(exe, [versionCommand]) 235 proc.start(exe, [versionCommand])
233 finished = proc.waitForFinished(10000) 236 finished = proc.waitForFinished(10000)
234 if finished: 237 if finished:
239 if versionRe is None: 242 if versionRe is None:
240 versionRe = "^%s" % re.escape(versionStartsWith) 243 versionRe = "^%s" % re.escape(versionStartsWith)
241 versionRe = re.compile(versionRe, re.UNICODE) 244 versionRe = re.compile(versionRe, re.UNICODE)
242 for line in output.splitlines(): 245 for line in output.splitlines():
243 if versionRe.search(line): 246 if versionRe.search(line):
244 version = line.split()[versionPosition] 247 try:
245 if versionCleanup: 248 version = line.split()[versionPosition]
246 version = version[versionCleanup[0]:versionCleanup[1]] 249 if versionCleanup:
247 break 250 version = \
251 version[versionCleanup[0]:versionCleanup[1]]
252 break
253 except IndexError:
254 version = self.trUtf8("(unknown)")
248 else: 255 else:
249 version = self.trUtf8("(not executable)") 256 version = self.trUtf8("(not executable)")
250 QTreeWidgetItem(itm, [exe, version]) 257 QTreeWidgetItem(itm, [exe, version])
251 itm.setExpanded(True) 258 itm.setExpanded(True)
252 else: 259 else:

eric ide

mercurial