Rename global_common.GlobalCommon class to logic.Dangerzone

Rename the `global_common` module and `global_common.GlobalCommon` class
to `logic` and `logic.Dangerzone` respectively. Also rename variables
that hold instances of this class.

This change is part of the initial refactor to make the Dangerzone class
handle the core logic of the Dangerzone project.
This commit is contained in:
deeplow 2022-09-19 15:19:53 +01:00
parent 2bed3c10e4
commit cb8130042e
No known key found for this signature in database
GPG key ID: 577982871529A52A
7 changed files with 65 additions and 69 deletions

View file

@ -10,7 +10,7 @@ from colorama import Back, Fore, Style
from . import args, container, errors from . import args, container, errors
from .container import convert from .container import convert
from .document import SAFE_EXTENSION, Document from .document import SAFE_EXTENSION, Document
from .global_common import GlobalCommon from .logic import DangerzoneCore
from .util import get_version from .util import get_version
@ -32,7 +32,7 @@ def cli_main(
output_filename: Optional[str], ocr_lang: Optional[str], filename: str output_filename: Optional[str], ocr_lang: Optional[str], filename: str
) -> None: ) -> None:
setup_logging() setup_logging()
global_common = GlobalCommon() dangerzone = DangerzoneCore()
display_banner() display_banner()
@ -47,14 +47,14 @@ def cli_main(
# Validate OCR language # Validate OCR language
if ocr_lang: if ocr_lang:
valid = False valid = False
for lang in global_common.ocr_languages: for lang in dangerzone.ocr_languages:
if global_common.ocr_languages[lang] == ocr_lang: if dangerzone.ocr_languages[lang] == ocr_lang:
valid = True valid = True
break break
if not valid: if not valid:
click.echo("Invalid OCR language code. Valid language codes:") click.echo("Invalid OCR language code. Valid language codes:")
for lang in global_common.ocr_languages: for lang in dangerzone.ocr_languages:
click.echo(f"{global_common.ocr_languages[lang]}: {lang}") click.echo(f"{dangerzone.ocr_languages[lang]}: {lang}")
exit(1) exit(1)
# Ensure container is installed # Ensure container is installed

View file

@ -12,7 +12,7 @@ from PySide2 import QtCore, QtGui, QtWidgets
from .. import args, errors from .. import args, errors
from ..document import Document from ..document import Document
from ..global_common import GlobalCommon from ..logic import DangerzoneCore
from .common import GuiCommon from .common import GuiCommon
from .main_window import MainWindow from .main_window import MainWindow
from .systray import SysTray from .systray import SysTray
@ -71,14 +71,14 @@ def gui_main(filename: Optional[str]) -> bool:
app = app_wrapper.app app = app_wrapper.app
# Common objects # Common objects
global_common = GlobalCommon() dangerzone = DangerzoneCore()
gui_common = GuiCommon(app, global_common) gui_common = GuiCommon(app, dangerzone)
# Allow Ctrl-C to smoothly quit the program instead of throwing an exception # Allow Ctrl-C to smoothly quit the program instead of throwing an exception
signal.signal(signal.SIGINT, signal.SIG_DFL) signal.signal(signal.SIGINT, signal.SIG_DFL)
# Create the system tray # Create the system tray
systray = SysTray(global_common, gui_common, app, app_wrapper) systray = SysTray(dangerzone, gui_common, app, app_wrapper)
closed_windows: Dict[str, MainWindow] = {} closed_windows: Dict[str, MainWindow] = {}
windows: Dict[str, MainWindow] = {} windows: Dict[str, MainWindow] = {}
@ -91,7 +91,7 @@ def gui_main(filename: Optional[str]) -> bool:
def new_window(input_filename: Optional[str] = None) -> None: def new_window(input_filename: Optional[str] = None) -> None:
document = Document(input_filename) document = Document(input_filename)
window_id = uuid.uuid4().hex window_id = uuid.uuid4().hex
window = MainWindow(global_common, gui_common, window_id, document) window = MainWindow(dangerzone, gui_common, window_id, document)
window.delete_window.connect(delete_window) window.delete_window.connect(delete_window)
windows[window_id] = window windows[window_id] = window

View file

@ -17,7 +17,7 @@ elif platform.system() == "Linux":
import getpass import getpass
from xdg.DesktopEntry import DesktopEntry from xdg.DesktopEntry import DesktopEntry
from ..global_common import GlobalCommon from ..logic import DangerzoneCore
from ..settings import Settings from ..settings import Settings
from ..util import get_resource_path from ..util import get_resource_path
@ -29,14 +29,12 @@ class GuiCommon(object):
The GuiCommon class is a singleton of shared functionality for the GUI The GuiCommon class is a singleton of shared functionality for the GUI
""" """
def __init__( def __init__(self, app: QtWidgets.QApplication, dangerzone: DangerzoneCore) -> None:
self, app: QtWidgets.QApplication, global_common: GlobalCommon
) -> None:
# Qt app # Qt app
self.app = app self.app = app
# Global common singleton # Global common singleton
self.global_common = global_common self.dangerzone = dangerzone
# Preload font # Preload font
self.fixed_font = QtGui.QFontDatabase.systemFont(QtGui.QFontDatabase.FixedFont) self.fixed_font = QtGui.QFontDatabase.systemFont(QtGui.QFontDatabase.FixedFont)
@ -67,7 +65,7 @@ class GuiCommon(object):
elif platform.system() == "Linux": elif platform.system() == "Linux":
# Get the PDF reader command # Get the PDF reader command
args = shlex.split( args = shlex.split(
self.pdf_viewers[self.global_common.settings.get("open_app")] self.pdf_viewers[self.dangerzone.settings.get("open_app")]
) )
# %f, %F, %u, and %U are filenames or URLS -- so replace with the file to open # %f, %F, %u, and %U are filenames or URLS -- so replace with the file to open
for i in range(len(args)): for i in range(len(args)):
@ -118,13 +116,13 @@ class Alert(QtWidgets.QDialog):
def __init__( def __init__(
self, self,
gui_common: GuiCommon, gui_common: GuiCommon,
global_common: GlobalCommon, dangerzone: DangerzoneCore,
message: str, message: str,
ok_text: str = "Ok", ok_text: str = "Ok",
extra_button_text: str = None, extra_button_text: str = None,
) -> None: ) -> None:
super(Alert, self).__init__() super(Alert, self).__init__()
self.global_common = global_common self.dangerzone = dangerzone
self.gui_common = gui_common self.gui_common = gui_common
self.setWindowTitle("dangerzone") self.setWindowTitle("dangerzone")

View file

@ -13,7 +13,7 @@ from PySide2 import QtCore, QtGui, QtWidgets
from .. import container from .. import container
from ..container import convert from ..container import convert
from ..document import Document from ..document import Document
from ..global_common import GlobalCommon from ..logic import DangerzoneCore
from ..util import get_resource_path, get_subprocess_startupinfo from ..util import get_resource_path, get_subprocess_startupinfo
from .common import GuiCommon from .common import GuiCommon
@ -25,13 +25,13 @@ class MainWindow(QtWidgets.QMainWindow):
def __init__( def __init__(
self, self,
global_common: GlobalCommon, dangerzone: DangerzoneCore,
gui_common: GuiCommon, gui_common: GuiCommon,
window_id: str, window_id: str,
document: Document, document: Document,
) -> None: ) -> None:
super(MainWindow, self).__init__() super(MainWindow, self).__init__()
self.global_common = global_common self.dangerzone = dangerzone
self.gui_common = gui_common self.gui_common = gui_common
self.window_id = window_id self.window_id = window_id
self.document = document self.document = document
@ -58,12 +58,12 @@ class MainWindow(QtWidgets.QMainWindow):
header_layout.addStretch() header_layout.addStretch()
# Waiting widget, replaces content widget while container runtime isn't available # Waiting widget, replaces content widget while container runtime isn't available
self.waiting_widget = WaitingWidget(self.global_common, self.gui_common) self.waiting_widget = WaitingWidget(self.dangerzone, self.gui_common)
self.waiting_widget.finished.connect(self.waiting_finished) self.waiting_widget.finished.connect(self.waiting_finished)
# Content widget, contains all the window content except waiting widget # Content widget, contains all the window content except waiting widget
self.content_widget = ContentWidget( self.content_widget = ContentWidget(
self.global_common, self.gui_common, self.document self.dangerzone, self.gui_common, self.document
) )
self.content_widget.close_window.connect(self.close) self.content_widget.close_window.connect(self.close)
@ -103,9 +103,9 @@ class MainWindow(QtWidgets.QMainWindow):
class InstallContainerThread(QtCore.QThread): class InstallContainerThread(QtCore.QThread):
finished = QtCore.Signal() finished = QtCore.Signal()
def __init__(self, global_common: GlobalCommon) -> None: def __init__(self, dangerzone: DangerzoneCore) -> None:
super(InstallContainerThread, self).__init__() super(InstallContainerThread, self).__init__()
self.global_common = global_common self.dangerzone = dangerzone
def run(self) -> None: def run(self) -> None:
container.install() container.install()
@ -124,9 +124,9 @@ class WaitingWidget(QtWidgets.QWidget):
# - "install_container" # - "install_container"
finished = QtCore.Signal() finished = QtCore.Signal()
def __init__(self, global_common: GlobalCommon, gui_common: GuiCommon) -> None: def __init__(self, dangerzone: DangerzoneCore, gui_common: GuiCommon) -> None:
super(WaitingWidget, self).__init__() super(WaitingWidget, self).__init__()
self.global_common = global_common self.dangerzone = dangerzone
self.gui_common = gui_common self.gui_common = gui_common
self.label = QtWidgets.QLabel() self.label = QtWidgets.QLabel()
@ -201,7 +201,7 @@ class WaitingWidget(QtWidgets.QWidget):
"Installing the Dangerzone container image.<br><br>This might take a few minutes..." "Installing the Dangerzone container image.<br><br>This might take a few minutes..."
) )
self.buttons.hide() self.buttons.hide()
self.install_container_t = InstallContainerThread(self.global_common) self.install_container_t = InstallContainerThread(self.dangerzone)
self.install_container_t.finished.connect(self.finished) self.install_container_t.finished.connect(self.finished)
self.install_container_t.start() self.install_container_t.start()
@ -210,11 +210,11 @@ class ContentWidget(QtWidgets.QWidget):
close_window = QtCore.Signal() close_window = QtCore.Signal()
def __init__( def __init__(
self, global_common: GlobalCommon, gui_common: GuiCommon, document: Document self, dangerzone: DangerzoneCore, gui_common: GuiCommon, document: Document
) -> None: ) -> None:
super(ContentWidget, self).__init__() super(ContentWidget, self).__init__()
self.global_common = global_common self.dangerzone = dangerzone
self.gui_common = gui_common self.gui_common = gui_common
self.document = document self.document = document
@ -224,7 +224,7 @@ class ContentWidget(QtWidgets.QWidget):
# Settings # Settings
self.settings_widget = SettingsWidget( self.settings_widget = SettingsWidget(
self.global_common, self.gui_common, self.document self.dangerzone, self.gui_common, self.document
) )
self.doc_selection_widget.document_selected.connect( self.doc_selection_widget.document_selected.connect(
self.settings_widget.document_selected self.settings_widget.document_selected
@ -235,7 +235,7 @@ class ContentWidget(QtWidgets.QWidget):
# Convert # Convert
self.convert_widget = ConvertWidget( self.convert_widget = ConvertWidget(
self.global_common, self.gui_common, self.document self.dangerzone, self.gui_common, self.document
) )
self.convert_widget.close_window.connect(self._close_window) self.convert_widget.close_window.connect(self._close_window)
self.doc_selection_widget.document_selected.connect( self.doc_selection_widget.document_selected.connect(
@ -309,10 +309,10 @@ class SettingsWidget(QtWidgets.QWidget):
close_window = QtCore.Signal() close_window = QtCore.Signal()
def __init__( def __init__(
self, global_common: GlobalCommon, gui_common: GuiCommon, document: Document self, dangerzone: DangerzoneCore, gui_common: GuiCommon, document: Document
) -> None: ) -> None:
super(SettingsWidget, self).__init__() super(SettingsWidget, self).__init__()
self.global_common = global_common self.dangerzone = dangerzone
self.gui_common = gui_common self.gui_common = gui_common
self.document = document self.document = document
@ -371,8 +371,8 @@ class SettingsWidget(QtWidgets.QWidget):
# OCR document # OCR document
self.ocr_checkbox = QtWidgets.QCheckBox("OCR document, language") self.ocr_checkbox = QtWidgets.QCheckBox("OCR document, language")
self.ocr_combobox = QtWidgets.QComboBox() self.ocr_combobox = QtWidgets.QComboBox()
for k in self.global_common.ocr_languages: for k in self.dangerzone.ocr_languages:
self.ocr_combobox.addItem(k, self.global_common.ocr_languages[k]) self.ocr_combobox.addItem(k, self.dangerzone.ocr_languages[k])
ocr_layout = QtWidgets.QHBoxLayout() ocr_layout = QtWidgets.QHBoxLayout()
ocr_layout.addWidget(self.ocr_checkbox) ocr_layout.addWidget(self.ocr_checkbox)
ocr_layout.addWidget(self.ocr_combobox) ocr_layout.addWidget(self.ocr_combobox)
@ -403,31 +403,29 @@ class SettingsWidget(QtWidgets.QWidget):
self.setLayout(layout) self.setLayout(layout)
# Load values from settings # Load values from settings
if self.global_common.settings.get("save"): if self.dangerzone.settings.get("save"):
self.save_checkbox.setCheckState(QtCore.Qt.Checked) self.save_checkbox.setCheckState(QtCore.Qt.Checked)
else: else:
self.save_checkbox.setCheckState(QtCore.Qt.Unchecked) self.save_checkbox.setCheckState(QtCore.Qt.Unchecked)
if self.global_common.settings.get("ocr"): if self.dangerzone.settings.get("ocr"):
self.ocr_checkbox.setCheckState(QtCore.Qt.Checked) self.ocr_checkbox.setCheckState(QtCore.Qt.Checked)
else: else:
self.ocr_checkbox.setCheckState(QtCore.Qt.Unchecked) self.ocr_checkbox.setCheckState(QtCore.Qt.Unchecked)
index = self.ocr_combobox.findText( index = self.ocr_combobox.findText(self.dangerzone.settings.get("ocr_language"))
self.global_common.settings.get("ocr_language")
)
if index != -1: if index != -1:
self.ocr_combobox.setCurrentIndex(index) self.ocr_combobox.setCurrentIndex(index)
if platform.system() == "Darwin" or platform.system() == "Linux": if platform.system() == "Darwin" or platform.system() == "Linux":
if self.global_common.settings.get("open"): if self.dangerzone.settings.get("open"):
self.open_checkbox.setCheckState(QtCore.Qt.Checked) self.open_checkbox.setCheckState(QtCore.Qt.Checked)
else: else:
self.open_checkbox.setCheckState(QtCore.Qt.Unchecked) self.open_checkbox.setCheckState(QtCore.Qt.Unchecked)
if platform.system() == "Linux": if platform.system() == "Linux":
index = self.open_combobox.findText( index = self.open_combobox.findText(
self.global_common.settings.get("open_app") self.dangerzone.settings.get("open_app")
) )
if index != -1: if index != -1:
self.open_combobox.setCurrentIndex(index) self.open_combobox.setCurrentIndex(index)
@ -475,22 +473,22 @@ class SettingsWidget(QtWidgets.QWidget):
self.document.output_filename = tmp[1] self.document.output_filename = tmp[1]
# Update settings # Update settings
self.global_common.settings.set( self.dangerzone.settings.set(
"save", self.save_checkbox.checkState() == QtCore.Qt.Checked "save", self.save_checkbox.checkState() == QtCore.Qt.Checked
) )
self.global_common.settings.set( self.dangerzone.settings.set(
"ocr", self.ocr_checkbox.checkState() == QtCore.Qt.Checked "ocr", self.ocr_checkbox.checkState() == QtCore.Qt.Checked
) )
self.global_common.settings.set("ocr_language", self.ocr_combobox.currentText()) self.dangerzone.settings.set("ocr_language", self.ocr_combobox.currentText())
if platform.system() == "Darwin" or platform.system() == "Linux": if platform.system() == "Darwin" or platform.system() == "Linux":
self.global_common.settings.set( self.dangerzone.settings.set(
"open", self.open_checkbox.checkState() == QtCore.Qt.Checked "open", self.open_checkbox.checkState() == QtCore.Qt.Checked
) )
if platform.system() == "Linux": if platform.system() == "Linux":
self.global_common.settings.set( self.dangerzone.settings.set(
"open_app", self.open_combobox.currentText() "open_app", self.open_combobox.currentText()
) )
self.global_common.settings.save() self.dangerzone.settings.save()
# Start! # Start!
self.start_clicked.emit() self.start_clicked.emit()
@ -500,16 +498,16 @@ class ConvertThread(QtCore.QThread):
finished = QtCore.Signal(bool) finished = QtCore.Signal(bool)
update = QtCore.Signal(bool, str, int) update = QtCore.Signal(bool, str, int)
def __init__(self, global_common: GlobalCommon, document: Document) -> None: def __init__(self, dangerzone: DangerzoneCore, document: Document) -> None:
super(ConvertThread, self).__init__() super(ConvertThread, self).__init__()
self.global_common = global_common self.dangerzone = dangerzone
self.document = document self.document = document
self.error = False self.error = False
def run(self) -> None: def run(self) -> None:
if self.global_common.settings.get("ocr"): if self.dangerzone.settings.get("ocr"):
ocr_lang = self.global_common.ocr_languages[ ocr_lang = self.dangerzone.ocr_languages[
self.global_common.settings.get("ocr_language") self.dangerzone.settings.get("ocr_language")
] ]
else: else:
ocr_lang = None ocr_lang = None
@ -549,10 +547,10 @@ class ConvertWidget(QtWidgets.QWidget):
close_window = QtCore.Signal() close_window = QtCore.Signal()
def __init__( def __init__(
self, global_common: GlobalCommon, gui_common: GuiCommon, document: Document self, dangerzone: DangerzoneCore, gui_common: GuiCommon, document: Document
) -> None: ) -> None:
super(ConvertWidget, self).__init__() super(ConvertWidget, self).__init__()
self.global_common = global_common self.dangerzone = dangerzone
self.gui_common = gui_common self.gui_common = gui_common
self.document = document self.document = document
@ -602,7 +600,7 @@ class ConvertWidget(QtWidgets.QWidget):
) )
def start(self) -> None: def start(self) -> None:
self.convert_t = ConvertThread(self.global_common, self.document) self.convert_t = ConvertThread(self.dangerzone, self.document)
self.convert_t.update.connect(self.update_progress) self.convert_t.update.connect(self.update_progress)
self.convert_t.finished.connect(self.all_done) self.convert_t.finished.connect(self.all_done)
self.convert_t.start() self.convert_t.start()
@ -630,7 +628,7 @@ class ConvertWidget(QtWidgets.QWidget):
) )
# Open # Open
if self.global_common.settings.get("open"): if self.dangerzone.settings.get("open"):
self.gui_common.open_pdf_viewer(self.document.output_filename) self.gui_common.open_pdf_viewer(self.document.output_filename)
# Quit # Quit

