summaryrefslogtreecommitdiff
path: root/libopie/tododb.cpp
authorsimon <simon>2002-04-30 14:26:53 (UTC)
committer simon <simon>2002-04-30 14:26:53 (UTC)
commit5dae945f8ec25a811efb10eb71d606ce8da4429f (patch) (unidiff)
treec12689435fbfb2abd6aedfcbd88208c1cb69407f /libopie/tododb.cpp
parent3c1b87ffa621f872c72228733a078511e56d2daf (diff)
downloadopie-5dae945f8ec25a811efb10eb71d606ce8da4429f.zip
opie-5dae945f8ec25a811efb10eb71d606ce8da4429f.tar.gz
opie-5dae945f8ec25a811efb10eb71d606ce8da4429f.tar.bz2
- put the xml tree classes into the Opie namespace
Diffstat (limited to 'libopie/tododb.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/tododb.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/libopie/tododb.cpp b/libopie/tododb.cpp
index 33fa177..fe8b8bf 100644
--- a/libopie/tododb.cpp
+++ b/libopie/tododb.cpp
@@ -1,104 +1,106 @@
1 1
2#include <qdir.h> 2#include <qdir.h>
3#include <opie/tododb.h> 3#include <opie/tododb.h>
4#include <opie/xmltree.h> 4#include <opie/xmltree.h>
5#include <opie/todoresource.h> 5#include <opie/todoresource.h>
6#include <qpe/palmtoprecord.h> 6#include <qpe/palmtoprecord.h>
7#include <qpe/global.h> 7#include <qpe/global.h>
8 8
9using namespace Opie;
10
9namespace { 11namespace {
10 12
11class FileToDoResource : public ToDoResource { 13class FileToDoResource : public ToDoResource {
12public: 14public:
13 FileToDoResource() {}; 15 FileToDoResource() {};
14 bool save(const QString &name, const QValueList<ToDoEvent> &m_todos ){ 16 bool save(const QString &name, const QValueList<ToDoEvent> &m_todos ){
15 // prepare the XML 17 // prepare the XML
16 XMLElement *tasks = new XMLElement( ); 18 XMLElement *tasks = new XMLElement( );
17 tasks->setTagName("Tasks" ); 19 tasks->setTagName("Tasks" );
18 for( QValueList<ToDoEvent>::ConstIterator it = m_todos.begin(); it != m_todos.end(); ++it ){ 20 for( QValueList<ToDoEvent>::ConstIterator it = m_todos.begin(); it != m_todos.end(); ++it ){
19 XMLElement::AttributeMap map; 21 XMLElement::AttributeMap map;
20 XMLElement *task = new XMLElement(); 22 XMLElement *task = new XMLElement();
21 map.insert( "Completed", QString::number((int)(*it).isCompleted() ) ); 23 map.insert( "Completed", QString::number((int)(*it).isCompleted() ) );
22 map.insert( "HasDate", QString::number((int)(*it).hasDate() ) ); 24 map.insert( "HasDate", QString::number((int)(*it).hasDate() ) );
23 map.insert( "Priority", QString::number( (*it).priority() ) ); 25 map.insert( "Priority", QString::number( (*it).priority() ) );
24 QArray<int> arrat = (*it).categories(); 26 QArray<int> arrat = (*it).categories();
25 QString attr; 27 QString attr;
26 for(uint i=0; i < arrat.count(); i++ ){ 28 for(uint i=0; i < arrat.count(); i++ ){
27 attr.append(QString::number(arrat[i])+";" ); 29 attr.append(QString::number(arrat[i])+";" );
28 } 30 }
29 if(!attr.isEmpty() ) // remove the last ; 31 if(!attr.isEmpty() ) // remove the last ;
30 attr.remove(attr.length()-1, 1 ); 32 attr.remove(attr.length()-1, 1 );
31 map.insert( "Categories", attr ); 33 map.insert( "Categories", attr );
32 //else 34 //else
33 //map.insert( "Categories", QString::null ); 35 //map.insert( "Categories", QString::null );
34 map.insert( "Description", (*it).description() ); 36 map.insert( "Description", (*it).description() );
35 if( (*it).hasDate() ){ 37 if( (*it).hasDate() ){
36 map.insert("DateYear", QString::number( (*it).date().year() ) ); 38 map.insert("DateYear", QString::number( (*it).date().year() ) );
37 map.insert("DateMonth", QString::number( (*it).date().month() ) ); 39 map.insert("DateMonth", QString::number( (*it).date().month() ) );
38 map.insert("DateDay", QString::number( (*it).date().day() ) ); 40 map.insert("DateDay", QString::number( (*it).date().day() ) );
39 } 41 }
40 map.insert("Uid", QString::number( (*it).uid() ) ); 42 map.insert("Uid", QString::number( (*it).uid() ) );
41 task->setTagName("Task" ); 43 task->setTagName("Task" );
42 task->setAttributes( map ); 44 task->setAttributes( map );
43 tasks->appendChild(task); 45 tasks->appendChild(task);
44 } 46 }
45 QFile file( name); 47 QFile file( name);
46 if( file.open(IO_WriteOnly ) ){ 48 if( file.open(IO_WriteOnly ) ){
47 QTextStream stream(&file ); 49 QTextStream stream(&file );
48 stream.setEncoding( QTextStream::UnicodeUTF8 ); 50 stream.setEncoding( QTextStream::UnicodeUTF8 );
49 stream << "<!DOCTYPE Tasks>" << endl; 51 stream << "<!DOCTYPE Tasks>" << endl;
50 tasks->save(stream ); 52 tasks->save(stream );
51 delete tasks; 53 delete tasks;
52 stream << "</Tasks>" << endl; 54 stream << "</Tasks>" << endl;
53 file.close(); 55 file.close();
54 return true; 56 return true;
55 } 57 }
56 return false; 58 return false;
57 } 59 }
58 QValueList<ToDoEvent> load( const QString &name ){ 60 QValueList<ToDoEvent> load( const QString &name ){
59 qWarning("loading tododb" ); 61 qWarning("loading tododb" );
60 QValueList<ToDoEvent> m_todos; 62 QValueList<ToDoEvent> m_todos;
61 XMLElement *root = XMLElement::load( name ); 63 XMLElement *root = XMLElement::load( name );
62 if(root != 0l ){ // start parsing 64 if(root != 0l ){ // start parsing
63 qWarning("ToDoDB::load tagName(): %s", root->tagName().latin1() ); 65 qWarning("ToDoDB::load tagName(): %s", root->tagName().latin1() );
64 //if( root->tagName() == QString::fromLatin1("Tasks" ) ){// Start 66 //if( root->tagName() == QString::fromLatin1("Tasks" ) ){// Start
65 XMLElement *element = root->firstChild(); 67 XMLElement *element = root->firstChild();
66 element = element->firstChild(); 68 element = element->firstChild();
67 while( element ){ 69 while( element ){
68 if( element->tagName() != QString::fromLatin1("Task") ){ 70 if( element->tagName() != QString::fromLatin1("Task") ){
69 element = element->nextChild(); 71 element = element->nextChild();
70 continue; 72 continue;
71 } 73 }
72 qWarning("ToDoDB::load element tagName() : %s", element->tagName().latin1() ); 74 qWarning("ToDoDB::load element tagName() : %s", element->tagName().latin1() );
73 QString dummy; 75 QString dummy;
74 ToDoEvent event; 76 ToDoEvent event;
75 bool ok; 77 bool ok;
76 int dumInt; 78 int dumInt;
77 // completed 79 // completed
78 dummy = element->attribute("Completed" ); 80 dummy = element->attribute("Completed" );
79 dumInt = dummy.toInt(&ok ); 81 dumInt = dummy.toInt(&ok );
80 if(ok ) event.setCompleted( dumInt == 0 ? false : true ); 82 if(ok ) event.setCompleted( dumInt == 0 ? false : true );
81 // hasDate 83 // hasDate
82 dummy = element->attribute("HasDate" ); 84 dummy = element->attribute("HasDate" );
83 dumInt = dummy.toInt(&ok ); 85 dumInt = dummy.toInt(&ok );
84 if(ok ) event.setHasDate( dumInt == 0 ? false: true ); 86 if(ok ) event.setHasDate( dumInt == 0 ? false: true );
85 // set the date 87 // set the date
86 bool hasDa = dumInt; 88 bool hasDa = dumInt;
87 if ( hasDa ) { //parse the date 89 if ( hasDa ) { //parse the date
88 int year, day, month = 0; 90 int year, day, month = 0;
89 year = day = month; 91 year = day = month;
90 // year 92 // year
91 dummy = element->attribute("DateYear" ); 93 dummy = element->attribute("DateYear" );
92 dumInt = dummy.toInt(&ok ); 94 dumInt = dummy.toInt(&ok );
93 if( ok ) year = dumInt; 95 if( ok ) year = dumInt;
94 // month 96 // month
95 dummy = element->attribute("DateMonth" ); 97 dummy = element->attribute("DateMonth" );
96 dumInt = dummy.toInt(&ok ); 98 dumInt = dummy.toInt(&ok );
97 if(ok ) month = dumInt; 99 if(ok ) month = dumInt;
98 dummy = element->attribute("DateDay" ); 100 dummy = element->attribute("DateDay" );
99 dumInt = dummy.toInt(&ok ); 101 dumInt = dummy.toInt(&ok );
100 if(ok ) day = dumInt; 102 if(ok ) day = dumInt;
101 // set the date 103 // set the date
102 QDate date( year, month, day ); 104 QDate date( year, month, day );
103 event.setDate( date); 105 event.setDate( date);
104 } 106 }