mirror of
https://github.com/freedomofpress/dangerzone.git
synced 2025-05-06 13:31:50 +02:00
fixup! Display a button if Docker Desktop needs an update
This commit is contained in:
parent
a2bc07537b
commit
dac41a87f8
2 changed files with 45 additions and 5 deletions
|
@ -236,6 +236,12 @@ class MainWindow(QtWidgets.QMainWindow):
|
|||
self.setProperty("OSColorMode", self.dangerzone.app.os_color_mode.value)
|
||||
|
||||
self.show()
|
||||
print("Checking Docker Desktop version")
|
||||
is_version_valid, version = (
|
||||
self.dangerzone.isolation_provider.check_docker_desktop_version()
|
||||
)
|
||||
if not is_version_valid:
|
||||
self.handle_docker_desktop_version_check(is_version_valid, version)
|
||||
|
||||
def show_update_success(self) -> None:
|
||||
"""Inform the user about a new Dangerzone release."""
|
||||
|
@ -288,6 +294,44 @@ class MainWindow(QtWidgets.QMainWindow):
|
|||
self.dangerzone.settings.set("updater_check", check)
|
||||
self.dangerzone.settings.save()
|
||||
|
||||
def handle_docker_desktop_version_check(
|
||||
self, is_version_valid: bool, version: str
|
||||
) -> None:
|
||||
hamburger_menu = self.hamburger_button.menu()
|
||||
sep = hamburger_menu.insertSeparator(hamburger_menu.actions()[0])
|
||||
error_action = QAction("Docker Desktop should be upgraded", hamburger_menu)
|
||||
error_action.setIcon(
|
||||
QtGui.QIcon(
|
||||
load_svg_image(
|
||||
"hamburger_menu_update_dot_error.svg", width=64, height=64
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
def _show_alert() -> None:
|
||||
message = """
|
||||
<p>Your Docker Desktop version is too old. Please upgrade to a more recent version.</p>
|
||||
<p>Visit the <a href="https://www.docker.com/products/docker-desktop">Docker Desktop website</a> to download the latest version.</p>
|
||||
<em>Updating Docker Desktop allows you to have more confidence that you can process your documents safely.</em>
|
||||
"""
|
||||
widget = Alert(
|
||||
self.dangerzone,
|
||||
title="Your Docker Desktop version should be upgraded",
|
||||
message=message,
|
||||
ok_text="Ok",
|
||||
has_cancel=False,
|
||||
)
|
||||
widget.launch()
|
||||
|
||||
error_action.triggered.connect(_show_alert)
|
||||
hamburger_menu.insertAction(sep, error_action)
|
||||
|
||||
self.hamburger_button.setIcon(
|
||||
QtGui.QIcon(
|
||||
load_svg_image("hamburger_menu_update_error.svg", width=64, height=64)
|
||||
)
|
||||
)
|
||||
|
||||
def handle_updates(self, report: UpdateReport) -> None:
|
||||
"""Handle update reports from the update checker thread.
|
||||
|
||||
|
@ -500,10 +544,6 @@ class WaitingWidgetContainer(WaitingWidget):
|
|||
error: Optional[str] = None
|
||||
|
||||
try:
|
||||
is_greater, version = self.dangerzone.isolation_provider.check_docker_desktop_version()
|
||||
if not is_greater:
|
||||
error = f"Your Docker version is too old ({version})."
|
||||
print(error)
|
||||
self.dangerzone.isolation_provider.is_runtime_available()
|
||||
except NoContainerTechException as e:
|
||||
log.error(str(e))
|
||||
|
|
Loading…
Reference in a new issue