Diffstat (limited to 'pwmanager/pwmanager/serializer.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | pwmanager/pwmanager/serializer.cpp | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/pwmanager/pwmanager/serializer.cpp b/pwmanager/pwmanager/serializer.cpp index 5753c1d..507fa30 100644 --- a/pwmanager/pwmanager/serializer.cpp +++ b/pwmanager/pwmanager/serializer.cpp | |||
@@ -39,7 +39,7 @@ | |||
39 | #define META_EXPIRE_DATE"e" | 39 | #define META_EXPIRE_DATE"e" |
40 | #define META_UPDATE_DATE"u" | 40 | #define META_UPDATE_DATE"u" |
41 | #define META_UPDATE_INT "i" | 41 | #define META_UPDATE_INT "i" |
42 | //US ENH : uniqueid | 42 | //US ENH : uniqueid and sync information |
43 | #define META_UNIQUEID "n" | 43 | #define META_UNIQUEID "n" |
44 | #define SYNC_ROOT "s" | 44 | #define SYNC_ROOT "s" |
45 | #define SYNC_TARGET_PREFIX "t" | 45 | #define SYNC_TARGET_PREFIX "t" |
@@ -56,6 +56,9 @@ | |||
56 | #define CAT_ROOT_OLD "categories" | 56 | #define CAT_ROOT_OLD "categories" |
57 | #define CAT_PREFIX_OLD "cat_" | 57 | #define CAT_PREFIX_OLD "cat_" |
58 | #define CAT_NAME_OLD "name" | 58 | #define CAT_NAME_OLD "name" |
59 | //US ENH : optional text for categories | ||
60 | #define CAT_TEXT_OLD "text" | ||
61 | |||
59 | #define ENTRY_PREFIX_OLD"entry_" | 62 | #define ENTRY_PREFIX_OLD"entry_" |
60 | #define ENTRY_DESC_OLD "desc" | 63 | #define ENTRY_DESC_OLD "desc" |
61 | #define ENTRY_NAME_OLD "name" | 64 | #define ENTRY_NAME_OLD "name" |
@@ -73,6 +76,9 @@ | |||
73 | #define CAT_ROOT_NEW "c" | 76 | #define CAT_ROOT_NEW "c" |
74 | #define CAT_PREFIX_NEW "c" | 77 | #define CAT_PREFIX_NEW "c" |
75 | #define CAT_NAME_NEW "n" | 78 | #define CAT_NAME_NEW "n" |
79 | //US ENH : optional text for categories | ||
80 | #define CAT_TEXT_NEW "t" | ||
81 | |||
76 | #define ENTRY_PREFIX_NEW"e" | 82 | #define ENTRY_PREFIX_NEW"e" |
77 | #define ENTRY_DESC_NEW "d" | 83 | #define ENTRY_DESC_NEW "d" |
78 | #define ENTRY_NAME_NEW "n" | 84 | #define ENTRY_NAME_NEW "n" |
@@ -91,6 +97,10 @@ | |||
91 | # define CAT_ROOT_WR CAT_ROOT_OLD | 97 | # define CAT_ROOT_WR CAT_ROOT_OLD |
92 | # define CAT_PREFIX_WR CAT_PREFIX_OLD | 98 | # define CAT_PREFIX_WR CAT_PREFIX_OLD |
93 | # define CAT_NAME_WR CAT_NAME_OLD | 99 | # define CAT_NAME_WR CAT_NAME_OLD |
100 | |||
101 | //US ENH : optional text for categories | ||
102 | # define CAT_TEXT_WR CAT_TEXT_OLD | ||
103 | |||
94 | # define ENTRY_PREFIX_WRENTRY_PREFIX_OLD | 104 | # define ENTRY_PREFIX_WRENTRY_PREFIX_OLD |
95 | # define ENTRY_DESC_WR ENTRY_DESC_OLD | 105 | # define ENTRY_DESC_WR ENTRY_DESC_OLD |
96 | # define ENTRY_NAME_WR ENTRY_NAME_OLD | 106 | # define ENTRY_NAME_WR ENTRY_NAME_OLD |
@@ -108,6 +118,10 @@ | |||
108 | # define CAT_ROOT_WR CAT_ROOT_NEW | 118 | # define CAT_ROOT_WR CAT_ROOT_NEW |
109 | # define CAT_PREFIX_WR CAT_PREFIX_NEW | 119 | # define CAT_PREFIX_WR CAT_PREFIX_NEW |
110 | # define CAT_NAME_WR CAT_NAME_NEW | 120 | # define CAT_NAME_WR CAT_NAME_NEW |
121 | |||
122 | //US ENH : optional text for categories | ||
123 | # define CAT_TEXT_WR CAT_TEXT_NEW | ||
124 | |||
111 | # define ENTRY_PREFIX_WRENTRY_PREFIX_NEW | 125 | # define ENTRY_PREFIX_WRENTRY_PREFIX_NEW |
112 | # define ENTRY_DESC_WR ENTRY_DESC_NEW | 126 | # define ENTRY_DESC_WR ENTRY_DESC_NEW |
113 | # define ENTRY_NAME_WR ENTRY_NAME_NEW | 127 | # define ENTRY_NAME_WR ENTRY_NAME_NEW |
@@ -271,6 +285,7 @@ bool Serializer::readCategories(const QDomNode &n, | |||
271 | QDomNodeList nl(n.childNodes()); | 285 | QDomNodeList nl(n.childNodes()); |
272 | QDomNode cur; | 286 | QDomNode cur; |
273 | QString name; | 287 | QString name; |
288 | QString text; | ||
274 | unsigned int numCat = nl.count(), i; | 289 | unsigned int numCat = nl.count(), i; |
275 | PwMCategoryItem curCat; | 290 | PwMCategoryItem curCat; |
276 | vector<PwMDataItem> curEntr; | 291 | vector<PwMDataItem> curEntr; |
@@ -290,6 +305,23 @@ bool Serializer::readCategories(const QDomNode &n, | |||
290 | PWM_ASSERT(name != ""); | 305 | PWM_ASSERT(name != ""); |
291 | curCat.clear(); | 306 | curCat.clear(); |
292 | curCat.name = name.latin1(); | 307 | curCat.name = name.latin1(); |
308 | |||
309 | //US ENH: new version might include text for description, name and pw | ||
310 | text = cur.toElement().attribute(CAT_TEXT_NEW); | ||
311 | if (text == QString::null) | ||
312 | text = cur.toElement().attribute(CAT_TEXT_OLD); | ||
313 | if (text != QString::null) | ||
314 | { | ||
315 | QStringList textlist = QStringList::split(";", text, true); | ||
316 | unsigned int num = textlist.count(); | ||
317 | if (num > 0) | ||
318 | curCat.desc_text = textlist[0].latin1(); | ||
319 | if (num > 1) | ||
320 | curCat.name_text = textlist[1].latin1(); | ||
321 | if (num > 2) | ||
322 | curCat.pw_text = textlist[2].latin1(); | ||
323 | } | ||
324 | |||
293 | if (!readEntries(cur, &curEntr)) { | 325 | if (!readEntries(cur, &curEntr)) { |
294 | dta->clear(); | 326 | dta->clear(); |
295 | return false; | 327 | return false; |
@@ -501,6 +533,16 @@ bool Serializer::addCategories(QDomElement *e, | |||
501 | curName = dta[i].name.c_str(); | 533 | curName = dta[i].name.c_str(); |
502 | curCat = domDoc->createElement(curId); | 534 | curCat = domDoc->createElement(curId); |
503 | curCat.setAttribute(CAT_NAME_WR, curName); | 535 | curCat.setAttribute(CAT_NAME_WR, curName); |
536 | |||
537 | //US ENH: new version includes text for description, name and pw | ||
538 | QStringList curTextList; | ||
539 | curTextList << dta[i].desc_text.c_str(); | ||
540 | curTextList << dta[i].name_text.c_str(); | ||
541 | curTextList << dta[i].pw_text.c_str(); | ||
542 | QString text = curTextList.join(";"); | ||
543 | curCat.setAttribute(CAT_TEXT_WR, text); | ||
544 | |||
545 | |||
504 | if (!addEntries(&curCat, dta[i].d)) { | 546 | if (!addEntries(&curCat, dta[i].d)) { |
505 | return false; | 547 | return false; |
506 | } | 548 | } |