From ea58afa892e393cf571ad4c026369a7e998055ee Mon Sep 17 00:00:00 2001 From: Raivis Dejus Date: Tue, 2 Jul 2024 22:36:22 +0300 Subject: [PATCH] Adding ability to change application font size (#822) --- buzz/locale/lv_LV/LC_MESSAGES/buzz.po | 32 +++++++++++-------- buzz/settings/settings.py | 2 ++ buzz/widgets/application.py | 13 ++++++-- .../general_preferences_widget.py | 20 +++++++++++- 4 files changed, 50 insertions(+), 17 deletions(-) diff --git a/buzz/locale/lv_LV/LC_MESSAGES/buzz.po b/buzz/locale/lv_LV/LC_MESSAGES/buzz.po index ac6c98e9..4ac519fd 100644 --- a/buzz/locale/lv_LV/LC_MESSAGES/buzz.po +++ b/buzz/locale/lv_LV/LC_MESSAGES/buzz.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-07-02 20:57+0300\n" -"PO-Revision-Date: 2024-07-02 21:00+0300\n" +"POT-Creation-Date: 2024-07-02 22:07+0300\n" +"PO-Revision-Date: 2024-07-02 22:09+0300\n" "Last-Translator: \n" "Language-Team: \n" "Language: lv_LV\n" @@ -55,42 +55,46 @@ msgstr "Jūsu ievadītā URL adrese nav derīga." msgid "Reset to Defaults" msgstr "Atjaunot noklusētos" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:45 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:47 +msgid "Font Size" +msgstr "Fonta izmērs" + +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:54 msgid "Test" msgstr "Pārbaudīt" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:51 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:60 msgid "OpenAI API key" msgstr "OpenAI API atslēga" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:64 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:73 msgid "OpenAI base url" msgstr "OpenAI adrese" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:73 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:82 msgid "Default export file name" msgstr "Eksporta fails" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:79 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:88 msgid "Enable live recording transcription export" msgstr "Eksportēt dzīvā ieraksta transkriptus" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:85 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:94 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:47 #: buzz/widgets/preferences_dialog/folder_watch_preferences_widget.py:50 msgid "Browse" msgstr "Izvēlēties" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:104 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:113 msgid "Export folder" msgstr "Eksportēt mapē" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:129 -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:135 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:138 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:144 msgid "OpenAI API Key Test" msgstr "OpenAI API atslēgas pārbaude" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:130 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:139 msgid "" "Your API key is valid. Buzz will use this key to perform Whisper API " "transcriptions and AI translations with ChatGPT." @@ -98,11 +102,11 @@ msgstr "" "Jūsu API atslēga ir derīga. Buzz izmantos to runas atpazīšanai ar Whisper " "API un tulkošanai ar ChatGPT." -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:157 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:166 msgid "Select Export Folder" msgstr "Izvēlieties mapi kurā eksportēt" -#: buzz/widgets/preferences_dialog/general_preferences_widget.py:189 +#: buzz/widgets/preferences_dialog/general_preferences_widget.py:207 msgid "OpenAI API returned invalid response, status code: " msgstr "OpenAI API atbildēja ar nederīgu atbildi, statusa kods: " diff --git a/buzz/settings/settings.py b/buzz/settings/settings.py index 0b95675b..873bf4ca 100644 --- a/buzz/settings/settings.py +++ b/buzz/settings/settings.py @@ -43,6 +43,8 @@ class Settings: SHORTCUTS = "shortcuts" + FONT_SIZE = "font-size" + TRANSCRIPTION_TASKS_TABLE_COLUMN_VISIBILITY = ( "transcription-tasks-table/column-visibility" ) diff --git a/buzz/widgets/application.py b/buzz/widgets/application.py index 57bb2ee5..3c10e37b 100644 --- a/buzz/widgets/application.py +++ b/buzz/widgets/application.py @@ -8,7 +8,8 @@ from buzz.db.dao.transcription_dao import TranscriptionDAO from buzz.db.dao.transcription_segment_dao import TranscriptionSegmentDAO from buzz.db.db import setup_app_db from buzz.db.service.transcription_service import TranscriptionService -from buzz.settings.settings import APP_NAME +from buzz.settings.settings import APP_NAME, Settings + from buzz.transcriber.transcriber import FileTranscriptionTask from buzz.widgets.main_window import MainWindow @@ -22,8 +23,16 @@ class Application(QApplication): self.setApplicationName(APP_NAME) self.setApplicationVersion(VERSION) + self.settings = Settings() + font_size = self.settings.value( + key=Settings.Key.FONT_SIZE, default_value=self.font().pointSize() + ) + if sys.platform == "darwin": - self.setFont(QFont("SF Pro", self.font().pointSize())) + self.setFont(QFont("SF Pro", font_size)) + else: + self.setFont(QFont(self.font().family(), font_size)) + db = setup_app_db() transcription_service = TranscriptionService( diff --git a/buzz/widgets/preferences_dialog/general_preferences_widget.py b/buzz/widgets/preferences_dialog/general_preferences_widget.py index b738ad82..184a4491 100644 --- a/buzz/widgets/preferences_dialog/general_preferences_widget.py +++ b/buzz/widgets/preferences_dialog/general_preferences_widget.py @@ -11,7 +11,8 @@ from PyQt6.QtWidgets import ( QMessageBox, QCheckBox, QHBoxLayout, - QFileDialog + QFileDialog, + QSpinBox, ) from openai import AuthenticationError, OpenAI @@ -37,6 +38,14 @@ class GeneralPreferencesWidget(QWidget): layout = QFormLayout(self) + self.font_size_spin_box = QSpinBox(self) + self.font_size_spin_box.setMinimum(8) + self.font_size_spin_box.setMaximum(32) + self.font_size_spin_box.setValue(self.font().pointSize()) + self.font_size_spin_box.valueChanged.connect(self.on_font_size_changed) + + layout.addRow(_("Font Size"), self.font_size_spin_box) + self.openai_api_key_line_edit = OpenAIAPIKeyLineEdit(self.openai_api_key, self) self.openai_api_key_line_edit.key_changed.connect( self.on_openai_api_key_changed @@ -164,6 +173,15 @@ class GeneralPreferencesWidget(QWidget): folder, ) + def on_font_size_changed(self, value): + from buzz.widgets.application import Application + font = self.font() + font.setPointSize(value) + self.setFont(font) + Application.instance().setFont(font) + + self.settings.set_value(Settings.Key.FONT_SIZE, value) + class TestOpenAIApiKeyJob(QRunnable): class Signals(QObject):