From b9aad1f15dc600e4dbe4c62d3fcced6363188ba3 Mon Sep 17 00:00:00 2001 From: zautrix Date: Sat, 26 Jun 2004 19:01:18 +0000 Subject: Initial revision --- (limited to 'libkcal/todo.h') diff --git a/libkcal/todo.h b/libkcal/todo.h new file mode 100644 index 0000000..9aa92f8 --- a/dev/null +++ b/libkcal/todo.h @@ -0,0 +1,121 @@ +/* + This file is part of libkcal. + Copyright (c) 2001 Cornelius Schumacher + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + 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. If not, write to + the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. +*/ +#ifndef TODO_H +#define TODO_H +// +// Todo component, representing a VTODO object +// + +#include "incidence.h" + +namespace KCal { + +/** + This class provides a Todo in the sense of RFC2445. +*/ +class Todo : public Incidence +{ + public: + Todo(); + Todo(const Todo &); + ~Todo(); + typedef ListBase List; + QCString type() const { return "Todo"; } + + /** Return an exact copy of this todo. */ + Incidence *clone(); + QDateTime getNextAlarmDateTime( bool * ok, int * offset ) const; + + /** for setting the todo's due date/time with a QDateTime. */ + void setDtDue(const QDateTime &dtDue); + /** returns an event's Due date/time as a QDateTime. */ + QDateTime dtDue() const; + /** returns an event's due time as a string formatted according to the + users locale settings */ + QString dtDueTimeStr() const; + /** returns an event's due date as a string formatted according to the + users locale settings */ + QString dtDueDateStr(bool shortfmt=true) const; + /** returns an event's due date and time as a string formatted according + to the users locale settings */ + QString dtDueStr(bool shortfmt=true) const; + + /** returns TRUE or FALSE depending on whether the todo has a due date */ + bool hasDueDate() const; + /** sets the event's hasDueDate value. */ + void setHasDueDate(bool f); + + + /** sets the event's status to the string specified. The string + * must be a recognized value for the status field, i.e. a string + * equivalent of the possible status enumerations previously described. */ +// void setStatus(const QString &statStr); + /** sets the event's status to the value specified. See the enumeration + * above for possible values. */ +// void setStatus(int); + /** return the event's status. */ +// int status() const; + /** return the event's status in string format. */ +// QString statusStr() const; + + /** return, if this todo is completed */ + bool isCompleted() const; + /** set completed state of this todo */ + void setCompleted(bool); + + /** + Return how many percent of the task are completed. Returns a value + between 0 and 100. + */ + int percentComplete() const; + /** + Set how many percent of the task are completed. Valid values are in the + range from 0 to 100. + */ + void setPercentComplete(int); + + /** return date and time when todo was completed */ + QDateTime completed() const; + QString completedStr() const; + /** set date and time of completion */ + void setCompleted(const QDateTime &completed); + + /** Return true, if todo has a date associated with completion */ + bool hasCompletedDate() const; + + private: + bool accept(Visitor &v) { return v.visit(this); } + + QDateTime mDtDue; // due date of todo + + bool mHasDueDate; // if todo has associated due date + +// int mStatus; // confirmed/delegated/tentative/etc + + QDateTime mCompleted; + bool mHasCompletedDate; + + int mPercentComplete; +}; + + bool operator==( const Todo&, const Todo& ); +} + +#endif -- cgit v0.9.0.2