diff --git a/src/vorta/models.py b/src/vorta/models.py index c38c6cab1..a2ff71670 100644 --- a/src/vorta/models.py +++ b/src/vorta/models.py @@ -215,6 +215,14 @@ def get_misc_settings(): 'key': 'previous_profile_id', 'str_value': '1', 'type': 'internal', 'label': 'Previously selected profile' }, + { + 'key': 'previous_window_width', 'str_value': '800', 'type': 'internal', + 'label': 'Previous window width' + }, + { + 'key': 'previous_window_height', 'str_value': '600', 'type': 'internal', + 'label': 'Previous window height' + }, ] if sys.platform == 'darwin': settings += [ diff --git a/src/vorta/views/main_window.py b/src/vorta/views/main_window.py index bb64cda34..bc0d6ab7f 100644 --- a/src/vorta/views/main_window.py +++ b/src/vorta/views/main_window.py @@ -30,6 +30,11 @@ def __init__(self, parent=None): self.app = parent self.setWindowFlags(QtCore.Qt.WindowCloseButtonHint | QtCore.Qt.WindowMinimizeButtonHint) + # Use previous window state + previous_window_width = SettingsModel.get(key='previous_window_width') + previous_window_height = SettingsModel.get(key='previous_window_height') + self.resize(int(previous_window_width.str_value), int(previous_window_height.str_value)) + # Select previously used profile, if available prev_profile_id = SettingsModel.get(key='previous_profile_id') self.current_profile = BackupProfileModel.get_or_none(id=prev_profile_id.str_value) @@ -168,6 +173,14 @@ def backup_cancelled_event(self): self.set_status(self.tr('Task cancelled')) def closeEvent(self, event): + # Save window state in SettingsModel + SettingsModel.update({SettingsModel.str_value: str(self.frameGeometry().width())})\ + .where(SettingsModel.key == 'previous_window_width')\ + .execute() + SettingsModel.update({SettingsModel.str_value: str(self.frameGeometry().height())})\ + .where(SettingsModel.key == 'previous_window_height')\ + .execute() + if not is_system_tray_available(): run_in_background = QMessageBox.question(self, trans_late("MainWindow QMessagebox",