author | zecke <zecke> | 2003-09-30 08:28:21 (UTC) |
---|---|---|
committer | zecke <zecke> | 2003-09-30 08:28:21 (UTC) |
commit | 4dd842eacb6c04303932e4cbebedff14db7cbc87 (patch) (side-by-side diff) | |
tree | fce6ebe83d9c3863b1cf9313a264c85014a716dc /library | |
parent | 5430b226e390cc9af6a3257d6998e34bf806c9e2 (diff) | |
download | opie-4dd842eacb6c04303932e4cbebedff14db7cbc87.zip opie-4dd842eacb6c04303932e4cbebedff14db7cbc87.tar.gz opie-4dd842eacb6c04303932e4cbebedff14db7cbc87.tar.bz2 |
Use a QQueue as in Qtopia
-rw-r--r-- | library/qpeapplication.cpp | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index 4d0b0ea..98af70a 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp @@ -19,12 +19,13 @@ */ #define QTOPIA_INTERNAL_LANGLIST #include <stdlib.h> #include <unistd.h> #include <linux/limits.h> // needed for some toolchains (PATH_MAX) #include <qfile.h> +#include <qqueue.h> #ifdef Q_WS_QWS #ifndef QT_NO_COP #if QT_VERSION <= 231 #define private public #define sendLocally processEvent #include "qcopenvelope_qws.h" @@ -97,15 +98,13 @@ class QPEApplicationData public: QPEApplicationData ( ) : presstimer( 0 ), presswidget( 0 ), rightpressed( false ), kbgrabbed( false ), notbusysent( false ), preloaded( false ), forceshow( false ), nomaximize( false ), keep_running( true ), qpe_main_widget( 0 ), qcopQok( false ) - { - qcopq.setAutoDelete( TRUE ); - } + {} int presstimer; QWidget* presswidget; QPoint presspos; bool rightpressed : 1; @@ -130,34 +129,37 @@ public: QCString channel; QCString message; QByteArray data; }; QWidget* qpe_main_widget; QGuardedPtr<QWidget> lastraised; - QList<QCopRec> qcopq; + QQueue<QCopRec> qcopq; QString styleName; QString decorationName; void enqueueQCop( const QCString &ch, const QCString &msg, const QByteArray &data ) { - qcopq.append( new QCopRec( ch, msg, data ) ); + qcopq.enqueue( new QCopRec( ch, msg, data ) ); } void sendQCopQ() { if (!qcopQok ) return; QCopRec * r; #ifndef QT_NO_COP - - for ( QListIterator<QCopRec> it( qcopq ); ( r = it.current() ); ++it ) - QCopChannel::sendLocally( r->channel, r->message, r->data ); + while((r=qcopq.dequeue())) { + // remove from queue before sending... + // event loop can come around again before getting + // back from sendLocally + QCopChannel::sendLocally( r->channel, r->message, r->data ); #endif - qcopq.clear(); + delete r; + } } static void show_mx(QWidget* mw, bool nomaximize, const QString & = QString::null ) { // ugly hack, remove that later after finding a sane solution // Addendum: Only Sharp currently has models with high resolution but (physically) small displays, |