Rare settings qscrollarea
This commit is contained in:
parent
62a3d9b609
commit
afb74d4bad
|
@ -2,8 +2,8 @@ import os
|
||||||
import shutil
|
import shutil
|
||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
|
|
||||||
from PyQt5.QtCore import QSettings
|
from PyQt5.QtCore import QSettings, Qt
|
||||||
from PyQt5.QtWidgets import QVBoxLayout, QFileDialog, QComboBox, QPushButton, QCheckBox, QGroupBox
|
from PyQt5.QtWidgets import QVBoxLayout, QFileDialog, QComboBox, QPushButton, QCheckBox, QGroupBox, QScrollArea
|
||||||
|
|
||||||
from rare.components.tabs.settings.settings_widget import SettingsWidget
|
from rare.components.tabs.settings.settings_widget import SettingsWidget
|
||||||
from rare.utils.extra_widgets import PathEdit
|
from rare.utils.extra_widgets import PathEdit
|
||||||
|
@ -18,16 +18,17 @@ languages = [
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
class RareSettings(QGroupBox):
|
class RareSettings(QScrollArea):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super(RareSettings, self).__init__()
|
super(RareSettings, self).__init__()
|
||||||
self.setTitle(self.tr("Rare settings"))
|
self.widget = QGroupBox(self.tr("Rare settings"))
|
||||||
self.setObjectName("group")
|
self.widget.setObjectName("group")
|
||||||
|
self.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded)
|
||||||
|
self.setWidgetResizable(True)
|
||||||
self.layout = QVBoxLayout()
|
self.layout = QVBoxLayout()
|
||||||
settings = QSettings()
|
settings = QSettings()
|
||||||
img_dir = settings.value("img_dir", os.path.expanduser("~/.cache/rare/images/"), type=str)
|
img_dir = settings.value("img_dir", os.path.expanduser("~/.cache/rare/images/"), type=str)
|
||||||
language = settings.value("language", get_lang(), type=str)
|
language = settings.value("language", get_lang(), type=str)
|
||||||
|
|
||||||
# select Image dir
|
# select Image dir
|
||||||
self.select_path = PathEdit(img_dir, type_of_file=QFileDialog.DirectoryOnly)
|
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))
|
self.select_path.text_edit.textChanged.connect(lambda t: self.save_path_button.setDisabled(False))
|
||||||
|
@ -38,10 +39,8 @@ class RareSettings(QGroupBox):
|
||||||
|
|
||||||
# Select lang
|
# Select lang
|
||||||
self.select_lang = QComboBox()
|
self.select_lang = QComboBox()
|
||||||
# languages = ["English", "Deutsch", "Français"]
|
|
||||||
self.select_lang.addItems([i[1] for i in languages])
|
self.select_lang.addItems([i[1] for i in languages])
|
||||||
if language in get_possible_langs():
|
if language in get_possible_langs():
|
||||||
|
|
||||||
index = [lang[0] for lang in languages].index(language)
|
index = [lang[0] for lang in languages].index(language)
|
||||||
self.select_lang.setCurrentIndex(index)
|
self.select_lang.setCurrentIndex(index)
|
||||||
else:
|
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 = 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.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.sys_tray_widget = SettingsWidget(self.tr("Exit to System Tray Icon"), self.exit_to_sys_tray)
|
||||||
self.layout.addWidget(self.sys_tray_widget)
|
self.layout.addWidget(self.sys_tray_widget)
|
||||||
|
|
||||||
self.game_start_accept = QCheckBox(self.tr("Confirm launch of game"))
|
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.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.addWidget(self.game_start_accept_widget)
|
||||||
|
|
||||||
self.layout.addStretch()
|
self.layout.addStretch()
|
||||||
|
self.widget.setLayout(self.layout)
|
||||||
|
self.setWidget(self.widget)
|
||||||
|
|
||||||
self.setLayout(self.layout)
|
def update_checkbox(self, checked, setting_name):
|
||||||
|
|
||||||
def update_sys_tray(self):
|
|
||||||
settings = QSettings()
|
settings = QSettings()
|
||||||
settings.setValue("sys_tray", self.exit_to_sys_tray.isChecked())
|
settings.setValue(setting_name, checked != 0)
|
||||||
|
|
||||||
def update_start_confirm(self):
|
|
||||||
settings = QSettings()
|
|
||||||
settings.setValue("confirm_start", self.game_start_accept.isChecked())
|
|
||||||
|
|
||||||
def save_path(self):
|
def save_path(self):
|
||||||
self.save_path_button.setDisabled(True)
|
self.save_path_button.setDisabled(True)
|
||||||
|
@ -79,8 +74,7 @@ class RareSettings(QGroupBox):
|
||||||
|
|
||||||
def update_lang(self, i: int):
|
def update_lang(self, i: int):
|
||||||
settings = QSettings()
|
settings = QSettings()
|
||||||
|
settings.setValue("language", languages[i][0])
|
||||||
settings.setValue("language", languages[i][1])
|
|
||||||
self.lang_widget.info_text.setText(self.tr("Restart Application to activate changes"))
|
self.lang_widget.info_text.setText(self.tr("Restart Application to activate changes"))
|
||||||
|
|
||||||
def update_path(self):
|
def update_path(self):
|
||||||
|
@ -88,7 +82,6 @@ class RareSettings(QGroupBox):
|
||||||
old_path = settings.value("img_dir", type=str)
|
old_path = settings.value("img_dir", type=str)
|
||||||
new_path = self.select_path.text()
|
new_path = self.select_path.text()
|
||||||
|
|
||||||
print(old_path, new_path)
|
|
||||||
if old_path != new_path:
|
if old_path != new_path:
|
||||||
if not os.path.exists(new_path):
|
if not os.path.exists(new_path):
|
||||||
os.makedirs(new_path)
|
os.makedirs(new_path)
|
||||||
|
|
Loading…
Reference in a new issue