Rare settings qscrollarea
This commit is contained in:
parent
62a3d9b609
commit
afb74d4bad
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue