Merge branch 'master' of ssh://tonks/qutebrowser

This commit is contained in:
Florian Bruhin 2015-02-25 17:27:01 +01:00
commit 891c07f7e3
2 changed files with 13 additions and 7 deletions

View File

@ -341,6 +341,7 @@ class DownloadItem(QObject):
return utils.interpolate_color(
start, stop, self.stats.percentage(), system)
@pyqtSlot()
def cancel(self, remove_data=True):
"""Cancel the download.
@ -363,6 +364,7 @@ class DownloadItem(QObject):
self.finished.emit()
self.data_changed.emit()
@pyqtSlot()
def delete(self):
"""Delete the downloaded file"""
try:
@ -371,12 +373,14 @@ class DownloadItem(QObject):
except OSError:
log.downloads.exception("Failed to remove partial file")
@pyqtSlot()
def retry(self):
"""Retry a failed download."""
self.cancel()
new_reply = self.retry_info.manager.get(self.retry_info.request)
self.do_retry.emit(new_reply)
@pyqtSlot()
def open_file(self):
"""Open the downloaded file."""
assert self.successful

View File

@ -70,21 +70,22 @@ def _missing_str(name, debian=None, arch=None, windows=None, pip=None):
return '<br /><br />'.join(blocks)
def _die(message, exception=True):
def _die(message, exception=None):
"""Display an error message using Qt and quit.
We import the imports here as we want to do other stuff before the imports.
Args:
message: The message to display.
exception: Whether to print an exception with --debug.
exception: The exception object if we're handling an exception.
"""
from PyQt5.QtWidgets import QApplication, QMessageBox
from PyQt5.QtCore import Qt
if '--debug' in sys.argv and exception:
if '--debug' in sys.argv and exception is not None:
print(file=sys.stderr)
traceback.print_exc()
app = QApplication(sys.argv)
message += '<br/><br/><br/><b>Error:</b><br/>{}'.format(exception)
msgbox = QMessageBox(QMessageBox.Critical, "qutebrowser: Fatal error!",
message)
msgbox.setTextFormat(Qt.RichText)
@ -176,7 +177,7 @@ def check_pyqt_core():
"""Check if PyQt core is installed."""
try:
import PyQt5.QtCore # pylint: disable=unused-variable
except ImportError:
except ImportError as e:
text = _missing_str('PyQt5',
debian="apt-get install python3-pyqt5 "
"python3-pyqt5.qtwebkit",
@ -189,6 +190,7 @@ def check_pyqt_core():
text = text.replace('<b>', '')
text = text.replace('</b>', '')
text = text.replace('<br />', '\n')
text += '\n\nError: {}'.format(e)
if tkinter:
root = tkinter.Tk()
root.withdraw()
@ -208,7 +210,7 @@ def check_qt_version():
if qtutils.version_check('5.2.0', operator.lt):
text = ("Fatal error: Qt and PyQt >= 5.2.0 are required, but {} is "
"installed.".format(qVersion()))
_die(text, exception=False)
_die(text)
def check_libraries():
@ -257,8 +259,8 @@ def check_libraries():
for name, text in modules.items():
try:
importlib.import_module(name)
except ImportError:
_die(text)
except ImportError as e:
_die(text, e)
def remove_inputhook():