mirror of
https://github.com/chidiwilliams/buzz.git
synced 2024-06-26 11:40:09 +02:00
Add reset settings to default (#178)
This commit is contained in:
parent
1869c71c9d
commit
60e586b20e
|
@ -8,4 +8,4 @@ omit =
|
|||
directory = coverage/html
|
||||
|
||||
[report]
|
||||
fail_under = 75
|
||||
fail_under = 78
|
||||
|
|
2
Makefile
2
Makefile
|
@ -1,4 +1,5 @@
|
|||
version := $$(poetry version -s)
|
||||
version_escaped := $$(echo ${version} | sed -e 's/\./\\./g')
|
||||
|
||||
mac_app_path := ./dist/Buzz.app
|
||||
mac_zip_path := ./dist/Buzz-${version}-mac.zip
|
||||
|
@ -54,6 +55,7 @@ dist/Buzz dist/Buzz.app: whisper_cpp.py
|
|||
version:
|
||||
poetry version ${version}
|
||||
echo "VERSION = \"${version}\"" > __version__.py
|
||||
sed -i "s/version=.*,/version=\'${version_escaped}\',/" Buzz.spec
|
||||
|
||||
CMAKE_FLAGS=
|
||||
ifeq ($(UNAME_S),Darwin)
|
||||
|
|
34
gui.py
34
gui.py
|
@ -1,9 +1,10 @@
|
|||
import enum
|
||||
import logging
|
||||
import os
|
||||
import platform
|
||||
import sys
|
||||
from datetime import datetime
|
||||
from typing import Dict, List, Optional, Tuple
|
||||
from typing import Any, Dict, List, Optional, Tuple
|
||||
|
||||
import humanize
|
||||
import sounddevice
|
||||
|
@ -469,7 +470,7 @@ class FileTranscriberWidget(QWidget):
|
|||
if output_file == '':
|
||||
return
|
||||
|
||||
use_whisper_cpp = self.settings.enable_ggml_inference(
|
||||
use_whisper_cpp = self.settings.get_enable_ggml_inference(
|
||||
) and self.selected_language is not None
|
||||
|
||||
self.run_button.setDisabled(True)
|
||||
|
@ -547,15 +548,30 @@ class FileTranscriberWidget(QWidget):
|
|||
|
||||
|
||||
class Settings(QSettings):
|
||||
ENABLE_GGML_INFERENCE = 'enable_ggml_inference'
|
||||
_ENABLE_GGML_INFERENCE = 'enable_ggml_inference'
|
||||
|
||||
def __init__(self, parent: Optional[QWidget], *args):
|
||||
def __init__(self, parent: Optional[QWidget] = None, *args):
|
||||
super().__init__('Buzz', 'Buzz', parent, *args)
|
||||
logging.debug('Loaded settings from path = %s', self.fileName())
|
||||
|
||||
def enable_ggml_inference(self):
|
||||
def get_enable_ggml_inference(self) -> bool:
|
||||
if LOADED_WHISPER_DLL is False:
|
||||
return False
|
||||
return self.value(self.ENABLE_GGML_INFERENCE, False)
|
||||
return self._value_to_bool(self.value(self._ENABLE_GGML_INFERENCE, False))
|
||||
|
||||
def set_enable_ggml_inference(self, value: bool) -> None:
|
||||
self.setValue(self._ENABLE_GGML_INFERENCE, value)
|
||||
|
||||
# Convert QSettings value to boolean: https://forum.qt.io/topic/108622/how-to-get-a-boolean-value-from-qsettings-correctly
|
||||
@staticmethod
|
||||
def _value_to_bool(value: Any) -> bool:
|
||||
if isinstance(value, bool):
|
||||
return value
|
||||
|
||||
if isinstance(value, str):
|
||||
return value.lower() == 'true'
|
||||
|
||||
return bool(value)
|
||||
|
||||
|
||||
class RecordingTranscriberWidget(QWidget):
|
||||
|
@ -642,7 +658,7 @@ class RecordingTranscriberWidget(QWidget):
|
|||
def start_recording(self):
|
||||
self.record_button.setDisabled(True)
|
||||
|
||||
use_whisper_cpp = self.settings.enable_ggml_inference(
|
||||
use_whisper_cpp = self.settings.get_enable_ggml_inference(
|
||||
) and self.selected_language is not None
|
||||
|
||||
model_name = get_model_name(self.selected_quality)
|
||||
|
@ -803,7 +819,7 @@ class MainWindow(QMainWindow):
|
|||
'&Enable GGML Inference', self)
|
||||
enable_ggml_inference_action.setCheckable(True)
|
||||
enable_ggml_inference_action.setChecked(
|
||||
bool(self.settings.enable_ggml_inference()))
|
||||
bool(self.settings.get_enable_ggml_inference()))
|
||||
enable_ggml_inference_action.triggered.connect(
|
||||
self.on_toggle_enable_ggml_inference)
|
||||
enable_ggml_inference_action.setDisabled(LOADED_WHISPER_DLL is False)
|
||||
|
@ -822,7 +838,7 @@ class MainWindow(QMainWindow):
|
|||
self.new_import_window_triggered.emit((file_path, self.geometry()))
|
||||
|
||||
def on_toggle_enable_ggml_inference(self, state: bool):
|
||||
self.settings.setValue(Settings.ENABLE_GGML_INFERENCE, state)
|
||||
self.settings.set_enable_ggml_inference(state)
|
||||
|
||||
def on_trigger_about_action(self):
|
||||
about_dialog = AboutDialog(self)
|
||||
|
|
16
gui_test.py
16
gui_test.py
|
@ -7,7 +7,7 @@ from PyQt6.QtCore import Qt
|
|||
|
||||
from gui import (Application, AudioDevicesComboBox,
|
||||
DownloadModelProgressDialog, FileTranscriberWidget,
|
||||
LanguagesComboBox, MainWindow, OutputFormatsComboBox, Quality,
|
||||
LanguagesComboBox, MainWindow, OutputFormatsComboBox, Quality, Settings,
|
||||
QualityComboBox, TranscriberProgressDialog)
|
||||
from transcriber import OutputFormat
|
||||
|
||||
|
@ -190,3 +190,17 @@ class TestFileTranscriberWidget:
|
|||
|
||||
output_file = open(output_file_path, 'r', encoding='utf-8')
|
||||
assert 'Bienvenue dans Passe-Relle, un podcast' in output_file.read()
|
||||
|
||||
|
||||
class TestSettings:
|
||||
def test_should_enable_ggml_inference(self):
|
||||
settings = Settings()
|
||||
settings.clear()
|
||||
|
||||
assert settings.get_enable_ggml_inference() is False
|
||||
|
||||
settings.set_enable_ggml_inference(True)
|
||||
assert settings.get_enable_ggml_inference() is True
|
||||
|
||||
settings.set_enable_ggml_inference(False)
|
||||
assert settings.get_enable_ggml_inference() is False
|
||||
|
|
Loading…
Reference in a new issue