author | zecke <zecke> | 2004-12-20 22:17:40 (UTC) |
---|---|---|
committer | zecke <zecke> | 2004-12-20 22:17:40 (UTC) |
commit | b15930cd03acafd9770bca26f3388817f1a4dcbf (patch) (unidiff) | |
tree | 7f86e31793c1bacb0882e7abb88a3847333f5c4a | |
parent | a50334dddaa542fd63726a639e852c30036f53a0 (diff) | |
download | opie-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
-rw-r--r-- | noncore/applets/zkbapplet/applet/zkbwidget.cpp | 18 | ||||
-rw-r--r-- | noncore/applets/zkbapplet/applet/zkbwidget.h | 2 | ||||
-rw-r--r-- | noncore/applets/zkbapplet/keyzcfg/cfgdlg.cpp | 2 | ||||
-rw-r--r-- | noncore/applets/zkbapplet/keyzcfg/main.cpp | 4 | ||||
-rw-r--r-- | noncore/applets/zkbapplet/keyzcfg/zkbcfg.cpp | 67 |
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 | |||
@@ -29,10 +29,8 @@ ZkbWidget::ZkbWidget(QWidget* parent) | |||
29 | 29 | ||
30 | ZkbWidget::~ZkbWidget() | 30 | ZkbWidget::~ZkbWidget() |
31 | { | 31 | { |
32 | if (keymap != 0) { | 32 | delete keymap; |
33 | delete keymap; | 33 | keymap = 0; |
34 | keymap = 0; | ||
35 | } | ||
36 | } | 34 | } |
37 | 35 | ||
38 | int ZkbWidget::position() | 36 | int ZkbWidget::position() |
@@ -41,13 +39,11 @@ int ZkbWidget::position() | |||
41 | } | 39 | } |
42 | 40 | ||
43 | bool ZkbWidget::loadKeymap() { | 41 | bool ZkbWidget::loadKeymap() { |
44 | ZkbConfig c(QPEApplication::qpeDir()+"share/zkb"); | 42 | ZkbConfig c(Global::applicationFileName("zkb", QString::null) ); |
45 | QFontMetrics fm(font()); | 43 | QFontMetrics fm(font()); |
46 | 44 | ||
47 | if (keymap != 0) { | 45 | delete keymap; |
48 | delete keymap; | 46 | keymap = 0; |
49 | keymap = 0; | ||
50 | } | ||
51 | 47 | ||
52 | Keymap* km = new Keymap(); | 48 | Keymap* km = new Keymap(); |
53 | 49 | ||
@@ -98,10 +94,6 @@ bool ZkbWidget::loadKeymap() { | |||
98 | return true; | 94 | return true; |
99 | } | 95 | } |
100 | 96 | ||
101 | QSize ZkbWidget::sizeHint() const { | ||
102 | return QSize(AppLnk::smallIconSize(),AppLnk::smallIconSize()); | ||
103 | } | ||
104 | |||
105 | void ZkbWidget::stateChanged(const QString& s) { | 97 | void ZkbWidget::stateChanged(const QString& s) { |
106 | // odebug << "stateChanged: " << s.utf8() << "\n" << oendl; | 98 | // odebug << "stateChanged: " << s.utf8() << "\n" << oendl; |
107 | setText(s); | 99 | setText(s); |
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 | |||
@@ -17,8 +17,6 @@ public: | |||
17 | ~ZkbWidget(); | 17 | ~ZkbWidget(); |
18 | static int position(); | 18 | static int position(); |
19 | 19 | ||
20 | QSize sizeHint() const; | ||
21 | |||
22 | protected: | 20 | protected: |
23 | QLabel* label; | 21 | QLabel* label; |
24 | Keymap* keymap; | 22 | Keymap* keymap; |
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 | |||
@@ -124,7 +124,7 @@ void CfgDlg::accept() { | |||
124 | cfile->setAutorepeatPeriod(ap->value()); | 124 | cfile->setAutorepeatPeriod(ap->value()); |
125 | 125 | ||
126 | CfgParser p; | 126 | CfgParser p; |
127 | p.save(QPEApplication::qpeDir()+"share/zkb/zkb.xml", *cfile); | 127 | p.save(Global::applicationFileName("zkb", "zkb.xml" ), *cfile); |
128 | QCopEnvelope("QPE/zkb", "reload()"); | 128 | QCopEnvelope("QPE/zkb", "reload()"); |
129 | 129 | ||
130 | QDialog::accept(); | 130 | 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,5 +1,7 @@ | |||
1 | #include <stdio.h> | 1 | #include <stdio.h> |
2 | #include <qpe/qpeapplication.h> | 2 | #include <qpe/qpeapplication.h> |
3 | #include <qpe/global.h> | ||
4 | |||
3 | #include <qlayout.h> | 5 | #include <qlayout.h> |
4 | #include <qmainwindow.h> | 6 | #include <qmainwindow.h> |
5 | 7 | ||
@@ -9,7 +11,7 @@ int main( int argc, char **argv ) { | |||
9 | QPEApplication app(argc, argv); | 11 | QPEApplication app(argc, argv); |
10 | CfgFile cfile; | 12 | CfgFile cfile; |
11 | CfgParser cp; | 13 | CfgParser cp; |
12 | cp.load(QPEApplication::qpeDir()+"share/zkb/zkb.xml", cfile); | 14 | cp.load(Global::applicationFileName("zkb", "zkb.xml"), cfile); |
13 | 15 | ||
14 | 16 | ||
15 | CfgDlg c(0, &cfile, &app, true); | 17 | CfgDlg c(0, &cfile, &app, true); |
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 | |||
@@ -2,6 +2,7 @@ | |||
2 | 2 | ||
3 | /* OPIE */ | 3 | /* OPIE */ |
4 | #include <opie2/odebug.h> | 4 | #include <opie2/odebug.h> |
5 | #include <opie2/oapplication.h> | ||
5 | using namespace Opie::Core; | 6 | using namespace Opie::Core; |
6 | 7 | ||
7 | /* QT */ | 8 | /* QT */ |
@@ -15,33 +16,41 @@ ZkbConfig::~ZkbConfig() { | |||
15 | } | 16 | } |
16 | 17 | ||
17 | bool ZkbConfig::load(const QString& file, Keymap& keymap, const QString& prefix) { | 18 | bool ZkbConfig::load(const QString& file, Keymap& keymap, const QString& prefix) { |
18 | bool ret; | 19 | bool ret; |
19 | QFile f(path+"/"+file); | 20 | QFile *f = new QFile(path+"/"+file); |
20 | QFileInfo fi(f); | 21 | QFileInfo fi(*f); |
21 | 22 | ||
22 | odebug << "start loading file=" << file.utf8() << "\n" << oendl; | 23 | /* Try */ |
23 | if (includedFiles.find(fi.absFilePath()) != includedFiles.end()) { | 24 | if ( !fi.exists() && !path.contains( QPEApplication::qpeDir()) ) { |
24 | return false; | 25 | delete f; |
25 | } | 26 | f = new QFile( QPEApplication::qpeDir() + "share/zkb/" + file ); |
27 | fi = QFileInfo( *f ); | ||
28 | } | ||
26 | 29 | ||
27 | includedFiles.insert(fi.absFilePath(), 1); | 30 | odebug << "start loading file=" << file << "\n" << oendl; |
28 | QXmlInputSource is(f); | 31 | if (includedFiles.find(fi.absFilePath()) != includedFiles.end()) { |
29 | QXmlSimpleReader reader; | 32 | return false; |
30 | ZkbHandler h(*this, keymap, prefix); | 33 | } |
31 | 34 | ||
32 | reader.setContentHandler(&h); | 35 | includedFiles.insert(fi.absFilePath(), 1); |
33 | reader.setErrorHandler(this); | 36 | QXmlInputSource is(*f); |
34 | ret = reader.parse(is); | 37 | QXmlSimpleReader reader; |
35 | includedFiles.remove(fi.absFilePath()); | 38 | ZkbHandler h(*this, keymap, prefix); |
36 | 39 | ||
37 | odebug << "end loading file=" << file.utf8() << ": status=" << err.utf8() << oendl; | 40 | reader.setContentHandler(&h); |
38 | return ret; | 41 | reader.setErrorHandler(this); |
42 | ret = reader.parse(is); | ||
43 | includedFiles.remove(fi.absFilePath()); | ||
44 | |||
45 | odebug << "end loading file=" << file << ": status=" << err << oendl; | ||
46 | delete f; | ||
47 | return ret; | ||
39 | } | 48 | } |
40 | 49 | ||
41 | bool ZkbConfig::warning(const QXmlParseException& e) { | 50 | bool ZkbConfig::warning(const QXmlParseException& e) { |
42 | QString tmp; | 51 | QString tmp; |
43 | 52 | ||
44 | tmp.sprintf("%d: warning: %s\n", e.lineNumber(), | 53 | tmp.sprintf("%d: warning: %s\n", e.lineNumber(), |
45 | (const char*) e.message().utf8()); | 54 | (const char*) e.message().utf8()); |
46 | 55 | ||
47 | err += tmp; | 56 | err += tmp; |
@@ -52,7 +61,7 @@ bool ZkbConfig::warning(const QXmlParseException& e) { | |||
52 | bool ZkbConfig::error(const QXmlParseException& e) { | 61 | bool ZkbConfig::error(const QXmlParseException& e) { |
53 | QString tmp; | 62 | QString tmp; |
54 | 63 | ||
55 | tmp.sprintf("%d: error: %s\n", e.lineNumber(), | 64 | tmp.sprintf("%d: error: %s\n", e.lineNumber(), |
56 | (const char*) e.message().utf8()); | 65 | (const char*) e.message().utf8()); |
57 | 66 | ||
58 | err += tmp; | 67 | err += tmp; |
@@ -63,7 +72,7 @@ bool ZkbConfig::error(const QXmlParseException& e) { | |||
63 | bool ZkbConfig::fatalError(const QXmlParseException& e) { | 72 | bool ZkbConfig::fatalError(const QXmlParseException& e) { |
64 | QString tmp; | 73 | QString tmp; |
65 | 74 | ||
66 | tmp.sprintf("%d: fatal error: %s\n", e.lineNumber(), | 75 | tmp.sprintf("%d: fatal error: %s\n", e.lineNumber(), |
67 | (const char*) e.message().utf8()); | 76 | (const char*) e.message().utf8()); |
68 | 77 | ||
69 | err += tmp; | 78 | err += tmp; |
@@ -76,7 +85,7 @@ QString ZkbConfig::errorString() { | |||
76 | } | 85 | } |
77 | 86 | ||
78 | // Implementation of ZkbHandler | 87 | // Implementation of ZkbHandler |
79 | ZkbHandler::ZkbHandler(ZkbConfig& z, Keymap& k, const QString& p):zkc(z), keymap(k), | 88 | ZkbHandler::ZkbHandler(ZkbConfig& z, Keymap& k, const QString& p):zkc(z), keymap(k), |
80 | prefix(p), ardelay(-1), arperiod(-1), currentState(0), currentAction(0) { | 89 | prefix(p), ardelay(-1), arperiod(-1), currentState(0), currentAction(0) { |
81 | } | 90 | } |
82 | 91 | ||
@@ -90,7 +99,7 @@ bool ZkbHandler::startKeymapElement(int ard, int arp, const QString&) { | |||
90 | return true; | 99 | return true; |
91 | } | 100 | } |
92 | 101 | ||
93 | bool ZkbHandler::startIncludeElement(const QString& file, | 102 | bool ZkbHandler::startIncludeElement(const QString& file, |
94 | const QString& pref) { | 103 | const QString& pref) { |
95 | 104 | ||
96 | QString p = prefix; | 105 | QString p = prefix; |
@@ -98,7 +107,7 @@ bool ZkbHandler::startIncludeElement(const QString& file, | |||
98 | if (!pref.isNull()) { | 107 | if (!pref.isNull()) { |
99 | p += pref + ":"; | 108 | p += pref + ":"; |
100 | } | 109 | } |
101 | 110 | ||
102 | 111 | ||
103 | bool ret = zkc.load(file, keymap, p); | 112 | bool ret = zkc.load(file, keymap, p); |
104 | if (!ret) { | 113 | if (!ret) { |
@@ -108,7 +117,7 @@ bool ZkbHandler::startIncludeElement(const QString& file, | |||
108 | return ret; | 117 | return ret; |
109 | } | 118 | } |
110 | 119 | ||
111 | bool ZkbHandler::startLabelElement(const QString& label, | 120 | bool ZkbHandler::startLabelElement(const QString& label, |
112 | const QString& state) { | 121 | const QString& state) { |
113 | 122 | ||
114 | if (!keymap.addLabel(label, prefix + state)) { | 123 | if (!keymap.addLabel(label, prefix + state)) { |
@@ -119,20 +128,20 @@ bool ZkbHandler::startLabelElement(const QString& label, | |||
119 | return true; | 128 | return true; |
120 | } | 129 | } |
121 | 130 | ||
122 | bool ZkbHandler::startStateElement(const QString& name, | 131 | bool ZkbHandler::startStateElement(const QString& name, |
123 | const QString& parentName, bool dflt) { | 132 | const QString& parentName, bool dflt) { |
124 | 133 | ||
125 | currentStateName = prefix + name; | 134 | currentStateName = prefix + name; |
126 | currentState = keymap.getStateByName(currentStateName); | 135 | currentState = keymap.getStateByName(currentStateName); |
127 | 136 | ||
128 | //odebug << "state name=" << currentStateName.utf8() << "\n" << oendl; | 137 | //odebug << "state name=" << currentStateName.utf8() << "\n" << oendl; |
129 | 138 | ||
130 | State* parent = 0; | 139 | State* parent = 0; |
131 | if (!parentName.isEmpty()) { | 140 | if (!parentName.isEmpty()) { |
132 | QString pn = prefix + parentName; | 141 | QString pn = prefix + parentName; |
133 | parent = keymap.getStateByName(pn); | 142 | parent = keymap.getStateByName(pn); |
134 | if (parent == 0) { | 143 | if (parent == 0) { |
135 | err = currentStateName + | 144 | err = currentStateName + |
136 | ": undefined parent state: " + pn; | 145 | ": undefined parent state: " + pn; |
137 | return false; | 146 | return false; |
138 | } | 147 | } |
@@ -167,7 +176,7 @@ bool ZkbHandler::startMapElement(int keycode, bool pressed) { | |||
167 | return true; | 176 | return true; |
168 | } | 177 | } |
169 | 178 | ||
170 | bool ZkbHandler::startEventElement(int keycode, int unicode, int modifiers, | 179 | bool ZkbHandler::startEventElement(int keycode, int unicode, int modifiers, |
171 | bool pressed, bool autorepeat) { | 180 | bool pressed, bool autorepeat) { |
172 | 181 | ||
173 | currentAction->setEvent(true); | 182 | currentAction->setEvent(true); |
@@ -200,7 +209,7 @@ bool ZkbHandler::endKeymapElement() { | |||
200 | if (arperiod > 0) { | 209 | if (arperiod > 0) { |
201 | keymap.setAutorepeatPeriod(arperiod); | 210 | keymap.setAutorepeatPeriod(arperiod); |
202 | } | 211 | } |
203 | 212 | ||
204 | return true; | 213 | return true; |
205 | } | 214 | } |
206 | 215 | ||