View file

@ -3,7 +3,7 @@ from typing import TYPE_CHECKING
from PySide2 import QtWidgets from PySide2 import QtWidgets
from ..global_common import GlobalCommon from ..logic import DangerzoneCore
from .common import GuiCommon from .common import GuiCommon
if TYPE_CHECKING: if TYPE_CHECKING:
@ -13,13 +13,13 @@ if TYPE_CHECKING:
class SysTray(QtWidgets.QSystemTrayIcon): class SysTray(QtWidgets.QSystemTrayIcon):
def __init__( def __init__(
self, self,
global_common: GlobalCommon, dangerzone: DangerzoneCore,
gui_common: GuiCommon, gui_common: GuiCommon,
app: QtWidgets.QApplication, app: QtWidgets.QApplication,
app_wrapper: "ApplicationWrapper", app_wrapper: "ApplicationWrapper",
) -> None: ) -> None:
super(SysTray, self).__init__() super(SysTray, self).__init__()
self.global_common = global_common self.dangerzone = dangerzone
self.gui_common = gui_common self.gui_common = gui_common
self.app = app self.app = app
self.app_wrapper = app_wrapper self.app_wrapper = app_wrapper

View file

@ -18,9 +18,9 @@ from .util import get_resource_path
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
class GlobalCommon(object): class DangerzoneCore(object):
""" """
The GlobalCommon class is a singleton of shared functionality throughout the app The DangerzoneCore class is a singleton of shared functionality throughout the app
""" """
def __init__(self) -> None: def __init__(self) -> None:

