From b35b52f1ccc40f574ee1a4c5bd8bad0fa6629133 Mon Sep 17 00:00:00 2001 From: Inso <insomniak.fr@gmail.com> Date: Tue, 13 Oct 2015 08:44:45 +0200 Subject: [PATCH] Add preferences to disable auto refresh --- res/ui/preferences.ui | 16 +++++++++++++++- src/cutecoin/core/app.py | 3 ++- src/cutecoin/gui/preferences.py | 3 ++- src/cutecoin/gui/wot_tab.py | 19 +++++++++++++++---- 4 files changed, 34 insertions(+), 7 deletions(-) diff --git a/res/ui/preferences.ui b/res/ui/preferences.ui index 942d581d..a6225bc5 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>0</number> + <number>2</number> </property> <widget class="QWidget" name="page"> <layout class="QVBoxLayout" name="verticalLayout_7"> @@ -368,6 +368,20 @@ </property> </widget> </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_11"> + <property name="topMargin"> + <number>6</number> + </property> + <item> + <widget class="QCheckBox" name="checkbox_auto_refresh"> + <property name="text"> + <string>Automatically refresh identities informations</string> + </property> + </widget> + </item> + </layout> + </item> <item> <spacer name="verticalSpacer_3"> <property name="orientation"> diff --git a/src/cutecoin/core/app.py b/src/cutecoin/core/app.py index 6e77c7a7..d7e8e1be 100644 --- a/src/cutecoin/core/app.py +++ b/src/cutecoin/core/app.py @@ -67,7 +67,8 @@ class Application(QObject): 'proxy_type': "HTTP", 'proxy_address': "", 'proxy_port': 8080, - 'international_system_of_units': True + 'international_system_of_units': True, + 'auto_refresh': False } self.notifications = {'membership_expire_soon': diff --git a/src/cutecoin/gui/preferences.py b/src/cutecoin/gui/preferences.py index 3b099d46..0a9f6ff9 100644 --- a/src/cutecoin/gui/preferences.py +++ b/src/cutecoin/gui/preferences.py @@ -70,7 +70,8 @@ class PreferencesDialog(QDialog, Ui_PreferencesDialog): 'enable_proxy': self.checkbox_proxy.isChecked(), 'proxy_address': self.edit_proxy_address.text(), 'proxy_port': self.spinbox_proxy_port.value(), - 'international_system_of_units': self.checkbox_international_system.isChecked()} + 'international_system_of_units': self.checkbox_international_system.isChecked(), + 'auto_refresh': self.checkbox_auto_refresh.isChecked()} self.app.save_preferences(pref) # change UI translation self.app.switch_language() diff --git a/src/cutecoin/gui/wot_tab.py b/src/cutecoin/gui/wot_tab.py index 363f5a96..3280ff29 100644 --- a/src/cutecoin/gui/wot_tab.py +++ b/src/cutecoin/gui/wot_tab.py @@ -73,13 +73,23 @@ class WotTabWidget(QWidget, Ui_WotTabWidget): self.password_asker = password_asker def change_community(self, community): - if self.community: - self.community.network.new_block_mined.disconnect(self.refresh) - if community: - community.network.new_block_mined.connect(self.refresh) + self._auto_refresh(community) self.community = community self.reset() + def _auto_refresh(self, new_community): + if self.community: + try: + self.community.network.new_block_mined.disconnect(self.refresh) + except ValueError as e: + if "disconnect" in str(e): + logging.debug("new block mined not connected") + if self.app.preferences["auto_refresh"]: + if new_community: + new_community.network.new_block_mined.connect(self.refresh) + elif self.community: + self.community.network.new_block_mined.connect(self.refresh) + @once_at_a_time @asyncify @asyncio.coroutine @@ -348,5 +358,6 @@ class WotTabWidget(QWidget, Ui_WotTabWidget): """ if event.type() == QEvent.LanguageChange: self.retranslateUi(self) + self._auto_refresh(None) self.refresh() return super(WotTabWidget, self).changeEvent(event) -- GitLab