From fd08616fedf1d271dad109acdc0118ef984242bf Mon Sep 17 00:00:00 2001 From: Inso <insomniak.fr@gmail.com> Date: Sun, 5 Jul 2015 17:25:17 +0200 Subject: [PATCH] Handling new preferences --- res/ui/preferences.ui | 76 +++++++++++++++++++-------------- src/cutecoin/core/app.py | 8 +++- src/cutecoin/gui/mainwindow.py | 4 ++ src/cutecoin/gui/preferences.py | 10 ++++- src/cutecoin/main.py | 1 - 5 files changed, 64 insertions(+), 35 deletions(-) diff --git a/res/ui/preferences.ui b/res/ui/preferences.ui index 004f3c29..a00cfadf 100644 --- a/res/ui/preferences.ui +++ b/res/ui/preferences.ui @@ -96,7 +96,7 @@ <item> <widget class="QStackedWidget" name="stackedWidget"> <property name="currentIndex"> - <number>1</number> + <number>0</number> </property> <widget class="QWidget" name="page"> <layout class="QVBoxLayout" name="verticalLayout_7"> @@ -131,6 +131,13 @@ </item> </layout> </item> + <item> + <widget class="Line" name="line_2"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + </item> <item> <layout class="QHBoxLayout" name="horizontalLayout_4"> <item> @@ -147,9 +154,9 @@ </spacer> </item> <item> - <widget class="QCheckBox" name="checkBox"> + <widget class="QCheckBox" name="checkbox_expertmode"> <property name="text"> - <string>Expert mode</string> + <string>Enable expert mode</string> </property> </widget> </item> @@ -171,46 +178,22 @@ </layout> <zorder></zorder> <zorder></zorder> - <zorder></zorder> <zorder>verticalSpacer</zorder> + <zorder>line_2</zorder> </widget> <widget class="QWidget" name="page_2"> <layout class="QVBoxLayout" name="verticalLayout_2"> - <item> - <layout class="QHBoxLayout" name="horizontalLayout_5"> - <item> - <spacer name="horizontalSpacer_2"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QCheckBox" name="checkBox_2"> - <property name="text"> - <string>Maximize Window at Startup</string> - </property> - </widget> - </item> - </layout> - </item> <item> <layout class="QHBoxLayout" name="horizontalLayout_6"> <item> <widget class="QLabel" name="label_4"> <property name="text"> - <string>Numbers after commas </string> + <string>Digits after commas </string> </property> </widget> </item> <item> - <widget class="QSpinBox" name="spinBox"/> + <widget class="QSpinBox" name="spinbox_digits_comma"/> </item> </layout> </item> @@ -228,6 +211,37 @@ </item> </layout> </item> + <item> + <widget class="Line" name="line_3"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_5"> + <item> + <spacer name="horizontalSpacer_2"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + <item> + <widget class="QCheckBox" name="checkbox_maximize"> + <property name="text"> + <string>Maximize Window at Startup</string> + </property> + </widget> + </item> + </layout> + </item> <item> <spacer name="verticalSpacer_2"> <property name="orientation"> @@ -244,8 +258,8 @@ </layout> <zorder></zorder> <zorder></zorder> - <zorder></zorder> <zorder>verticalSpacer_2</zorder> + <zorder>line_3</zorder> </widget> <widget class="QWidget" name="page_3"/> </widget> diff --git a/src/cutecoin/core/app.py b/src/cutecoin/core/app.py index 13913356..7a18d2ec 100644 --- a/src/cutecoin/core/app.py +++ b/src/cutecoin/core/app.py @@ -51,7 +51,10 @@ class Application(QObject): self._network_manager = network_manager self.preferences = {'account': "", 'lang': 'en_GB', - 'ref': 0 + 'ref': 0, + 'expert_mode': False, + 'digits_after_comma': 8, + 'maximized': False } @classmethod @@ -268,7 +271,8 @@ class Application(QObject): 'preferences') with open(preferences_path, 'r') as json_data: data = json.load(json_data) - self.preferences = data + for key in data: + self.preferences[key] = data[key] except FileNotFoundError: pass diff --git a/src/cutecoin/gui/mainwindow.py b/src/cutecoin/gui/mainwindow.py index d6e991b1..a9c5f5e2 100644 --- a/src/cutecoin/gui/mainwindow.py +++ b/src/cutecoin/gui/mainwindow.py @@ -74,6 +74,10 @@ class MainWindow(QMainWindow, Ui_MainWindow): def startup(self): self.update_time() self.app.get_last_version() + if self.app.preferences['maximized']: + self.showMaximized() + else: + self.show() self.refresh() def open_add_account_dialog(self): diff --git a/src/cutecoin/gui/preferences.py b/src/cutecoin/gui/preferences.py index 8f01452b..6a1e5320 100644 --- a/src/cutecoin/gui/preferences.py +++ b/src/cutecoin/gui/preferences.py @@ -38,6 +38,11 @@ class PreferencesDialog(QDialog, Ui_PreferencesDialog): for lang in ('en_GB', 'fr_FR'): self.combo_language.addItem(lang) self.combo_language.setCurrentText(self.app.preferences['lang']) + self.checkbox_expertmode.setChecked(self.app.preferences['expert_mode']) + self.checkbox_maximize.setChecked(self.app.preferences['maximized']) + self.spinbox_digits_comma.setValue(self.app.preferences['digits_after_comma']) + self.spinbox_digits_comma.setMaximum(12) + self.spinbox_digits_comma.setMinimum(1) self.button_app.clicked.connect(lambda: self.stackedWidget.setCurrentIndex(0)) self.button_display.clicked.connect(lambda: self.stackedWidget.setCurrentIndex(1)) self.button_network.clicked.connect(lambda: self.stackedWidget.setCurrentIndex(2)) @@ -45,7 +50,10 @@ class PreferencesDialog(QDialog, Ui_PreferencesDialog): def accept(self): pref = {'account': self.combo_account.currentText(), 'lang': self.combo_language.currentText(), - 'ref': self.combo_referential.currentIndex()} + 'ref': self.combo_referential.currentIndex(), + 'expert_mode': self.checkbox_expertmode.isChecked(), + 'maximized': self.checkbox_maximize.isChecked(), + 'digits_after_comma': self.spinbox_digits_comma.value()} self.app.save_preferences(pref) toast.display(self.tr("Preferences"), self.tr("A restart is needed to apply your new preferences.")) diff --git a/src/cutecoin/main.py b/src/cutecoin/main.py index 6b1fa199..3f17978b 100755 --- a/src/cutecoin/main.py +++ b/src/cutecoin/main.py @@ -26,6 +26,5 @@ if __name__ == '__main__': app = Application.startup(sys.argv, cutecoin, loop) window = MainWindow(app) window.startup() - window.showMaximized() loop.run_forever() sys.exit() -- GitLab