View file

@ -6,16 +6,16 @@ from typing import TYPE_CHECKING, Any, Dict, Optional
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
if TYPE_CHECKING: if TYPE_CHECKING:
from .global_common import GlobalCommon from .logic import DangerzoneCore
class Settings: class Settings:
settings: Dict[str, Any] settings: Dict[str, Any]
def __init__(self, global_common: "GlobalCommon") -> None: def __init__(self, dangerzone: "DangerzoneCore") -> None:
self.global_common = global_common self.dangerzone = dangerzone
self.settings_filename = os.path.join( self.settings_filename = os.path.join(
self.global_common.appdata_path, "settings.json" self.dangerzone.appdata_path, "settings.json"
) )
self.default_settings: Dict[str, Any] = { self.default_settings: Dict[str, Any] = {
"save": True, "save": True,
@ -59,6 +59,6 @@ class Settings:
self.save() self.save()
def save(self) -> None: def save(self) -> None:
os.makedirs(self.global_common.appdata_path, exist_ok=True) os.makedirs(self.dangerzone.appdata_path, exist_ok=True)
with open(self.settings_filename, "w") as settings_file: with open(self.settings_filename, "w") as settings_file:
json.dump(self.settings, settings_file, indent=4) json.dump(self.settings, settings_file, indent=4)