From e9f70caa02ec00b855946153f50ce95ac914e69a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Lalinsk=C3=BD?= Date: Sat, 30 Dec 2006 10:50:48 +0100 Subject: [PATCH] Don't queue actions from the main thread. --- picard/tagger.py | 5 ++--- picard/util/thread.py | 7 +++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/picard/tagger.py b/picard/tagger.py index 172018e43..47e3a1aef 100644 --- a/picard/tagger.py +++ b/picard/tagger.py @@ -893,7 +893,6 @@ class Tagger(QtGui.QApplication, ComponentManager, Component): for album in albums: self.reload_album(album) - def main(localedir=None): - tagger = Tagger(localedir) - sys.exit(tagger.run()) + app = Tagger(localedir) + sys.exit(app.run()) diff --git a/picard/util/thread.py b/picard/util/thread.py index 62f4f2245..6ce00d7ae 100644 --- a/picard/util/thread.py +++ b/picard/util/thread.py @@ -70,8 +70,11 @@ class ThreadAssist(QtCore.QObject): def proxy_to_main(self, handler, *args, **kwargs): """Invoke ``handler`` with arguments ``args`` in the main thread.""" - self.to_main.put((handler, args, kwargs)) - self.emit(QtCore.SIGNAL("proxy_to_main()")) + if self.parent().thread() == QtCore.QThread.currentThread(): + handler(*args, **kwargs) + else: + self.to_main.put((handler, args, kwargs)) + self.emit(QtCore.SIGNAL("proxy_to_main()")) def allocate(self): """Allocate a new thread."""