]> git.lyx.org Git - features.git/commitdiff
check also if there is a QApplication instance
authorPeter Kümmel <syntheticpp@gmx.net>
Mon, 1 Nov 2010 21:32:59 +0000 (21:32 +0000)
committerPeter Kümmel <syntheticpp@gmx.net>
Mon, 1 Nov 2010 21:32:59 +0000 (21:32 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@35981 a592a061-630c-0410-9148-cb99ea01b6c8

src/frontends/qt4/InGuiThread.cpp
src/frontends/qt4/InGuiThread.h

index ff53f9d0e9619be2564ea3b2f890b314e44df351..20be94cffe22caf766cc29915fc4f92fdc42b9fe 100644 (file)
@@ -12,6 +12,8 @@
 
 #include "InGuiThread.h"
 
+#include "frontends/Application.h"
+
 #include <QThread>
 #include <QEventLoop>
 #include <QApplication>
@@ -29,11 +31,11 @@ IntoGuiThreadMover::IntoGuiThreadMover()
 
 void IntoGuiThreadMover::callInGuiThread()
 {
-       QThread* gui_thread = QApplication::instance()->thread();
-       if (QThread::currentThread() == gui_thread) {
+       if (!theApp() || !QApplication::instance() ||
+               QThread::currentThread() == QApplication::instance()->thread()) {
                synchronousFunctionCall();
        } else {
-               moveToThread(gui_thread);
+               moveToThread(QApplication::instance()->thread());
                connect(this, SIGNAL(triggerFunctionCall()), 
                        this, SLOT(doFunctionCall()), Qt::QueuedConnection);
                QMutexLocker lock(&sync_mutex_);
index f27317f4c891b30541283a153e713d1671fea771..4939c6472605381e5968166287b63f1ef904b5d3 100644 (file)
@@ -16,7 +16,6 @@
 #include <QObject>
 #include <QWaitCondition>
 
-#include "frontends/Application.h"
 #include "support/bind.h"
 #include "support/functional.h"
 
@@ -59,10 +58,7 @@ public:
        R call(F f)
        {
                func_ = f;
-               if (theApp() == 0)
-                       synchronousFunctionCall();
-               else 
-                       callInGuiThread();
+               callInGuiThread();
                return return_value_;
        }
 
@@ -125,10 +121,7 @@ public:
        void call(F f)
        {
                func_ = f;
-               if (theApp() == 0)
-                       synchronousFunctionCall();
-               else 
-                       callInGuiThread();
+               callInGuiThread();
        }
 
        template<class F, class P1>