Diffstat (limited to 'libopie/todovcalresource.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | libopie/todovcalresource.cpp | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/libopie/todovcalresource.cpp b/libopie/todovcalresource.cpp index 75f2197..80f8c60 100644 --- a/libopie/todovcalresource.cpp +++ b/libopie/todovcalresource.cpp @@ -1,131 +1,136 @@ /* =. This file is part of the OPIE Project .=l. Copyright (c) 2002 Holger Freyther <freyther@kde.org> .>+-= the use of vobject was inspired by libkcal - _;:, .> :=|. This library is free software; you can + _;:, .> :=|. This library is free software; you can .> <`_, > . <= redistribute it and/or modify it under :`=1 )Y*s>-.-- : the terms of the GNU Library General Public .="- .-=="i, .._ License as published by the Free Software - . .-<_> .<> Foundation; either version 2 of the License, ._= =} : or (at your option) any later version. - .%`+i> _;_. - .i_,=:_. -<s. This library is distributed in the hope that + .%`+i> _;_. + .i_,=:_. -<s. This library is distributed in the hope that + . -:. = it will be useful, but WITHOUT ANY WARRANTY; : .. .:, . . . without even the implied warranty of =_ + =;=|` MERCHANTABILITY or FITNESS FOR A _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU ..}^=.= = ; Library General Public License for more ++= -. .` .: details. - : = ...= . :.=- + : = ...= . :.=- -. .:....=;==+<; You should have received a copy of the GNU -_. . . )=. = Library General Public License along with - -- :-=` this library; see the file COPYING.LIB. + -- :-=` this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include <qfile.h> #include <qvaluelist.h> #include <opie/todoevent.h> #include <opie/todovcalresource.h> #include "../library/backend/vobject_p.h" #include "../library/backend/timeconversion.h" #include "../library/backend/qfiledirect_p.h" static VObject *vobjByEvent( const ToDoEvent &event ) { VObject *task = newVObject( VCTodoProp ); if( task == 0 ) return 0l; if( event.hasDate() ) addPropValue( task, VCDueProp, TimeConversion::toISO8601( event.date() ) ); if( event.isCompleted() ) addPropValue( task, VCStatusProp, "COMPLETED"); QString string = QString::number(event.priority() ); addPropValue( task, VCPriorityProp, string.local8Bit() ); addPropValue( task, VCCategoriesProp, event.allCategories().join(";").local8Bit() ); addPropValue( task, VCDescriptionProp, event.description().local8Bit() ); - addPropValue( task, VCSummaryProp, event.description().left(15).local8Bit() ); + addPropValue( task, VCSummaryProp, event.summary().left(15).local8Bit() ); return task; }; static ToDoEvent eventByVObj( VObject *obj ){ ToDoEvent event; VObject *ob; QCString name; // no uid, attendees, ... and no fun // description if( ( ob = isAPropertyOf( obj, VCDescriptionProp )) != 0 ){ name = vObjectStringZValue( ob ); event.setDescription( name ); - } + } + // summary + if ( ( ob = isAPropertyOf( obj, VCSummaryProp ) ) != 0 ) { + name = vObjectStringZValue( ob ); + event.setSummary( name ); + } // completed if( ( ob = isAPropertyOf( obj, VCStatusProp )) != 0 ){ name = vObjectStringZValue( ob ); if( name == "COMPLETED" ){ event.setCompleted( true ); }else{ event.setCompleted( false ); } }else event.setCompleted( false ); // priority if ((ob = isAPropertyOf(obj, VCPriorityProp))) { name = vObjectStringZValue( ob ); bool ok; event.setPriority(name.toInt(&ok) ); } //due date if((ob = isAPropertyOf(obj, VCDueProp)) ){ event.setHasDate( true ); name = vObjectStringZValue( ob ); event.setDate( TimeConversion::fromISO8601( name).date() ); - } + } // categories if((ob = isAPropertyOf( obj, VCCategoriesProp )) != 0 ){ name = vObjectStringZValue( ob ); qWarning("Categories:%s", name.data() ); } return event; }; -QValueList<ToDoEvent> ToDoVCalResource::load(const QString &file) +QValueList<ToDoEvent> ToDoVCalResource::load(const QString &file) { QValueList<ToDoEvent> events; VObject *vcal = 0l; vcal = Parse_MIME_FromFileName( (char *)file.utf8().data() ); // from vobject if(!vcal ) return events; // start parsing VObjectIterator it; VObject *vobj; initPropIterator(&it, vcal); while( moreIteration( &it ) ) { vobj = ::nextVObject( &it ); QCString name = ::vObjectName( vobj ); //QCString objVal = ::vObjectStringZValue( vobj ); // let's find out the type if( name == VCTodoProp ){ events.append( eventByVObj( vobj ) ); } // parse the value } return events; } bool ToDoVCalResource::save(const QString &fileName, const QValueList<ToDoEvent>&list ) { QFileDirect file ( fileName ); if(!file.open(IO_WriteOnly ) ) return false; // obj VObject *obj; obj = newVObject( VCCalProp ); |