From afb74d4bad4c550dd68347154a335bb4eb176eca Mon Sep 17 00:00:00 2001 From: Dummerle Date: Thu, 8 Apr 2021 10:38:24 +0200 Subject: [PATCH] Rare settings qscrollarea --- rare/components/tabs/settings/rare.py | 35 +++++++++++---------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/rare/components/tabs/settings/rare.py b/rare/components/tabs/settings/rare.py index 259dbae0..f2760b6f 100644 --- a/rare/components/tabs/settings/rare.py +++ b/rare/components/tabs/settings/rare.py @@ -2,8 +2,8 @@ import os import shutil from logging import getLogger -from PyQt5.QtCore import QSettings -from PyQt5.QtWidgets import QVBoxLayout, QFileDialog, QComboBox, QPushButton, QCheckBox, QGroupBox +from PyQt5.QtCore import QSettings, Qt +from PyQt5.QtWidgets import QVBoxLayout, QFileDialog, QComboBox, QPushButton, QCheckBox, QGroupBox, QScrollArea from rare.components.tabs.settings.settings_widget import SettingsWidget from rare.utils.extra_widgets import PathEdit @@ -18,16 +18,17 @@ languages = [ ] -class RareSettings(QGroupBox): +class RareSettings(QScrollArea): def __init__(self): super(RareSettings, self).__init__() - self.setTitle(self.tr("Rare settings")) - self.setObjectName("group") + self.widget = QGroupBox(self.tr("Rare settings")) + self.widget.setObjectName("group") + self.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded) + self.setWidgetResizable(True) self.layout = QVBoxLayout() settings = QSettings() img_dir = settings.value("img_dir", os.path.expanduser("~/.cache/rare/images/"), type=str) language = settings.value("language", get_lang(), type=str) - # select Image dir self.select_path = PathEdit(img_dir, type_of_file=QFileDialog.DirectoryOnly) self.select_path.text_edit.textChanged.connect(lambda t: self.save_path_button.setDisabled(False)) @@ -38,10 +39,8 @@ class RareSettings(QGroupBox): # Select lang self.select_lang = QComboBox() - # languages = ["English", "Deutsch", "Français"] self.select_lang.addItems([i[1] for i in languages]) if language in get_possible_langs(): - index = [lang[0] for lang in languages].index(language) self.select_lang.setCurrentIndex(index) else: @@ -52,26 +51,22 @@ class RareSettings(QGroupBox): self.exit_to_sys_tray = QCheckBox(self.tr("Hide to System Tray Icon")) self.exit_to_sys_tray.setChecked(settings.value("sys_tray", True, bool)) - self.exit_to_sys_tray.stateChanged.connect(self.update_sys_tray) + self.exit_to_sys_tray.stateChanged.connect(lambda x: self.update_checkbox(x, "sys_tray")) self.sys_tray_widget = SettingsWidget(self.tr("Exit to System Tray Icon"), self.exit_to_sys_tray) self.layout.addWidget(self.sys_tray_widget) self.game_start_accept = QCheckBox(self.tr("Confirm launch of game")) - self.game_start_accept.stateChanged.connect(self.update_start_confirm) + self.game_start_accept.stateChanged.connect(lambda x: self.update_checkbox(x, "confirm_start")) self.game_start_accept_widget = SettingsWidget(self.tr("Confirm launch of game"), self.game_start_accept) self.layout.addWidget(self.game_start_accept_widget) self.layout.addStretch() + self.widget.setLayout(self.layout) + self.setWidget(self.widget) - self.setLayout(self.layout) - - def update_sys_tray(self): + def update_checkbox(self, checked, setting_name): settings = QSettings() - settings.setValue("sys_tray", self.exit_to_sys_tray.isChecked()) - - def update_start_confirm(self): - settings = QSettings() - settings.setValue("confirm_start", self.game_start_accept.isChecked()) + settings.setValue(setting_name, checked != 0) def save_path(self): self.save_path_button.setDisabled(True) @@ -79,8 +74,7 @@ class RareSettings(QGroupBox): def update_lang(self, i: int): settings = QSettings() - - settings.setValue("language", languages[i][1]) + settings.setValue("language", languages[i][0]) self.lang_widget.info_text.setText(self.tr("Restart Application to activate changes")) def update_path(self): @@ -88,7 +82,6 @@ class RareSettings(QGroupBox): old_path = settings.value("img_dir", type=str) new_path = self.select_path.text() - print(old_path, new_path) if old_path != new_path: if not os.path.exists(new_path): os.makedirs(new_path)