[PyQt] Patch: Make build timeout adjustable
Kyle Altendorf
sda at fstab.net
Sat Feb 13 17:34:50 GMT 2016
I'm not sure about the etiquette for patch submission but my changes are
available inline below as well as in the attached file.
When using the pyqtdeploy GUI I often end up with timeouts in the make
stage due to the default 30 second timeout of
QProcess::waitForFinished(). This patch adds a timeout spinbox below
the resource files spinbox to allow the user to select a custom timeout
value. I don't know if this should be saved to the .pdy file or not but
I did not implement that yet.
Is this of interest to anybody else? Phil?
Cheers,
-kyle
diff -r ccfb10c212ea pyqtdeploy/builder/builder.py
--- a/pyqtdeploy/builder/builder.py Sun Feb 07 17:35:19 2016 +0000
+++ b/pyqtdeploy/builder/builder.py Sat Feb 13 12:26:46 2016 -0500
@@ -1252,7 +1252,7 @@
self.run(argv, "Unable to freeze files")
- def run(self, argv, error_message, in_build_dir=False):
+ def run(self, argv, error_message, in_build_dir=False,
timeout=30000):
""" Execute a command and capture the output. """
if in_build_dir:
@@ -1284,7 +1284,7 @@
lambda:
stderr_output.append(process.readAllStandardError()))
process.start(argv[0], argv[1:])
- finished = process.waitForFinished()
+ finished = process.waitForFinished(timeout)
if saved_cwd is not None:
os.chdir(saved_cwd)
diff -r ccfb10c212ea pyqtdeploy/gui/build_page.py
--- a/pyqtdeploy/gui/build_page.py Sun Feb 07 17:35:19 2016 +0000
+++ b/pyqtdeploy/gui/build_page.py Sat Feb 13 12:26:46 2016 -0500
@@ -106,6 +106,12 @@
"memory.",
minimum=1)
options_layout.addWidget(self._resources_edit, 2, 1)
+ options_layout.addWidget(QLabel("Timeout"), 3, 0)
+ self._timeout_edit = QSpinBox(
+ whatsThis="The number of seconds to wait for processes
to time out.",
+ minimum=10)
+ self._timeout_edit.setValue(30)
+ options_layout.addWidget(self._timeout_edit, 3, 1)
options.setLayout(options_layout)
layout.addWidget(options, 2, 1)
@@ -188,7 +194,8 @@
logger.status_message("Running qmake...")
try:
- builder.run([qmake], "qmake failed.",
in_build_dir=True)
+ builder.run([qmake], "qmake failed.",
in_build_dir=True,
+ timeout=self._timeout_edit.value() * 1000)
except UserException as e:
logger.user_exception(e)
handle_user_exception(e, self.label, self)
@@ -203,7 +210,8 @@
try:
builder.run([make], "{0} failed.".format(make),
- in_build_dir=True)
+ in_build_dir=True,
+ timeout=self._timeout_edit.value() * 1000)
except UserException as e:
logger.user_exception(e)
handle_user_exception(e, self.label, self)
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: adjustable_timeout.patch
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20160213/e5779285/attachment.ksh>
More information about the PyQt
mailing list