--- a/src/QuailAccountsWindow.cpp Sat Sep 21 09:20:52 2013 +0100
+++ b/src/QuailAccountsWindow.cpp Mon Sep 23 16:03:31 2013 +0100
@@ -545,7 +545,7 @@
qQuailConnConnectProgress(PurpleConnection *gc, const char *text,
size_t step, size_t step_count)
- qDebug() << "QQuailAccountsWindow::qQuailConnConnectProgress";
+ qDebug() << "QQuailAccountsWindow::qQuailConnConnectProgress" << gc->display_name; QQuailConnectionMeters *meters;
QQuailConnectionMeter *meter;
@@ -561,7 +561,7 @@
qQuailConnConnected(PurpleConnection *gc)
- qDebug() << "QQuailAccountsWindow::qQuailConnConnected";
+ qDebug() << "QQuailAccountsWindow::qQuailConnConnected" << gc->display_name; QQuailConnectionMeters *meters = qQuailGetMainWindow()->getMeters();
QQuailConnectionMeter *meter;
@@ -574,7 +574,7 @@
qQuailConnDisconnected(PurpleConnection *gc)
- qDebug() << "QQuailAccountsWindow::qQuailConnDisconnected";
+ qDebug() << "QQuailAccountsWindow::qQuailConnDisconnected" << gc->display_name; QQuailConnectionMeters *meters = qQuailGetMainWindow()->getMeters();
QQuailConnectionMeter *meter;
@@ -603,6 +603,19 @@
+qQuail_connection_network_disconnected(void) + qDebug() << "QQuailAccountsWindow::qQuail_connection_network_disconnected"; +qQuail_connection_network_connected(void) + qDebug() << "QQuailAccountsWindow::qQuail_connection_network_connected"; static PurpleConnectionUiOps connUiOps =
qQuailConnConnectProgress, /*connect_progress*/
@@ -610,8 +623,8 @@
qQuailConnDisconnected, /* disconnected */
qQuailConnNotice, /* notice */
NULL, /*report_disconnect */
- NULL, /* network_connected*/
- NULL, /* network_disconnected*/
+ qQuail_connection_network_connected, /* network_connected*/ + qQuail_connection_network_disconnected, /* network_disconnected*/ qQuailConnectionReportDisconnectReason, /* report_disconnect_reason*/
--- a/src/QuailEventLoop.cpp Sat Sep 21 09:20:52 2013 +0100
+++ b/src/QuailEventLoop.cpp Mon Sep 23 16:03:31 2013 +0100
@@ -45,34 +45,31 @@
//static QThread *quailThread = new QThread();
QQuailTimer::QQuailTimer(guint sourceId, GSourceFunc func, gpointer data)
- : sourceId(sourceId), func(func), userData(data), t(0)
+ : QTimer(0), sourceId(sourceId), func(func), userData(data) - qDebug() << "QQuailTimer::QQuailTimer.1";
+ //qDebug() << "QQuailTimer::QQuailTimer.1"; +// this->setSingleShot(true); + connect(this, SIGNAL(timeout()), - qDebug() << "QQuailTimer::update()";
+ //qDebug() << "QQuailTimer::update()"; qQuailSourceRemove(sourceId);
-QQuailTimer::start(int msec)
- qDebug() << "QQuailTimer::start.1";
- t = mainWin->getNewTimer();
- connect(t, SIGNAL(timeout()),
+//QQuailTimer::start(int msec) +// //qDebug() << "QQuailTimer::start.1"; QQuailInputNotifier::QQuailInputNotifier(int fd,
PurpleInputCondition cond,
@@ -81,24 +78,33 @@
: QObject(), func(func), userData(userData), readNotifier(NULL),
- //qDebug() << "QQuailInputNotifier::QQuailInputNotifier";
+ qDebug() << "QQuailInputNotifier::QQuailInputNotifier" << cond; + qDebug() << "QQuailInputNotifier::QQuailInputNotifier" << fd; if (cond & PURPLE_INPUT_READ)
- //qDebug() << "QQuailInputNotifier::QQuailInputNotifier::READ";
+ qDebug() << "QQuailInputNotifier::QQuailInputNotifier::READ"; readNotifier = new QSocketNotifier(fd, QSocketNotifier::Read);
connect(readNotifier, SIGNAL(activated(int)),
this, SLOT(ioInvoke(int)));
if (cond & PURPLE_INPUT_WRITE)
- //qDebug() << "QQuailInputNotifier::QQuailInputNotifier::WRITE";
+ qDebug() << "QQuailInputNotifier::QQuailInputNotifier::WRITE"; writeNotifier = new QSocketNotifier(fd, QSocketNotifier::Write);
connect(writeNotifier, SIGNAL(activated(int)),
this, SLOT(ioInvoke(int)));
+ qWarning() << "QQuailInputNotifier::QQuailInputNotifier:Unknown QSocketNotifier type"; QQuailInputNotifier::~QQuailInputNotifier()
@@ -113,7 +119,7 @@
QQuailInputNotifier::ioInvoke(int fd)
- //qDebug() << "QQuailInputNotifier::ioInvoke";
+ qDebug() << "QQuailInputNotifier::ioInvoke"; if (readNotifier != NULL)
@@ -129,24 +135,26 @@
qQuailTimeoutAdd(guint interval, GSourceFunc func, gpointer data)
- //qDebug() << "QQuailInputNotifier::qQuailTimeoutAdd";
+ qDebug() << "qQuailTimeoutAdd" << interval; QQuailSourceInfo *info = new QQuailSourceInfo;
info->handle = nextSourceId++;
info->timer = new QQuailTimer(info->handle, func, data);
//info->timer->moveToThread(quailThread);
- info->timer->start(interval);
m_sources.insert(info->handle, info);
+ info->timer->start(interval); qQuailTimeoutRemove(guint handle)
- //qDebug() << "QQuailInputNotifier::qQuailTimeoutRemove";
+ qDebug() << "QQuailInputNotifier::qQuailTimeoutRemove"; qQuailSourceRemove(handle);
@@ -158,7 +166,7 @@
PurpleInputFunction func,
- //qDebug() << "QQuailInputNotifier::qQuailInputAdd";
+ qDebug() << "QQuailInputNotifier::qQuailInputAdd"; QQuailSourceInfo *info = new QQuailSourceInfo;
info->handle = nextSourceId++;
@@ -166,14 +174,15 @@
info->notifier = new QQuailInputNotifier(fd, cond, func, userData);
m_sources.insert(info->handle, info);
+ qDebug() << "QQuailInputNotifier::qQuailInputAdd.end::" << info->handle; + qDebug() << "QQuailInputNotifier::qQuailInputAdd.end::" << m_sources.size(); qQuailSourceRemove(guint handle)
- //qDebug() << "QQuailInputNotifier::qQuailSourceRemove";
+ qDebug() << "QQuailInputNotifier::qQuailSourceRemove"; info = m_sources.value(handle);
@@ -195,7 +204,7 @@
qQuailInputGetError(int /*fd*/, int */*error*/)
- //qDebug() << "QQuailInputNotifier::qQuailInputGetError";
+ qDebug() << "QQuailInputNotifier::qQuailInputGetError"; @@ -226,9 +235,3 @@
-//QuailEventDispatcherMarkTwo::QuailEventDispatcherMarkTwo(QObject *parent)
-// : QAbstractEventDispatcher(parent)
--- a/src/QuailEventLoop.h Sat Sep 21 09:20:52 2013 +0100
+++ b/src/QuailEventLoop.h Mon Sep 23 16:03:31 2013 +0100
@@ -26,28 +26,21 @@
#include <QSocketNotifier>
-/* http://harmattan-dev.nokia.com/docs/library/html/qt4/qabstracteventdispatcher.html */
-//#include <QAbstractEventDispatcher>
-#include "QuailMainWindow.h"
-static QQuailMainWindow *mainWin = 0;
-class QQuailTimer : public QObject
+class QQuailTimer : public QTimer QQuailTimer(guint sourceId, GSourceFunc func, gpointer data);
- void start(int interval);
class QQuailInputNotifier : public QObject
@@ -69,8 +62,6 @@
QSocketNotifier *readNotifier, *writeNotifier;
* Returns the Qt event loop UI operations structure.
@@ -88,29 +79,4 @@
void qQuailEventLoopUninit(void);
-//class QuailEventDispatcherMarkTwo : public QAbstractEventDispatcher
-// QuailEventDispatcherMarkTwo(QObject *parent = 0);
-// virtual bool processEvents(QEventLoop::ProcessEventsFlags flags)
-// virtual bool hasPendingEvents() = 0;
-// virtual void registerSocketNotifier(QSocketNotifier *notifier) = 0;
-// virtual void unregisterSocketNotifier(QSocketNotifier *notifier) = 0;
-// virtual void registerTimer(int timerId, int interval, QObject *object) = 0;
-// virtual bool unregisterTimer(int timerId) = 0;
-// virtual bool unregisterTimers(QObject *object) = 0;
-// virtual QList<TimerInfo> registeredTimers(QObject *object) const = 0;
-// virtual void wakeUp() = 0;
-// virtual void interrupt() = 0;
-// virtual void flush() = 0;
#endif /* _QUAIL_EVENT_LOOP_H_ */
--- a/src/QuailMainWindow.cpp Sat Sep 21 09:20:52 2013 +0100
+++ b/src/QuailMainWindow.cpp Mon Sep 23 16:03:31 2013 +0100
@@ -58,6 +58,8 @@
#include "QuailPrefsDialog.h"
#include "QuailRequest.h"
+static QQuailMainWindow *mainWin = 0; /**************************************************************************
**************************************************************************/
@@ -330,12 +332,14 @@
purple_core_set_ui_ops(qQuailGetCoreUiOps());
qDebug() << "QQuailMainWindow::initCore().1";
purple_eventloop_set_ui_ops(qQuailGetEventLoopUiOps());
+ QApplication::processEvents(); qDebug() << "QQuailMainWindow::initCore().2";
if (!purple_core_init("quail")) {
qDebug() << tr("Initialization of the Quail core failed.\n"
"Please report this!\n");
- purple_debug_set_enabled(false);
+ QApplication::processEvents(); + purple_debug_set_enabled(true); qDebug() << "QQuailMainWindow::initCore().3";
path = g_build_filename(purple_user_dir(), "plugins", NULL);
qDebug() << "QQuailMainWindow::initCore().4";
--- a/src/QuailWinGlibEventLoop.cpp Sat Sep 21 09:20:52 2013 +0100
+++ b/src/QuailWinGlibEventLoop.cpp Mon Sep 23 16:03:31 2013 +0100
@@ -1,4 +1,4 @@
-#include "QuailWinGlibEventLoop.h"
+#include "QuailWinGlibEventLoop.h" #include <QCoreApplication>
@@ -29,6 +29,7 @@
static gboolean socketNotifierSourcePrepare(GSource *, gint *timeout)
+ qDebug() << "socketNotifierSourcePrepare"; @@ -36,6 +37,7 @@
static gboolean socketNotifierSourceCheck(GSource *source)
+ qDebug() << "socketNotifierSourceCheck"; GSocketNotifierSource *src = reinterpret_cast<GSocketNotifierSource *>(source);
@@ -59,6 +61,7 @@
static gboolean socketNotifierSourceDispatch(GSource *source, GSourceFunc, gpointer)
+ qDebug() << "socketNotifierSourceDispatch"; QEvent event(QEvent::SockAct);
GSocketNotifierSource *src = reinterpret_cast<GSocketNotifierSource *>(source);
@@ -163,6 +166,7 @@
static gboolean idleTimerSourcePrepare(GSource *source, gint *timeout)
+ qDebug() << "QuailEventDispatcherWinGlib::idleTimerSourcePrepare"; GIdleTimerSource *idleTimerSource = reinterpret_cast<GIdleTimerSource *>(source);
GTimerSource *timerSource = idleTimerSource->timerSource;
if (!timerSource->runWithIdlePriority) {
@@ -177,6 +181,7 @@
static gboolean idleTimerSourceCheck(GSource *source)
+ qDebug() << "QuailEventDispatcherWinGlib::idleTimerSourceCheck"; GIdleTimerSource *idleTimerSource = reinterpret_cast<GIdleTimerSource *>(source);
GTimerSource *timerSource = idleTimerSource->timerSource;
if (!timerSource->runWithIdlePriority) {
@@ -188,6 +193,7 @@
static gboolean idleTimerSourceDispatch(GSource *source, GSourceFunc, gpointer)
GTimerSource *timerSource = reinterpret_cast<GIdleTimerSource *>(source)->timerSource;
(void) timerSourceDispatch(&timerSource->source, 0, 0);
@@ -212,6 +218,7 @@
static gboolean postEventSourcePrepare(GSource *s, gint *timeout)
+ qDebug() << "QuailEventDispatcherWinGlib::postEventSourcePrepare"; // QThreadData *data = QThreadData::current();
@@ -236,6 +243,7 @@
static gboolean postEventSourceDispatch(GSource *s, GSourceFunc, gpointer)
+ qDebug() << "QuailEventDispatcherWinGlib::postEventSourceDispatch"; GPostEventSource *source = reinterpret_cast<GPostEventSource *>(s);
source->lastSerialNumber = source->serialNumber.load();
QCoreApplication::sendPostedEvents();
@@ -454,6 +462,7 @@
int WSAAsyncSelect(SOCKET sock, HWND handle, unsigned int msg, long ev)
+ qDebug() << "QuailEventDispatcherWinGlib::WSAAsyncSelect"; if (sock == 0 || handle == 0 || handle == INVALID_HANDLE_VALUE) {
WSASetLastError(WSAEINVAL);
@@ -490,6 +499,7 @@
static void resolveTimerAPI()
+ qDebug() << "QuailEventDispatcherWinGlib::resolveTimerAPI"; static bool triedResolve = false;
@@ -599,6 +609,7 @@
void QuailEventDispatcherWinGlib::activateEventNotifier(QWinEventNotifier * wen)
+ qDebug() << "QuailEventDispatcherWinGlib::activateEventNotifier"; QEvent event(QEvent::WinEventAct);
QCoreApplication::sendEvent((QObject*)wen, &event);
@@ -617,7 +628,7 @@
if (message == WM_NCCREATE)
+ qDebug() << "QuailEventDispatcherWinGlib::qt_internal_proc"; @@ -855,6 +866,7 @@
void QuailEventDispatcherWinGlib::doWsaAsyncSelect(int socket)
+ qDebug() << "QuailEventDispatcherWinGlib::doWsaAsyncSelect"; if (sn_read.contains(socket))
@@ -1048,6 +1060,7 @@
bool QuailEventDispatcherWinGlib::hasPendingEvents()
+ qDebug() << "QuailEventDispatcherWinGlib::hasPendingEvents"; return qGlobalPostedEventsCount() || PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE);
--- a/src/quailglibthread.cpp Sat Sep 21 09:20:52 2013 +0100
+++ b/src/quailglibthread.cpp Mon Sep 23 16:03:31 2013 +0100
@@ -1,17 +1,17 @@
-#include "quailglibthread.h"
+#include "quailglibthread.h" -QuailThread::QuailThread(QObject *parent) :
+QuailGlibThread::QuailGlibThread(QObject *parent) : -QuailThread::~QuailThread()
+QuailGlibThread::~QuailGlibThread() -bool QuailThread::start()
+bool QuailGlibThread::start() @@ -19,7 +19,7 @@
-void QuailThread::stop()
+void QuailGlibThread::stop() @@ -32,13 +32,13 @@
-GMainContext *QuailThread::mainContext()
+GMainContext *QuailGlibThread::getMainContext()
+void QuailGlibThread::run() // this will be unlocked as soon as the mainloop runs
@@ -51,7 +51,7 @@
// deferred call to loop_started()
GSource *timer = g_timeout_source_new(0);
g_source_attach(timer, mainContext);
- g_source_set_callback(timer, cb_loop_started, d, NULL);
+ g_source_set_callback(timer, cb_loop_started, this, NULL); // kick off the event loop
g_main_loop_run(mainLoop);
--- a/src/quailglibthread.h Sat Sep 21 09:20:52 2013 +0100
+++ b/src/quailglibthread.h Mon Sep 23 16:03:31 2013 +0100
@@ -1,25 +1,24 @@
-#ifndef QUAILGLIBTHREAD_H
+#ifndef QUAILGLIBTHREAD_H #define QUAILGLIBTHREAD_H
#include <QWaitCondition>
class QuailGlibThread : public QThread
- QuailThread(QObject *parent = 0);
+ QuailGlibThread(QObject *parent = 0); - GMainContext *mainContext();
+ GMainContext *getMainContext(); @@ -30,7 +29,7 @@
static gboolean cb_loop_started(gpointer data)
- return ((Private *)data)->loop_started();
+ return ((QuailGlibThread *)data)->loop_started();