From 894a56c4703bc3ba37223de050ed3df6b3487fa5 Mon Sep 17 00:00:00 2001 From: Inso <insomniak.fr@gmail.com> Date: Thu, 17 Sep 2015 20:37:09 +0200 Subject: [PATCH] Fix bug in refresh when multiple calls of the coroutines --- src/cutecoin/models/identities.py | 6 +++--- src/cutecoin/models/network.py | 8 ++++---- src/cutecoin/models/txhistory.py | 4 +++- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/cutecoin/models/identities.py b/src/cutecoin/models/identities.py index 54567a0f..9a361b07 100644 --- a/src/cutecoin/models/identities.py +++ b/src/cutecoin/models/identities.py @@ -129,11 +129,10 @@ class IdentitiesTableModel(QAbstractTableModel): logging.debug("Refresh {0} identities".format(len(identities))) self.beginResetModel() self.identities_data = [] - self.endResetModel() - self.beginResetModel() + identities_data = [] for identity in identities: data = yield from self.identity_data(identity) - self.identities_data.append(data) + identities_data.append(data) if len(identities) > 0: try: parameters = yield from self.community.parameters() @@ -141,6 +140,7 @@ class IdentitiesTableModel(QAbstractTableModel): except NoPeerAvailable as e: logging.debug(str(e)) self._sig_validity = 0 + self.identities_data = identities_data self.endResetModel() def rowCount(self, parent): diff --git a/src/cutecoin/models/network.py b/src/cutecoin/models/network.py index af360c5a..8c33d71b 100644 --- a/src/cutecoin/models/network.py +++ b/src/cutecoin/models/network.py @@ -11,7 +11,7 @@ from PyQt5.QtCore import QAbstractTableModel, Qt, QVariant, QSortFilterProxyMode from PyQt5.QtGui import QColor, QFont from ..tools.exceptions import NoPeerAvailable -from ..tools.decorators import asyncify +from ..tools.decorators import asyncify, once_at_a_time from cutecoin.core.net.node import Node @@ -178,12 +178,12 @@ class NetworkTableModel(QAbstractTableModel): def refresh_nodes(self): self.beginResetModel() self.nodes_data = [] - self.endResetModel() - self.beginResetModel() + nodes_data = [] if self.community: for node in self.community.network.nodes: data = yield from self.data_node(node) - self.nodes_data.append(data) + nodes_data.append(data) + self.nodes_data = nodes_data self.endResetModel() def rowCount(self, parent): diff --git a/src/cutecoin/models/txhistory.py b/src/cutecoin/models/txhistory.py index 4d9dfe64..ac0af804 100644 --- a/src/cutecoin/models/txhistory.py +++ b/src/cutecoin/models/txhistory.py @@ -289,6 +289,7 @@ class HistoryTableModel(QAbstractTableModel): def refresh_transfers(self): self.beginResetModel() self.transfers_data = [] + transfers_data = [] if self.community: for transfer in self.transfers(): data = None @@ -300,13 +301,14 @@ class HistoryTableModel(QAbstractTableModel): elif type(transfer) is dict: data = yield from self.data_dividend(transfer) if data: - self.transfers_data.append(data) + transfers_data.append(data) try: members_pubkeys = yield from self.community.members_pubkeys() self._max_validations = self.community.network.fork_window(members_pubkeys) + 1 except NoPeerAvailable as e: logging.debug(str(e)) self._max_validations = 0 + self.transfers_data = transfers_data self.endResetModel() def max_validations(self): -- GitLab