summaryrefslogtreecommitdiff
path: root/libopie2
authorzecke <zecke>2002-09-20 17:28:20 (UTC)
committer zecke <zecke>2002-09-20 17:28:20 (UTC)
commit55dd11ddae09bfc4907399c473f0387c135fdae6 (patch) (side-by-side diff)
tree69d52e2f0e1030bbdcbf518f0a334ff4861500fa /libopie2
parent40df2487c53a5ab484d33d619f5b6ed449c0b485 (diff)
downloadopie-55dd11ddae09bfc4907399c473f0387c135fdae6.zip
opie-55dd11ddae09bfc4907399c473f0387c135fdae6.tar.gz
opie-55dd11ddae09bfc4907399c473f0387c135fdae6.tar.bz2
OTodo know is the first implementation of OPimRecord
Diffstat (limited to 'libopie2') (more/less context) (show whitespace changes)
-rw-r--r--libopie2/opiepim/core/opimrecord.cpp26
-rw-r--r--libopie2/opiepim/core/opimrecord.h4
-rw-r--r--libopie2/opiepim/otodo.cpp265
-rw-r--r--libopie2/opiepim/otodo.h22
4 files changed, 93 insertions, 224 deletions
diff --git a/libopie2/opiepim/core/opimrecord.cpp b/libopie2/opiepim/core/opimrecord.cpp
index 95de1df..d8f73c7 100644
--- a/libopie2/opiepim/core/opimrecord.cpp
+++ b/libopie2/opiepim/core/opimrecord.cpp
@@ -1,90 +1,106 @@
#include "opimrecord.h"
OPimRecord::OPimRecord( int uid )
: Qtopia::Record() {
+
setUid( uid );
+ /* assign a new UID */
if ( uid == 1 )
assignUid();
}
OPimRecord::~OPimRecord() {
}
-OPimRecord::OPimRecord( OPimRecord& rec )
+OPimRecord::OPimRecord( const OPimRecord& rec )
: Qtopia::Record( rec )
{
(*this) = rec;
}
OPimRecord &OPimRecord::operator=( const OPimRecord& rec) {
- /* how do I call the parent copy operator ? */
- setUid( rec.uid() );
- setCategories( rec.categories() );
+ Qtopia::Record::operator=( rec );
+ m_relations = rec.m_relations;
+
return *this;
}
QStringList OPimRecord::categoryNames()const {
QStringList list;
return list;
}
-void OPimRecord::setCategoryName( const QStringList& ) {
+void OPimRecord::setCategoryNames( const QStringList& ) {
}
void OPimRecord::addCategoryName( const QString& ) {
}
bool OPimRecord::isEmpty()const {
return ( uid() == 0 );
}
QStringList OPimRecord::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> OPimRecord::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 OPimRecord::clearRelation( const QString& app ) {
m_relations.remove( app );
}
void OPimRecord::addRelation( 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 OPimRecord::setRelations( 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() ) {
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 );
}
+QString OPimRecord::crossToString()const {
+ QString str;
+ QMap<QString, QArray<int> >::ConstIterator it;
+ for (it = m_relations.begin(); it != m_relations.end(); ++it ) {
+ QArray<int> id = it.data();
+ for ( uint i = 0; i < id.size(); ++i ) {
+ str += it.key() + "," + QString::number( i ) + ";";
+ }
+ }
+ str = str.remove( str.length()-1, 1); // strip the ;
+ //qWarning("IDS " + str );
+
+ return str;
+}
diff --git a/libopie2/opiepim/core/opimrecord.h b/libopie2/opiepim/core/opimrecord.h
index a0e0413..18112d4 100644
--- a/libopie2/opiepim/core/opimrecord.h
+++ b/libopie2/opiepim/core/opimrecord.h
@@ -1,117 +1,117 @@
#ifndef OPIE_PIM_RECORD_H
#define OPIE_PIM_RECORD_H
#include <qmap.h>
#include <qstring.h>
#include <qstringlist.h>
#include <qpe/palmtoprecord.h>
class OPimRecord : public Qtopia::Record {
public:
/**
* uid of 0 isEmpty
* uid of 1 will be assigned a new one
*/
OPimRecord(int uid = 0);
~OPimRecord();
/**
* copy c'tor
*/
- OPimRecord( OPimRecord& rec );
+ OPimRecord( const OPimRecord& rec );
/**
* copy operator
*/
OPimRecord &operator=( const OPimRecord& );
/**
* category names resolved
*/
QStringList categoryNames()const;
/**
* set category names they will be resolved
*/
- void setCategoryName( const QStringList& );
+ void setCategoryNames( const QStringList& );
/**
* addCategoryName adds a name
* to the internal category list
*/
void addCategoryName( const QString& );
/**
* if a Record isEmpty
*/
virtual bool isEmpty()const;
/**
* toRichText summary
*/
virtual QString toRichText()const = 0;
/**
* a small one line summary
*/
virtual QString toShortText()const = 0;
/**
* the name of the Record
*/
virtual QString type()const = 0;
/**
* converts the internal structure to a map
*/
virtual QMap<int, QString> toMap()const = 0;
/**
* key value representation of extra items
*/
virtual QMap<QString, QString> toExtraMap()const = 0;
/**
* the name for a recordField
*/
virtual QString recordField(int)const = 0;
/**
* the related apps names
*/
QStringList relatedApps()const;
/**
* the realtions between an app
*/
QArray<int> relations( const QString& app )const;
/**
*
*/
void clearRelation( const QString& app );
/**
*
*/
void addRelation( const QString& app, int id );
/**
*
*/
void setRelations( const QString&, QArray<int> ids );
protected:
QString crossToString()const;
private:
class OPimRecordPrivate;
OPimRecordPrivate *d;
QMap<QString, QArray<int> > m_relations;
};
#endif
diff --git a/libopie2/opiepim/otodo.cpp b/libopie2/opiepim/otodo.cpp
index d8e0447..3c93838 100644
--- a/libopie2/opiepim/otodo.cpp
+++ b/libopie2/opiepim/otodo.cpp
@@ -1,507 +1,354 @@
#include <qobject.h>
#include <qshared.h>
#include <qpe/palmtopuidgen.h>
#include <qpe/stringutil.h>
#include <qpe/palmtoprecord.h>
#include <qpe/stringutil.h>
#include <qpe/categories.h>
#include <qpe/categoryselect.h>
-#include "todoevent.h"
-using namespace Opie;
-Qtopia::UidGen ToDoEvent::m_gen;
+#include "otodo.h"
-struct ToDoEvent::ToDoEventData : public QShared {
- ToDoEventData() : QShared() {
+
+struct OTodo::OTodoData : public QShared {
+ OTodoData() : QShared() {
};
QDate date;
bool isCompleted:1;
bool hasDate:1;
int priority;
QStringList category;
QString desc;
QString sum;
QMap<QString, QString> extra;
- QMap<QString, QArray<int> > relations;
- int uid;
ushort prog;
bool hasAlarmDateTime :1;
QDateTime alarmDateTime;
};
-ToDoEvent::ToDoEvent(const ToDoEvent &event )
- : data( event.data )
+OTodo::OTodo(const OTodo &event )
+ : OPimRecord( event ), data( event.data )
{
data->ref();
//qWarning("ref up");
}
-ToDoEvent::~ToDoEvent() {
+OTodo::~OTodo() {
if ( data->deref() ) {
- //qWarning("ToDoEvent::dereffing");
+ //qWarning("OTodo::dereffing");
delete data;
data = 0l;
}
}
-ToDoEvent::ToDoEvent(bool completed, int priority,
+OTodo::OTodo(bool completed, int priority,
const QStringList &category,
const QString& summary,
const QString &description,
ushort progress,
bool hasDate, QDate date, int uid )
+ : OPimRecord( uid )
{
- //qWarning("ToDoEventData");
- data = new ToDoEventData;
+ //qWarning("OTodoData");
+ setCategories( idsFromString( category.join(";") ) );
+ data = new OTodoData;
data->date = date;
data->isCompleted = completed;
data->hasDate = hasDate;
data->priority = priority;
- data->category = category;
data->sum = summary;
data->prog = progress;
data->desc = Qtopia::simplifyMultiLineSpace(description );
- if (uid == -1 ) {
- uid = m_gen.generate();
-
- }// generated the ids
- m_gen.store( uid );
-
- data->uid = uid;
data->hasAlarmDateTime = false;
}
-QArray<int> ToDoEvent::categories()const
-{
- qWarning( "ToDoEvent:cats" + data->category.join(";") );
- QArray<int> array(data->category.count() ); // currently the datebook can be only in one category
- array = Qtopia::Record::idsFromString( data->category.join(";") );
- return array;
-}
-bool ToDoEvent::match( const QRegExp &regExp )const
+bool OTodo::match( const QRegExp &regExp )const
{
if( QString::number( data->priority ).find( regExp ) != -1 ){
return true;
}else if( data->hasDate && data->date.toString().find( regExp) != -1 ){
return true;
}else if(data->desc.find( regExp ) != -1 ){
return true;
+ }else if(data->sum.find( regExp ) != -1 ) {
+ return true;
}
return false;
}
-bool ToDoEvent::isCompleted() const
+bool OTodo::isCompleted() const
{
return data->isCompleted;
}
-bool ToDoEvent::hasDueDate() const
+bool OTodo::hasDueDate() const
{
return data->hasDate;
}
-bool ToDoEvent::hasAlarmDateTime() const
+bool OTodo::hasAlarmDateTime() const
{
return data->hasAlarmDateTime;
}
-int ToDoEvent::priority()const
+int OTodo::priority()const
{
return data->priority;
}
-QStringList ToDoEvent::allCategories()const
-{
- return data->category;
-}
-QString ToDoEvent::extra(const QString& )const
-{
- return QString::null;
-}
-QString ToDoEvent::summary() const
+QString OTodo::summary() const
{
return data->sum;
}
-ushort ToDoEvent::progress() const
+ushort OTodo::progress() const
{
return data->prog;
}
-QStringList ToDoEvent::relatedApps() const
-{
- QStringList list;
- QMap<QString, QArray<int> >::ConstIterator it;
- for ( it = data->relations.begin(); it != data->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 = data->relations.find( app);
- if ( it != data->relations.end() )
- tmp = it.data();
- return tmp;
-}
-void ToDoEvent::insertCategory(const QString &str )
-{
- changeOrModify();
- qWarning("insert category;" + str );
- data->category.append( str );
-}
-void ToDoEvent::clearCategories()
-{
- changeOrModify();
- data->category.clear();
-}
-void ToDoEvent::setCategories(const QStringList &list )
-{
- changeOrModify();
- qWarning("set categories" + list.join(";") );
- data->category = list;
-}
-QDate ToDoEvent::dueDate()const
+QDate OTodo::dueDate()const
{
return data->date;
}
-QDateTime ToDoEvent::alarmDateTime() const
+QDateTime OTodo::alarmDateTime() const
{
return data->alarmDateTime;
}
-QString ToDoEvent::description()const
+QString OTodo::description()const
{
return data->desc;
}
-void ToDoEvent::setCompleted( bool completed )
+void OTodo::setCompleted( bool completed )
{
changeOrModify();
data->isCompleted = completed;
}
-void ToDoEvent::setHasDueDate( bool hasDate )
+void OTodo::setHasDueDate( bool hasDate )
{
changeOrModify();
data->hasDate = hasDate;
}
-void ToDoEvent::setHasAlarmDateTime( bool hasAlarmDateTime )
+void OTodo::setHasAlarmDateTime( bool hasAlarmDateTime )
{
changeOrModify();
data->hasAlarmDateTime = hasAlarmDateTime;
}
-void ToDoEvent::setDescription(const QString &desc )
+void OTodo::setDescription(const QString &desc )
{
changeOrModify();
data->desc = Qtopia::simplifyMultiLineSpace(desc );
}
-void ToDoEvent::setExtra( const QString&, const QString& )
-{
-
-}
-void ToDoEvent::setSummary( const QString& sum )
+void OTodo::setSummary( const QString& sum )
{
changeOrModify();
data->sum = sum;
}
-void ToDoEvent::setCategory( const QString &cat )
-{
- changeOrModify();
- //qWarning("setCategory %s", cat.latin1() );
- data->category.clear();
- data->category << cat;
-}
-void ToDoEvent::setPriority(int prio )
+void OTodo::setPriority(int prio )
{
changeOrModify();
data->priority = prio;
}
-void ToDoEvent::setDueDate( QDate date )
+void OTodo::setDueDate( QDate date )
{
changeOrModify();
data->date = date;
}
-void ToDoEvent::setAlarmDateTime( const QDateTime& alarm )
+void OTodo::setAlarmDateTime( const QDateTime& alarm )
{
changeOrModify();
data->alarmDateTime = alarm;
}
-void ToDoEvent::addRelated( const QString &app, int id )
-{
- changeOrModify();
-
- QMap<QString, QArray<int> >::Iterator it;
- QArray<int> tmp;
- it = data->relations.find( app );
- if ( it == data->relations.end() ) {
- tmp.resize(1 );
- tmp[0] = id;
- }else{
- tmp = it.data();
- tmp.resize( tmp.size() + 1 );
- tmp[tmp.size() - 1] = id;
- }
- data->relations.replace( app, tmp );
-}
-void ToDoEvent::addRelated(const QString& app, QArray<int> ids )
-{
- changeOrModify();
-
- QMap<QString, QArray<int> >::Iterator it;
- QArray<int> tmp;
- it = data->relations.find( app);
- if ( it == data->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];
- }
-
- }
- data->relations.replace( app, tmp );
-}
-void ToDoEvent::clearRelated( const QString& app )
-{
- changeOrModify();
- data->relations.remove( app );
-}
-bool ToDoEvent::isOverdue( )
+bool OTodo::isOverdue( )
{
if( data->hasDate )
return QDate::currentDate() > data->date;
return false;
}
-void ToDoEvent::setProgress(ushort progress )
+void OTodo::setProgress(ushort progress )
{
changeOrModify();
data->prog = progress;
}
+QString OTodo::toShortText() const {
+ return summary();
+}
/*!
Returns a richt text string
*/
-QString ToDoEvent::richText() const
+QString OTodo::toRichText() const
{
QString text;
QStringList catlist;
// Description of the todo
if ( !summary().isEmpty() ) {
text += "<b>" + QObject::tr( "Summary:") + "</b><br>";
text += Qtopia::escapeString(summary() ).replace(QRegExp( "[\n]"), "<br>" ) + "<br>";
}
if( !description().isEmpty() ){
text += "<b>" + QObject::tr( "Description:" ) + "</b><br>";
text += Qtopia::escapeString(description() ).replace(QRegExp( "[\n]"), "<br>" ) ;
}
text += "<br><br><br>";
text += "<b>" + QObject::tr( "Priority:") +" </b>"
+ QString::number( priority() ) + " <br>";
text += "<b>" + QObject::tr( "Progress:") + " </b>"
+ QString::number( progress() ) + " %<br>";
if (hasDueDate() ){
text += "<b>" + QObject::tr( "Deadline:") + " </b>";
text += dueDate().toString();
text += "<br>";
}
if (hasAlarmDateTime() ){
text += "<b>" + QObject::tr( "Alarmed Notification:") + " </b>";
text += alarmDateTime().toString();
text += "<br>";
}
- // Open database of all categories and get the list of
- // the categories this todoevent belongs to.
- // Then print them...
- // I am not sure whether there is no better way doing this !?
- Categories catdb;
- bool firstloop = true;
- catdb.load( categoryFileName() );
- catlist = allCategories();
-
text += "<b>" + QObject::tr( "Category:") + "</b> ";
- for ( QStringList::Iterator it = catlist.begin(); it != catlist.end(); ++it ) {
- if (!firstloop){
- text += ", ";
- }
- firstloop = false;
- text += catdb.label ("todo", (*it).toInt());
- }
+ text += categoryNames().join(", ");
text += "<br>";
+
return text;
}
-bool ToDoEvent::operator<( const ToDoEvent &toDoEvent )const{
+bool OTodo::operator<( const OTodo &toDoEvent )const{
if( !hasDueDate() && !toDoEvent.hasDueDate() ) return true;
if( !hasDueDate() && toDoEvent.hasDueDate() ) return false;
if( hasDueDate() && toDoEvent.hasDueDate() ){
if( dueDate() == toDoEvent.dueDate() ){ // let's the priority decide
return priority() < toDoEvent.priority();
}else{
return dueDate() < toDoEvent.dueDate();
}
}
return false;
}
-bool ToDoEvent::operator<=(const ToDoEvent &toDoEvent )const
+bool OTodo::operator<=(const OTodo &toDoEvent )const
{
if( !hasDueDate() && !toDoEvent.hasDueDate() ) return true;
if( !hasDueDate() && toDoEvent.hasDueDate() ) return true;
if( hasDueDate() && toDoEvent.hasDueDate() ){
if( dueDate() == toDoEvent.dueDate() ){ // let's the priority decide
return priority() <= toDoEvent.priority();
}else{
return dueDate() <= toDoEvent.dueDate();
}
}
return true;
}
-bool ToDoEvent::operator>(const ToDoEvent &toDoEvent )const
+bool OTodo::operator>(const OTodo &toDoEvent )const
{
if( !hasDueDate() && !toDoEvent.hasDueDate() ) return false;
if( !hasDueDate() && toDoEvent.hasDueDate() ) return false;
if( hasDueDate() && toDoEvent.hasDueDate() ){
if( dueDate() == toDoEvent.dueDate() ){ // let's the priority decide
return priority() > toDoEvent.priority();
}else{
return dueDate() > toDoEvent.dueDate();
}
}
return false;
}
-bool ToDoEvent::operator>=(const ToDoEvent &toDoEvent )const
+bool OTodo::operator>=(const OTodo &toDoEvent )const
{
if( !hasDueDate() && !toDoEvent.hasDueDate() ) return true;
if( !hasDueDate() && toDoEvent.hasDueDate() ) return false;
if( hasDueDate() && toDoEvent.hasDueDate() ){
if( dueDate() == toDoEvent.dueDate() ){ // let's the priority decide
return priority() > toDoEvent.priority();
}else{
return dueDate() > toDoEvent.dueDate();
}
}
return true;
}
-bool ToDoEvent::operator==(const ToDoEvent &toDoEvent )const
+bool OTodo::operator==(const OTodo &toDoEvent )const
{
if( data->priority == toDoEvent.data->priority &&
data->priority == toDoEvent.data->prog &&
data->isCompleted == toDoEvent.data->isCompleted &&
data->hasDate == toDoEvent.data->hasDate &&
data->date == toDoEvent.data->date &&
data->category == toDoEvent.data->category &&
data->sum == toDoEvent.data->sum &&
data->desc == toDoEvent.data->desc &&
data->hasAlarmDateTime == toDoEvent.data->hasAlarmDateTime &&
data->alarmDateTime == toDoEvent.data->alarmDateTime )
return true;
return false;
}
-void ToDoEvent::deref() {
+void OTodo::deref() {
//qWarning("deref in ToDoEvent");
if ( data->deref() ) {
//qWarning("deleting");
delete data;
d= 0;
}
}
-ToDoEvent &ToDoEvent::operator=(const ToDoEvent &item )
+OTodo &OTodo::operator=(const OTodo &item )
{
+ OPimRecord::operator=( item );
//qWarning("operator= ref ");
item.data->ref();
deref();
- data = item.data;
-
-
return *this;
}
-QMap<int, QString> ToDoEvent::toMap() const {
+QMap<int, QString> OTodo::toMap() const {
QMap<int, QString> map;
- map.insert( Uid, QString::number( data->uid ) );
- map.insert( Category, data->category.join(";") );
+ map.insert( Uid, QString::number( uid() ) );
+ map.insert( Category, idsToString( categories() ) );
map.insert( HasDate, QString::number( data->hasDate ) );
map.insert( Completed, QString::number( data->isCompleted ) );
map.insert( Description, data->desc );
map.insert( Summary, data->sum );
map.insert( Priority, QString::number( data->priority ) );
map.insert( DateDay, QString::number( data->date.day() ) );
map.insert( DateMonth, QString::number( data->date.month() ) );
map.insert( DateYear, QString::number( data->date.year() ) );
map.insert( Progress, QString::number( data->prog ) );
map.insert( CrossReference, crossToString() );
map.insert( HasAlarmDateTime, QString::number( data->hasAlarmDateTime ) );
map.insert( AlarmDateTime, data->alarmDateTime.toString() );
return map;
}
-
-QString ToDoEvent::crossToString()const {
- QString str;
- QMap<QString, QArray<int> >::ConstIterator it;
- for (it = data->relations.begin(); it != data->relations.end(); ++it ) {
- QArray<int> id = it.data();
- for ( uint i = 0; i < id.size(); ++i ) {
- str += it.key() + "," + QString::number( i ) + ";";
- }
- }
- str = str.remove( str.length()-1, 1); // strip the ;
- //qWarning("IDS " + str );
-
- return str;
-}
-int ToDoEvent::uid()const {
- return data->uid;
-}
-void ToDoEvent::setUid( int id ) {
- if ( id == -1 )
- id = m_gen.generate();
- m_gen.store(id );
- changeOrModify();
- data->uid = id;
-}
-QMap<QString, QString> ToDoEvent::extras()const {
+QMap<QString, QString> OTodo::toExtraMap()const {
return data->extra;
}
/**
* change or modify looks at the ref count and either
* creates a new QShared Object or it can modify it
* right in place
*/
-void ToDoEvent::changeOrModify() {
+void OTodo::changeOrModify() {
if ( data->count != 1 ) {
//qWarning("changeOrModify");
data->deref();
- ToDoEventData* d2 = new ToDoEventData();
+ OTodoData* d2 = new OTodoData();
copy(data, d2 );
data = d2;
}
}
-void ToDoEvent::copy( ToDoEventData* src, ToDoEventData* dest ) {
+void OTodo::copy( OTodoData* src, OTodoData* dest ) {
dest->date = src->date;
dest->isCompleted = src->isCompleted;
dest->hasDate = src->hasDate;
dest->priority = src->priority;
- dest->category = src->category;
dest->desc = src->desc;
dest->sum = src->sum;
dest->extra = src->extra;
- dest->relations = src->relations;
- dest->uid = src->uid;
dest->prog = src->prog;
dest->hasAlarmDateTime = src->hasAlarmDateTime;
dest->alarmDateTime = src->alarmDateTime;
}
diff --git a/libopie2/opiepim/otodo.h b/libopie2/opiepim/otodo.h
index 429108a..e1729db 100644
--- a/libopie2/opiepim/otodo.h
+++ b/libopie2/opiepim/otodo.h
@@ -1,205 +1,211 @@
#ifndef OPIE_TODO_EVENT_H
#define OPIE_TODO_EVENT_H
#include <qarray.h>
#include <qmap.h>
#include <qregexp.h>
#include <qstringlist.h>
#include <qdatetime.h>
#include <qvaluelist.h>
#include <qpe/recordfields.h>
#include <qpe/palmtopuidgen.h>
#include <opie/opimrecord.h>
class OTodo : public OPimRecord {
public:
- typedef QValueList<ToDoEvent> ValueList;
+ typedef QValueList<OTodo> ValueList;
enum RecordFields {
Uid = Qtopia::UID_ID,
Category = Qtopia::CATEGORY_ID,
HasDate,
Completed,
Description,
Summary,
Priority,
DateDay,
DateMonth,
DateYear,
Progress,
CrossReference,
HasAlarmDateTime,
AlarmDateTime
};
public:
// priorities from Very low to very high
enum TaskPriority { VeryHigh=1, High, Normal, Low, VeryLow };
/* Constructs a new ToDoEvent
@param completed Is the TodoEvent completed
@param priority What is the priority of this ToDoEvent
@param category Which category does it belong( uid )
@param summary A small summary of the todo
@param description What is this ToDoEvent about
@param hasDate Does this Event got a deadline
@param date what is the deadline?
@param uid what is the UUID of this Event
**/
OTodo( bool completed = false, int priority = Normal,
const QStringList &category = QStringList(),
const QString &summary = QString::null ,
const QString &description = QString::null,
ushort progress = 0,
bool hasDate = false, QDate date = QDate::currentDate(),
int uid = -1 );
/* Copy c'tor
**/
OTodo(const OTodo & );
/**
*destructor
*/
~OTodo();
/**
* Is this event completed?
*/
bool isCompleted() const;
/**
* Does this Event have a deadline
*/
bool hasDueDate() const;
/**
* Does this Event has an alarm time ?
*/
bool hasAlarmDateTime() const;
/**
* What is the priority?
*/
int priority()const ;
/**
* progress as ushort 0, 20, 40, 60, 80 or 100%
*/
ushort progress() const;
/**
* The due Date
*/
QDate dueDate()const;
/**
* Alarm Date and Time
*/
QDateTime alarmDateTime()const;
/**
* The description of the todo
*/
QString description()const;
/**
* A small summary of the todo
*/
QString summary() const;
/**
* @reimplemented
* Return this todoevent in a RichText formatted QString
*/
QString toRichText() const;
+ /**
+ * reimplementation
+ */
+ QString type()const;
+ QString toShortText()const;
+ QMap<QString, QString> toExtraMap()const;
+ QString recordField(int id )const;
/**
* returns a list of apps which have related items
*/
QStringList relatedApps()const;
/**
* returns all relations for one app
*/
QArray<int> relations( const QString& app )const;
/**
* toMap puts all data into the map. int relates
* to ToDoEvent RecordFields enum
*/
QMap<int, QString> toMap()const;
/**
* Set if this Todo is completed
*/
void setCompleted(bool completed );
/**
* set if this todo got an end data
*/
void setHasDueDate( bool hasDate );
/**
* set if this todo has an alarm time and date
*/
void setHasAlarmDateTime ( bool hasAlarm );
/**
* Set the priority of the Todo
*/
void setPriority(int priority );
/**
* Set the progress.
*/
void setProgress( ushort progress );
/**
* set the end date
*/
void setDueDate( QDate date );
/**
* set the alarm time
*/
void setAlarmDateTime ( const QDateTime& alarm );
void setDescription(const QString& );
void setSummary(const QString& );
bool isOverdue();
bool match( const QRegExp &r )const;
bool operator<(const OTodo &toDoEvent )const;
bool operator<=(const OTodo &toDoEvent )const;
bool operator!=(const OTodo &toDoEvent )const;
bool operator>(const OTodo &toDoEvent )const;
bool operator>=(const OTodo &toDoEvent)const;
bool operator==(const OTodo &toDoEvent )const;
- ToDoEvent &operator=(const OTodo &toDoEvent );
+ OTodo &operator=(const OTodo &toDoEvent );
private:
class OTodoPrivate;
- struct OTodoEventData;
+ struct OTodoData;
void deref();
void changeOrModify();
void copy( OTodoData* src, OTodoData* dest );
- ToDoEventPrivate *d;
- ToDoEventData *data;
+ OTodoPrivate *d;
+ OTodoData *data;
- static Qtopia::UidGen m_gen;
};
- inline bool ToDoEvent::operator!=(const ToDoEvent &toDoEvent )const {
+inline bool OTodo::operator!=(const OTodo &toDoEvent )const {
return !(*this == toDoEvent);
}
-};
+
#endif