-rw-r--r-- | libopie/todoevent.cpp | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/libopie/todoevent.cpp b/libopie/todoevent.cpp index b35ac9d..f744550 100644 --- a/libopie/todoevent.cpp +++ b/libopie/todoevent.cpp @@ -63,48 +63,66 @@ bool ToDoEvent::isCompleted() const bool ToDoEvent::hasDate() const { return m_hasDate; } int ToDoEvent::priority()const { return m_priority; } QStringList ToDoEvent::allCategories()const { return m_category; } QString ToDoEvent::extra(const QString& )const { return QString::null; } QString ToDoEvent::summary() const { return m_sum; } ushort ToDoEvent::progress() const { return m_prog; } +QStringList ToDoEvent::relatedApps() const +{ + QStringList list; + QMap<QString, QArray<int> >::ConstIterator it; + for ( it = m_relations.begin(); it != m_relations.end(); ++it ) { + list << it.key(); + } + return list; +} +QArray<int> ToDoEvent::relations( const QString& app)const +{ + QArray<int> tmp; + QMap<QString, QArray<int> >::ConstIterator it; + it = m_relations.find( app); + if ( it != m_relations.end() ) + tmp = it.data(); + return tmp; +} void ToDoEvent::insertCategory(const QString &str ) { m_category.append( str ); } void ToDoEvent::clearCategories() { m_category.clear(); } void ToDoEvent::setCategories(const QStringList &list ) { m_category = list; } QDate ToDoEvent::date()const { return m_date; } QString ToDoEvent::description()const { return m_desc; } void ToDoEvent::setCompleted( bool completed ) { m_isCompleted = completed; @@ -118,48 +136,87 @@ void ToDoEvent::setDescription(const QString &desc ) m_desc = Qtopia::simplifyMultiLineSpace(desc ); } void ToDoEvent::setExtra( const QString&, const QString& ) { } void ToDoEvent::setSummary( const QString& sum ) { m_sum = sum; } void ToDoEvent::setCategory( const QString &cat ) { qWarning("setCategory %s", cat.latin1() ); m_category.clear(); m_category << cat; } void ToDoEvent::setPriority(int prio ) { m_priority = prio; } void ToDoEvent::setDate( QDate date ) { m_date = date; } +void ToDoEvent::addRelated( const QString &app, int id ) +{ + QMap<QString, QArray<int> >::Iterator it; + QArray<int> tmp; + it = m_relations.find( app ); + if ( it == m_relations.end() ) { + tmp.resize(1 ); + tmp[0] = id; + }else{ + tmp = it.data(); + tmp.resize( tmp.size() + 1 ); + tmp[tmp.size() - 1] = id; + } + m_relations.replace( app, tmp ); +} +void ToDoEvent::addRelated(const QString& app, QArray<int> ids ) +{ + QMap<QString, QArray<int> >::Iterator it; + QArray<int> tmp; + it = m_relations.find( app); + if ( it == m_relations.end() ) { // not there + /** tmp.resize( ids.size() ); stupid?? + */ + tmp = ids; + }else{ + tmp = it.data(); + int offset = tmp.size()-1; + tmp.resize( tmp.size() + ids.size() ); + for (uint i = 0; i < ids.size(); i++ ) { + tmp[offset+i] = ids[i]; + } + + } + m_relations.replace( app, tmp ); +} +void ToDoEvent::clearRelated( const QString& app ) +{ + m_relations.remove( app ); +} bool ToDoEvent::isOverdue( ) { if( m_hasDate ) return QDate::currentDate() > m_date; return false; } void ToDoEvent::setProgress(ushort progress ) { m_prog = progress; } /*! Returns a richt text string */ QString ToDoEvent::richText() const { QString text; QStringList catlist; // Description of the todo if ( !description().isEmpty() ){ text += "<b>" + QObject::tr( "Summary:") + "</b><br>"; text += Qtopia::escapeString(summary() ).replace(QRegExp( "[\n]"), "<br>" ) + "<br>"; text += "<b>" + QObject::tr( "Description:" ) + "</b><br>"; text += Qtopia::escapeString(description() ).replace(QRegExp( "[\n]"), "<br>" ) + "<br><br><br>"; |