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

Network refactoring and removing QThread

- New behaviour for network traversal
- New requests patter -> we get the cache data instantly
while we are requesting the network in background
parents 5dd8919d ec419bbd
No related branches found
No related tags found
No related merge requests found
...@@ -189,7 +189,6 @@ class MainWindow(QMainWindow, Ui_MainWindow): ...@@ -189,7 +189,6 @@ class MainWindow(QMainWindow, Ui_MainWindow):
except: except:
logging.debug("Disconnect of app failed") logging.debug("Disconnect of app failed")
self.app.monitor.start_network_watchers()
QApplication.processEvents() QApplication.processEvents()
def open_transfer_money_dialog(self): def open_transfer_money_dialog(self):
......
...@@ -39,7 +39,7 @@ class TransactionsTabWidget(QWidget, Ui_transactionsTabWidget): ...@@ -39,7 +39,7 @@ class TransactionsTabWidget(QWidget, Ui_transactionsTabWidget):
def refresh(self): def refresh(self):
minimum_datetime = QDateTime() minimum_datetime = QDateTime()
minimum_datetime.setTime_t(self.community.get_block(1).mediantime) minimum_datetime.setTime_t(self.community.get_block(1)['medianTime'])
minimum_datetime.setTime(QTime(0, 0)) minimum_datetime.setTime(QTime(0, 0))
self.date_from.setMinimumDateTime(minimum_datetime) self.date_from.setMinimumDateTime(minimum_datetime)
...@@ -74,8 +74,6 @@ class TransactionsTabWidget(QWidget, Ui_transactionsTabWidget): ...@@ -74,8 +74,6 @@ class TransactionsTabWidget(QWidget, Ui_transactionsTabWidget):
self.progressbar.setMaximum(maximum) self.progressbar.setMaximum(maximum)
self.progressbar.show() self.progressbar.show()
blockchain_watcher = self.app.monitor.blockchain_watcher(self.community)
blockchain_watcher.loading_progressed.connect(progressing)
def stop_progress(self): def stop_progress(self):
self.progressbar.hide() self.progressbar.hide()
......
...@@ -47,7 +47,7 @@ class WalletsTabWidget(QWidget, Ui_WalletsTab): ...@@ -47,7 +47,7 @@ class WalletsTabWidget(QWidget, Ui_WalletsTab):
person = Person.lookup(self.account.pubkey, self.community) person = Person.lookup(self.account.pubkey, self.community)
membership = person.membership(self.community) membership = person.membership(self.community)
renew_block = membership['blockNumber'] renew_block = membership['blockNumber']
last_renewal = self.community.get_block(renew_block).mediantime last_renewal = self.community.get_block(renew_block)['medianTime']
expiration = last_renewal + parameters['sigValidity'] expiration = last_renewal + parameters['sigValidity']
except MembershipNotFoundError: except MembershipNotFoundError:
last_renewal = None last_renewal = None
......
...@@ -38,7 +38,6 @@ class WotTabWidget(QWidget, Ui_WotTabWidget): ...@@ -38,7 +38,6 @@ class WotTabWidget(QWidget, Ui_WotTabWidget):
self.graphicsView.scene().node_contact.connect(self.add_node_as_contact) self.graphicsView.scene().node_contact.connect(self.add_node_as_contact)
self.graphicsView.scene().node_member.connect(self.identity_informations) self.graphicsView.scene().node_member.connect(self.identity_informations)
app.monitor.persons_watcher(community).person_changed.connect(self.handle_person_change)
self.account = account self.account = account
self.community = community self.community = community
self.password_asker = password_asker self.password_asker = password_asker
......
...@@ -100,7 +100,7 @@ class IdentitiesTableModel(QAbstractTableModel): ...@@ -100,7 +100,7 @@ class IdentitiesTableModel(QAbstractTableModel):
try: try:
join_block = person.membership(self.community)['blockNumber'] join_block = person.membership(self.community)['blockNumber']
try: try:
join_date = self.community.get_block(join_block).mediantime join_date = self.community.get_block(join_block)['medianTime']
expiration_date = join_date + parameters['sigValidity'] expiration_date = join_date + parameters['sigValidity']
except NoPeerAvailable: except NoPeerAvailable:
join_date = None join_date = None
......
...@@ -5,11 +5,13 @@ Created on 5 févr. 2014 ...@@ -5,11 +5,13 @@ Created on 5 févr. 2014
''' '''
import logging import logging
from ..tools.exceptions import NoPeerAvailable
from ..core.net.node import Node
from PyQt5.QtCore import QAbstractTableModel, Qt, QVariant, QSortFilterProxyModel from PyQt5.QtCore import QAbstractTableModel, Qt, QVariant, QSortFilterProxyModel
from PyQt5.QtGui import QColor, QFont from PyQt5.QtGui import QColor, QFont
from ..tools.exceptions import NoPeerAvailable
from cutecoin.core.net.node import Node
class NetworkFilterProxyModel(QSortFilterProxyModel): class NetworkFilterProxyModel(QSortFilterProxyModel):
def __init__(self, parent=None): def __init__(self, parent=None):
......
...@@ -4,7 +4,7 @@ Created on 8 févr. 2014 ...@@ -4,7 +4,7 @@ Created on 8 févr. 2014
@author: inso @author: inso
''' '''
from PyQt5.QtCore import QAbstractTableModel, QSortFilterProxyModel, Qt, QLocale from PyQt5.QtCore import QAbstractTableModel, QSortFilterProxyModel, Qt, QLocale, pyqtSlot
class WalletsFilterProxyModel(QSortFilterProxyModel): class WalletsFilterProxyModel(QSortFilterProxyModel):
...@@ -61,11 +61,18 @@ class WalletsTableModel(QAbstractTableModel): ...@@ -61,11 +61,18 @@ class WalletsTableModel(QAbstractTableModel):
''' '''
def __init__(self, account, community, parent=None): def __init__(self, account, community, parent=None):
''' """
Constructor
''' :param list of cutecoin.core.wallet.Wallet wallets: The list of wallets to display
:param cutecoin.core.community.Community community: The community to show
:param PyQt5.QtCore.QObject parent: The parent widget
:return: The model
:rtype: WalletsTableModel
"""
super().__init__(parent) super().__init__(parent)
self.account = account self.account = account
self.account.wallets_changed.connect(self.refresh_account_wallets)
self.community = community self.community = community
self.columns_headers = (self.tr('Name'), self.columns_headers = (self.tr('Name'),
self.tr('Amount'), self.tr('Amount'),
...@@ -76,6 +83,25 @@ class WalletsTableModel(QAbstractTableModel): ...@@ -76,6 +83,25 @@ class WalletsTableModel(QAbstractTableModel):
def wallets(self): def wallets(self):
return self.account.wallets return self.account.wallets
@pyqtSlot()
def refresh_account_wallets(self):
"""
Change the current wallets, reconnect the slots
"""
self.beginResetModel()
for w in self.account.wallets:
w.inner_data_changed.connect(lambda: self.refresh_wallet(w))
self.endResetModel()
def refresh_wallet(self, wallet):
"""
Refresh the specified wallet value
:param cutecoin.core.wallet.Wallet wallet: The wallet to refresh
"""
index = self.account.wallets.index(wallet)
if index > 0:
self.dataChanged.emit(index, index)
def rowCount(self, parent): def rowCount(self, parent):
return len(self.wallets) return len(self.wallets)
......
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