-rw-r--r-- | noncore/apps/tableviewer/db/xmlsource.cpp | 6 | ||||
-rw-r--r-- | noncore/apps/tableviewer/tableviewer.pro | 2 | ||||
-rw-r--r-- | noncore/apps/tableviewer/ui/tvbrowseview.cpp | 7 | ||||
-rw-r--r-- | noncore/apps/tableviewer/xmlencodeattr.cpp | 48 | ||||
-rw-r--r-- | noncore/apps/tableviewer/xmlencodeattr.h | 26 |
5 files changed, 84 insertions, 5 deletions
diff --git a/noncore/apps/tableviewer/db/xmlsource.cpp b/noncore/apps/tableviewer/db/xmlsource.cpp index 7418a85..94fec36 100644 --- a/noncore/apps/tableviewer/db/xmlsource.cpp +++ b/noncore/apps/tableviewer/db/xmlsource.cpp | |||
@@ -21,6 +21,8 @@ | |||
21 | #include <qdict.h> | 21 | #include <qdict.h> |
22 | #include <stdlib.h> | 22 | #include <stdlib.h> |
23 | #include <qtextstream.h> | 23 | #include <qtextstream.h> |
24 | #include "../xmlencodeattr.h" | ||
25 | |||
24 | 26 | ||
25 | 27 | ||
26 | DBXml::DBXml(DBStore *d) | 28 | DBXml::DBXml(DBStore *d) |
@@ -68,7 +70,7 @@ bool DBXml::saveSource(QIODevice *outDev) | |||
68 | outstream << "type=\"" | 70 | outstream << "type=\"" |
69 | << TVVariant::typeToName(it.current()->type()) | 71 | << TVVariant::typeToName(it.current()->type()) |
70 | << "\">"; | 72 | << "\">"; |
71 | outstream << it.current()->name() << "</key>" << endl; | 73 | outstream << encodeAttr(it.current()->name()) << "</key>" << endl; |
72 | } | 74 | } |
73 | ++it; | 75 | ++it; |
74 | } | 76 | } |
@@ -94,7 +96,7 @@ bool DBXml::saveSource(QIODevice *outDev) | |||
94 | << date.month() << "/" | 96 | << date.month() << "/" |
95 | << date.year(); | 97 | << date.year(); |
96 | } else { | 98 | } else { |
97 | outstream << elem->toQString(i); | 99 | outstream << encodeAttr(elem->toQString(i)); |
98 | } | 100 | } |
99 | outstream << "</KEYID" << i << ">" << endl; | 101 | outstream << "</KEYID" << i << ">" << endl; |
100 | } | 102 | } |
diff --git a/noncore/apps/tableviewer/tableviewer.pro b/noncore/apps/tableviewer/tableviewer.pro index 6f73400..f047e0b 100644 --- a/noncore/apps/tableviewer/tableviewer.pro +++ b/noncore/apps/tableviewer/tableviewer.pro | |||
@@ -3,6 +3,7 @@ CONFIG = qt warn_on debug | |||
3 | DESTDIR = $(OPIEDIR)/bin | 3 | DESTDIR = $(OPIEDIR)/bin |
4 | SUBDIRS = db ui | 4 | SUBDIRS = db ui |
5 | HEADERS = tableviewer.h \ | 5 | HEADERS = tableviewer.h \ |
6 | xmlencodeattr.h \ | ||
6 | ui/commonwidgets.h \ | 7 | ui/commonwidgets.h \ |
7 | ui/tvbrowseview.h \ | 8 | ui/tvbrowseview.h \ |
8 | ui/tvlistview.h \ | 9 | ui/tvlistview.h \ |
@@ -17,6 +18,7 @@ HEADERS = tableviewer.h \ | |||
17 | db/csvsource.h | 18 | db/csvsource.h |
18 | SOURCES = main.cpp \ | 19 | SOURCES = main.cpp \ |
19 | tableviewer.cpp \ | 20 | tableviewer.cpp \ |
21 | xmlencodeattr.cpp \ | ||
20 | ui/commonwidgets.cpp \ | 22 | ui/commonwidgets.cpp \ |
21 | ui/tvbrowseview.cpp \ | 23 | ui/tvbrowseview.cpp \ |
22 | ui/tvfilterview.cpp \ | 24 | ui/tvfilterview.cpp \ |
diff --git a/noncore/apps/tableviewer/ui/tvbrowseview.cpp b/noncore/apps/tableviewer/ui/tvbrowseview.cpp index f5f2555..22bac55 100644 --- a/noncore/apps/tableviewer/ui/tvbrowseview.cpp +++ b/noncore/apps/tableviewer/ui/tvbrowseview.cpp | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <qtextview.h> | 23 | #include <qtextview.h> |
24 | #include <qtextbrowser.h> | 24 | #include <qtextbrowser.h> |
25 | #include <qlayout.h> | 25 | #include <qlayout.h> |
26 | #include "../xmlencodeattr.h" | ||
26 | 27 | ||
27 | /*! | 28 | /*! |
28 | \class TVBrowseView | 29 | \class TVBrowseView |
@@ -102,12 +103,12 @@ void TVBrowseView::setDisplayText(const DataElem *element) | |||
102 | if (element->hasValidValue(it.currentKey())) { | 103 | if (element->hasValidValue(it.currentKey())) { |
103 | if(it.currentKey() == ts->current_column) { | 104 | if(it.currentKey() == ts->current_column) { |
104 | rep += "<A name=\"ckey\"></A><B><FONT COLOR=#FF0000>" | 105 | rep += "<A name=\"ckey\"></A><B><FONT COLOR=#FF0000>" |
105 | + it.current()->name() | 106 | + encodeAttr(it.current()->name()) |
106 | + ":</FONT></B> "; | 107 | + ":</FONT></B> "; |
107 | } else { | 108 | } else { |
108 | rep += "<B>" + it.current()->name() + ":</B> "; | 109 | rep += "<B>" + encodeAttr(it.current()->name()) + ":</B> "; |
109 | } | 110 | } |
110 | rep += element->toQString(it.currentKey()) + "<BR>"; | 111 | rep += encodeAttr(element->toQString(it.currentKey())) + "<BR>"; |
111 | } | 112 | } |
112 | ++it; | 113 | ++it; |
113 | } | 114 | } |
diff --git a/noncore/apps/tableviewer/xmlencodeattr.cpp b/noncore/apps/tableviewer/xmlencodeattr.cpp new file mode 100644 index 0000000..de264f7 --- a/dev/null +++ b/noncore/apps/tableviewer/xmlencodeattr.cpp | |||
@@ -0,0 +1,48 @@ | |||
1 | /* | ||
2 | * xmlencodeattr.h | ||
3 | * | ||
4 | * copyright : (c) 2003 by Joseph Wenninger | ||
5 | * except for a small modification it's identical to qdom.cpp:encodeAttr | ||
6 | * email : jowenn@handhelds.org | ||
7 | * | ||
8 | */ | ||
9 | /*************************************************************************** | ||
10 | * * | ||
11 | * This program is free software; you can redistribute it and/or modify * | ||
12 | * it under the terms of the GNU General Public License as published by * | ||
13 | * the Free Software Foundation; either version 2 of the License, or * | ||
14 | * (at your option) any later version. * | ||
15 | * * | ||
16 | ***************************************************************************/ | ||
17 | |||
18 | #include "xmlencodeattr.h" | ||
19 | QString encodeAttr( const QString& str ) | ||
20 | { | ||
21 | QString tmp( str ); | ||
22 | uint len = tmp.length(); | ||
23 | uint i = 0; | ||
24 | while ( i < len ) { | ||
25 | if ( tmp[(int)i] == '<' ) { | ||
26 | tmp.replace( i, 1, "<" ); | ||
27 | len += 3; | ||
28 | i += 4; | ||
29 | } else if ( tmp[(int)i] == '"' ) { | ||
30 | tmp.replace( i, 1, """ ); | ||
31 | len += 5; | ||
32 | i += 6; | ||
33 | } else if ( tmp[(int)i] == '&' ) { | ||
34 | tmp.replace( i, 1, "&" ); | ||
35 | len += 4; | ||
36 | i += 5; | ||
37 | } else if ( tmp[(int)i] == '>' ) { | ||
38 | tmp.replace( i, 1, ">" ); | ||
39 | len += 3; | ||
40 | i += 4; | ||
41 | } else { | ||
42 | ++i; | ||
43 | } | ||
44 | } | ||
45 | |||
46 | return tmp; | ||
47 | } | ||
48 | |||
diff --git a/noncore/apps/tableviewer/xmlencodeattr.h b/noncore/apps/tableviewer/xmlencodeattr.h new file mode 100644 index 0000000..5fd3b95 --- a/dev/null +++ b/noncore/apps/tableviewer/xmlencodeattr.h | |||
@@ -0,0 +1,26 @@ | |||
1 | /* | ||
2 | * xmlencodeattr.h | ||
3 | * | ||
4 | * copyright : (c) 2003 by Joseph Wenninger | ||
5 | * except for a small modification it's identical to qdom.cpp:encodeAttr | ||
6 | * email : jowenn@handhelds.org | ||
7 | * | ||
8 | */ | ||
9 | /*************************************************************************** | ||
10 | * * | ||
11 | * This program is free software; you can redistribute it and/or modify * | ||
12 | * it under the terms of the GNU General Public License as published by * | ||
13 | * the Free Software Foundation; either version 2 of the License, or * | ||
14 | * (at your option) any later version. * | ||
15 | * * | ||
16 | ***************************************************************************/ | ||
17 | |||
18 | #ifndef _XML_ENCODE_ATTR_ | ||
19 | #define _XML_ENCODE_ATTR_ | ||
20 | |||
21 | #include <qstring.h> | ||
22 | |||
23 | QString encodeAttr( const QString& str ); | ||
24 | |||
25 | #endif | ||
26 | |||