Save window size
This commit is contained in:
parent
6bf11b5d2d
commit
e67629e8f8
4 changed files with 40 additions and 26 deletions
|
@ -8,17 +8,29 @@ from rare.components.tab_widget import TabWidget
|
||||||
class MainWindow(QMainWindow):
|
class MainWindow(QMainWindow):
|
||||||
def __init__(self, core):
|
def __init__(self, core):
|
||||||
super(MainWindow, self).__init__()
|
super(MainWindow, self).__init__()
|
||||||
self.setGeometry(0, 0, 1200, 800)
|
settings = QSettings()
|
||||||
|
width, height = 1200, 800
|
||||||
|
if settings.value("save_size", False):
|
||||||
|
width, height = settings.value("window_size", (1200, 800), tuple)
|
||||||
|
|
||||||
|
self.setGeometry(0, 0, width, height)
|
||||||
self.setWindowTitle("Rare - GUI for legendary")
|
self.setWindowTitle("Rare - GUI for legendary")
|
||||||
self.tab_widget = TabWidget(core)
|
self.tab_widget = TabWidget(core)
|
||||||
self.setCentralWidget(self.tab_widget)
|
self.setCentralWidget(self.tab_widget)
|
||||||
self.show()
|
self.show()
|
||||||
|
|
||||||
def closeEvent(self, e: QCloseEvent):
|
def closeEvent(self, e: QCloseEvent):
|
||||||
if QSettings().value("sys_tray", True, bool):
|
settings = QSettings()
|
||||||
|
if settings.value("sys_tray", True, bool):
|
||||||
self.hide()
|
self.hide()
|
||||||
e.ignore()
|
e.ignore()
|
||||||
elif self.tab_widget.downloadTab.active_game is not None and QMessageBox.question(self, "Close", self.tr("There is a download active. Do you really want to exit app?"), QMessageBox.Yes, QMessageBox.No) == QMessageBox.Yes:
|
return
|
||||||
e.accept()
|
elif self.tab_widget.downloadTab.active_game is not None:
|
||||||
else:
|
if not QMessageBox.question(self, "Close", self.tr("There is a download active. Do you really want to exit app?"), QMessageBox.Yes, QMessageBox.No) == QMessageBox.Yes:
|
||||||
e.accept()
|
e.ignore()
|
||||||
|
return
|
||||||
|
if settings.value("save_size", False, bool):
|
||||||
|
size = self.size().width(), self.size().height()
|
||||||
|
settings.setValue("window_size", size)
|
||||||
|
e.accept()
|
||||||
|
|
||||||
|
|
|
@ -56,9 +56,9 @@ class GameInfo(QScrollArea):
|
||||||
self.layout = QVBoxLayout()
|
self.layout = QVBoxLayout()
|
||||||
self.setWidgetResizable(True)
|
self.setWidgetResizable(True)
|
||||||
|
|
||||||
# TODO More Information: Image text settings needs_verification platform
|
|
||||||
top_layout = QHBoxLayout()
|
top_layout = QHBoxLayout()
|
||||||
|
|
||||||
|
# No Game at start. Game is set when clicked info
|
||||||
self.image = QLabel()
|
self.image = QLabel()
|
||||||
top_layout.addWidget(self.image)
|
top_layout.addWidget(self.image)
|
||||||
|
|
||||||
|
|
|
@ -26,9 +26,9 @@ class RareSettings(QScrollArea):
|
||||||
self.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded)
|
self.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded)
|
||||||
self.setWidgetResizable(True)
|
self.setWidgetResizable(True)
|
||||||
self.layout = QVBoxLayout()
|
self.layout = QVBoxLayout()
|
||||||
settings = QSettings()
|
self.settings = QSettings()
|
||||||
img_dir = settings.value("img_dir", os.path.expanduser("~/.cache/rare/images/"), type=str)
|
img_dir = self.settings.value("img_dir", os.path.expanduser("~/.cache/rare/images/"), type=str)
|
||||||
language = settings.value("language", get_lang(), type=str)
|
language = self.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))
|
||||||
|
@ -50,43 +50,48 @@ class RareSettings(QScrollArea):
|
||||||
self.layout.addWidget(self.lang_widget)
|
self.layout.addWidget(self.lang_widget)
|
||||||
|
|
||||||
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(self.settings.value("sys_tray", True, bool))
|
||||||
self.exit_to_sys_tray.stateChanged.connect(lambda x: self.update_checkbox(x, "sys_tray"))
|
self.exit_to_sys_tray.stateChanged.connect(lambda: self.settings.setValue("sys_tray", self.exit_to_sys_tray.isChecked()))
|
||||||
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(lambda x: self.update_checkbox(x, "confirm_start"))
|
self.game_start_accept.stateChanged.connect(lambda x: self.settings.setValue("confirm_start", self.game_start_accept.isChecked()))
|
||||||
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.cloud_sync = QCheckBox("Sync with cloud")
|
self.cloud_sync = QCheckBox(self.tr("Sync with cloud"))
|
||||||
self.cloud_sync.setChecked(settings.value("auto_sync_cloud", True, bool))
|
self.cloud_sync.setChecked(self.settings.value("auto_sync_cloud", True, bool))
|
||||||
self.cloud_sync_widget = SettingsWidget(self.tr("Auto sync with cloud"), self.cloud_sync)
|
self.cloud_sync_widget = SettingsWidget(self.tr("Auto sync with cloud"), self.cloud_sync)
|
||||||
self.layout.addWidget(self.cloud_sync_widget)
|
self.layout.addWidget(self.cloud_sync_widget)
|
||||||
self.cloud_sync.stateChanged.connect(lambda: self.settings.setValue(f"auto_sync_cloud",
|
self.cloud_sync.stateChanged.connect(lambda: self.settings.setValue(f"auto_sync_cloud",
|
||||||
self.cloud_sync.isChecked()))
|
self.cloud_sync.isChecked()))
|
||||||
|
|
||||||
|
self.save_size = QCheckBox(self.tr("Save size"))
|
||||||
|
self.save_size.setChecked(self.settings.value("save_size", False, bool))
|
||||||
|
self.save_size_widget = SettingsWidget(self.tr("Save size of window after restart"), self.save_size)
|
||||||
|
self.layout.addWidget(self.save_size_widget)
|
||||||
|
self.save_size.stateChanged.connect(self.save_window_size)
|
||||||
|
self.layout.addWidget(self.save_size_widget)
|
||||||
|
|
||||||
self.layout.addStretch()
|
self.layout.addStretch()
|
||||||
self.widget.setLayout(self.layout)
|
self.widget.setLayout(self.layout)
|
||||||
self.setWidget(self.widget)
|
self.setWidget(self.widget)
|
||||||
|
|
||||||
def update_checkbox(self, checked, setting_name):
|
def save_window_size(self):
|
||||||
settings = QSettings()
|
self.settings.setValue("save_size", self.save_size.isChecked())
|
||||||
settings.setValue(setting_name, checked != 0)
|
self.settings.remove("window_size")
|
||||||
|
|
||||||
def save_path(self):
|
def save_path(self):
|
||||||
self.save_path_button.setDisabled(True)
|
self.save_path_button.setDisabled(True)
|
||||||
self.update_path()
|
self.update_path()
|
||||||
|
|
||||||
def update_lang(self, i: int):
|
def update_lang(self, i: int):
|
||||||
settings = QSettings()
|
self.settings.setValue("language", languages[i][0])
|
||||||
settings.setValue("language", languages[i][0])
|
|
||||||
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):
|
||||||
settings = QSettings()
|
old_path = self.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()
|
||||||
|
|
||||||
if old_path != new_path:
|
if old_path != new_path:
|
||||||
|
@ -99,4 +104,4 @@ class RareSettings(QScrollArea):
|
||||||
for i in os.listdir(old_path):
|
for i in os.listdir(old_path):
|
||||||
shutil.move(os.path.join(old_path, i), os.path.join(new_path, i))
|
shutil.move(os.path.join(old_path, i), os.path.join(new_path, i))
|
||||||
os.rmdir(old_path)
|
os.rmdir(old_path)
|
||||||
settings.setValue("img_dir", new_path)
|
self.settings.setValue("img_dir", new_path)
|
||||||
|
|
|
@ -5,9 +5,6 @@ class SettingsWidget(QGroupBox):
|
||||||
def __init__(self, text: str, widget: QWidget, accept_button: QPushButton = None):
|
def __init__(self, text: str, widget: QWidget, accept_button: QPushButton = None):
|
||||||
super(SettingsWidget, self).__init__()
|
super(SettingsWidget, self).__init__()
|
||||||
self.setObjectName("settings_widget")
|
self.setObjectName("settings_widget")
|
||||||
self.setStyleSheet("""QGroupBox{border: 1px solid gray;
|
|
||||||
border-radius: 3px;
|
|
||||||
margin-top: 1ex;}""")
|
|
||||||
self.layout = QVBoxLayout()
|
self.layout = QVBoxLayout()
|
||||||
self.info_text = QLabel("")
|
self.info_text = QLabel("")
|
||||||
self.setTitle(text)
|
self.setTitle(text)
|
||||||
|
|
Loading…
Reference in a new issue