From 4df53d5fd29a76a4941355663ee472f76f5f69e6 Mon Sep 17 00:00:00 2001
From: Vincent Texier <vit@free.fr>
Date: Sat, 31 Jan 2015 23:34:19 +0100
Subject: [PATCH] Informations list separated in three groups

Catch exceptions on network request
---
 src/cutecoin/gui/informations_tab.py | 73 ++++++++++++++++++++++------
 src/cutecoin/models/parameters.py    |  5 --
 2 files changed, 57 insertions(+), 21 deletions(-)

diff --git a/src/cutecoin/gui/informations_tab.py b/src/cutecoin/gui/informations_tab.py
index 2a7cc5af..86fe7789 100644
--- a/src/cutecoin/gui/informations_tab.py
+++ b/src/cutecoin/gui/informations_tab.py
@@ -4,6 +4,7 @@ Created on 2 févr. 2014
 @author: inso
 """
 
+import logging
 from PyQt5.QtWidgets import QWidget, QHeaderView
 from PyQt5.QtCore import Qt
 from ..models.parameters import ParametersModel
@@ -25,18 +26,43 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget):
         self.community = community
         self.account = account
 
-        self.table_currency_informations.HorizontalHeader = QHeaderView(Qt.Orientation(Qt.Horizontal))
-        self.table_currency_informations.HorizontalHeader.setSectionResizeMode(QHeaderView.ResizeToContents)
-        self.table_currency_informations.HorizontalHeader.setStretchLastSection(True)
-        #self.table_currency_informations.HorizontalHeader.setSectionResizeMode(QHeaderView.Stretch)
-        self.table_currency_informations.setHorizontalHeader(self.table_currency_informations.HorizontalHeader)
-        self.table_currency_informations.horizontalHeader().hide()
-        self.table_currency_informations.verticalHeader().hide()
-
-        params = self.community.get_parameters()
-        block = self.community.get_ud_block()
-        infos = [
-            # variables
+        self.table_general.HorizontalHeader = QHeaderView(Qt.Orientation(Qt.Horizontal))
+        #self.table_general.HorizontalHeader.setSectionResizeMode(QHeaderView.ResizeToContents)
+        self.table_general.HorizontalHeader.setStretchLastSection(True)
+        self.table_general.setHorizontalHeader(self.table_general.HorizontalHeader)
+        self.table_general.horizontalHeader().hide()
+        self.table_general.verticalHeader().hide()
+
+        self.table_money.HorizontalHeader = QHeaderView(Qt.Orientation(Qt.Horizontal))
+        #self.table_money.HorizontalHeader.setSectionResizeMode(QHeaderView.ResizeToContents)
+        self.table_money.HorizontalHeader.setStretchLastSection(True)
+        self.table_money.setHorizontalHeader(self.table_money.HorizontalHeader)
+        self.table_money.horizontalHeader().hide()
+        self.table_money.verticalHeader().hide()
+
+        self.table_wot.HorizontalHeader = QHeaderView(Qt.Orientation(Qt.Horizontal))
+        #self.table_wot.HorizontalHeader.setSectionResizeMode(QHeaderView.ResizeToContents)
+        self.table_wot.HorizontalHeader.setStretchLastSection(True)
+        self.table_wot.setHorizontalHeader(self.table_wot.HorizontalHeader)
+        self.table_wot.horizontalHeader().hide()
+        self.table_wot.verticalHeader().hide()
+
+        self.display_tables()
+
+    def display_tables(self):
+        try:
+            params = self.community.get_parameters()
+        except Exception as e:
+            logging.debug('community get_parameters error : ' + str(e))
+            return False
+
+        try:
+            block = self.community.get_ud_block()
+        except Exception as e:
+            logging.debug('community get_ud_block error : ' + str(e))
+            return False
+
+        general = [
             {'name': 'dividend', 'value': block['dividend'],
              'description': 'Universal Dividend UD(t) in currency units'},
             {'name': 'monetaryMass', 'value': block['monetaryMass'],
@@ -47,7 +73,12 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget):
              'description': 'Monetary Mass per member M(t)/N(t) in currency units'},
             {'name': 'actualGrowth',
              'value': "{:2.2%}".format(block['dividend'] / ((block['monetaryMass'] - (block['membersCount'] * block['dividend'])) / block['membersCount'])),
-             'description': 'Actual % Growth (UD(t) / (M(t-1)/Nt))'},
+             'description': 'Actual % Growth (UD(t) / (M(t-1)/Nt))'}
+        ]
+        self.table_general.setModel(ParametersModel(general))
+        update_table_height(self.table_general, len(general))
+
+        money = [
             # money params
             {'name': 'c', 'value': "{:2.0%}".format(params['c']),
              'description': '% growth'},
@@ -64,7 +95,12 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget):
             {'name': 'blocksRot', 'value': params['blocksRot'],
              'description': 'The number of previous blocks to check for personalized difficulty'},
             {'name': 'percentRot', 'value': "{:2.0%}".format(params['percentRot']),
-             'description': 'The percent of previous issuers to reach for personalized difficulty'},
+             'description': 'The percent of previous issuers to reach for personalized difficulty'}
+        ]
+        self.table_money.setModel(ParametersModel(money))
+        update_table_height(self.table_money, len(money))
+
+        wot = [
             # wot params
             {'name': 'sigDelay', 'value': params['sigDelay'] / 86400,
              'description': 'Minimum delay between 2 identical certifications (in days)'},
@@ -79,7 +115,12 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget):
             {'name': 'stepMax', 'value': params['stepMax'],
              'description': 'Maximum distance between each WoT member and a newcomer'},
         ]
-
-        self.table_currency_informations.setModel(ParametersModel(infos))
+        self.table_wot.setModel(ParametersModel(wot))
+        update_table_height(self.table_wot, len(wot))
 
 
+def update_table_height(table, rows):
+    row_height = table.rowHeight(0)
+    table_height = (rows * row_height) + table.horizontalHeader().height() + (2 * table.frameWidth())
+    table.setMinimumHeight(table_height)
+    table.setMaximumHeight(table_height)
diff --git a/src/cutecoin/models/parameters.py b/src/cutecoin/models/parameters.py
index 3003763c..f97e632e 100644
--- a/src/cutecoin/models/parameters.py
+++ b/src/cutecoin/models/parameters.py
@@ -41,11 +41,6 @@ class ParametersModel(QAbstractTableModel):
             font = QFont()
             font.setBold(True)
             return font
-        elif role == Qt.BackgroundColorRole:
-            if index.row() > 12:
-                return QColor("#dddddd")
-            elif index.row() > 4:
-                return QColor("#eeeeee")
         return None
 
     def headerData(self, section, orientation, role=Qt.DisplayRole):
-- 
GitLab