From 8a24774ae64e2294264c062242765b5a70835bbb Mon Sep 17 00:00:00 2001
From: Inso <insomniak.fr@gmail.com>
Date: Thu, 22 Jan 2015 21:05:10 +0100
Subject: [PATCH] Added errors catching when posting important documents

---
 src/cutecoin/core/community.py    | 9 ++++++---
 src/cutecoin/gui/certification.py | 4 ++++
 src/cutecoin/gui/community_tab.py | 9 +++++++++
 src/cutecoin/gui/currency_tab.py  | 1 +
 src/cutecoin/gui/transfer.py      | 4 ++++
 5 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/src/cutecoin/core/community.py b/src/cutecoin/core/community.py
index 3b05d30c..387b0a90 100644
--- a/src/cutecoin/core/community.py
+++ b/src/cutecoin/core/community.py
@@ -57,7 +57,7 @@ class Community(object):
         '''
         self.currency = currency
         self.peers = [p for p in peers if p.currency == currency]
-        self.cache = Cache(self)
+        self._cache = Cache(self)
 
         # After initializing the community from latest peers,
         # we refresh its peers tree
@@ -72,7 +72,7 @@ class Community(object):
         logging.debug("{0} peers found".format(len(self.peers)))
 
         try:
-            self.cache.refresh()
+            self._cache.refresh()
         except NoPeerAvailable:
             pass
 
@@ -164,9 +164,12 @@ class Community(object):
             members.append(m['pubkey'])
         return members
 
+    def refresh_cache(self):
+        self._cache.refresh()
+
     def request(self, request, req_args={}, get_args={}, cached=True):
         if cached:
-            return self.cache.request(request, req_args, get_args)
+            return self._cache.request(request, req_args, get_args)
         else:
             for peer in self.peers.copy():
                 e = next(e for e in peer.endpoints if type(e) is BMAEndpoint)
diff --git a/src/cutecoin/gui/certification.py b/src/cutecoin/gui/certification.py
index 05c61bf0..7ced4776 100644
--- a/src/cutecoin/gui/certification.py
+++ b/src/cutecoin/gui/certification.py
@@ -54,6 +54,10 @@ class CertificationDialog(QDialog, Ui_CertificationDialog):
             QMessageBox.critical(self, "Certification",
                                  "Couldn't connect to network : {0}".format(e),
                                  QMessageBox.Ok)
+        except Exception as e:
+            QMessageBox.critical(self, "Error",
+                                 "{0}".format(e),
+                                 QMessageBox.Ok)
 
         self.accepted.emit()
         self.close()
diff --git a/src/cutecoin/gui/community_tab.py b/src/cutecoin/gui/community_tab.py
index 7e35e148..674b4548 100644
--- a/src/cutecoin/gui/community_tab.py
+++ b/src/cutecoin/gui/community_tab.py
@@ -115,6 +115,10 @@ class CommunityTabWidget(QWidget, Ui_CommunityTabWidget):
             QMessageBox.critical(self, "Network error",
                                  "Couldn't connect to network : {0}".format(e),
                                  QMessageBox.Ok)
+        except Exception as e:
+            QMessageBox.critical(self, "Error",
+                                 "{0}".format(e),
+                                 QMessageBox.Ok)
 
     def send_membership_leaving(self):
         password = self.password_asker.ask()
@@ -132,3 +136,8 @@ class CommunityTabWidget(QWidget, Ui_CommunityTabWidget):
             QMessageBox.critical(self, "Network error",
                                  "Couldn't connect to network : {0}".format(e),
                                  QMessageBox.Ok)
+        except Exception as e:
+            QMessageBox.critical(self, "Error",
+                                 "{0}".format(e),
+                                 QMessageBox.Ok)
+
diff --git a/src/cutecoin/gui/currency_tab.py b/src/cutecoin/gui/currency_tab.py
index 6a626f1a..6e8864b1 100644
--- a/src/cutecoin/gui/currency_tab.py
+++ b/src/cutecoin/gui/currency_tab.py
@@ -37,6 +37,7 @@ class BlockchainWatcher(QObject):
                 blockid = self.community.current_blockid()
                 block_number = blockid['number']
                 if self.last_block != block_number:
+                    self.community.refresh_cache()
                     for w in self.account.wallets:
                         w.refresh_cache(self.community)
 
diff --git a/src/cutecoin/gui/transfer.py b/src/cutecoin/gui/transfer.py
index e95968f6..c00149b7 100644
--- a/src/cutecoin/gui/transfer.py
+++ b/src/cutecoin/gui/transfer.py
@@ -78,6 +78,10 @@ class TransferMoneyDialog(QDialog, Ui_TransferMoneyDialog):
             QMessageBox.critical(self, "Money transfer",
                                  "Couldn't connect to network : {0}".format(e),
                                  QMessageBox.Ok)
+        except Exception as e:
+            QMessageBox.critical(self, "Error",
+                                 "{0}".format(e),
+                                 QMessageBox.Ok)
         self.accepted.emit()
         self.close()
 
-- 
GitLab