346 finished = proc.waitForFinished(10000) |
346 finished = proc.waitForFinished(10000) |
347 if finished: |
347 if finished: |
348 output = str(proc.readAllStandardOutput(), |
348 output = str(proc.readAllStandardOutput(), |
349 Preferences.getSystem("IOEncoding"), |
349 Preferences.getSystem("IOEncoding"), |
350 'replace') |
350 'replace') |
351 if versionRe is None: |
351 if exeModule and exeModule[0] == "-m" and \ |
352 versionRe = "^{0}".format( |
352 "ImportError:" in output: |
353 re.escape(versionStartsWith)) |
353 version = self.tr("(module not found)") |
354 versionRe = re.compile(versionRe, re.UNICODE) |
|
355 for line in output.splitlines(): |
|
356 if versionRe.search(line): |
|
357 try: |
|
358 version = line.split()[versionPosition] |
|
359 if versionCleanup: |
|
360 version = version[ |
|
361 versionCleanup[0]:versionCleanup[1] |
|
362 ] |
|
363 break |
|
364 except IndexError: |
|
365 version = self.tr("(unknown)") |
|
366 else: |
354 else: |
367 version = self.tr("(unknown)") |
355 if versionRe is None: |
|
356 versionRe = "^{0}".format( |
|
357 re.escape(versionStartsWith)) |
|
358 versionRe = re.compile(versionRe, re.UNICODE) |
|
359 for line in output.splitlines(): |
|
360 if versionRe.search(line): |
|
361 try: |
|
362 version = line.split()[versionPosition] |
|
363 if versionCleanup: |
|
364 version = version[ |
|
365 versionCleanup[0]: |
|
366 versionCleanup[1] |
|
367 ] |
|
368 break |
|
369 except IndexError: |
|
370 version = self.tr("(unknown)") |
|
371 else: |
|
372 version = self.tr("(unknown)") |
368 else: |
373 else: |
369 version = self.tr("(not executable)") |
374 version = self.tr("(not executable)") |
370 if exeModule: |
375 if exeModule: |
371 QTreeWidgetItem(itm, [ |
376 QTreeWidgetItem(itm, [ |
372 "{0} {1}".format(exe, " ".join(exeModule)), |
377 "{0} {1}".format(exe, " ".join(exeModule)), |