diff --git a/res/ui/preferences.ui b/res/ui/preferences.ui index 004f3c29f699b4623a3d08009188750de9fe0090..a00cfadfb47d845d9a426cfc29abb2d80652a4c7 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 13913356bced7b3a85a91ff4fc5056d0e84c8dc8..7a18d2ec4afc455502f21be86b273396092da6c3 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 d6e991b13d544d3252357b7ea0cf1928908ec585..a9c5f5e2dda5e0ccbcba65583cf6650504b74ab8 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 8f01452b881f05136f60a5125b22eecc58615db0..6a1e5320c10122ca0d799890c7ebc98e617c5c41 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 6b1fa199c083bcd5a6ff7fafd58141ae24080fbc..3f17978b75be8d0e19ffc97fa8e205386abdb974 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()