mirror of
https://github.com/freedomofpress/dangerzone.git
synced 2025-05-01 03:02:23 +02:00
Move main window content into widget, and either show content or the waiting widget, but never both
This commit is contained in:
parent
9fcb304545
commit
7fcd10e404
2 changed files with 60 additions and 41 deletions
|
@ -142,7 +142,7 @@ def gui_main(filename):
|
||||||
click.echo("Permission denied")
|
click.echo("Permission denied")
|
||||||
return False
|
return False
|
||||||
window.common.input_filename = filename
|
window.common.input_filename = filename
|
||||||
window.doc_selection_widget.document_selected.emit()
|
window.content_widget.doc_selection_widget.document_selected.emit()
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
|
@ -42,13 +42,14 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||||
header_layout.addWidget(header_label)
|
header_layout.addWidget(header_label)
|
||||||
header_layout.addStretch()
|
header_layout.addStretch()
|
||||||
|
|
||||||
# Waiting widget
|
# Waiting widget, replaces content widget while VM is booting
|
||||||
self.waiting_widget = WaitingWidget(self.global_common, self.gui_common)
|
self.waiting_widget = WaitingWidget(self.global_common, self.gui_common)
|
||||||
self.waiting_widget.vm_started.connect(self.vm_started)
|
self.waiting_widget.vm_started.connect(self.vm_started)
|
||||||
|
|
||||||
# Doc selection widget
|
# Content widget, contains all the window content except waiting widget
|
||||||
self.doc_selection_widget = DocSelectionWidget(self.common)
|
self.content_widget = ContentWidget(
|
||||||
self.doc_selection_widget.document_selected.connect(self.document_selected)
|
self.global_common, self.gui_common, self.common
|
||||||
|
)
|
||||||
|
|
||||||
# Only use the waiting widget if we have a VM
|
# Only use the waiting widget if we have a VM
|
||||||
if (
|
if (
|
||||||
|
@ -56,40 +57,16 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||||
and self.global_common.vm.state != self.global_common.vm.STATE_ON
|
and self.global_common.vm.state != self.global_common.vm.STATE_ON
|
||||||
):
|
):
|
||||||
self.waiting_widget.show()
|
self.waiting_widget.show()
|
||||||
self.doc_selection_widget.hide()
|
self.content_widget.hide()
|
||||||
else:
|
else:
|
||||||
self.waiting_widget.hide()
|
self.waiting_widget.hide()
|
||||||
self.doc_selection_widget.show()
|
self.content_widget.show()
|
||||||
|
|
||||||
# Settings
|
|
||||||
self.settings_widget = SettingsWidget(
|
|
||||||
self.global_common, self.gui_common, self.common
|
|
||||||
)
|
|
||||||
self.doc_selection_widget.document_selected.connect(
|
|
||||||
self.settings_widget.document_selected
|
|
||||||
)
|
|
||||||
self.settings_widget.start_clicked.connect(self.start_clicked)
|
|
||||||
self.settings_widget.close_window.connect(self.close)
|
|
||||||
self.settings_widget.hide()
|
|
||||||
|
|
||||||
# Tasks
|
|
||||||
self.tasks_widget = TasksWidget(
|
|
||||||
self.global_common, self.gui_common, self.common
|
|
||||||
)
|
|
||||||
self.tasks_widget.close_window.connect(self.close)
|
|
||||||
self.doc_selection_widget.document_selected.connect(
|
|
||||||
self.tasks_widget.document_selected
|
|
||||||
)
|
|
||||||
self.settings_widget.start_clicked.connect(self.tasks_widget.start)
|
|
||||||
self.tasks_widget.hide()
|
|
||||||
|
|
||||||
# Layout
|
# Layout
|
||||||
layout = QtWidgets.QVBoxLayout()
|
layout = QtWidgets.QVBoxLayout()
|
||||||
layout.addLayout(header_layout)
|
layout.addLayout(header_layout)
|
||||||
layout.addWidget(self.waiting_widget, stretch=1)
|
layout.addWidget(self.waiting_widget, stretch=1)
|
||||||
layout.addWidget(self.doc_selection_widget, stretch=1)
|
layout.addWidget(self.content_widget, stretch=1)
|
||||||
layout.addWidget(self.settings_widget, stretch=1)
|
|
||||||
layout.addWidget(self.tasks_widget, stretch=1)
|
|
||||||
|
|
||||||
central_widget = QtWidgets.QWidget()
|
central_widget = QtWidgets.QWidget()
|
||||||
central_widget.setLayout(layout)
|
central_widget.setLayout(layout)
|
||||||
|
@ -99,15 +76,7 @@ class MainWindow(QtWidgets.QMainWindow):
|
||||||
|
|
||||||
def vm_started(self):
|
def vm_started(self):
|
||||||
self.waiting_widget.hide()
|
self.waiting_widget.hide()
|
||||||
self.doc_selection_widget.show()
|
self.content_widget.show()
|
||||||
|
|
||||||
def document_selected(self):
|
|
||||||
self.doc_selection_widget.hide()
|
|
||||||
self.settings_widget.show()
|
|
||||||
|
|
||||||
def start_clicked(self):
|
|
||||||
self.settings_widget.hide()
|
|
||||||
self.tasks_widget.show()
|
|
||||||
|
|
||||||
def closeEvent(self, e):
|
def closeEvent(self, e):
|
||||||
e.accept()
|
e.accept()
|
||||||
|
@ -147,6 +116,56 @@ class WaitingWidget(QtWidgets.QWidget):
|
||||||
self.label.setText("Dangerzone virtual machine failed to start :(")
|
self.label.setText("Dangerzone virtual machine failed to start :(")
|
||||||
|
|
||||||
|
|
||||||
|
class ContentWidget(QtWidgets.QWidget):
|
||||||
|
def __init__(self, global_common, gui_common, common):
|
||||||
|
super(ContentWidget, self).__init__()
|
||||||
|
|
||||||
|
self.global_common = global_common
|
||||||
|
self.gui_common = gui_common
|
||||||
|
self.common = common
|
||||||
|
|
||||||
|
# Doc selection widget
|
||||||
|
self.doc_selection_widget = DocSelectionWidget(self.common)
|
||||||
|
self.doc_selection_widget.document_selected.connect(self.document_selected)
|
||||||
|
|
||||||
|
# Settings
|
||||||
|
self.settings_widget = SettingsWidget(
|
||||||
|
self.global_common, self.gui_common, self.common
|
||||||
|
)
|
||||||
|
self.doc_selection_widget.document_selected.connect(
|
||||||
|
self.settings_widget.document_selected
|
||||||
|
)
|
||||||
|
self.settings_widget.start_clicked.connect(self.start_clicked)
|
||||||
|
self.settings_widget.close_window.connect(self.close)
|
||||||
|
self.settings_widget.hide()
|
||||||
|
|
||||||
|
# Tasks
|
||||||
|
self.tasks_widget = TasksWidget(
|
||||||
|
self.global_common, self.gui_common, self.common
|
||||||
|
)
|
||||||
|
self.tasks_widget.close_window.connect(self.close)
|
||||||
|
self.doc_selection_widget.document_selected.connect(
|
||||||
|
self.tasks_widget.document_selected
|
||||||
|
)
|
||||||
|
self.settings_widget.start_clicked.connect(self.tasks_widget.start)
|
||||||
|
self.tasks_widget.hide()
|
||||||
|
|
||||||
|
# Layout
|
||||||
|
layout = QtWidgets.QVBoxLayout()
|
||||||
|
layout.addWidget(self.doc_selection_widget, stretch=1)
|
||||||
|
layout.addWidget(self.settings_widget, stretch=1)
|
||||||
|
layout.addWidget(self.tasks_widget, stretch=1)
|
||||||
|
self.setLayout(layout)
|
||||||
|
|
||||||
|
def document_selected(self):
|
||||||
|
self.doc_selection_widget.hide()
|
||||||
|
self.settings_widget.show()
|
||||||
|
|
||||||
|
def start_clicked(self):
|
||||||
|
self.settings_widget.hide()
|
||||||
|
self.tasks_widget.show()
|
||||||
|
|
||||||
|
|
||||||
class DocSelectionWidget(QtWidgets.QWidget):
|
class DocSelectionWidget(QtWidgets.QWidget):
|
||||||
document_selected = QtCore.Signal()
|
document_selected = QtCore.Signal()
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue