author | zecke <zecke> | 2003-08-25 14:46:43 (UTC) |
---|---|---|
committer | zecke <zecke> | 2003-08-25 14:46:43 (UTC) |
commit | 292b097e7db25dd231381c5b09307a1fbe81a492 (patch) (unidiff) | |
tree | b103c6c5e15e784dc07af55539672a72559da821 /library | |
parent | 5f292b6e4fc0f4ee8e4bced9a916f6bdce864b6b (diff) | |
download | opie-292b097e7db25dd231381c5b09307a1fbe81a492.zip opie-292b097e7db25dd231381c5b09307a1fbe81a492.tar.gz opie-292b097e7db25dd231381c5b09307a1fbe81a492.tar.bz2 |
-instead of defining for an board we define now what this
boards need
QPE_NEED_CALIBRATE
-launcher is the only one executin application
-allow processing of QCOPfiles after start ( qpeapplication )
-qcopenvelope no longer calls Global::execute
-rw-r--r-- | library/custom-ipaq.h | 1 | ||||
-rw-r--r-- | library/custom-ramses.h | 1 | ||||
-rw-r--r-- | library/custom-sharp.h | 1 | ||||
-rw-r--r-- | library/custom-simpad.h | 7 | ||||
-rw-r--r-- | library/global.cpp | 59 | ||||
-rw-r--r-- | library/inputmethodinterface.h | 19 | ||||
-rw-r--r-- | library/qcopenvelope_qws.cpp | 66 | ||||
-rw-r--r-- | library/qpeapplication.cpp | 152 | ||||
-rw-r--r-- | library/qpeapplication.h | 6 |
9 files changed, 183 insertions, 129 deletions
diff --git a/library/custom-ipaq.h b/library/custom-ipaq.h index 553b571..a9319fa 100644 --- a/library/custom-ipaq.h +++ b/library/custom-ipaq.h | |||
@@ -18,3 +18,4 @@ | |||
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | 20 | ||
21 | #define QPE_NEED_CALIBRATION \ No newline at end of file | ||
diff --git a/library/custom-ramses.h b/library/custom-ramses.h index b841a66..9104931 100644 --- a/library/custom-ramses.h +++ b/library/custom-ramses.h | |||
@@ -18,6 +18,7 @@ | |||
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | 20 | ||
21 | #define QPE_NEED_CALIBRATION | ||
21 | #define QPE_HAVE_TOGGLELIGHT | 22 | #define QPE_HAVE_TOGGLELIGHT |
22 | #define QPE_STARTMENU | 23 | #define QPE_STARTMENU |
23 | 24 | ||
diff --git a/library/custom-sharp.h b/library/custom-sharp.h index 3dab34f..3936875 100644 --- a/library/custom-sharp.h +++ b/library/custom-sharp.h | |||
@@ -18,6 +18,7 @@ | |||
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | 20 | ||
21 | #define QPE_NEED_CALIBRATION | ||
21 | #define QPE_OWNAPM | 22 | #define QPE_OWNAPM |
22 | #define QPE_HAVE_TOGGLELIGHT | 23 | #define QPE_HAVE_TOGGLELIGHT |
23 | #define QPE_NOCIBAUD | 24 | #define QPE_NOCIBAUD |
diff --git a/library/custom-simpad.h b/library/custom-simpad.h new file mode 100644 index 0000000..3872dfd --- a/dev/null +++ b/library/custom-simpad.h | |||
@@ -0,0 +1,7 @@ | |||
1 | /* | ||
2 | * GPLv2 only zecke@handhelds.org | ||
3 | hOlgAr | ||
4 | */ | ||
5 | |||
6 | |||
7 | #define QPE_NEED_CALIBRATION \ No newline at end of file | ||
diff --git a/library/global.cpp b/library/global.cpp index 189b830..5c89430 100644 --- a/library/global.cpp +++ b/library/global.cpp | |||
@@ -676,62 +676,17 @@ void Global::invoke(const QString &c) | |||
676 | */ | 676 | */ |
677 | void Global::execute( const QString &c, const QString& document ) | 677 | void Global::execute( const QString &c, const QString& document ) |
678 | { | 678 | { |
679 | if ( qApp->type() != QApplication::GuiServer ) { | ||
680 | // ask the server to do the work | 679 | // ask the server to do the work |
681 | #if !defined(QT_NO_COP) | 680 | #if !defined(QT_NO_COP) |
682 | if ( document.isNull() ) { | 681 | if ( document.isNull() ) { |
683 | QCopEnvelope e( "QPE/System", "execute(QString)" ); | 682 | QCopEnvelope e( "QPE/System", "execute(QString)" ); |
684 | e << c; | 683 | e << c; |
685 | } else { | 684 | } else { |
686 | QCopEnvelope e( "QPE/System", "execute(QString,QString)" ); | 685 | QCopEnvelope e( "QPE/System", "execute(QString,QString)" ); |
687 | e << c << document; | 686 | e << c << document; |
688 | } | ||
689 | #endif | ||
690 | return; | ||
691 | } | ||
692 | |||
693 | // Attempt to execute the app using a builtin class for the app first | ||
694 | // else try and find it in the bin directory | ||
695 | if (builtin) { | ||
696 | for (int i = 0; builtin[i].file; i++) { | ||
697 | if ( builtin[i].file == c ) { | ||
698 | if ( running[i] ) { | ||
699 | if ( !document.isNull() && builtin[i].documentary ) | ||
700 | setDocument(running[i], document); | ||
701 | running[i]->raise(); | ||
702 | running[i]->show(); | ||
703 | running[i]->setActiveWindow(); | ||
704 | } else { | ||
705 | running[i] = builtin[i].func( builtin[i].maximized ); | ||
706 | } | ||
707 | #ifndef QT_NO_COP | ||
708 | QCopEnvelope e("QPE/System", "notBusy(QString)" ); | ||
709 | e << c; // that was quick ;-) | ||
710 | #endif | ||
711 | return; | ||
712 | } | ||
713 | } | ||
714 | } | ||
715 | |||
716 | //Global::invoke(c, document); | ||
717 | |||
718 | // Convert the command line in to a list of arguments | ||
719 | QStringList list = QStringList::split(QRegExp(" *"),c); | ||
720 | |||
721 | #if !defined(QT_NO_COP) | ||
722 | QString ap=list[0]; | ||
723 | |||
724 | qDebug("executing %s", ap.latin1() ); | ||
725 | |||
726 | /* if need be, sending a qcop message will result in an invoke, see | ||
727 | preceeding function */ | ||
728 | invoke( ap ); | ||
729 | //{ QCopEnvelope env( ("QPE/Application/" + ap).latin1(), "raise()" ); } | ||
730 | if ( !document.isEmpty() ) { | ||
731 | QCopEnvelope env( ("QPE/Application/" + ap).latin1(), "setDocument(QString)" ); | ||
732 | env << document; | ||
733 | } | 687 | } |
734 | #endif | 688 | #endif |
689 | return; | ||
735 | } | 690 | } |
736 | 691 | ||
737 | /*! | 692 | /*! |
diff --git a/library/inputmethodinterface.h b/library/inputmethodinterface.h index 88a121d..488f601 100644 --- a/library/inputmethodinterface.h +++ b/library/inputmethodinterface.h | |||
@@ -47,17 +47,28 @@ struct InputMethodInterface : public QUnknownInterface | |||
47 | virtual void onKeyPress( QObject *receiver, const char *slot ) = 0; | 47 | virtual void onKeyPress( QObject *receiver, const char *slot ) = 0; |
48 | }; | 48 | }; |
49 | 49 | ||
50 | // {70F0991C-8282-4625-A279-BD9D7D959FF6} | 50 | // {70F0991C-8282-4625-A279-BD9D7D959FF6} |
51 | #ifndef IID_ExtInputMethod | 51 | #ifndef IID_ExtInputMethod |
52 | #define IID_ExtInputMethod QUuid( 0x70f0991c, 0x8282, 0x4625, 0xa2, 0x79, 0xbd, 0x9d, 0x7d, 0x95, 0x9f, 0xf6) | 52 | #define IID_ExtInputMethod QUuid( 0x70f0991c, 0x8282, 0x4625, 0xa2, 0x79, 0xbd, 0x9d, 0x7d, 0x95, 0x9f, 0xf6) |
53 | #endif | 53 | #endif |
54 | 54 | ||
55 | struct ExtInputMethodInterface : public QUnknownInterface | 55 | struct ExtInputMethodInterface : public QUnknownInterface |
56 | { | 56 | { |
57 | virtual QWSInputMethod *inputMethod() = 0; | 57 | //identifying functions. |
58 | virtual QPixmap *icon() = 0; | ||
59 | virtual QString name() = 0; | 58 | virtual QString name() = 0; |
60 | virtual QWidget *widget( QWidget *parent, Qt::WFlags f )= 0; | 59 | virtual QPixmap *icon() = 0; |
60 | |||
61 | // state managment. | ||
62 | virtual void resetState() = 0; | ||
63 | |||
64 | virtual QWidget *keyboardWidget( QWidget *parent, Qt::WFlags f ) = 0; | ||
65 | // filenames, not menu names. | ||
66 | virtual QStringList compatible() = 0; | ||
67 | |||
68 | virtual QWSInputMethod *inputMethod() = 0; | ||
69 | virtual QWidget *statusWidget( QWidget *parent, Qt::WFlags f )= 0; | ||
70 | |||
71 | virtual void qcopReceive( const QCString &msg, const QByteArray &data )= 0; | ||
61 | }; | 72 | }; |
62 | 73 | ||
63 | 74 | ||
diff --git a/library/qcopenvelope_qws.cpp b/library/qcopenvelope_qws.cpp index 81bb0f5..0aac32b 100644 --- a/library/qcopenvelope_qws.cpp +++ b/library/qcopenvelope_qws.cpp | |||
@@ -102,57 +102,31 @@ QCopEnvelope::~QCopEnvelope() | |||
102 | QFile qcopfile(qcopfn); | 102 | QFile qcopfile(qcopfn); |
103 | 103 | ||
104 | if ( qcopfile.open(IO_WriteOnly | IO_Append) ) { | 104 | if ( qcopfile.open(IO_WriteOnly | IO_Append) ) { |
105 | #ifndef Q_OS_WIN32 | ||
105 | if(flock(qcopfile.handle(), LOCK_EX)) { | 106 | if(flock(qcopfile.handle(), LOCK_EX)) { |
106 | /* some error occured */ | 107 | /* some error occurred */ |
107 | qWarning(QString("Failed to obtain file lock on %1 (%2)") | 108 | qWarning(QString("Failed to obtain file lock on %1 (%2)") |
108 | .arg(qcopfn).arg( errno )); | 109 | .arg(qcopfn).arg( errno )); |
109 | } | 110 | } |
110 | /* file locked, but might be stale (e.g. program for whatever | 111 | #endif |
111 | reason did not start). I modified more than 1 minute ago, | 112 | { |
112 | truncate the file */ | 113 | QDataStream ds(&qcopfile); |
113 | struct stat buf; | 114 | ds << ch << msg << data; |
114 | time_t t; | 115 | qcopfile.flush(); |
115 | if (!fstat(qcopfile.handle(), &buf) && (time(&t) != (time_t)-1) ) { | 116 | #ifndef Q_OS_WIN32 |
116 | // success on fstat, lets compare times | 117 | flock(qcopfile.handle(), LOCK_UN); |
117 | if (buf.st_ctime + 60 < t) { | 118 | #endif |
118 | qWarning("stale file " + qcopfn + " found. Truncating"); | 119 | qcopfile.close(); |
119 | ftruncate(qcopfile.handle(), 0); | ||
120 | qcopfile.reset(); | ||
121 | } | ||
122 | } | 120 | } |
123 | 121 | ||
124 | if ( !QCopChannel::isRegistered(ch) ) { | 122 | QByteArray b; |
125 | int fsize = qcopfile.size(); | 123 | QDataStream stream(b, IO_WriteOnly); |
126 | { | 124 | stream << QString(ch.mid(pref)); |
127 | QDataStream ds(&qcopfile); | 125 | QCopChannel::send("QPE/Server", "processQCop(QString)", b); |
128 | ds << ch << msg << data; | 126 | delete device(); |
129 | flock(qcopfile.handle(), LOCK_UN); | 127 | return; |
130 | qcopfile.close(); | ||
131 | } | ||
132 | |||
133 | if (fsize == 0) { | ||
134 | QString cmd = ch.mid(pref); | ||
135 | Global::execute(cmd); | ||
136 | } | ||
137 | |||
138 | char c; | ||
139 | for (int i=0; (c=msg[i]); i++) { | ||
140 | if ( c == ' ' ) { | ||
141 | // Return-value required | ||
142 | // ###### wait for it | ||
143 | break; | ||
144 | } else if ( c == '(' ) { | ||
145 | // No return value | ||
146 | break; | ||
147 | } | ||
148 | } | ||
149 | goto end; | ||
150 | } // endif isRegisterd | ||
151 | flock(qcopfile.handle(), LOCK_UN); | ||
152 | qcopfile.close(); | ||
153 | qcopfile.remove(); | ||
154 | } else { | 128 | } else { |
155 | qWarning(QString("Failed to obtain file lock on %1") | 129 | qWarning(QString("Failed to open file %1") |
156 | .arg(qcopfn)); | 130 | .arg(qcopfn)); |
157 | } // endif open | 131 | } // endif open |
158 | } | 132 | } |
@@ -160,13 +134,13 @@ QCopEnvelope::~QCopEnvelope() | |||
160 | // If this is a message that should go along the SOAP channel, we move the | 134 | // If this is a message that should go along the SOAP channel, we move the |
161 | // endpoint URL to the data section. | 135 | // endpoint URL to the data section. |
162 | QString endpoint = ch.mid(9); | 136 | QString endpoint = ch.mid(9); |
163 | 137 | ||
164 | ch = "QPE/SOAP"; | 138 | ch = "QPE/SOAP"; |
165 | // Since byte arrays are explicitly shared, this is appended to the data variable.. | 139 | // Since byte arrays are explicitly shared, this is appended to the data variable.. |
166 | *this << endpoint; | 140 | *this << endpoint; |
167 | } | 141 | } |
142 | |||
168 | QCopChannel::send(ch,msg,data); | 143 | QCopChannel::send(ch,msg,data); |
169 | end: | ||
170 | delete device(); | 144 | delete device(); |
171 | } | 145 | } |
172 | 146 | ||
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index d1a7cd2..b1b7ed4 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp | |||
@@ -51,6 +51,9 @@ | |||
51 | #include <qtooltip.h> | 51 | #include <qtooltip.h> |
52 | #include <qsignal.h> | 52 | #include <qsignal.h> |
53 | #include <qmainwindow.h> | 53 | #include <qmainwindow.h> |
54 | |||
55 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) | ||
56 | #define QTOPIA_INTERNAL_INITAPP | ||
54 | #include "qpeapplication.h" | 57 | #include "qpeapplication.h" |
55 | #include "qpestyle.h" | 58 | #include "qpestyle.h" |
56 | #include "styleinterface.h" | 59 | #include "styleinterface.h" |
@@ -305,6 +308,16 @@ private: | |||
305 | mutable QImageDrag *resImage; | 308 | mutable QImageDrag *resImage; |
306 | }; | 309 | }; |
307 | 310 | ||
311 | static int& hack(int& i) | ||
312 | { | ||
313 | #if QT_VERSION <= 230 && defined(QT_NO_CODECS) | ||
314 | // These should be created, but aren't in Qt 2.3.0 | ||
315 | (void)new QUtf8Codec; | ||
316 | (void)new QUtf16Codec; | ||
317 | #endif | ||
318 | return i; | ||
319 | } | ||
320 | |||
308 | static int muted = 0; | 321 | static int muted = 0; |
309 | static int micMuted = 0; | 322 | static int micMuted = 0; |
310 | 323 | ||
@@ -486,6 +499,35 @@ static void setTreble( int t = 0, int percent = -1 ) | |||
486 | 499 | ||
487 | */ | 500 | */ |
488 | 501 | ||
502 | |||
503 | |||
504 | void QPEApplication::processQCopFile() | ||
505 | { | ||
506 | QString qcopfn("/tmp/qcop-msg-"); | ||
507 | qcopfn += d->appName; // append command name | ||
508 | |||
509 | QFile f(qcopfn); | ||
510 | if ( f.open(IO_ReadWrite) ) { | ||
511 | #ifndef Q_OS_WIN32 | ||
512 | flock(f.handle(), LOCK_EX); | ||
513 | #endif | ||
514 | QDataStream ds(&f); | ||
515 | QCString channel, message; | ||
516 | QByteArray data; | ||
517 | while(!ds.atEnd()) { | ||
518 | ds >> channel >> message >> data; | ||
519 | d->enqueueQCop(channel,message,data); | ||
520 | } | ||
521 | ::ftruncate(f.handle(), 0); | ||
522 | #ifndef Q_OS_WIN32 | ||
523 | f.flush(); | ||
524 | flock(f.handle(), LOCK_UN); | ||
525 | #endif | ||
526 | } | ||
527 | #endif | ||
528 | } | ||
529 | |||
530 | |||
489 | /*! | 531 | /*! |
490 | \fn void QPEApplication::appMessage( const QCString& msg, const QByteArray& data ) | 532 | \fn void QPEApplication::appMessage( const QCString& msg, const QByteArray& data ) |
491 | 533 | ||
@@ -523,7 +565,7 @@ static void setTreble( int t = 0, int percent = -1 ) | |||
523 | the Qtopia server passes GuiServer. | 565 | the Qtopia server passes GuiServer. |
524 | */ | 566 | */ |
525 | QPEApplication::QPEApplication( int & argc, char **argv, Type t ) | 567 | QPEApplication::QPEApplication( int & argc, char **argv, Type t ) |
526 | : QApplication( argc, argv, t ) | 568 | : QApplication( hack(argc), argv, t ), pidChannel( 0 ) |
527 | { | 569 | { |
528 | d = new QPEApplicationData; | 570 | d = new QPEApplicationData; |
529 | d->loadTextCodecs(); | 571 | d->loadTextCodecs(); |
@@ -551,6 +593,14 @@ QPEApplication::QPEApplication( int & argc, char **argv, Type t ) | |||
551 | QMimeSourceFactory::setDefaultFactory( new ResourceMimeFactory ); | 593 | QMimeSourceFactory::setDefaultFactory( new ResourceMimeFactory ); |
552 | 594 | ||
553 | connect( this, SIGNAL( lastWindowClosed() ), this, SLOT( hideOrQuit() ) ); | 595 | connect( this, SIGNAL( lastWindowClosed() ), this, SLOT( hideOrQuit() ) ); |
596 | |||
597 | |||
598 | sysChannel = new QCopChannel( "QPE/System", this ); | ||
599 | connect( sysChannel, SIGNAL( received( const QCString &, const QByteArray & ) ), | ||
600 | this, SLOT( systemMessage( const QCString &, const QByteArray & ) ) ); | ||
601 | |||
602 | /* COde now in initapp */ | ||
603 | #if 0 | ||
554 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) | 604 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) |
555 | 605 | ||
556 | QString qcopfn( "/tmp/qcop-msg-" ); | 606 | QString qcopfn( "/tmp/qcop-msg-" ); |
@@ -561,9 +611,7 @@ QPEApplication::QPEApplication( int & argc, char **argv, Type t ) | |||
561 | flock( f.handle(), LOCK_EX ); | 611 | flock( f.handle(), LOCK_EX ); |
562 | } | 612 | } |
563 | 613 | ||
564 | sysChannel = new QCopChannel( "QPE/System", this ); | 614 | |
565 | connect( sysChannel, SIGNAL( received( const QCString &, const QByteArray & ) ), | ||
566 | this, SLOT( systemMessage( const QCString &, const QByteArray & ) ) ); | ||
567 | 615 | ||
568 | QCString channel = QCString( argv[ 0 ] ); | 616 | QCString channel = QCString( argv[ 0 ] ); |
569 | channel.replace( QRegExp( ".*/" ), "" ); | 617 | channel.replace( QRegExp( ".*/" ), "" ); |
@@ -608,7 +656,9 @@ QPEApplication::QPEApplication( int & argc, char **argv, Type t ) | |||
608 | setArgs( argc, argv ); | 656 | setArgs( argc, argv ); |
609 | 657 | ||
610 | #endif | 658 | #endif |
611 | 659 | #else | |
660 | initApp( argc, argv ); | ||
661 | #endif | ||
612 | // qwsSetDecoration( new QPEDecoration() ); | 662 | // qwsSetDecoration( new QPEDecoration() ); |
613 | 663 | ||
614 | #ifndef QT_NO_TRANSLATION | 664 | #ifndef QT_NO_TRANSLATION |
@@ -625,13 +675,12 @@ QPEApplication::QPEApplication( int & argc, char **argv, Type t ) | |||
625 | //###language/font hack; should look it up somewhere | 675 | //###language/font hack; should look it up somewhere |
626 | #ifdef QWS | 676 | #ifdef QWS |
627 | 677 | ||
628 | if ( lang == "ja" || lang == "zh_CN" || lang == "zh_TW" || lang == "ko" ) { | 678 | if ( lang == "ja" || lang == "zh_CN" || lang == "zh_TW" || lang == "ko" ) { |
629 | QFont fn = FontManager::unicodeFont( FontManager::Proportional ); | 679 | QFont fn = FontManager::unicodeFont( FontManager::Proportional ); |
630 | setFont( fn ); | 680 | setFont( fn ); |
631 | } | 681 | } |
632 | #endif | 682 | #endif |
633 | 683 | } | |
634 | } | ||
635 | #endif | 684 | #endif |
636 | 685 | ||
637 | applyStyle(); | 686 | applyStyle(); |
@@ -650,6 +699,51 @@ QPEApplication::QPEApplication( int & argc, char **argv, Type t ) | |||
650 | #endif | 699 | #endif |
651 | } | 700 | } |
652 | 701 | ||
702 | |||
703 | #ifdef QTOPIA_INTERNAL_INITAPP | ||
704 | void QPEApplication::initApp( int argc, char **argv ) | ||
705 | { | ||
706 | delete pidChannel; | ||
707 | d->keep_running = TRUE; | ||
708 | d->preloaded = FALSE; | ||
709 | d->forceshow = FALSE; | ||
710 | |||
711 | QCString channel = QCString(argv[0]); | ||
712 | |||
713 | channel.replace(QRegExp(".*/"),""); | ||
714 | d->appName = channel; | ||
715 | |||
716 | qt_fbdpy->setIdentity( channel ); // In Qt/E 2.3.6 | ||
717 | |||
718 | channel = "QPE/Application/" + channel; | ||
719 | pidChannel = new QCopChannel( channel, this); | ||
720 | connect( pidChannel, SIGNAL(received(const QCString &, const QByteArray &)), | ||
721 | this, SLOT(pidMessage(const QCString &, const QByteArray &))); | ||
722 | |||
723 | processQCopFile(); | ||
724 | d->keep_running = d->qcopq.isEmpty(); | ||
725 | |||
726 | for (int a=0; a<argc; a++) { | ||
727 | if ( qstrcmp(argv[a],"-preload")==0 ) { | ||
728 | argv[a] = argv[a+1]; | ||
729 | a++; | ||
730 | d->preloaded = TRUE; | ||
731 | argc-=1; | ||
732 | } else if ( qstrcmp(argv[a],"-preload-show")==0 ) { | ||
733 | argv[a] = argv[a+1]; | ||
734 | a++; | ||
735 | d->preloaded = TRUE; | ||
736 | d->forceshow = TRUE; | ||
737 | argc-=1; | ||
738 | } | ||
739 | } | ||
740 | |||
741 | /* overide stored arguments */ | ||
742 | setArgs(argc, argv); | ||
743 | } | ||
744 | #endif | ||
745 | |||
746 | |||
653 | static QPtrDict<void>* inputMethodDict = 0; | 747 | static QPtrDict<void>* inputMethodDict = 0; |
654 | static void createInputMethodDict() | 748 | static void createInputMethodDict() |
655 | { | 749 | { |
@@ -1124,20 +1218,6 @@ void QPEApplication::systemMessage( const QCString& msg, const QByteArray& data | |||
1124 | // emit the signal so everyone else knows... | 1218 | // emit the signal so everyone else knows... |
1125 | emit timeChanged(); | 1219 | emit timeChanged(); |
1126 | } | 1220 | } |
1127 | else if ( msg == "execute(QString)" ) { | ||
1128 | if ( type() == GuiServer ) { | ||
1129 | QString t; | ||
1130 | stream >> t; | ||
1131 | Global::execute( t ); | ||
1132 | } | ||
1133 | } | ||
1134 | else if ( msg == "execute(QString,QString)" ) { | ||
1135 | if ( type() == GuiServer ) { | ||
1136 | QString t, d; | ||
1137 | stream >> t >> d; | ||
1138 | Global::execute( t, d ); | ||
1139 | } | ||
1140 | } | ||
1141 | else if ( msg == "addAlarm(QDateTime,QCString,QCString,int)" ) { | 1221 | else if ( msg == "addAlarm(QDateTime,QCString,QCString,int)" ) { |
1142 | if ( type() == GuiServer ) { | 1222 | if ( type() == GuiServer ) { |
1143 | QDateTime when; | 1223 | QDateTime when; |
@@ -1208,8 +1288,22 @@ void QPEApplication::systemMessage( const QCString& msg, const QByteArray& data | |||
1208 | } | 1288 | } |
1209 | else if ( msg == "trebleChange(bool)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org> | 1289 | else if ( msg == "trebleChange(bool)" ) { // Added: 2002-12-13 by Maximilian Reiss <harlekin@handhelds.org> |
1210 | setTreble(); | 1290 | setTreble(); |
1291 | } else if ( msg == "getMarkedText()" ) { | ||
1292 | if ( type() == GuiServer ) { | ||
1293 | const ushort unicode = 'C'-'@'; | ||
1294 | const int scan = Key_C; | ||
1295 | qwsServer->processKeyEvent( unicode, scan, ControlButton, TRUE, FALSE ); | ||
1296 | qwsServer->processKeyEvent( unicode, scan, ControlButton, FALSE, FALSE ); | ||
1297 | } | ||
1298 | } else if ( msg == "newChannel(QString)") { | ||
1299 | QString myChannel = "QPE/Application/" + d->appName; | ||
1300 | QString channel; | ||
1301 | stream >> channel; | ||
1302 | if (channel == myChannel) { | ||
1303 | processQCopFile(); | ||
1304 | d->sendQCopQ(); | ||
1211 | } | 1305 | } |
1212 | 1306 | } | |
1213 | 1307 | ||
1214 | 1308 | ||
1215 | #endif | 1309 | #endif |
@@ -1306,7 +1400,11 @@ void QPEApplication::pidMessage( const QCString& msg, const QByteArray& data) | |||
1306 | mw = d->qpe_main_widget; | 1400 | mw = d->qpe_main_widget; |
1307 | if ( mw ) | 1401 | if ( mw ) |
1308 | Global::setDocument( mw, doc ); | 1402 | Global::setDocument( mw, doc ); |
1309 | } else { | 1403 | } else if ( msg == "QPEProcessQCop()" ) { |
1404 | processQCopFile(); | ||
1405 | d->sendQCopQ(); | ||
1406 | } | ||
1407 | { | ||
1310 | bool p = d->keep_running; | 1408 | bool p = d->keep_running; |
1311 | d->keep_running = FALSE; | 1409 | d->keep_running = FALSE; |
1312 | emit appMessage( msg, data); | 1410 | emit appMessage( msg, data); |
diff --git a/library/qpeapplication.h b/library/qpeapplication.h index 65a6d33..770ea23 100644 --- a/library/qpeapplication.h +++ b/library/qpeapplication.h | |||
@@ -82,6 +82,10 @@ public: | |||
82 | void showMainDocumentWidget( QWidget*, bool nomax=FALSE ); | 82 | void showMainDocumentWidget( QWidget*, bool nomax=FALSE ); |
83 | static void showDialog( QDialog*, bool nomax=FALSE ); | 83 | static void showDialog( QDialog*, bool nomax=FALSE ); |
84 | static int execDialog( QDialog*, bool nomax=FALSE ); | 84 | static int execDialog( QDialog*, bool nomax=FALSE ); |
85 | /* Merge setTempScreenSaverMode */ | ||
86 | #ifdef QTOPIA_INTERNAL_INITAPP | ||
87 | void initApp( int argv, char **argv ); | ||
88 | #endif | ||
85 | 89 | ||
86 | static void setKeepRunning(); | 90 | static void setKeepRunning(); |
87 | bool keepRunning() const; | 91 | bool keepRunning() const; |
@@ -101,6 +105,7 @@ signals: | |||
101 | void dateFormatChanged( DateFormat ); | 105 | void dateFormatChanged( DateFormat ); |
102 | void flush(); | 106 | void flush(); |
103 | void reload(); | 107 | void reload(); |
108 | /* linkChanged signal */ | ||
104 | 109 | ||
105 | private slots: | 110 | private slots: |
106 | void systemMessage( const QCString &msg, const QByteArray &data ); | 111 | void systemMessage( const QCString &msg, const QByteArray &data ); |
@@ -126,6 +131,7 @@ private: | |||
126 | void installTranslation( const QString& baseName ); | 131 | void installTranslation( const QString& baseName ); |
127 | #endif | 132 | #endif |
128 | void mapToDefaultAction( QWSKeyEvent *ke, int defKey ); | 133 | void mapToDefaultAction( QWSKeyEvent *ke, int defKey ); |
134 | void processQCopFile(); | ||
129 | 135 | ||
130 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) | 136 | #if defined(Q_WS_QWS) && !defined(QT_NO_COP) |
131 | QCopChannel *sysChannel; | 137 | QCopChannel *sysChannel; |