From ea999e03f0fc8eebe6ab651c07ad323e7187c5bc Mon Sep 17 00:00:00 2001 From: "Christopher T. Johnson" Date: Tue, 2 Apr 2024 10:59:25 -0400 Subject: [PATCH] monkey patch for QSettings test --- deftest.py | 45 ++++++++++++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/deftest.py b/deftest.py index d18c844..80daa5f 100644 --- a/deftest.py +++ b/deftest.py @@ -1,5 +1,7 @@ #!/usr/bin/env python3 +import faulthandler import os +import signal import sys from typing import cast @@ -14,6 +16,13 @@ from lib.utils import query_error from lib.words import Definition +def monkeyClose(self, event): + settings = QSettings("Troglodite", "esl_reader") + settings.setValue("geometry", self.saveGeometry()) + super(DefinitionArea, self).closeEvent(event) + return + + def main() -> int: db = QSqlDatabase() db = db.addDatabase("QSQLITE") @@ -24,17 +33,19 @@ def main() -> int: # # Set Default settings # - settings = QSettings('Troglodite', 'esl_reader') - settings.beginGroup('font') - if not settings.contains('display/url'): - settings.setValue('display/url', ':/fonts/opendyslexic/OpenDyslexic-Regular.otf') - if not settings.contains('display/name'): - settings.setValue('display/name', 'OpenDyslexic') - if not settings.contains('phonic/name'): - settings.setValue('phonic/name', 'Gentium') + settings = QSettings("Troglodite", "esl_reader") + settings.beginGroup("font") + if not settings.contains("display/url"): + settings.setValue( + "display/url", ":/fonts/opendyslexic/OpenDyslexic-Regular.otf" + ) + if not settings.contains("display/name"): + settings.setValue("display/name", "OpenDyslexic") + if not settings.contains("phonic/name"): + settings.setValue("phonic/name", "Gentium") settings.endGroup() - if not settings.contains('keys/mw-api'): - settings.setValue('keys/mw-api','51d9df34-ee13-489e-8656-478c215e846c') + if not settings.contains("keys/mw-api"): + settings.setValue("keys/mw-api", "51d9df34-ee13-489e-8656-478c215e846c") # # Setup resources # @@ -42,10 +53,10 @@ def main() -> int: os.path.join(os.path.dirname(__file__), "ui/resources.rcc"), "/" ): raise Exception("Unable to register resources.rcc") - settings.beginGroup('font') + settings.beginGroup("font") for name in settings.childGroups(): - if settings.contains(f'{name}/url'): - QFontDatabase.addApplicationFont(settings.value(f'{name}/url')) + if settings.contains(f"{name}/url"): + QFontDatabase.addApplicationFont(settings.value(f"{name}/url")) settings.endGroup() query = QSqlQuery() if not query.exec( @@ -55,10 +66,13 @@ def main() -> int: ): query_error(query) - word = Word("boat") + word = Word("cowbell") snd = SoundOff() + DefinitionArea.closeEvent = monkeyClose widget = DefinitionArea(word) # xnoqa: F841 - d = cast(Definition,widget.widget()) + settings = QSettings("Troglodite", "esl_reader") + widget.restoreGeometry(settings.value("geometry")) + d = cast(Definition, widget.widget()) assert d is not None d.pronounce.connect(snd.playSound) widget.show() @@ -66,4 +80,5 @@ def main() -> int: if __name__ == "__main__": + faulthandler.register(signal.Signals.SIGUSR1) sys.exit(main())