diff --git a/src/cutecoin/gui/community_tab.py b/src/cutecoin/gui/community_tab.py index f49cca282186d63dee0e1bc14236bc486d013f52..d12cd9d0f98b001a75ddfbfbe62710bfe2fb808d 100644 --- a/src/cutecoin/gui/community_tab.py +++ b/src/cutecoin/gui/community_tab.py @@ -201,5 +201,8 @@ The process to join back the community later will have to be done again.""" QMessageBox.Ok) def refresh_person(self, pubkey): - index = self.table_community_members.model().sourceModel().person_index(pubkey) - self.table_community_members.model().sourceModel().dataChanged.emit(index[0], index[1]) + if self is None: + logging.error("community_tab self is None in refresh_person. Watcher connected to a destroyed tab") + else: + index = self.table_community_members.model().sourceModel().person_index(pubkey) + self.table_community_members.model().sourceModel().dataChanged.emit(index[0], index[1]) diff --git a/src/cutecoin/models/network.py b/src/cutecoin/models/network.py index eb44fcf652e48a2b53ac48fcc4c8e234b2f87b7a..685d9c8ccdb098cfbb602018ca404eae03a207bb 100644 --- a/src/cutecoin/models/network.py +++ b/src/cutecoin/models/network.py @@ -5,8 +5,7 @@ Created on 5 févr. 2014 ''' import logging -from ..core.person import Person -from ..tools.exceptions import PersonNotFoundError +from ..tools.exceptions import NoPeerAvailable from ..core.net.node import Node from PyQt5.QtCore import QAbstractTableModel, Qt, QVariant, QSortFilterProxyModel from PyQt5.QtGui import QColor @@ -52,7 +51,7 @@ class NetworkFilterProxyModel(QSortFilterProxyModel): source_data = self.sourceModel().data(source_index, role) if index.column() == self.sourceModel().column_types.index('is_member') \ and role == Qt.DisplayRole: - value = {True: 'yes', False: 'no'} + value = {True: 'yes', False: 'no', None: 'offline'} return value[source_data] return source_data @@ -100,7 +99,11 @@ class NetworkTableModel(QAbstractTableModel): :param ..core.net.node.Node node: Network node :return: """ - is_member = node.pubkey in self.community.members_pubkeys() + try: + is_member = node.pubkey in self.community.members_pubkeys() + except NoPeerAvailable as e: + logging.error(e) + is_member = None address = "" if node.endpoint.server: