From 2f7bd2b2263794af63a0736f826145c8badae52b Mon Sep 17 00:00:00 2001 From: Inso <insomniak.fr@gmail.com> Date: Wed, 2 Sep 2015 19:36:52 +0200 Subject: [PATCH] Connect / Disconnect --- res/ui/homescreen.ui | 42 +++++++----------------------- src/cutecoin/core/app.py | 3 ++- src/cutecoin/gui/homescreen.py | 11 ++++++-- src/cutecoin/gui/identities_tab.py | 9 ++++--- src/cutecoin/gui/mainwindow.py | 10 +++---- src/cutecoin/gui/wallets_tab.py | 2 -- 6 files changed, 31 insertions(+), 46 deletions(-) diff --git a/res/ui/homescreen.ui b/res/ui/homescreen.ui index 8f981fb9..f326a247 100644 --- a/res/ui/homescreen.ui +++ b/res/ui/homescreen.ui @@ -39,25 +39,17 @@ <enum>QLayout::SetMaximumSize</enum> </property> <item> - <widget class="QPushButton" name="pushButton_3"> - <property name="text"> - <string/> - </property> - <property name="icon"> - <iconset> - <normaloff>../icons/iconmonstr-home-icon.svg</normaloff>../icons/iconmonstr-home-icon.svg</iconset> + <widget class="QLabel" name="label_connected"> + <property name="styleSheet"> + <string notr="true"> font-size:12pt; font-weight:600;</string> </property> - </widget> - </item> - <item> - <widget class="QLabel" name="label_4"> <property name="text"> - <string><html><head/><body><p><span style=" font-size:12pt; font-weight:600;">Connected as</span></p></body></html></string> + <string>Connected as</string> </property> </widget> </item> <item> - <widget class="QPushButton" name="pushButton"> + <widget class="QPushButton" name="button_add_community"> <property name="text"> <string>Add a community</string> </property> @@ -74,7 +66,7 @@ </widget> </item> <item> - <widget class="QPushButton" name="pushButton_2"> + <widget class="QPushButton" name="button_disconnect"> <property name="text"> <string>Disconnect</string> </property> @@ -122,30 +114,14 @@ </property> <layout class="QHBoxLayout" name="horizontalLayout_2"> <item> - <spacer name="horizontalSpacer_4"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeType"> - <enum>QSizePolicy::Minimum</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>40</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item> - <widget class="QLabel" name="label_6"> + <widget class="QLabel" name="label_disconnected"> <property name="text"> <string><html><head/><body><p><span style=" font-size:12pt; font-weight:600;">Not Connected</span></p></body></html></string> </property> </widget> </item> <item> - <widget class="QToolButton" name="toolButton"> + <widget class="QToolButton" name="toolbutton_connect"> <property name="text"> <string>Connect</string> </property> @@ -168,7 +144,7 @@ </widget> </item> <item> - <widget class="QToolButton" name="button_new_2"> + <widget class="QToolButton" name="toolbutton_new_account"> <property name="text"> <string>New account</string> </property> diff --git a/src/cutecoin/core/app.py b/src/cutecoin/core/app.py index 625f4a89..5ad77ced 100644 --- a/src/cutecoin/core/app.py +++ b/src/cutecoin/core/app.py @@ -178,7 +178,8 @@ class Application(QObject): self.stop_current_account() self.current_account = account - self.current_account.start_coroutines() + if self.current_account is not None: + self.current_account.start_coroutines() def stop_current_account(self): """ diff --git a/src/cutecoin/gui/homescreen.py b/src/cutecoin/gui/homescreen.py index 864e7f19..0d00fed7 100644 --- a/src/cutecoin/gui/homescreen.py +++ b/src/cutecoin/gui/homescreen.py @@ -4,7 +4,7 @@ Created on 31 janv. 2015 @author: vit """ -from PyQt5.QtWidgets import QWidget, QFrame, QGridLayout, QLayout +from PyQt5.QtWidgets import QWidget, QFrame, QGridLayout, QAction from PyQt5.QtCore import QEvent, Qt, pyqtSlot, pyqtSignal from ..gen_resources.homescreen_uic import Ui_HomescreenWidget from .community_tile import CommunityTile @@ -58,7 +58,14 @@ class HomeScreenWidget(QWidget, Ui_HomescreenWidget): self.layout().addWidget(self.frame_communities) def refresh(self): - self.frame_communities.refresh(self.app) + if self.app.current_account: + self.frame_connected.show() + self.label_connected.setText(self.tr("Connected as {0}".format(self.app.current_account.name))) + self.frame_disconnected.hide() + self.frame_communities.refresh(self.app) + else: + self.frame_disconnected.show() + self.frame_connected.hide() def changeEvent(self, event): """ diff --git a/src/cutecoin/gui/identities_tab.py b/src/cutecoin/gui/identities_tab.py index a5e5e412..991c2aac 100644 --- a/src/cutecoin/gui/identities_tab.py +++ b/src/cutecoin/gui/identities_tab.py @@ -61,9 +61,12 @@ class IdentitiesTabWidget(QWidget, Ui_IdentitiesTab): def change_account(self, account): self.account = account - self.account.membership_broadcasted.connect(self.handle_membership_broadcasted) - self.account.revoke_broadcasted.connect(self.handle_revoke_broadcasted) - self.account.selfcert_broadcasted.connect(self.handle_selfcert_broadcasted) + if self.account is not None: + self.account.membership_broadcasted.connect(self.handle_membership_broadcasted) + self.account.revoke_broadcasted.connect(self.handle_revoke_broadcasted) + self.account.selfcert_broadcasted.connect(self.handle_selfcert_broadcasted) + else: + self.community = None def change_community(self, community): self.community = community diff --git a/src/cutecoin/gui/mainwindow.py b/src/cutecoin/gui/mainwindow.py index d53e4e39..6c9e0187 100644 --- a/src/cutecoin/gui/mainwindow.py +++ b/src/cutecoin/gui/mainwindow.py @@ -67,6 +67,9 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.homescreen = HomeScreenWidget(self.app) self.homescreen.frame_communities.community_tile_clicked.connect(self.change_community) + self.homescreen.toolbutton_new_account.addAction(self.action_add_account) + self.homescreen.toolbutton_new_account.addAction(self.action_import) + self.homescreen.button_disconnect.clicked.connect(lambda :self.action_change_account("")) self.centralWidget().layout().addWidget(self.homescreen) self.community_view = CommunityWidget(self.app, self.status_label) @@ -238,14 +241,11 @@ class MainWindow(QMainWindow, Ui_MainWindow): def refresh_accounts(self): self.menu_change_account.clear() - signal_mapper = QSignalMapper(self) - for account_name in sorted(self.app.accounts.keys()): action = QAction(account_name, self) + action.triggered.connect(lambda checked, account_name=account_name: self.action_change_account(account_name)) self.menu_change_account.addAction(action) - signal_mapper.setMapping(action, account_name) - action.triggered.connect(signal_mapper.map) - signal_mapper.mapped[str].connect(self.action_change_account) + self.homescreen.toolbutton_connect.addAction(action) def refresh_contacts(self): self.menu_contacts_list.clear() diff --git a/src/cutecoin/gui/wallets_tab.py b/src/cutecoin/gui/wallets_tab.py index 425e1c22..a87f080c 100644 --- a/src/cutecoin/gui/wallets_tab.py +++ b/src/cutecoin/gui/wallets_tab.py @@ -39,11 +39,9 @@ class WalletsTabWidget(QWidget, Ui_WalletsTab): def change_account(self, account): self.account = account - self.account.inner_data_changed.connect(self.refresh_informations_frame) def change_community(self, community): self.community = community - self.community.inner_data_changed.connect(self.refresh_informations_frame) def refresh(self): if self.community: -- GitLab