diff --git a/res/ui/preferences.ui b/res/ui/preferences.ui index 942d581dea141158954286712e06582ced288bd7..a6225bc512b842bd025b28c499770254824ebe59 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 6e77c7a7c60447559c9cacf31aa649523744b40a..d7e8e1bee6fb2a4a66e4b34f8f8dff9d129499b5 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 3b099d4659cd6f00af67dc2eb96f3da7bf6e5b0e..0a9f6ff9de5b05a6750e808971868fc516a0fad9 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 363f5a96f95ceddfa4c671882b1716cc7f551741..3280ff29e6a531260ded764ad8f56ec8e2a39f81 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)