author | zautrix <zautrix> | 2004-09-08 11:34:38 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-09-08 11:34:38 (UTC) |
commit | 1fcec858408b88bb412af18fbf853b49b6970d8a (patch) (unidiff) | |
tree | 702e94a74f0bb90335b9b193d28e31c1dc392c03 /kmicromail/opiemail.cpp | |
parent | cdff4506a9148c47406af86968da73c0dbfca0ba (diff) | |
download | kdepimpi-1fcec858408b88bb412af18fbf853b49b6970d8a.zip kdepimpi-1fcec858408b88bb412af18fbf853b49b6970d8a.tar.gz kdepimpi-1fcec858408b88bb412af18fbf853b49b6970d8a.tar.bz2 |
Fixed QCOP call problem of kopiemail
-rw-r--r-- | kmicromail/opiemail.cpp | 62 |
1 files changed, 39 insertions, 23 deletions
diff --git a/kmicromail/opiemail.cpp b/kmicromail/opiemail.cpp index 0c581c0..b2119e6 100644 --- a/kmicromail/opiemail.cpp +++ b/kmicromail/opiemail.cpp | |||
@@ -13,2 +13,3 @@ | |||
13 | #include <qmessagebox.h> | 13 | #include <qmessagebox.h> |
14 | #include <qtimer.h> | ||
14 | #include <libkdepim/externalapphandler.h> | 15 | #include <libkdepim/externalapphandler.h> |
@@ -50,20 +51,17 @@ void OpieMail::message(const QCString &msg, const QByteArray &data) | |||
50 | static int ii = 0; | 51 | static int ii = 0; |
51 | qDebug("call ############################# %d ", ii); | 52 | //qDebug("QCOP CALL ############################# %d ", ii); |
52 | // block second call | 53 | //QString mess ( msg ); |
53 | if ( ii < 2 ) { | 54 | //qDebug("Message = %s ",mess.latin1()); |
54 | //++ii; | ||
55 | if ( ii > 1 ) { | ||
56 | qDebug("qcop call blocked "); | ||
57 | //return; | ||
58 | } | ||
59 | } | ||
60 | ++ii; | 55 | ++ii; |
61 | //qDebug("KM:appMessage %d *%s* %x", ii, msg.data(), this); | 56 | //qDebug("KM:appMessage %d *%s* %x", ii, msg.data(), this); |
57 | |||
58 | mPendingEmail = QString::null; | ||
59 | mPendingName = QString::null; | ||
62 | if (msg == "writeMail(QString,QString)") | 60 | if (msg == "writeMail(QString,QString)") |
63 | { | 61 | { |
62 | //qDebug("writeMail(QString,QString) "); | ||
64 | QDataStream stream(data,IO_ReadOnly); | 63 | QDataStream stream(data,IO_ReadOnly); |
65 | QString name, email; | 64 | stream >> mPendingName >> mPendingEmail; |
66 | stream >> name >> email; | ||
67 | // removing the whitespaces at beginning and end is needed! | 65 | // removing the whitespaces at beginning and end is needed! |
68 | slotwriteMail(name.stripWhiteSpace(),email.stripWhiteSpace()); | 66 | QTimer::singleShot ( 50, this, SLOT(slotComposeMail() ) ); |
69 | } | 67 | } |
@@ -71,3 +69,8 @@ void OpieMail::message(const QCString &msg, const QByteArray &data) | |||
71 | { | 69 | { |
72 | slotComposeMail(); | 70 | //qDebug("slotComposeMail() "); |
71 | // we cannot call slotComposeMail(); directly, because may be executing a QCOP call | ||
72 | // and a QCOP call does not like a processevents in his execution | ||
73 | // with the Qtimer we call slotComposeMail() after we reached the main event loop | ||
74 | QTimer::singleShot ( 50, this, SLOT(slotComposeMail() ) ); | ||
75 | // slotComposeMail(); | ||
73 | } | 76 | } |
@@ -75,12 +78,17 @@ void OpieMail::message(const QCString &msg, const QByteArray &data) | |||
75 | { | 78 | { |
79 | //qDebug(" newMail(QString)"); | ||
76 | QDataStream stream(data,IO_ReadOnly); | 80 | QDataStream stream(data,IO_ReadOnly); |
77 | QString nameemail; | 81 | stream >> mPendingName; |
78 | stream >> nameemail; | ||
79 | // the format is | 82 | // the format is |
80 | // NAME <EMAIL>:SUBJECT | 83 | // NAME <EMAIL>:SUBJECT |
81 | //qDebug("message %s ", nameemail.latin1()); | 84 | QTimer::singleShot ( 50, this, SLOT(slotComposeMail() ) ); |
82 | 85 | } else { | |
83 | slotwriteMail2( nameemail ); | 86 | if ( ii == 1 ) { |
84 | } else | 87 | qDebug("Kopiemail::Error:: Initial QCOP call for ExternalAppHandler not supported "); |
85 | ExternalAppHandler::instance()->appMessage ( msg, data); | 88 | return; |
89 | } | ||
90 | ExternalAppHandler::instance()->appMessage ( msg, data); | ||
91 | } | ||
92 | |||
93 | //qDebug("END OpieMail::message "); | ||
86 | } | 94 | } |
@@ -88,4 +96,4 @@ void OpieMail::slotwriteMail2(const QString& namemail ) | |||
88 | { | 96 | { |
89 | // qDebug("OpieMail::slotwriteMail2 "); | 97 | //qDebug("OpieMail::slotwriteMail2 "); |
90 | qApp->processEvents(); | 98 | //qApp->processEvents(); |
91 | ComposeMail compose( settings, this, 0, true ); | 99 | ComposeMail compose( settings, this, 0, true ); |
@@ -130,2 +138,3 @@ void OpieMail::slotwriteMail(const QString&name,const QString&email) | |||
130 | compose.exec(); | 138 | compose.exec(); |
139 | raise(); | ||
131 | } | 140 | } |
@@ -134,3 +143,10 @@ void OpieMail::slotComposeMail() | |||
134 | { | 143 | { |
135 | slotwriteMail2( QString () ); | 144 | if ( mPendingEmail == QString::null && mPendingName == QString::null) |
145 | slotwriteMail2( QString () ); | ||
146 | else { | ||
147 | if ( mPendingEmail == QString::null ) | ||
148 | slotwriteMail2( mPendingName ); | ||
149 | else | ||
150 | slotwriteMail( mPendingName, mPendingEmail ); | ||
151 | } | ||
136 | //slotwriteMail(0l,0l); | 152 | //slotwriteMail(0l,0l); |