summaryrefslogtreecommitdiff
path: root/noncore/applets/zkbapplet/zkbwidget.cpp
Side-by-side diff
Diffstat (limited to 'noncore/applets/zkbapplet/zkbwidget.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/applets/zkbapplet/zkbwidget.cpp21
1 files changed, 14 insertions, 7 deletions
diff --git a/noncore/applets/zkbapplet/zkbwidget.cpp b/noncore/applets/zkbapplet/zkbwidget.cpp
index 38bfba9..8499500 100644
--- a/noncore/applets/zkbapplet/zkbwidget.cpp
+++ b/noncore/applets/zkbapplet/zkbwidget.cpp
@@ -1,40 +1,47 @@
#include <opie2/otaskbarapplet.h>
+#include <opie2/okeyfilter.h>
#include <qpe/qcopenvelope_qws.h>
#include <qpe/applnk.h>
#include <qpe/qpeapplication.h>
#include <qpe/resource.h>
#include <stdio.h>
#include <unistd.h>
#include "zkbwidget.h"
#include "zkbcfg.h"
using namespace Opie::Ui;
-ZkbWidget::ZkbWidget(QWidget* parent):QLabel(parent),keymap(0),
- disabled(Resource::loadPixmap("zkb-disabled")) {
+
+ZkbWidget::ZkbWidget(QWidget* parent)
+ :QLabel(parent),keymap(0),disabled(Resource::loadPixmap("zkb-disabled")) {
labels = new QPopupMenu();
connect(labels, SIGNAL(activated(int)), this,
SLOT(labelChanged(int)));
loadKeymap();
channel = new QCopChannel("QPE/zkb", this);
connect(channel, SIGNAL(received(const QCString&,const QByteArray&)),
this, SLOT(signalReceived(const QCString&,const QByteArray&)));
setFixedWidth ( AppLnk::smallIconSize() );
setFixedHeight ( AppLnk::smallIconSize() );
}
-ZkbWidget::~ZkbWidget() {
+ZkbWidget::~ZkbWidget()
+{
+ if (keymap != 0) {
+ delete keymap;
+ keymap = 0;
+ }
}
int ZkbWidget::position()
{
return 8;
}
bool ZkbWidget::loadKeymap() {
ZkbConfig c(QPEApplication::qpeDir()+"/share/zkb");
QFontMetrics fm(font());
if (keymap != 0) {
@@ -44,34 +51,36 @@ bool ZkbWidget::loadKeymap() {
Keymap* km = new Keymap();
if (!c.load("zkb.xml", *km, "")) {
delete km;
setPixmap(disabled);
return false;
}
connect(km, SIGNAL(stateChanged(const QString&)),
this, SLOT(stateChanged(const QString&)));
- qwsServer->setKeyboardFilter(km);
+ Opie::Core::OKeyFilter::inst()->addHandler(km);
Keymap* oldkm = keymap;
keymap = km;
if (oldkm != 0) {
delete oldkm;
}
- setText(keymap->getCurrentLabel());
+ QString ltext = keymap->getCurrentLabel();
+ if (ltext.length()==0) ltext = "??";
+ setText(ltext);
labels->clear();
QStringList l = keymap->listLabels();
labels->insertItem(disabled, 0, 0);
int n = 1;
w = 0;
for(QStringList::Iterator it = l.begin(); it != l.end();
++it, n++) {
// printf("label: %s\n", (const char*) (*it).utf8());
labels->insertItem(*it, n, n);
@@ -148,14 +157,12 @@ void ZkbWidget::signalReceived(const QCString& msg, const QByteArray& data) {
} else if (msg == "debug(QString)") {
QString flag;
stream >> flag;
}
}
void ZkbWidget::reload() {
loadKeymap();
QCopEnvelope("QPE/System", "notBusy()");
}
EXPORT_OPIE_APPLET_v1( ZkbWidget )
-
-