diff --git a/src/sakia/gui/community_tile.py b/src/sakia/gui/community_tile.py index 419a5a156378a8621b1ebafa5aa66682ccda1eec..f2a7b210c40d0a3c312ad66740846f4a4df925c3 100644 --- a/src/sakia/gui/community_tile.py +++ b/src/sakia/gui/community_tile.py @@ -9,7 +9,7 @@ from PyQt5.QtWidgets import QFrame, QLabel, QVBoxLayout, QLayout from PyQt5.QtCore import QSize, pyqtSignal from ucoinpy.documents.block import Block -from ..tools.decorators import asyncify +from ..tools.decorators import asyncify, once_at_a_time, cancel_once_task from ..tools.exceptions import NoPeerAvailable from sakia.gui.widgets.busy import Busy @@ -55,6 +55,10 @@ class CommunityTile(QFrame): if state != self._state: self.refresh() + def cancel_refresh(self): + cancel_once_task(self, self.refresh) + + @once_at_a_time @asyncify @asyncio.coroutine def refresh(self): diff --git a/src/sakia/gui/homescreen.py b/src/sakia/gui/homescreen.py index b60ca759ca2fb632f4428581049bb652be8a47e0..3eb44eadf63bb86595608e6baabae20bf93c3714 100644 --- a/src/sakia/gui/homescreen.py +++ b/src/sakia/gui/homescreen.py @@ -29,6 +29,7 @@ class FrameCommunities(QFrame): def refresh(self, app): for t in self.tiles: + t.cancel_refresh() t.setParent(None) self.tiles = [] if app.current_account: