mirror of
https://github.com/freedomofpress/dangerzone.git
synced 2025-04-28 18:02:38 +02:00
Fix error message user interface
This commit is contained in:
parent
7c756c194e
commit
ea47a2e92c
2 changed files with 28 additions and 6 deletions
|
@ -423,13 +423,14 @@ class SettingsWidget(QtWidgets.QWidget):
|
|||
|
||||
|
||||
class ConvertThread(QtCore.QThread):
|
||||
finished = QtCore.Signal()
|
||||
finished = QtCore.Signal(bool)
|
||||
update = QtCore.Signal(bool, str, int)
|
||||
|
||||
def __init__(self, global_common, common):
|
||||
super(ConvertThread, self).__init__()
|
||||
self.global_common = global_common
|
||||
self.common = common
|
||||
self.error = False
|
||||
|
||||
def run(self):
|
||||
ocr_lang = self.global_common.ocr_languages[
|
||||
|
@ -443,19 +444,20 @@ class ConvertThread(QtCore.QThread):
|
|||
ocr_lang,
|
||||
self.stdout_callback,
|
||||
):
|
||||
self.finished.emit()
|
||||
self.finished.emit(self.error)
|
||||
|
||||
def stdout_callback(self, line):
|
||||
try:
|
||||
status = json.loads(line)
|
||||
except:
|
||||
print(f"Invalid JSON returned from container: {line}")
|
||||
|
||||
self.error = True
|
||||
self.update.emit(True, "Invalid JSON returned from container", 0)
|
||||
return
|
||||
|
||||
s = Style.BRIGHT + Fore.CYAN + f"{status['percentage']}% "
|
||||
if status["error"]:
|
||||
self.error = True
|
||||
s += Style.RESET_ALL + Fore.RED + status["text"]
|
||||
else:
|
||||
s += Style.RESET_ALL + status["text"]
|
||||
|
@ -473,6 +475,8 @@ class ConvertWidget(QtWidgets.QWidget):
|
|||
self.gui_common = gui_common
|
||||
self.common = common
|
||||
|
||||
self.error = False
|
||||
|
||||
# Dangerous document label
|
||||
self.dangerous_doc_label = QtWidgets.QLabel()
|
||||
self.dangerous_doc_label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
|
@ -480,11 +484,25 @@ class ConvertWidget(QtWidgets.QWidget):
|
|||
"QLabel { font-size: 16px; font-weight: bold; }"
|
||||
)
|
||||
|
||||
# Label
|
||||
self.error_image = QtWidgets.QLabel()
|
||||
self.error_image.setPixmap(
|
||||
QtGui.QPixmap.fromImage(
|
||||
QtGui.QImage(self.global_common.get_resource_path("error.png"))
|
||||
)
|
||||
)
|
||||
self.error_image.hide()
|
||||
|
||||
self.label = QtWidgets.QLabel()
|
||||
self.label.setAlignment(QtCore.Qt.AlignCenter)
|
||||
self.label.setWordWrap(True)
|
||||
self.label.setStyleSheet("QLabel { font-size: 18px; }")
|
||||
|
||||
label_layout = QtWidgets.QHBoxLayout()
|
||||
label_layout.addWidget(self.error_image)
|
||||
label_layout.addWidget(self.label, stretch=1)
|
||||
|
||||
# Progress bar
|
||||
self.progress = QtWidgets.QProgressBar()
|
||||
self.progress.setRange(0, 100)
|
||||
self.progress.setValue(0)
|
||||
|
@ -493,7 +511,7 @@ class ConvertWidget(QtWidgets.QWidget):
|
|||
layout = QtWidgets.QVBoxLayout()
|
||||
layout.addWidget(self.dangerous_doc_label)
|
||||
layout.addStretch()
|
||||
layout.addWidget(self.label)
|
||||
layout.addLayout(label_layout)
|
||||
layout.addWidget(self.progress)
|
||||
layout.addStretch()
|
||||
self.setLayout(layout)
|
||||
|
@ -512,13 +530,17 @@ class ConvertWidget(QtWidgets.QWidget):
|
|||
|
||||
def update(self, error, text, percentage):
|
||||
if error:
|
||||
# TODO: add error image or something
|
||||
pass
|
||||
self.error = True
|
||||
self.error_image.show()
|
||||
self.progress.hide()
|
||||
|
||||
self.label.setText(text)
|
||||
self.progress.setValue(percentage)
|
||||
|
||||
def all_done(self):
|
||||
if self.error:
|
||||
return
|
||||
|
||||
# In Windows, open Explorer with the safe PDF in focus
|
||||
if platform.system() == "Windows":
|
||||
dest_filename_windows = self.common.output_filename.replace("/", "\\")
|
||||
|
|
BIN
share/error.png
Normal file
BIN
share/error.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
Loading…
Reference in a new issue