From 89f5e99b0cc7b44cf4a8a49d891a691601fbef0f Mon Sep 17 00:00:00 2001 From: deeplow Date: Thu, 13 Oct 2022 15:55:03 +0100 Subject: [PATCH] Initial GUI multi-window opening via terminal Allow opening multiple documents at the same time from the terminal by calling $ dangerzone document1.pdf document2.pdf It will open each document in its own window, making use of the already existing 'multi-document multi-window' parallel conversion implementation. --- dangerzone/gui/__init__.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/dangerzone/gui/__init__.py b/dangerzone/gui/__init__.py index f92d419..798d52a 100644 --- a/dangerzone/gui/__init__.py +++ b/dangerzone/gui/__init__.py @@ -4,7 +4,7 @@ import platform import signal import sys import uuid -from typing import Dict, Optional +from typing import Dict, List, Optional import click import colorama @@ -49,9 +49,15 @@ class ApplicationWrapper(QtCore.QObject): @click.command() -@click.argument("filename", required=False, callback=args.validate_input_filename) +@click.argument( + "filenames", + required=False, + nargs=-1, + type=click.UNPROCESSED, + callback=args.validate_input_filenames, +) @errors.handle_document_errors -def gui_main(filename: Optional[str]) -> bool: +def gui_main(filenames: Optional[List[str]]) -> bool: setup_logging() if platform.system() == "Darwin": @@ -97,10 +103,11 @@ def gui_main(filename: Optional[str]) -> bool: window.content_widget.doc_selection_widget.document_selected.emit() # Open a new window if not filename is passed - if filename is None: + if filenames is None: new_window() else: - new_window(filename) + for filename in filenames: + new_window(filename) # Open a new window, if all windows are closed def application_activated() -> None: