From cd39e37f6a4f3352ee44fb3de3a81f7258babeff Mon Sep 17 00:00:00 2001
From: Inso <insomniak.fr@gmail.com>
Date: Fri, 4 Sep 2015 07:04:01 +0200
Subject: [PATCH] Fix bugs with multiple tiles

---
 src/cutecoin/gui/identities_tab.py   | 6 +++++-
 src/cutecoin/gui/mainwindow.py       | 2 ++
 src/cutecoin/gui/network_tab.py      | 4 ++--
 src/cutecoin/gui/transactions_tab.py | 1 +
 src/cutecoin/models/network.py       | 2 ++
 5 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/src/cutecoin/gui/identities_tab.py b/src/cutecoin/gui/identities_tab.py
index f951ae5f..9ae72577 100644
--- a/src/cutecoin/gui/identities_tab.py
+++ b/src/cutecoin/gui/identities_tab.py
@@ -65,9 +65,13 @@ class IdentitiesTabWidget(QWidget, Ui_IdentitiesTab):
             self.community = None
 
     def change_community(self, community):
+        if self.community:
+            self.account.identity(self.community).inner_data_changed.disconnect(self.handle_account_identity_change)
+        if community:
+            self.account.identity(self.community).inner_data_changed.connect(self.handle_account_identity_change)
+
         self.community = community
         self.table_identities.model().change_community(community)
-        self.account.identity(self.community).inner_data_changed.connect(self.handle_account_identity_change)
 
     def identity_context_menu(self, point):
         index = self.table_identities.indexAt(point)
diff --git a/src/cutecoin/gui/mainwindow.py b/src/cutecoin/gui/mainwindow.py
index a978deae..6a15ad97 100644
--- a/src/cutecoin/gui/mainwindow.py
+++ b/src/cutecoin/gui/mainwindow.py
@@ -148,6 +148,8 @@ class MainWindow(QMainWindow, Ui_MainWindow):
                                            self.app.current_account, None,
                                            self.password_asker)
         if dialog.exec_() == QDialog.Accepted:
+            self.app.save(self.app.current_account)
+            dialog.community.start_coroutines()
             self.homescreen.refresh()
 
     def open_transfer_money_dialog(self):
diff --git a/src/cutecoin/gui/network_tab.py b/src/cutecoin/gui/network_tab.py
index 0c0e73c6..0ff9795b 100644
--- a/src/cutecoin/gui/network_tab.py
+++ b/src/cutecoin/gui/network_tab.py
@@ -41,10 +41,10 @@ class NetworkTabWidget(QWidget, Ui_NetworkTabWidget):
         self.table_network.resizeColumnsToContents()
 
     def change_community(self, community):
-        if community:
-            community.network.nodes_changed.connect(self.refresh_nodes)
         if self.community:
             self.community.network.nodes_changed.disconnect(self.refresh_nodes)
+        if community:
+            community.network.nodes_changed.connect(self.refresh_nodes)
 
         self.community = community
         self.table_network.model().change_community(community)
diff --git a/src/cutecoin/gui/transactions_tab.py b/src/cutecoin/gui/transactions_tab.py
index 0009941d..75172311 100644
--- a/src/cutecoin/gui/transactions_tab.py
+++ b/src/cutecoin/gui/transactions_tab.py
@@ -41,6 +41,7 @@ class TransactionsTabWidget(QWidget, Ui_transactionsTabWidget):
             community.inner_data_changed.connect(self.refresh_minimum_maximum)
         self.community = community
         self.refresh()
+        self.stop_progress([])
 
     def refresh_minimum_maximum(self):
         block = self.community.get_block(1)
diff --git a/src/cutecoin/models/network.py b/src/cutecoin/models/network.py
index 6ba11e57..6282af46 100644
--- a/src/cutecoin/models/network.py
+++ b/src/cutecoin/models/network.py
@@ -128,7 +128,9 @@ class NetworkTableModel(QAbstractTableModel):
         }
 
     def change_community(self, community):
+        self.beginResetModel()
         self.community = community
+        self.endResetModel()
 
     @property
     def nodes(self):
-- 
GitLab