Skip to content
Snippets Groups Projects
Commit 28963081 authored by inso's avatar inso
Browse files

Fix multiple bugs with data refresh

parent c199319f
No related branches found
No related tags found
No related merge requests found
......@@ -38,8 +38,8 @@ QGroupBox::title {
<rect>
<x>0</x>
<y>0</y>
<width>518</width>
<height>717</height>
<width>522</width>
<height>721</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5">
......@@ -58,7 +58,7 @@ QGroupBox::title {
<item>
<widget class="QLabel" name="label_general">
<property name="text">
<string>label_general</string>
<string/>
</property>
<property name="scaledContents">
<bool>false</bool>
......@@ -80,7 +80,7 @@ QGroupBox::title {
<item>
<widget class="QLabel" name="label_rules">
<property name="text">
<string>label_rules</string>
<string/>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
......@@ -99,7 +99,7 @@ QGroupBox::title {
<item>
<widget class="QLabel" name="label_money">
<property name="text">
<string>label_money</string>
<string/>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
......@@ -118,7 +118,7 @@ QGroupBox::title {
<item>
<widget class="QLabel" name="label_wot">
<property name="text">
<string>label_wot</string>
<string/>
</property>
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
......
......@@ -56,6 +56,8 @@ class IdentitiesTabWidget(QWidget, Ui_IdentitiesTab):
self.table_identities.customContextMenuRequested.connect(self.identity_context_menu)
self.table_identities.sortByColumn(0, Qt.AscendingOrder)
self.table_identities.resizeColumnsToContents()
identities_model.modelAboutToBeReset.connect(lambda: self.table_identities.setEnabled(False))
identities_model.modelReset.connect(lambda: self.table_identities.setEnabled(True))
members_action = QAction(self.tr("Members"), self)
members_action.triggered.connect(self._async_search_members)
......
......@@ -10,9 +10,9 @@ import math
from PyQt5.QtCore import QLocale, QDateTime, QEvent
from PyQt5.QtWidgets import QWidget
from ..gen_resources.informations_tab_uic import Ui_InformationsTabWidget
from ..tools.decorators import asyncify
from ..tools.decorators import asyncify, once_at_a_time, cancel_once_task
from ..tools.exceptions import NoPeerAvailable
from .widgets import Busy
class InformationsTabWidget(QWidget, Ui_InformationsTabWidget):
"""
......@@ -28,16 +28,19 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget):
:return:
"""
super().__init__()
self.setupUi(self)
self.app = app
self.account = None
self.community = None
self.setupUi(self)
self.busy = Busy(self.scrollArea)
self.busy.hide()
def change_account(self, account):
cancel_once_task(self, self.refresh_labels)
self.account = account
def change_community(self, community):
cancel_once_task(self, self.refresh_labels)
self.community = community
self.refresh()
......@@ -45,9 +48,11 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget):
if self.account and self.community:
self.refresh_labels()
@once_at_a_time
@asyncify
@asyncio.coroutine
def refresh_labels(self):
self.busy.show()
# try to request money parameters
try:
params = yield from self.community.parameters()
......@@ -230,6 +235,11 @@ class InformationsTabWidget(QWidget, Ui_InformationsTabWidget):
self.tr('Maximum distance between each WoT member and a newcomer'),
)
)
self.busy.hide()
def resizeEvent(self, event):
self.busy.resize(event.size())
super().resizeEvent(event)
def changeEvent(self, event):
"""
......
......@@ -39,6 +39,8 @@ class NetworkTabWidget(QWidget, Ui_NetworkTabWidget):
self.table_network.setModel(proxy)
self.table_network.sortByColumn(0, Qt.DescendingOrder)
self.table_network.resizeColumnsToContents()
model.modelAboutToBeReset.connect(lambda: self.table_network.setEnabled(False))
model.modelReset.connect(lambda: self.table_network.setEnabled(True))
def change_community(self, community):
if self.community:
......
......@@ -58,6 +58,10 @@ class TransactionsTabWidget(QWidget, Ui_transactionsTabWidget):
self.table_history.setSortingEnabled(True)
self.table_history.horizontalHeader().setSectionResizeMode(QHeaderView.Interactive)
self.table_history.resizeColumnsToContents()
model.modelAboutToBeReset.connect(lambda: self.table_history.setEnabled(False))
model.modelReset.connect(lambda: self.table_history.setEnabled(True))
self.progressbar.hide()
self.refresh()
......
__author__ = 'inso'
from .busy import Busy
from .dialogs import QAsyncMessageBox
\ No newline at end of file
......@@ -104,12 +104,21 @@ class IdentitiesTableModel(QAbstractTableModel):
@property
def pubkeys(self):
"""
Get pubkeys of displayed identities
Ge
def resizeEvent(self, event):
self.busy.resize(event.size())
super().resizeEvent(event)t pubkeys of displayed identities
"""
return [i[1] for i in self.identities_data]
@asyncio.coroutine
def identity_data(self, identity):
"""
Return the identity in the form a tuple to display
:param cutecoin.core.registry.Identity identity: The identity to get data from
:return: The identity data in the form of a tuple
:rtype: tuple
"""
try:
join_date = yield from identity.get_join_date(self.community)
expiration_date = yield from identity.get_expiration_date(self.community)
......@@ -117,7 +126,7 @@ class IdentitiesTableModel(QAbstractTableModel):
join_date = None
expiration_date = None
return (identity.uid, identity.pubkey, join_date, expiration_date)
return identity.uid, identity.pubkey, join_date, expiration_date
@asyncio.coroutine
def refresh_identities(self, identities):
......
......@@ -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, once_at_a_time
from ..tools.decorators import asyncify, once_at_a_time, cancel_once_task
from cutecoin.core.net.node import Node
......@@ -139,6 +139,7 @@ class NetworkTableModel(QAbstractTableModel):
self.nodes_data = []
def change_community(self, community):
cancel_once_task(self, self.refresh_nodes)
self.community = community
self.refresh_nodes()
......@@ -173,13 +174,12 @@ class NetworkTableModel(QAbstractTableModel):
return (address, port, number, block_hash, node.uid,
is_member, node.pubkey, node.software, node.version, is_root, node.state)
@once_at_a_time
@asyncify
@asyncio.coroutine
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:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment