summaryrefslogtreecommitdiffabout
authorulf69 <ulf69>2004-09-24 22:21:25 (UTC)
committer ulf69 <ulf69>2004-09-24 22:21:25 (UTC)
commite695903cc49b33e63505b651b13d830e318fc29a (patch) (unidiff)
treefd210e2defbdcb3f3d9d739d0b00e6853705af29
parenta884dac6f756b3702a10ae97aa8782e4d2a84b20 (diff)
downloadkdepimpi-e695903cc49b33e63505b651b13d830e318fc29a.zip
kdepimpi-e695903cc49b33e63505b651b13d830e318fc29a.tar.gz
kdepimpi-e695903cc49b33e63505b651b13d830e318fc29a.tar.bz2
fixed bug with QDomDocument handling, plus some GUI enhancements
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--pwmanager/pwmanager/pwmdocui.cpp8
-rw-r--r--pwmanager/pwmanager/pwmexception.cpp7
-rw-r--r--pwmanager/pwmanager/serializer.cpp12
3 files changed, 23 insertions, 4 deletions
diff --git a/pwmanager/pwmanager/pwmdocui.cpp b/pwmanager/pwmanager/pwmdocui.cpp
index e42dd9d..5e675fc 100644
--- a/pwmanager/pwmanager/pwmdocui.cpp
+++ b/pwmanager/pwmanager/pwmdocui.cpp
@@ -395,63 +395,63 @@ bool PwMDocUi::openDocUi(PwMDoc *doc,
395 } 395 }
396 if (ret == e_fileFormat) { 396 if (ret == e_fileFormat) {
397 KMessageBox::error(getCurrentView(), 397 KMessageBox::error(getCurrentView(),
398 i18n 398 i18n
399 ("Sorry, this file has not been recognized " 399 ("Sorry, this file has not been recognized "
400 "as a PwM Password file.\n" 400 "as a PwM Password file.\n"
401 "Probably you have selected the wrong file."), 401 "Probably you have selected the wrong file."),
402 i18n 402 i18n
403 ("no PwM password-file")); 403 ("no PwM password-file"));
404 goto cancelOpen; 404 goto cancelOpen;
405 } 405 }
406 if (ret == e_fileCorrupt) { 406 if (ret == e_fileCorrupt) {
407 KMessageBox::error(getCurrentView(), 407 KMessageBox::error(getCurrentView(),
408 i18n 408 i18n
409 ("File corrupt!\n" 409 ("File corrupt!\n"
410 "Maybe the media, you stored this file on, " 410 "Maybe the media, you stored this file on, "
411 "had bad sectors?"), 411 "had bad sectors?"),
412 i18n 412 i18n
413 ("checksum error")); 413 ("checksum error"));
414 goto cancelOpen; 414 goto cancelOpen;
415 } 415 }
416 } 416 }
417 break; 417 break;
418 } 418 }
419 return true; 419 return true;
420 420
421 cancelOpen: 421 cancelOpen:
422 return false; 422 return false;
423} 423}
424 424
425QString PwMDocUi::string_defaultCategory() 425QString PwMDocUi::string_defaultCategory()
426{ 426{
427 return i18n("Default"); 427 return i18n("Default");
428} 428}
429 429
430QString PwMDocUi::string_locked() 430QString PwMDocUi::string_locked()
431{ 431{
432 return i18n("<LOCKED>"); 432 return i18n("<LOCKED>");
433} 433}
434 434
435QString PwMDocUi::string_deepLockedShort() 435QString PwMDocUi::string_deepLockedShort()
436{ 436{
437 return i18n("DEEP-LOCKED"); 437 return i18n("DEEP-LOCKED");
438} 438}
439 439
440QString PwMDocUi::string_deepLockedLong() 440QString PwMDocUi::string_deepLockedLong()
441{ 441{
442 return i18n("This file is DEEP-LOCKED!\n" 442 return i18n("This file is DEEP-LOCKED!\n"
443 "That means all data has been encrypted " 443 "That means all data has been encrypted\n"
444 "and written out to the file. If you want " 444 "and written out to the file. If you want\n"
445 "to see the entries, please UNLOCK the file. " 445 "to see the entries, please UNLOCK the file.\n"
446 "While unlocking, you will be prompted for the " 446 "While unlocking, you will be prompted for the\n"
447 "master-password or the key-card."); 447 "master-password or the key-card.");
448} 448}
449 449
450QString PwMDocUi::string_defaultTitle() 450QString PwMDocUi::string_defaultTitle()
451{ 451{
452 return i18n("Untitled"); 452 return i18n("Untitled");
453} 453}
454 454
455#ifndef PWM_EMBEDDED 455#ifndef PWM_EMBEDDED
456#include "pwmdocui.moc" 456#include "pwmdocui.moc"
457#endif 457#endif
diff --git a/pwmanager/pwmanager/pwmexception.cpp b/pwmanager/pwmanager/pwmexception.cpp
index 4c00b04..c0dbb39 100644
--- a/pwmanager/pwmanager/pwmexception.cpp
+++ b/pwmanager/pwmanager/pwmexception.cpp
@@ -1,58 +1,65 @@
1/*************************************************************************** 1/***************************************************************************
2 * * 2 * *
3 * copyright (C) 2003, 2004 by Michael Buesch * 3 * copyright (C) 2003, 2004 by Michael Buesch *
4 * email: mbuesch@freenet.de * 4 * email: mbuesch@freenet.de *
5 * * 5 * *
6 * This program is free software; you can redistribute it and/or modify * 6 * This program is free software; you can redistribute it and/or modify *
7 * it under the terms of the GNU General Public License version 2 * 7 * it under the terms of the GNU General Public License version 2 *
8 * as published by the Free Software Foundation. * 8 * as published by the Free Software Foundation. *
9 * * 9 * *
10 ***************************************************************************/ 10 ***************************************************************************/
11 11
12/*************************************************************************** 12/***************************************************************************
13 * copyright (C) 2004 by Ulf Schenk 13 * copyright (C) 2004 by Ulf Schenk
14 * This file is originaly based on version 1.0.1 of pwmanager 14 * This file is originaly based on version 1.0.1 of pwmanager
15 * and was modified to run on embedded devices that run microkde 15 * and was modified to run on embedded devices that run microkde
16 * 16 *
17 * $Id$ 17 * $Id$
18 **************************************************************************/ 18 **************************************************************************/
19 19
20 20
21#include "pwmexception.h" 21#include "pwmexception.h"
22 22
23#include <kmessagebox.h> 23#include <kmessagebox.h>
24 24
25 25
26void pwmFatal(const char *id, 26void pwmFatal(const char *id,
27 const char *file, 27 const char *file,
28 int line) 28 int line)
29{ 29{
30 cerr << PROG_NAME " " << id << " at " 30 cerr << PROG_NAME " " << id << " at "
31 << file << ":" << line 31 << file << ":" << line
32 << endl; 32 << endl;
33} 33}
34 34
35void __printError(const string &msg) 35void __printError(const string &msg)
36{ 36{
37 QString __msg(PROG_NAME " generated a fatal fault:\n"); 37 QString __msg(PROG_NAME " generated a fatal fault:\n");
38 __msg += msg.c_str(); 38 __msg += msg.c_str();
39 cerr << "\n\n" << __msg.latin1() << endl; 39 cerr << "\n\n" << __msg.latin1() << endl;
40 KMessageBox::error(0, __msg, PROG_NAME " fatal ERROR!"); 40 KMessageBox::error(0, __msg, PROG_NAME " fatal ERROR!");
41} 41}
42 42
43void __printInfo(const string &msg) 43void __printInfo(const string &msg)
44{ 44{
45 cout << PROG_NAME " INFO: " << msg << endl; 45 cout << PROG_NAME " INFO: " << msg << endl;
46#ifdef PWM_DEBUG
47 qDebug("%s INFO: %s", PROG_NAME, msg.c_str()) ;
48#endif
46} 49}
47 50
48void __printWarn(const string &msg) 51void __printWarn(const string &msg)
49{ 52{
50 cerr << PROG_NAME " WARNING: " << msg << endl; 53 cerr << PROG_NAME " WARNING: " << msg << endl;
54#ifdef PWM_DEBUG
55 qDebug("%s WARNING: %s", PROG_NAME, msg.c_str()) ;
56#endif
51} 57}
52 58
53#ifdef PWM_DEBUG 59#ifdef PWM_DEBUG
54void __printDebug(const string &msg) 60void __printDebug(const string &msg)
55{ 61{
56 cout << PROG_NAME " DEBUG: " << msg << endl; 62 cout << PROG_NAME " DEBUG: " << msg << endl;
63 qDebug("%s DEBUG: %s", PROG_NAME, msg.c_str()) ;
57} 64}
58#endif // PWM_DEBUG 65#endif // PWM_DEBUG
diff --git a/pwmanager/pwmanager/serializer.cpp b/pwmanager/pwmanager/serializer.cpp
index 2810b48..fcdcec3 100644
--- a/pwmanager/pwmanager/serializer.cpp
+++ b/pwmanager/pwmanager/serializer.cpp
@@ -75,159 +75,171 @@
75 #define ENTRY_PW_NEW "p" 75 #define ENTRY_PW_NEW "p"
76 #define ENTRY_COMMENT_NEW"c" 76 #define ENTRY_COMMENT_NEW"c"
77 #define ENTRY_URL_NEW "u" 77 #define ENTRY_URL_NEW "u"
78 #define ENTRY_LAUNCHER_NEW"l" 78 #define ENTRY_LAUNCHER_NEW"l"
79 #define ENTRY_LVP_NEW "v" 79 #define ENTRY_LVP_NEW "v"
80 #define ENTRY_BIN_NEW ENTRY_BIN_OLD 80 #define ENTRY_BIN_NEW ENTRY_BIN_OLD
81 #define ENTRY_META_NEW ENTRY_META_OLD 81 #define ENTRY_META_NEW ENTRY_META_OLD
82 82
83#if USE_OLD_TAGS != 0 83#if USE_OLD_TAGS != 0
84 # define ROOT_MAGIC_WR ROOT_MAGIC_OLD 84 # define ROOT_MAGIC_WR ROOT_MAGIC_OLD
85 # define VER_STR_WR VER_STR_OLD 85 # define VER_STR_WR VER_STR_OLD
86 # define COMPAT_VER_WR COMPAT_VER_OLD 86 # define COMPAT_VER_WR COMPAT_VER_OLD
87 # define CAT_ROOT_WR CAT_ROOT_OLD 87 # define CAT_ROOT_WR CAT_ROOT_OLD
88 # define CAT_PREFIX_WR CAT_PREFIX_OLD 88 # define CAT_PREFIX_WR CAT_PREFIX_OLD
89 # define CAT_NAME_WR CAT_NAME_OLD 89 # define CAT_NAME_WR CAT_NAME_OLD
90 # define ENTRY_PREFIX_WRENTRY_PREFIX_OLD 90 # define ENTRY_PREFIX_WRENTRY_PREFIX_OLD
91 # define ENTRY_DESC_WR ENTRY_DESC_OLD 91 # define ENTRY_DESC_WR ENTRY_DESC_OLD
92 # define ENTRY_NAME_WR ENTRY_NAME_OLD 92 # define ENTRY_NAME_WR ENTRY_NAME_OLD
93 # define ENTRY_PW_WR ENTRY_PW_OLD 93 # define ENTRY_PW_WR ENTRY_PW_OLD
94 # define ENTRY_COMMENT_WRENTRY_COMMENT_OLD 94 # define ENTRY_COMMENT_WRENTRY_COMMENT_OLD
95 # define ENTRY_URL_WR ENTRY_URL_OLD 95 # define ENTRY_URL_WR ENTRY_URL_OLD
96 # define ENTRY_LAUNCHER_WRENTRY_LAUNCHER_OLD 96 # define ENTRY_LAUNCHER_WRENTRY_LAUNCHER_OLD
97 # define ENTRY_LVP_WR ENTRY_LVP_OLD 97 # define ENTRY_LVP_WR ENTRY_LVP_OLD
98 # define ENTRY_BIN_WR ENTRY_BIN_OLD 98 # define ENTRY_BIN_WR ENTRY_BIN_OLD
99 # define ENTRY_META_WR ENTRY_META_OLD 99 # define ENTRY_META_WR ENTRY_META_OLD
100#else 100#else
101 # define ROOT_MAGIC_WR ROOT_MAGIC_NEW 101 # define ROOT_MAGIC_WR ROOT_MAGIC_NEW
102 # define VER_STR_WR VER_STR_NEW 102 # define VER_STR_WR VER_STR_NEW
103 # define COMPAT_VER_WR COMPAT_VER_NEW 103 # define COMPAT_VER_WR COMPAT_VER_NEW
104 # define CAT_ROOT_WR CAT_ROOT_NEW 104 # define CAT_ROOT_WR CAT_ROOT_NEW
105 # define CAT_PREFIX_WR CAT_PREFIX_NEW 105 # define CAT_PREFIX_WR CAT_PREFIX_NEW
106 # define CAT_NAME_WR CAT_NAME_NEW 106 # define CAT_NAME_WR CAT_NAME_NEW
107 # define ENTRY_PREFIX_WRENTRY_PREFIX_NEW 107 # define ENTRY_PREFIX_WRENTRY_PREFIX_NEW
108 # define ENTRY_DESC_WR ENTRY_DESC_NEW 108 # define ENTRY_DESC_WR ENTRY_DESC_NEW
109 # define ENTRY_NAME_WR ENTRY_NAME_NEW 109 # define ENTRY_NAME_WR ENTRY_NAME_NEW
110 # define ENTRY_PW_WR ENTRY_PW_NEW 110 # define ENTRY_PW_WR ENTRY_PW_NEW
111 # define ENTRY_COMMENT_WRENTRY_COMMENT_NEW 111 # define ENTRY_COMMENT_WRENTRY_COMMENT_NEW
112 # define ENTRY_URL_WR ENTRY_URL_NEW 112 # define ENTRY_URL_WR ENTRY_URL_NEW
113 # define ENTRY_LAUNCHER_WRENTRY_LAUNCHER_NEW 113 # define ENTRY_LAUNCHER_WRENTRY_LAUNCHER_NEW
114 # define ENTRY_LVP_WR ENTRY_LVP_NEW 114 # define ENTRY_LVP_WR ENTRY_LVP_NEW
115 # define ENTRY_BIN_WR ENTRY_BIN_NEW 115 # define ENTRY_BIN_WR ENTRY_BIN_NEW
116 # define ENTRY_META_WR ENTRY_META_NEW 116 # define ENTRY_META_WR ENTRY_META_NEW
117#endif 117#endif
118 118
119 119
120Serializer::Serializer() 120Serializer::Serializer()
121{ 121{
122 defaultLockStat = true; 122 defaultLockStat = true;
123//US BUG: I needed to specify a document name. Otherwise impl will not be created for serializing
124#ifndef PWM_EMBEDDED
123 domDoc = new QDomDocument; 125 domDoc = new QDomDocument;
126#else
127 domDoc = new QDomDocument("mydoc");
128#endif
124} 129}
125 130
126Serializer::Serializer(const QCString &buffer) 131Serializer::Serializer(const QCString &buffer)
127{ 132{
128 defaultLockStat = true; 133 defaultLockStat = true;
134//US BUG: I needed to specify a document name. Otherwise impl will not be created for serializing
135#ifndef PWM_EMBEDDED
129 domDoc = new QDomDocument; 136 domDoc = new QDomDocument;
137#else
138 domDoc = new QDomDocument("mydoc");
139#endif
140
130 if (!parseXml(buffer)) { 141 if (!parseXml(buffer)) {
131 delete domDoc; 142 delete domDoc;
132#ifndef PWM_EMBEDDED 143#ifndef PWM_EMBEDDED
133 throw PwMException(PwMException::EX_PARSE); 144 throw PwMException(PwMException::EX_PARSE);
134#else 145#else
135 qDebug("Serializer::Serializer : Parse Exception "); 146 qDebug("Serializer::Serializer : Parse Exception ");
136#endif 147#endif
137 } 148 }
138} 149}
139 150
140Serializer::~Serializer() 151Serializer::~Serializer()
141{ 152{
142 delete_ifnot_null(domDoc); 153 delete_ifnot_null(domDoc);
143} 154}
144 155
145void Serializer::clear() 156void Serializer::clear()
146{ 157{
147 delete_ifnot_null(domDoc); 158 delete_ifnot_null(domDoc);
148 domDoc = new QDomDocument; 159 domDoc = new QDomDocument;
149} 160}
150 161
151bool Serializer::parseXml(const QCString &buffer) 162bool Serializer::parseXml(const QCString &buffer)
152{ 163{
153 PWM_ASSERT(domDoc); 164 PWM_ASSERT(domDoc);
154#ifndef PWM_EMBEDDED 165#ifndef PWM_EMBEDDED
155 if (!domDoc->setContent(buffer, true)) 166 if (!domDoc->setContent(buffer, true))
156 return false; 167 return false;
157#else 168#else
158 if (!domDoc->setContent(buffer)) 169 if (!domDoc->setContent(buffer))
159 return false; 170 return false;
160#endif 171#endif
161 if (!checkValid()) 172 if (!checkValid())
162 return false; 173 return false;
163 return true; 174 return true;
164} 175}
165 176
166QCString Serializer::getXml() 177QCString Serializer::getXml()
167{ 178{
168 PWM_ASSERT(domDoc); 179 PWM_ASSERT(domDoc);
169 180
170#ifndef PWM_EMBEDDED 181#ifndef PWM_EMBEDDED
171#if defined(PWM_DEBUG) && SERIALIZER_DEBUG != 0 182#if defined(PWM_DEBUG) && SERIALIZER_DEBUG != 0
172 QCString tmp(domDoc->toCString(8)); 183 QCString tmp(domDoc->toCString(8));
173 printDebug("<BEGIN Serializer::getXml() dump>\n"); 184 printDebug("<BEGIN Serializer::getXml() dump>\n");
174 cout << tmp << endl; 185 cout << tmp << endl;
175 printDebug("<END Serializer::getXml() dump>"); 186 printDebug("<END Serializer::getXml() dump>");
176#endif // DEBUG 187#endif // DEBUG
177 188
178 QCString ret(domDoc->toCString(0)); 189 QCString ret(domDoc->toCString(0));
179 ret.replace('\n', ""); 190 ret.replace('\n', "");
180 return ret; 191 return ret;
181#else 192#else
182 193
183#if defined(PWM_DEBUG) && SERIALIZER_DEBUG != 0 194#if defined(PWM_DEBUG) && SERIALIZER_DEBUG != 0
184 QCString tmp(" " + domDoc->toCString()); 195 QCString tmp(" " + domDoc->toCString());
185 printDebug("<BEGIN Serializer::getXml() dump>\n"); 196 printDebug("<BEGIN Serializer::getXml() dump>\n");
197 qDebug(tmp);
186 cout << tmp << endl; 198 cout << tmp << endl;
187 printDebug("<END Serializer::getXml() dump>"); 199 printDebug("<END Serializer::getXml() dump>");
188#endif // DEBUG 200#endif // DEBUG
189 201
190 QCString ret(domDoc->toCString()); 202 QCString ret(domDoc->toCString());
191 ret.replace(QRegExp("\n"), ""); 203 ret.replace(QRegExp("\n"), "");
192 return ret; 204 return ret;
193 205
194#endif 206#endif
195} 207}
196 208
197bool Serializer::serialize(const vector<PwMCategoryItem> &dta) 209bool Serializer::serialize(const vector<PwMCategoryItem> &dta)
198{ 210{
199 PWM_ASSERT(domDoc); 211 PWM_ASSERT(domDoc);
200 QDomElement root(genNewRoot()); 212 QDomElement root(genNewRoot());
201 QDomElement catNode(domDoc->createElement(CAT_ROOT_WR)); 213 QDomElement catNode(domDoc->createElement(CAT_ROOT_WR));
202 root.appendChild(catNode); 214 root.appendChild(catNode);
203 if (!addCategories(&catNode, dta)) 215 if (!addCategories(&catNode, dta))
204 return false; 216 return false;
205 return true; 217 return true;
206} 218}
207 219
208bool Serializer::deSerialize(vector<PwMCategoryItem> *dta) 220bool Serializer::deSerialize(vector<PwMCategoryItem> *dta)
209{ 221{
210 PWM_ASSERT(domDoc); 222 PWM_ASSERT(domDoc);
211 PWM_ASSERT(dta); 223 PWM_ASSERT(dta);
212 QDomElement root(domDoc->documentElement()); 224 QDomElement root(domDoc->documentElement());
213 QDomNode n; 225 QDomNode n;
214 226
215 dta->clear(); 227 dta->clear();
216 for (n = root.firstChild(); !n.isNull(); n = n.nextSibling()) { 228 for (n = root.firstChild(); !n.isNull(); n = n.nextSibling()) {
217 // find <categories> ... </categories> 229 // find <categories> ... </categories>
218 // <c> ... </c> 230 // <c> ... </c>
219 if (n.nodeName() == CAT_ROOT_NEW || 231 if (n.nodeName() == CAT_ROOT_NEW ||
220 n.nodeName() == CAT_ROOT_OLD) { 232 n.nodeName() == CAT_ROOT_OLD) {
221 if (!readCategories(n, dta)) { 233 if (!readCategories(n, dta)) {
222 return false; 234 return false;
223 } 235 }
224 236
225 /* NOTE: We can stop processing here, as we 237 /* NOTE: We can stop processing here, as we
226 * don't have more nodes in root, yet. 238 * don't have more nodes in root, yet.
227 */ 239 */
228 return true; 240 return true;
229 } 241 }
230 } 242 }
231 return false; 243 return false;
232} 244}
233 245