mirror of
https://github.com/aclist/dztui.git
synced 2026-08-29 19:27:13 +02:00
fix: defer destroy call
This commit is contained in:
parent
79eab93629
commit
a763b3b9dc
@ -11,7 +11,7 @@ from dzgui.views.dialogs.generic import WaitDialog
|
|||||||
import gi
|
import gi
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk, Gdk, GLib, GObject # noqa E402
|
from gi.repository import Gtk, GLib # noqa E402
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -88,9 +88,14 @@ class ThreadingManager:
|
|||||||
def get_cleanup_func(self) -> StoredFunc:
|
def get_cleanup_func(self) -> StoredFunc:
|
||||||
return self.cleanup_func
|
return self.cleanup_func
|
||||||
|
|
||||||
def _destroy_on_idle(self) -> None:
|
def _d(self) -> None:
|
||||||
self.wait_dialog.destroy()
|
self.wait_dialog.hide()
|
||||||
|
return False
|
||||||
|
|
||||||
|
def _destroy_on_idle(self) -> GLib.SOURCE_REMOVE:
|
||||||
func = self.get_cleanup_func()
|
func = self.get_cleanup_func()
|
||||||
if func is not None:
|
if func is not None:
|
||||||
func.call()
|
func.call()
|
||||||
self.set_cleanup_func(None)
|
self.set_cleanup_func(None)
|
||||||
|
self.wait_dialog.destroy()
|
||||||
|
return GLib.SOURCE_REMOVE
|
||||||
|
|||||||
@ -85,6 +85,7 @@ class ServerModelManager:
|
|||||||
|
|
||||||
@call_on_thread(dialog.fetching)
|
@call_on_thread(dialog.fetching)
|
||||||
def _dump_api(self) -> None:
|
def _dump_api(self) -> None:
|
||||||
|
# TODO: pass api key a priori in .load() call
|
||||||
config_man = self.controller.get_config_man()
|
config_man = self.controller.get_config_man()
|
||||||
key = config_man.lookup(Preferences.STEAM)
|
key = config_man.lookup(Preferences.STEAM)
|
||||||
job = Servers.query_api
|
job = Servers.query_api
|
||||||
@ -276,6 +277,7 @@ class ServerModelManager:
|
|||||||
self.first_iteration = False
|
self.first_iteration = False
|
||||||
|
|
||||||
def _cleanup_on_success(self) -> None:
|
def _cleanup_on_success(self) -> None:
|
||||||
|
self.tv.set_model(None)
|
||||||
self.tv.set_model(self.to_insert)
|
self.tv.set_model(self.to_insert)
|
||||||
|
|
||||||
# TODO: make sure control model len is N + 1
|
# TODO: make sure control model len is N + 1
|
||||||
@ -286,7 +288,7 @@ class ServerModelManager:
|
|||||||
# cf. servers_loaded signal
|
# cf. servers_loaded signal
|
||||||
|
|
||||||
# TODO: servers_loaded vs servers_reloaded
|
# TODO: servers_loaded vs servers_reloaded
|
||||||
self.emitter.emit("servers_loaded", self.enum)
|
# self.emitter.emit("servers_loaded", self.enum)
|
||||||
|
|
||||||
if self.first_iteration:
|
if self.first_iteration:
|
||||||
self._update_maps()
|
self._update_maps()
|
||||||
@ -339,6 +341,7 @@ class ServerModelManager:
|
|||||||
|
|
||||||
@call_on_thread(dialog.filtering)
|
@call_on_thread(dialog.filtering)
|
||||||
def refilter(self, mode: FilterMode, label: str) -> None:
|
def refilter(self, mode: FilterMode, label: str) -> None:
|
||||||
|
# FIXME: causes two wait dialogs when map selection change signal emits after loading servers
|
||||||
self.first_iteration = False
|
self.first_iteration = False
|
||||||
proxy_man = self._get_proxy_man()
|
proxy_man = self._get_proxy_man()
|
||||||
proxy_man.filter(mode, label)
|
proxy_man.filter(mode, label)
|
||||||
|
|||||||
@ -17,7 +17,7 @@ gi.require_version("Gtk", "3.0")
|
|||||||
from gi.repository import Gtk, GLib # noqa E402
|
from gi.repository import Gtk, GLib # noqa E402
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from GLib import SOURCE_REMOVE
|
from gi.repository import GLib
|
||||||
from dzgui.controllers.mc import Controller
|
from dzgui.controllers.mc import Controller
|
||||||
|
|
||||||
|
|
||||||
@ -107,7 +107,7 @@ class RefreshButton(IconTextButton):
|
|||||||
GLib.timeout_add_seconds(1, self.decrement)
|
GLib.timeout_add_seconds(1, self.decrement)
|
||||||
self.controller.refresh_tree()
|
self.controller.refresh_tree()
|
||||||
|
|
||||||
def decrement(self) -> "SOURCE_REMOVE" | Literal[True]:
|
def decrement(self) -> "GLib.SOURCE_REMOVE" | Literal[True]:
|
||||||
self.time -= 1
|
self.time -= 1
|
||||||
if self.time == 0:
|
if self.time == 0:
|
||||||
self.time = 30
|
self.time = 30
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user