summaryrefslogtreecommitdiff
path: root/noncore/applets
authorzecke <zecke>2004-12-20 22:17:40 (UTC)
committer zecke <zecke>2004-12-20 22:17:40 (UTC)
commitb15930cd03acafd9770bca26f3388817f1a4dcbf (patch) (side-by-side diff)
tree7f86e31793c1bacb0882e7abb88a3847333f5c4a /noncore/applets
parenta50334dddaa542fd63726a639e852c30036f53a0 (diff)
downloadopie-b15930cd03acafd9770bca26f3388817f1a4dcbf.zip
opie-b15930cd03acafd9770bca26f3388817f1a4dcbf.tar.gz
opie-b15930cd03acafd9770bca26f3388817f1a4dcbf.tar.bz2
-Fix for 1483
"ZKB should keep user settings in $HOME/Settings instead of $OPIEDIR/share/zkb" Now by default it loads and saves to $HOME/Applications/zkb but falls back to $OPIEDIR/share/zkb to find the included files
Diffstat (limited to 'noncore/applets') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/applets/zkbapplet/applet/zkbwidget.cpp18
-rw-r--r--noncore/applets/zkbapplet/applet/zkbwidget.h2
-rw-r--r--noncore/applets/zkbapplet/keyzcfg/cfgdlg.cpp2
-rw-r--r--noncore/applets/zkbapplet/keyzcfg/main.cpp4
-rw-r--r--noncore/applets/zkbapplet/keyzcfg/zkbcfg.cpp67
5 files changed, 47 insertions, 46 deletions
diff --git a/noncore/applets/zkbapplet/applet/zkbwidget.cpp b/noncore/applets/zkbapplet/applet/zkbwidget.cpp
index 13729ea..55c08b3 100644
--- a/noncore/applets/zkbapplet/applet/zkbwidget.cpp
+++ b/noncore/applets/zkbapplet/applet/zkbwidget.cpp
@@ -26,31 +26,27 @@ ZkbWidget::ZkbWidget(QWidget* parent)
setFixedWidth ( AppLnk::smallIconSize() );
setFixedHeight ( AppLnk::smallIconSize() );
}
ZkbWidget::~ZkbWidget()
{
- if (keymap != 0) {
- delete keymap;
- keymap = 0;
- }
+ delete keymap;
+ keymap = 0;
}
int ZkbWidget::position()
{
return 8;
}
bool ZkbWidget::loadKeymap() {
- ZkbConfig c(QPEApplication::qpeDir()+"share/zkb");
+ ZkbConfig c(Global::applicationFileName("zkb", QString::null) );
QFontMetrics fm(font());
- if (keymap != 0) {
- delete keymap;
- keymap = 0;
- }
+ delete keymap;
+ keymap = 0;
Keymap* km = new Keymap();
if (!c.load("zkb.xml", *km, "")) {
delete km;
setPixmap(disabled);
@@ -95,16 +91,12 @@ bool ZkbWidget::loadKeymap() {
} else {
show();
}
return true;
}
-QSize ZkbWidget::sizeHint() const {
- return QSize(AppLnk::smallIconSize(),AppLnk::smallIconSize());
-}
-
void ZkbWidget::stateChanged(const QString& s) {
// odebug << "stateChanged: " << s.utf8() << "\n" << oendl;
setText(s);
}
void ZkbWidget::labelChanged(int id) {
diff --git a/noncore/applets/zkbapplet/applet/zkbwidget.h b/noncore/applets/zkbapplet/applet/zkbwidget.h
index 9bce85a..13906c0 100644
--- a/noncore/applets/zkbapplet/applet/zkbwidget.h
+++ b/noncore/applets/zkbapplet/applet/zkbwidget.h
@@ -14,14 +14,12 @@ Q_OBJECT
public:
ZkbWidget(QWidget* parent);
~ZkbWidget();
static int position();
- QSize sizeHint() const;
-
protected:
QLabel* label;
Keymap* keymap;
QPopupMenu* labels;
QCopChannel* channel;
int w, h;
diff --git a/noncore/applets/zkbapplet/keyzcfg/cfgdlg.cpp b/noncore/applets/zkbapplet/keyzcfg/cfgdlg.cpp
index 4190a9e..6f24ea0 100644
--- a/noncore/applets/zkbapplet/keyzcfg/cfgdlg.cpp
+++ b/noncore/applets/zkbapplet/keyzcfg/cfgdlg.cpp
@@ -121,12 +121,12 @@ void CfgDlg::keymapHighlighted(const QString&text) {
void CfgDlg::accept() {
cfile->setAutorepeatDelay(ad->value());
cfile->setAutorepeatPeriod(ap->value());
CfgParser p;
- p.save(QPEApplication::qpeDir()+"share/zkb/zkb.xml", *cfile);
+ p.save(Global::applicationFileName("zkb", "zkb.xml" ), *cfile);
QCopEnvelope("QPE/zkb", "reload()");
QDialog::accept();
}
diff --git a/noncore/applets/zkbapplet/keyzcfg/main.cpp b/noncore/applets/zkbapplet/keyzcfg/main.cpp
index afd0f6a..d7926f0 100644
--- a/noncore/applets/zkbapplet/keyzcfg/main.cpp
+++ b/noncore/applets/zkbapplet/keyzcfg/main.cpp
@@ -1,18 +1,20 @@
#include <stdio.h>
#include <qpe/qpeapplication.h>
+#include <qpe/global.h>
+
#include <qlayout.h>
#include <qmainwindow.h>
#include "cfgdlg.h"
int main( int argc, char **argv ) {
QPEApplication app(argc, argv);
CfgFile cfile;
CfgParser cp;
- cp.load(QPEApplication::qpeDir()+"share/zkb/zkb.xml", cfile);
+ cp.load(Global::applicationFileName("zkb", "zkb.xml"), cfile);
CfgDlg c(0, &cfile, &app, true);
app.showMainWidget(&c);
diff --git a/noncore/applets/zkbapplet/keyzcfg/zkbcfg.cpp b/noncore/applets/zkbapplet/keyzcfg/zkbcfg.cpp
index 24bd897..6f3b9bf 100644
--- a/noncore/applets/zkbapplet/keyzcfg/zkbcfg.cpp
+++ b/noncore/applets/zkbapplet/keyzcfg/zkbcfg.cpp
@@ -1,10 +1,11 @@
#include "zkbcfg.h"
/* OPIE */
#include <opie2/odebug.h>
+#include <opie2/oapplication.h>
using namespace Opie::Core;
/* QT */
#include <qfileinfo.h>
// Implementation of XkbConfig class
@@ -12,74 +13,82 @@ ZkbConfig::ZkbConfig(const QString& dir):path(dir) {
}
ZkbConfig::~ZkbConfig() {
}
bool ZkbConfig::load(const QString& file, Keymap& keymap, const QString& prefix) {
- bool ret;
- QFile f(path+"/"+file);
- QFileInfo fi(f);
+ bool ret;
+ QFile *f = new QFile(path+"/"+file);
+ QFileInfo fi(*f);
- odebug << "start loading file=" << file.utf8() << "\n" << oendl;
- if (includedFiles.find(fi.absFilePath()) != includedFiles.end()) {
- return false;
- }
+ /* Try */
+ if ( !fi.exists() && !path.contains( QPEApplication::qpeDir()) ) {
+ delete f;
+ f = new QFile( QPEApplication::qpeDir() + "share/zkb/" + file );
+ fi = QFileInfo( *f );
+ }
- includedFiles.insert(fi.absFilePath(), 1);
- QXmlInputSource is(f);
- QXmlSimpleReader reader;
- ZkbHandler h(*this, keymap, prefix);
+ odebug << "start loading file=" << file << "\n" << oendl;
+ if (includedFiles.find(fi.absFilePath()) != includedFiles.end()) {
+ return false;
+ }
- reader.setContentHandler(&h);
- reader.setErrorHandler(this);
- ret = reader.parse(is);
- includedFiles.remove(fi.absFilePath());
+ includedFiles.insert(fi.absFilePath(), 1);
+ QXmlInputSource is(*f);
+ QXmlSimpleReader reader;
+ ZkbHandler h(*this, keymap, prefix);
- odebug << "end loading file=" << file.utf8() << ": status=" << err.utf8() << oendl;
- return ret;
+ reader.setContentHandler(&h);
+ reader.setErrorHandler(this);
+ ret = reader.parse(is);
+ includedFiles.remove(fi.absFilePath());
+
+ odebug << "end loading file=" << file << ": status=" << err << oendl;
+ delete f;
+ return ret;
}
bool ZkbConfig::warning(const QXmlParseException& e) {
QString tmp;
- tmp.sprintf("%d: warning: %s\n", e.lineNumber(),
+ tmp.sprintf("%d: warning: %s\n", e.lineNumber(),
(const char*) e.message().utf8());
err += tmp;
return true;
}
bool ZkbConfig::error(const QXmlParseException& e) {
QString tmp;
- tmp.sprintf("%d: error: %s\n", e.lineNumber(),
+ tmp.sprintf("%d: error: %s\n", e.lineNumber(),
(const char*) e.message().utf8());
err += tmp;
return true;
}
bool ZkbConfig::fatalError(const QXmlParseException& e) {
QString tmp;
- tmp.sprintf("%d: fatal error: %s\n", e.lineNumber(),
+ tmp.sprintf("%d: fatal error: %s\n", e.lineNumber(),
(const char*) e.message().utf8());
err += tmp;
return false;
}
QString ZkbConfig::errorString() {
return err;
}
// Implementation of ZkbHandler
-ZkbHandler::ZkbHandler(ZkbConfig& z, Keymap& k, const QString& p):zkc(z), keymap(k),
+ZkbHandler::ZkbHandler(ZkbConfig& z, Keymap& k, const QString& p):zkc(z), keymap(k),
prefix(p), ardelay(-1), arperiod(-1), currentState(0), currentAction(0) {
}
ZkbHandler::~ZkbHandler() {
}
@@ -87,55 +96,55 @@ bool ZkbHandler::startKeymapElement(int ard, int arp, const QString&) {
ardelay = ard;
arperiod = arp;
return true;
}
-bool ZkbHandler::startIncludeElement(const QString& file,
+bool ZkbHandler::startIncludeElement(const QString& file,
const QString& pref) {
QString p = prefix;
if (!pref.isNull()) {
p += pref + ":";
}
-
+
bool ret = zkc.load(file, keymap, p);
if (!ret) {
setError("Error including file: " + file);
}
return ret;
}
-bool ZkbHandler::startLabelElement(const QString& label,
+bool ZkbHandler::startLabelElement(const QString& label,
const QString& state) {
if (!keymap.addLabel(label, prefix + state)) {
err = "label " + label + " already defined";
return false;
}
return true;
}
-bool ZkbHandler::startStateElement(const QString& name,
+bool ZkbHandler::startStateElement(const QString& name,
const QString& parentName, bool dflt) {
currentStateName = prefix + name;
currentState = keymap.getStateByName(currentStateName);
-// odebug << "state name=" << currentStateName.utf8() << "\n" << oendl;
+// odebug << "state name=" << currentStateName.utf8() << "\n" << oendl;
State* parent = 0;
if (!parentName.isEmpty()) {
QString pn = prefix + parentName;
parent = keymap.getStateByName(pn);
if (parent == 0) {
- err = currentStateName +
+ err = currentStateName +
": undefined parent state: " + pn;
return false;
}
}
if (currentState == 0) {
@@ -164,13 +173,13 @@ bool ZkbHandler::startMapElement(int keycode, bool pressed) {
currentAction->setEvent(false);
currentAction->setState(0);
return true;
}
-bool ZkbHandler::startEventElement(int keycode, int unicode, int modifiers,
+bool ZkbHandler::startEventElement(int keycode, int unicode, int modifiers,
bool pressed, bool autorepeat) {
currentAction->setEvent(true);
currentAction->setKeycode(keycode);
currentAction->setUnicode(unicode);
currentAction->setModifiers(modifiers);
@@ -197,13 +206,13 @@ bool ZkbHandler::endKeymapElement() {
keymap.setAutorepeatDelay(ardelay);
}
if (arperiod > 0) {
keymap.setAutorepeatPeriod(arperiod);
}
-
+
return true;
}
bool ZkbHandler::endIncludeElement() {
return true;
}