summaryrefslogtreecommitdiff
authorjeremy <jeremy>2002-02-15 21:12:53 (UTC)
committer jeremy <jeremy>2002-02-15 21:12:53 (UTC)
commitb0768575b7bc1e4fe477d37a49cccc7e3d92bf85 (patch) (side-by-side diff)
tree4c66c26f74ec710204f3f2e4303a6d6d8968c6a7
parentb15950bcf97b5590d37373ec2beedab80e40ded6 (diff)
downloadopie-b0768575b7bc1e4fe477d37a49cccc7e3d92bf85.zip
opie-b0768575b7bc1e4fe477d37a49cccc7e3d92bf85.tar.gz
opie-b0768575b7bc1e4fe477d37a49cccc7e3d92bf85.tar.bz2
Added new QCop support. Desktop now listens on channel QPE/Desktop to the
keyRegister(int key, QString channel, QString message) message. What this will do is allow an app to reiceve keyboard input for a particular key no matter if they have focus or not.
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--core/launcher/desktop.cpp56
-rw-r--r--core/launcher/desktop.h4
-rw-r--r--core/launcher/opie-taskbar.control2
3 files changed, 61 insertions, 1 deletions
diff --git a/core/launcher/desktop.cpp b/core/launcher/desktop.cpp
index d39af25..ce99bad 100644
--- a/core/launcher/desktop.cpp
+++ b/core/launcher/desktop.cpp
@@ -49,2 +49,4 @@
+#include <qvaluelist.h>
+
#include <stdlib.h>
@@ -52,2 +54,22 @@
+
+class QCopKeyRegister
+{
+public:
+ QCopKeyRegister() : keyCode(0) { }
+ QCopKeyRegister(int k, const QString &c, const QString &m)
+ : keyCode(k), channel(c), message(m) { }
+
+ int getKeyCode() const { return keyCode; }
+ QString getChannel() const { return channel; }
+ QString getMessage() const { return message; }
+
+private:
+ int keyCode;
+ QString channel, message;
+};
+
+typedef QValueList<QCopKeyRegister> KeyRegisterList;
+KeyRegisterList keyRegisterList;
+
static Desktop* qpedesktop = 0;
@@ -125,2 +147,6 @@ DesktopApplication::DesktopApplication( int& argc, char **argv, Type t )
pa = new DesktopPowerAlerter( 0 );
+
+ channel = new QCopChannel( "QPE/Desktop", this );
+ connect( channel, SIGNAL(received(const QCString&, const QByteArray&)),
+ this, SLOT(receive(const QCString&, const QByteArray&)) );
}
@@ -134,2 +160,18 @@ DesktopApplication::~DesktopApplication()
+void DesktopApplication::receive( const QCString &msg, const QByteArray &data )
+{
+ QDataStream stream( data, IO_ReadOnly );
+ if (msg == "keyRegister(int key, QString channel, QString message)")
+ {
+ int k;
+ QString c, m;
+
+ stream >> k;
+ stream >> c;
+ stream >> m;
+
+ qWarning("KeyRegisterRecieved: %i, %s, %s", k, (const char*)c, (const char *)m);
+ keyRegisterList.append(QCopKeyRegister(k,c,m));
+ }
+}
@@ -147,2 +189,10 @@ bool DesktopApplication::qwsEventFilter( QWSEvent *e )
bool press = ke->simpleData.is_press;
+
+ KeyRegisterList::Iterator it;
+ for( it = keyRegisterList.begin(); it != keyRegisterList.end(); ++it )
+ {
+ if ((*it).getKeyCode() == ke->simpleData.keycode)
+ QCopEnvelope((*it).getChannel().utf8(), (*it).getMessage().utf8());
+ }
+
if ( !keyboardGrabbed() ) {
@@ -180,2 +230,8 @@ bool DesktopApplication::qwsEventFilter( QWSEvent *e )
}
+ /*
+ if ( ke->simpleData.keycode == 4096 ) {
+ QCopEnvelope e("QPE/VMemo", "toggleRecord()");
+ return TRUE;
+ }
+ */
if ( ke->simpleData.keycode == Key_F34 ) {
diff --git a/core/launcher/desktop.h b/core/launcher/desktop.h
index dfdbeab..f0a7cba 100644
--- a/core/launcher/desktop.h
+++ b/core/launcher/desktop.h
@@ -65,2 +65,5 @@ protected:
+public slots:
+ void receive( const QCString &msg, const QByteArray &data );
+
protected slots:
@@ -73,2 +76,3 @@ private:
QTimer *cardSendTimer;
+ QCopChannel *channel;
};
diff --git a/core/launcher/opie-taskbar.control b/core/launcher/opie-taskbar.control
index 53daa82..3db0480 100644
--- a/core/launcher/opie-taskbar.control
+++ b/core/launcher/opie-taskbar.control
@@ -5,3 +5,3 @@ Maintainer: Warwick Allison <warwick@trolltech.com>
Architecture: arm
-Version: $QPE_VERSION-$SUB_VERSION
+Version: $QPE_VERSION-$SUB_VERSION.1
Depends: qt-embedded (>=$QTE_VERSION)