author | zecke <zecke> | 2002-03-19 19:52:28 (UTC) |
---|---|---|
committer | zecke <zecke> | 2002-03-19 19:52:28 (UTC) |
commit | 5f6144b48cac5cc058ee06461e865ce03cda00f1 (patch) (side-by-side diff) | |
tree | be269aa0b3370a47d15659d0d03cd4eb286655b9 /libopie/tododb.cpp | |
parent | ebbdb5c4f1c01881bd09f02d9efaa434a073a788 (diff) | |
download | opie-5f6144b48cac5cc058ee06461e865ce03cda00f1.zip opie-5f6144b48cac5cc058ee06461e865ce03cda00f1.tar.gz opie-5f6144b48cac5cc058ee06461e865ce03cda00f1.tar.bz2 |
fix the crash for harlekin
-rw-r--r-- | libopie/tododb.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libopie/tododb.cpp b/libopie/tododb.cpp index e440dfc..b1b35d0 100644 --- a/libopie/tododb.cpp +++ b/libopie/tododb.cpp @@ -26,190 +26,192 @@ public: arrat = Qtopia::Record::idsFromString( (*it).category() ); map.insert( "Categories", QString::number( arrat[0] ) ); }else map.insert( "Categories", QString::null ); map.insert( "Description", (*it).description() ); if( (*it).hasDate() ){ map.insert("DateYear", QString::number( (*it).date().year() ) ); map.insert("DateMonth", QString::number( (*it).date().month() ) ); map.insert("DateDay", QString::number( (*it).date().day() ) ); } map.insert("Uid", QString::number( (*it).uid() ) ); task->setTagName("Task" ); task->setAttributes( map ); tasks->appendChild(task); } QFile file( name); if( file.open(IO_WriteOnly ) ){ QTextStream stream(&file ); stream << "<!DOCTYPE Tasks>" << endl; tasks->save(stream ); delete tasks; file.close(); return true; } return false; } QValueList<ToDoEvent> load( const QString &name ){ qWarning("loading tododb" ); QValueList<ToDoEvent> m_todos; XMLElement *root = XMLElement::load( name ); if(root != 0l ){ // start parsing qWarning("ToDoDB::load tagName(): %s", root->tagName().latin1() ); //if( root->tagName() == QString::fromLatin1("Tasks" ) ){// Start XMLElement *element = root->firstChild(); element = element->firstChild(); while( element ){ qWarning("ToDoDB::load element tagName() : %s", element->tagName().latin1() ); QString dummy; ToDoEvent event; bool ok; int dumInt; // completed dummy = element->attribute("Completed" ); dumInt = dummy.toInt(&ok ); if(ok ) event.setCompleted( dumInt == 0 ? false : true ); // hasDate dummy = element->attribute("HasDate" ); dumInt = dummy.toInt(&ok ); if(ok ) event.setHasDate( dumInt == 0 ? false: true ); // set the date bool hasDa = dumInt; if ( hasDa ) { //parse the date int year, day, month = 0; year = day = month; // year dummy = element->attribute("DateYear" ); dumInt = dummy.toInt(&ok ); if( ok ) year = dumInt; // month dummy = element->attribute("DateMonth" ); dumInt = dummy.toInt(&ok ); if(ok ) month = dumInt; dummy = element->attribute("DateDay" ); dumInt = dummy.toInt(&ok ); if(ok ) day = dumInt; // set the date QDate date( year, month, day ); event.setDate( date); } dummy = element->attribute("Priority" ); dumInt = dummy.toInt(&ok ); if(!ok ) dumInt = ToDoEvent::NORMAL; event.setPriority( dumInt ); //description dummy = element->attribute("Description" ); event.setDescription( dummy ); // category dummy = element->attribute("Categories" ); dumInt = dummy.toInt(&ok ); if(ok ) { QArray<int> arrat(1); arrat[0] = dumInt; event.setCategory( Qtopia::Record::idsToString( arrat ) ); } //uid dummy = element->attribute("Uid" ); dumInt = dummy.toInt(&ok ); if(ok ) event.setUid( dumInt ); m_todos.append( event ); element = element->nextChild(); // next element } //} }else { qWarning("could not load" ); } delete root; + qWarning("returning" ); return m_todos; } }; } ToDoDB::ToDoDB(const QString &fileName = QString::null, ToDoResource *res ){ m_fileName = fileName; if( fileName.isEmpty() && res == 0 ){ - m_fileName = Global::applicationFileName("todolist","todolist.xml");; + m_fileName = Global::applicationFileName("todolist","todolist.xml"); + res = new FileToDoResource(); //qWarning("%s", m_fileName.latin1() ); }else if(res == 0 ){ // let's create a ToDoResource for xml res = new FileToDoResource(); } m_res = res; load(); } ToDoDB::~ToDoDB() { delete m_res; } QValueList<ToDoEvent> ToDoDB::effectiveToDos(const QDate &from, const QDate &to, bool all ) { QValueList<ToDoEvent> events; for( QValueList<ToDoEvent>::Iterator it = m_todos.begin(); it!= m_todos.end(); ++it ){ if( (*it).hasDate() ){ if( (*it).date() >= from && (*it).date() <= to ) events.append( (*it) ); }else if( all ){ events.append( (*it) ); } } return events; } QValueList<ToDoEvent> ToDoDB::effectiveToDos(const QDate &from, bool all) { return effectiveToDos( from, QDate::currentDate(), all ); } QValueList<ToDoEvent> ToDoDB::overDue() { QValueList<ToDoEvent> events; for( QValueList<ToDoEvent>::Iterator it = m_todos.begin(); it!= m_todos.end(); ++it ){ if( (*it).isOverdue() ) events.append((*it) ); } return events; } QValueList<ToDoEvent> ToDoDB::rawToDos() { return m_todos; } void ToDoDB::addEvent( const ToDoEvent &event ) { m_todos.append( event ); } void ToDoDB::editEvent( const ToDoEvent &event ) { m_todos.remove( event ); m_todos.append( event ); } void ToDoDB::removeEvent( const ToDoEvent &event ) { m_todos.remove( event ); } void ToDoDB::reload() { load(); } void ToDoDB::setFileName(const QString &file ) { m_fileName =file; } QString ToDoDB::fileName()const { return m_fileName; } void ToDoDB::load() { m_todos = m_res->load( m_fileName ); } bool ToDoDB::save() { return m_res->save( m_fileName, m_todos ); } |