summaryrefslogtreecommitdiff
authorzecke <zecke>2002-06-17 14:54:47 (UTC)
committer zecke <zecke>2002-06-17 14:54:47 (UTC)
commitdcba3fed4f2abf001ced72b573f6e50f6b37e1e6 (patch) (side-by-side diff)
tree61432b2b0a68c9604d50df5eda4d2d6be832eecd
parentf27745ccf2ace20e5adc44bf630b20e5657feeb2 (diff)
downloadopie-dcba3fed4f2abf001ced72b573f6e50f6b37e1e6.zip
opie-dcba3fed4f2abf001ced72b573f6e50f6b37e1e6.tar.gz
opie-dcba3fed4f2abf001ced72b573f6e50f6b37e1e6.tar.bz2
Fix a possible crash when opening an empty file
Diffstat (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 1e40c40..17163a0 100644
--- a/libopie/tododb.cpp
+++ b/libopie/tododb.cpp
@@ -39,64 +39,66 @@ public:
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.setEncoding( QTextStream::UnicodeUTF8 );
stream << "<!DOCTYPE Tasks>" << endl;
tasks->save(stream );
delete tasks;
stream << "</Tasks>" << endl;
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();
+ if (element == 0 )
+ return m_todos;
element = element->firstChild();
while( element ){
if( element->tagName() != QString::fromLatin1("Task") ){
element = element->nextChild();
continue;
}
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 );
// progress
dummy = element->attribute("Progress" );
{
ushort dumShort = dummy.toUShort(&ok);
event.setProgress( dumShort );
}
// 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