ayatana-commits team mailing list archive
-
ayatana-commits team
-
Mailing list archive
-
Message #02461
[Branch ~agateau/libindicate-qt/trunk] Rev 114: Do not emit signals from within dbus-glib event loop.
------------------------------------------------------------
revno: 114
fixes bug(s): https://launchpad.net/bugs/632419
committer: Aurelien Gateau <aurelien.gateau@xxxxxxxxxxxxx>
branch nick: libindicate-qt
timestamp: Thu 2010-09-30 09:49:24 +0200
message:
Do not emit signals from within dbus-glib event loop.
See
http://agateau.wordpress.com/2010/09/29/fun-with-event-loops-and-qobjectdeletelater/
For more details.
modified:
src/qindicatelistener.cpp
--
lp:libindicate-qt
https://code.launchpad.net/~agateau/libindicate-qt/trunk
Your team ayatana-commits is subscribed to branch lp:libindicate-qt.
To unsubscribe from this branch go to https://code.launchpad.net/~agateau/libindicate-qt/trunk/+edit-subscription
=== modified file 'src/qindicatelistener.cpp'
--- src/qindicatelistener.cpp 2010-03-08 09:02:19 +0000
+++ src/qindicatelistener.cpp 2010-09-30 07:49:24 +0000
@@ -62,7 +62,7 @@
Listener* listener = sQListenerFromGListener.value(_listener);
QString type = QString::fromUtf8(_type);
Listener::Server* server = reinterpret_cast<Listener::Server*>(_server);
- QMetaObject::invokeMethod(listener, "serverAdded", Q_ARG(QIndicate::Listener::Server*, server), Q_ARG(QString, type));
+ QMetaObject::invokeMethod(listener, "serverAdded", Qt::QueuedConnection, Q_ARG(QIndicate::Listener::Server*, server), Q_ARG(QString, type));
}
static void serverRemovedCB(IndicateListener* _listener, void* _server, gchar* _type)
@@ -70,14 +70,14 @@
Listener* listener = sQListenerFromGListener.value(_listener);
QString type = QString::fromUtf8(_type);
Listener::Server* server = reinterpret_cast<Listener::Server*>(_server);
- QMetaObject::invokeMethod(listener, "serverRemoved", Q_ARG(QIndicate::Listener::Server*, server), Q_ARG(QString, type));
+ QMetaObject::invokeMethod(listener, "serverRemoved", Qt::QueuedConnection, Q_ARG(QIndicate::Listener::Server*, server), Q_ARG(QString, type));
}
static void serverCountChangedCB(IndicateListener* _listener, void* _server, guint value)
{
Listener* listener = sQListenerFromGListener.value(_listener);
Listener::Server* server = reinterpret_cast<Listener::Server*>(_server);
- QMetaObject::invokeMethod(listener, "serverCountChanged", Q_ARG(QIndicate::Listener::Server*, server), Q_ARG(int, value));
+ QMetaObject::invokeMethod(listener, "serverCountChanged", Qt::QueuedConnection, Q_ARG(QIndicate::Listener::Server*, server), Q_ARG(int, value));
}
static void indicatorAddedCB(IndicateListener* _listener, void* _server, void* _indicator)
@@ -85,7 +85,7 @@
Listener* listener = sQListenerFromGListener.value(_listener);
Listener::Server* server = reinterpret_cast<Listener::Server*>(_server);
Listener::Indicator* indicator = reinterpret_cast<Listener::Indicator*>(_indicator);
- QMetaObject::invokeMethod(listener, "indicatorAdded",
+ QMetaObject::invokeMethod(listener, "indicatorAdded", Qt::QueuedConnection,
Q_ARG(QIndicate::Listener::Server*, server), Q_ARG(QIndicate::Listener::Indicator*, indicator));
}
@@ -94,7 +94,7 @@
Listener* listener = sQListenerFromGListener.value(_listener);
Listener::Server* server = reinterpret_cast<Listener::Server*>(_server);
Listener::Indicator* indicator = reinterpret_cast<Listener::Indicator*>(_indicator);
- QMetaObject::invokeMethod(listener, "indicatorRemoved",
+ QMetaObject::invokeMethod(listener, "indicatorRemoved", Qt::QueuedConnection,
Q_ARG(QIndicate::Listener::Server*, server), Q_ARG(QIndicate::Listener::Indicator*, indicator));
}
@@ -104,7 +104,7 @@
Listener::Server* server = reinterpret_cast<Listener::Server*>(_server);
Listener::Indicator* indicator = reinterpret_cast<Listener::Indicator*>(_indicator);
QString property = QString::fromUtf8(_property);
- QMetaObject::invokeMethod(listener, "indicatorModified",
+ QMetaObject::invokeMethod(listener, "indicatorModified", Qt::QueuedConnection,
Q_ARG(QIndicate::Listener::Server*, server), Q_ARG(QIndicate::Listener::Indicator*, indicator), Q_ARG(QString, property));
}
@@ -124,6 +124,8 @@
void Listener::init(IndicateListener* gListener)
{
+ qRegisterMetaType<QIndicate::Listener::Server*>("QIndicate::Listener::Server*");
+ qRegisterMetaType<QIndicate::Listener::Indicator*>("QIndicate::Listener::Indicator*");
d->mGListener = gListener;
#define gconnect(gsignal, callback) \