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

View file

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

View file

@ -17,7 +17,7 @@ elif platform.system() == "Linux":
import getpass
from xdg.DesktopEntry import DesktopEntry
from ..global_common import GlobalCommon
from ..logic import DangerzoneCore
from ..settings import Settings
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
"""
def __init__(
self, app: QtWidgets.QApplication, global_common: GlobalCommon
) -> None:
def __init__(self, app: QtWidgets.QApplication, dangerzone: DangerzoneCore) -> None:
# Qt app
self.app = app
# Global common singleton
self.global_common = global_common
self.dangerzone = dangerzone
# Preload font
self.fixed_font = QtGui.QFontDatabase.systemFont(QtGui.QFontDatabase.FixedFont)
@ -67,7 +65,7 @@ class GuiCommon(object):
elif platform.system() == "Linux":
# Get the PDF reader command
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
for i in range(len(args)):
@ -118,13 +116,13 @@ class Alert(QtWidgets.QDialog):
def __init__(
self,
gui_common: GuiCommon,
global_common: GlobalCommon,
dangerzone: DangerzoneCore,
message: str,
ok_text: str = "Ok",
extra_button_text: str = None,
) -> None:
super(Alert, self).__init__()
self.global_common = global_common
self.dangerzone = dangerzone
self.gui_common = gui_common
self.setWindowTitle("dangerzone")

View file

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

View file

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

View file

@ -18,9 +18,9 @@ from .util import get_resource_path
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:

View file

@ -6,16 +6,16 @@ from typing import TYPE_CHECKING, Any, Dict, Optional
log = logging.getLogger(__name__)
if TYPE_CHECKING:
from .global_common import GlobalCommon
from .logic import DangerzoneCore
class Settings:
settings: Dict[str, Any]
def __init__(self, global_common: "GlobalCommon") -> None:
self.global_common = global_common
def __init__(self, dangerzone: "DangerzoneCore") -> None:
self.dangerzone = dangerzone
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] = {
"save": True,
@ -59,6 +59,6 @@ class Settings:
self.save()
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:
json.dump(self.settings, settings_file, indent=4)