diff --git a/src/cutecoin/core/app.py b/src/cutecoin/core/app.py index 7a18d2ec4afc455502f21be86b273396092da6c3..dae6046b05f112a4a9e691fcefa1f4a156b533ae 100644 --- a/src/cutecoin/core/app.py +++ b/src/cutecoin/core/app.py @@ -53,7 +53,7 @@ class Application(QObject): 'lang': 'en_GB', 'ref': 0, 'expert_mode': False, - 'digits_after_comma': 8, + 'digits_after_comma': 6, 'maximized': False } diff --git a/src/cutecoin/core/net/api/bma/access.py b/src/cutecoin/core/net/api/bma/access.py index 6975c69efa05b90236f9b1ec78bd682bd1c8c365..02125a74f72607eb2be380000cd1d894fb438ce6 100644 --- a/src/cutecoin/core/net/api/bma/access.py +++ b/src/cutecoin/core/net/api/bma/access.py @@ -252,9 +252,7 @@ class BmaAccess(QObject): nodes = self._network.synced_nodes if len(nodes) > 0: node = random.choice(nodes) - server = node.endpoint.conn_handler().server - port = node.endpoint.conn_handler().port - conn_handler = ConnectionHandler(self._network.network_manager, server, port) + conn_handler = node.endpoint.conn_handler(self._network.network_manager) req = request(conn_handler, **req_args) reply = req.get(**get_args) reply.finished.connect(lambda: handle_future_reply(reply)) @@ -300,9 +298,7 @@ class BmaAccess(QObject): replies = [] for node in nodes: logging.debug("Trying to connect to : " + node.pubkey) - server = node.endpoint.conn_handler().server - port = node.endpoint.conn_handler().port - conn_handler = ConnectionHandler(self._network.network_manager, server, port) + conn_handler = node.endpoint.conn_handler(self._network.network_manager) req = request(conn_handler, **req_args) reply = req.post(**post_args) replies.append(reply) diff --git a/src/cutecoin/core/net/node.py b/src/cutecoin/core/net/node.py index 4cfec79bd0099d39467ce313ce12f53252869150..80ff1a3aad56f693030a9cdbc822e084aa875f57 100644 --- a/src/cutecoin/core/net/node.py +++ b/src/cutecoin/core/net/node.py @@ -421,7 +421,7 @@ class Node(QObject): leaves = [leaf for leaf in peers_data['leaves'] if leaf not in self._last_merkle['leaves']] for leaf_hash in leaves: - conn_handler = ConnectionHandler(self.network_manager) + conn_handler = self.endpoint.conn_handler(self.network_manager) leaf_reply = qtbma.network.peering.Peers(conn_handler).get(leaf=leaf_hash) leaf_reply.finished.connect(self.handle_leaf_reply) self._last_merkle = {'root' : peers_data['root'], diff --git a/src/cutecoin/gui/currency_tab.py b/src/cutecoin/gui/currency_tab.py index 258f37b59c3cb6bc01a509ddbbb1ea0320920d07..8f62ea386f51f311cf5f5215161fa80c6a8bab59 100644 --- a/src/cutecoin/gui/currency_tab.py +++ b/src/cutecoin/gui/currency_tab.py @@ -63,7 +63,7 @@ class CurrencyTabWidget(QWidget, Ui_CurrencyTabWidget): self.password_asker, self) - self.tab_informations = InformationsTabWidget(self.app.current_account, + self.tab_informations = InformationsTabWidget(self.app, self.community) self.tab_network = NetworkTabWidget(self.app, diff --git a/src/cutecoin/gui/informations_tab.py b/src/cutecoin/gui/informations_tab.py index 039c3c0c2259342134c88ac8e4b3a37379cba310..163306776dbc6bea73e8677e7512fc0de85d2dad 100644 --- a/src/cutecoin/gui/informations_tab.py +++ b/src/cutecoin/gui/informations_tab.py @@ -16,18 +16,26 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget): classdocs """ - def __init__(self, account, community): + def __init__(self, app, community): """ - Constructor + Constructor of the InformationsTabWidget + + :param app: cutecoin.core.Application + :param community: cutecoin.core.Community + :return: """ super().__init__() - self.setupUi(self) + self.app = app self.community = community self.community.inner_data_changed.connect(self.refresh) - self.account = account + self.setupUi(self) self.refresh() + @property + def account(self): + return self.app.current_account + def refresh(self): # Â try to request money parameters try: @@ -88,7 +96,7 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget): ) else: # display float values - localized_ud = QLocale().toString(ud, 'f', 6) + localized_ud = QLocale().toString(ud, 'f', self.app.preferences['digits_after_comma']) # display float values localized_ud_plus_1 = QLocale().toString( float( @@ -97,25 +105,25 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget): ) ), 'f', - 6 + self.app.preferences['digits_after_comma'] ) localized_mass = QLocale().toString( - float(self.get_referential_diff_value(block_ud['monetaryMass'])), 'f', 6 + float(self.get_referential_diff_value(block_ud['monetaryMass'])), 'f', self.app.preferences['digits_after_comma'] ) if block_ud_minus_1: localized_mass_minus_1_per_member = QLocale().toString( self.get_referential_diff_value(float(0) if block_ud['membersCount'] == 0 else - block_ud_minus_1['monetaryMass'] / block_ud['membersCount']), 'f', 6 + block_ud_minus_1['monetaryMass'] / block_ud['membersCount']), 'f', self.app.preferences['digits_after_comma'] ) localized_mass_minus_1 = QLocale().toString( - self.get_referential_diff_value(block_ud_minus_1['monetaryMass']), 'f', 6 + self.get_referential_diff_value(block_ud_minus_1['monetaryMass']), 'f', self.app.preferences['digits_after_comma'] ) else: localized_mass_minus_1_per_member = QLocale().toString( - float(0), 'f', 6 + float(0), 'f', self.app.preferences['digits_after_comma'] ) localized_mass_minus_1 = QLocale().toString( - float(0), 'f', 6 + float(0), 'f', self.app.preferences['digits_after_comma'] ) # set infos in label diff --git a/src/cutecoin/gui/transactions_tab.py b/src/cutecoin/gui/transactions_tab.py index 5191a5c6d7cfde024569f4417f7770cb0332375d..777274f902152f0ccf522e839a9da3191de25457 100644 --- a/src/cutecoin/gui/transactions_tab.py +++ b/src/cutecoin/gui/transactions_tab.py @@ -55,11 +55,12 @@ class TransactionsTabWidget(QWidget, Ui_transactionsTabWidget): self.date_to.setMaximumDateTime(tomorrow_datetime) def refresh(self): + #TODO: Use resetmodel instead of destroy/create self.refresh_minimum_maximum() ts_from = self.date_from.dateTime().toTime_t() ts_to = self.date_to.dateTime().toTime_t() - model = HistoryTableModel(self.app.current_account, self.community) + model = HistoryTableModel(self.app, self.community) proxy = TxFilterProxyModel(ts_from, ts_to) proxy.setSourceModel(model) proxy.setDynamicSortFilter(True) diff --git a/src/cutecoin/gui/wallets_tab.py b/src/cutecoin/gui/wallets_tab.py index b386a743e435da984f48e5f3b35dafdf5455366b..b9136e9e9be7fed427d39cd2180196c3ecdab34c 100644 --- a/src/cutecoin/gui/wallets_tab.py +++ b/src/cutecoin/gui/wallets_tab.py @@ -47,7 +47,8 @@ class WalletsTabWidget(QWidget, Ui_WalletsTab): self.refresh_wallets() def refresh_wallets(self): - wallets_model = WalletsTableModel(self.account, self.community) + #TODO: Using reset model instead of destroy/create + wallets_model = WalletsTableModel(self.app, self.community) proxy_model = WalletsFilterProxyModel() proxy_model.setSourceModel(wallets_model) wallets_model.dataChanged.connect(self.wallet_changed) @@ -122,9 +123,12 @@ class WalletsTabWidget(QWidget, Ui_WalletsTab): localized_maximum = QLocale().toString(float(self.get_referential_value(maximum)), 'f', 0) else: # display float values - localized_amount = QLocale().toString(float(self.get_referential_value(amount)), 'f', 6) - localized_minimum = QLocale().toString(float(self.get_referential_value(0)), 'f', 6) - localized_maximum = QLocale().toString(float(self.get_referential_value(maximum)), 'f', 6) + localized_amount = QLocale().toString(float(self.get_referential_value(amount)), 'f', + self.app.preferences['digits_after_comma']) + localized_minimum = QLocale().toString(float(self.get_referential_value(0)), 'f', + self.app.preferences['digits_after_comma']) + localized_maximum = QLocale().toString(float(self.get_referential_value(maximum)), 'f', + self.app.preferences['digits_after_comma']) # set infos in label self.label_balance.setText( diff --git a/src/cutecoin/models/txhistory.py b/src/cutecoin/models/txhistory.py index e521933691fb44dc4aec6995092575b0ffddff0e..a23f9decd123b4c87abaedceda369ca13ec89e43 100644 --- a/src/cutecoin/models/txhistory.py +++ b/src/cutecoin/models/txhistory.py @@ -17,12 +17,16 @@ class TxFilterProxyModel(QSortFilterProxyModel): def __init__(self, ts_from, ts_to, parent=None): super().__init__(parent) self.community = None - self.account = None + self.app = None self.ts_from = ts_from self.ts_to = ts_to self.payments = 0 self.deposits = 0 + @property + def account(self): + return self.app.current_account + def set_period(self, ts_from, ts_to): """ Filter table by given timestamps @@ -66,7 +70,7 @@ class TxFilterProxyModel(QSortFilterProxyModel): def setSourceModel(self, sourceModel): self.community = sourceModel.community - self.account = sourceModel.account + self.app = sourceModel.app super().setSourceModel(sourceModel) def lessThan(self, left, right): @@ -115,7 +119,7 @@ class TxFilterProxyModel(QSortFilterProxyModel): return QLocale().toString(float(amount_ref), 'f', 0) else: # display float values - return QLocale().toString(amount_ref, 'f', 6) + return QLocale().toString(amount_ref, 'f', self.app.preferences['digits_after_comma']) if role == Qt.FontRole: font = QFont() @@ -154,12 +158,12 @@ class HistoryTableModel(QAbstractTableModel): A Qt abstract item model to display communities in a tree """ - def __init__(self, account, community, parent=None): + def __init__(self, app, community, parent=None): """ Constructor """ super().__init__(parent) - self.account = account + self.app = app self.community = community self.account.referential self.transfers_data = [] @@ -187,6 +191,10 @@ class HistoryTableModel(QAbstractTableModel): 'Pubkey' ) + @property + def account(self): + return self.app.current_account + @property def transfers(self): return self.account.transfers(self.community) + self.account.dividends(self.community) diff --git a/src/cutecoin/models/wallets.py b/src/cutecoin/models/wallets.py index 1d4f1cad813aac12e9677b57dfdecec638bd90ff..8e78251579e23c9dbe0c56baf77fd632915638dc 100644 --- a/src/cutecoin/models/wallets.py +++ b/src/cutecoin/models/wallets.py @@ -11,14 +11,18 @@ class WalletsFilterProxyModel(QSortFilterProxyModel): def __init__(self, parent=None): super().__init__(parent) self.community = None - self.account = None + self.app = None + + @property + def account(self): + return self.app.current_account def columnCount(self, parent): return self.sourceModel().columnCount(None) def setSourceModel(self, source_model): self.community = source_model.community - self.account = source_model.account + self.app = source_model.app super().setSourceModel(source_model) def lessThan(self, left, right): @@ -45,7 +49,8 @@ class WalletsFilterProxyModel(QSortFilterProxyModel): return QLocale().toString(float(amount_ref), 'f', 0) else: # display float values - return QLocale().toString(amount_ref, 'f', 6) + return QLocale().toString(amount_ref, 'f', + self.app.preferences['digits_after_comma']) if role == Qt.TextAlignmentRole: if source_index.column() == self.sourceModel().columns_types.index('amount'): @@ -60,7 +65,7 @@ class WalletsTableModel(QAbstractTableModel): A Qt list model to display wallets and edit their names """ - def __init__(self, account, community, parent=None): + def __init__(self, app, community, parent=None): """ :param list of cutecoin.core.wallet.Wallet wallets: The list of wallets to display @@ -70,7 +75,7 @@ class WalletsTableModel(QAbstractTableModel): :rtype: WalletsTableModel """ super().__init__(parent) - self.account = account + self.app = app self.account.wallets_changed.connect(self.refresh_account_wallets) self.community = community @@ -79,6 +84,10 @@ class WalletsTableModel(QAbstractTableModel): self.tr('Pubkey')) self.columns_types = ('name', 'amount', 'pubkey') + @property + def account(self): + return self.app.current_account + @property def wallets(self): return self.account.wallets