KCalCore Library
incidence.h
Go to the documentation of this file.
00001 /* 00002 This file is part of the kcalcore library. 00003 00004 Copyright (c) 2001-2003 Cornelius Schumacher <schumacher@kde.org> 00005 Copyright (C) 2003-2004 Reinhold Kainhofer <reinhold@kainhofer.com> 00006 00007 This library is free software; you can redistribute it and/or 00008 modify it under the terms of the GNU Library General Public 00009 License as published by the Free Software Foundation; either 00010 version 2 of the License, or (at your option) any later version. 00011 00012 This library is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 Library General Public License for more details. 00016 00017 You should have received a copy of the GNU Library General Public License 00018 along with this library; see the file COPYING.LIB. If not, write to 00019 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00020 Boston, MA 02110-1301, USA. 00021 */ 00031 #ifndef KCALCORE_INCIDENCE_H 00032 #define KCALCORE_INCIDENCE_H 00033 00034 #include "kcalcore_export.h" 00035 #include "alarm.h" 00036 #include "attachment.h" 00037 #include "incidencebase.h" 00038 #include "recurrence.h" 00039 00040 #include <QtCore/QMetaType> 00041 00042 //@cond PRIVATE 00043 // Value used to signal invalid/unset latitude or longitude. 00044 #define INVALID_LATLON 255.0 00045 //@endcond 00046 00047 namespace KCalCore { 00048 00068 class KCALCORE_EXPORT Incidence 00069 : public IncidenceBase, public Recurrence::RecurrenceObserver 00070 { 00071 public: 00072 00077 enum Status { 00078 StatusNone, 00079 StatusTentative, 00080 StatusConfirmed, 00081 StatusCompleted, 00082 StatusNeedsAction, 00083 StatusCanceled, 00084 StatusInProcess, 00085 StatusDraft, 00086 StatusFinal, 00087 StatusX 00088 }; 00089 00093 enum Secrecy { 00094 SecrecyPublic, 00095 SecrecyPrivate, 00096 SecrecyConfidential 00097 }; 00098 00103 enum RelType { 00104 RelTypeParent, 00105 RelTypeChild, 00106 RelTypeSibling 00107 }; 00108 00112 typedef QSharedPointer<Incidence> Ptr; 00113 00117 typedef QVector<Ptr> List; 00118 00122 Incidence(); 00123 00127 virtual ~Incidence(); 00128 00135 virtual Incidence *clone() const = 0; 00136 00143 void setReadOnly( bool readonly ); 00144 00149 void setLastModified( const KDateTime &lm ); 00150 00159 void setLocalOnly( bool localonly ); 00160 00167 bool localOnly() const; 00168 00173 void setAllDay( bool allDay ); 00174 00180 void recreate(); 00181 00188 void setCreated( const KDateTime &dt ); 00189 00194 KDateTime created() const; 00195 00202 void setRevision( int rev ); 00203 00208 int revision() const; 00209 00216 virtual void setDtStart( const KDateTime &dt ); 00217 00222 virtual void shiftTimes( const KDateTime::Spec &oldSpec, 00223 const KDateTime::Spec &newSpec ); 00224 00232 void setDescription( const QString &description, bool isRich ); 00233 00241 void setDescription( const QString &description ); 00242 00248 QString description() const; 00249 00255 QString richDescription() const; 00256 00261 bool descriptionIsRich() const; 00262 00270 void setSummary( const QString &summary, bool isRich ); 00271 00278 void setSummary( const QString &summary ); 00279 00285 QString summary() const; 00286 00292 QString richSummary() const; 00293 00298 bool summaryIsRich() const; 00299 00307 void setLocation( const QString &location, bool isRich ); 00308 00316 void setLocation( const QString &location ); 00317 00323 QString location() const; 00324 00330 QString richLocation() const; 00331 00336 bool locationIsRich() const; 00337 00344 void setCategories( const QStringList &categories ); 00345 00353 void setCategories( const QString &catStr ); 00354 00359 QStringList categories() const; 00360 00365 QString categoriesStr() const; 00366 00378 void setRelatedTo( const QString &uid, RelType relType = RelTypeParent ); 00379 00391 QString relatedTo( RelType relType = RelTypeParent ) const; 00392 00393 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00394 // %%%%% Convenience wrappers for property handling 00395 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00401 bool hasAltDescription() const; 00409 void setAltDescription( const QString &altdescription ); 00410 00415 QString altDescription() const; 00416 00417 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00418 // %%%%% Recurrence-related methods 00419 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00420 00425 Recurrence *recurrence() const; 00426 00430 void clearRecurrence(); 00431 00436 bool recurs() const; 00437 00442 ushort recurrenceType() const; 00443 00448 virtual bool recursOn( const QDate &date, const KDateTime::Spec &timeSpec ) const; 00449 00454 bool recursAt( const KDateTime &dt ) const; 00455 00467 virtual QList<KDateTime> startDateTimesForDate( 00468 const QDate &date, 00469 const KDateTime::Spec &timeSpec = KDateTime::LocalZone ) const; 00470 00480 virtual QList<KDateTime> startDateTimesForDateTime( 00481 const KDateTime &datetime ) const; 00482 00492 virtual KDateTime endDateForStart( const KDateTime &startDt ) const; 00493 00494 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00495 // %%%%% Attachment-related methods 00496 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00497 00504 void addAttachment( const Attachment::Ptr &attachment ); 00505 00513 void deleteAttachment( const Attachment::Ptr &attachment ); 00514 00522 void deleteAttachments( const QString &mime ); 00523 00528 Attachment::List attachments() const; 00529 00536 Attachment::List attachments( const QString &mime ) const; 00537 00542 void clearAttachments(); 00543 00552 QString writeAttachmentToTempFile( const Attachment::Ptr &attachment ) const; 00553 00558 void clearTempFiles(); 00559 00560 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00561 // %%%%% Secrecy and Status methods 00562 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00563 00570 void setSecrecy( Secrecy secrecy ); 00571 00576 Secrecy secrecy() const; 00577 00585 void setStatus( Status status ); 00586 00594 void setCustomStatus( const QString &status ); 00595 00600 QString customStatus() const; 00601 00606 Status status() const; 00607 00608 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00609 // %%%%% Other methods 00610 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00611 00619 void setResources( const QStringList &resources ); 00620 00625 QStringList resources() const; 00626 00635 void setPriority( int priority ); 00636 00641 int priority() const; 00642 00647 bool hasGeo() const; 00648 00654 void setHasGeo( bool hasGeo ); 00655 00661 void setGeoLatitude( float geolatitude ); 00662 00668 float geoLatitude() const; 00669 00675 void setGeoLongitude( float geolongitude ); 00676 00682 float geoLongitude() const; 00683 00688 bool hasRecurrenceId() const; 00689 00695 void setRecurrenceId( const KDateTime &recurrenceId ); 00696 00702 KDateTime recurrenceId() const; 00703 00704 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00705 // %%%%% Alarm-related methods 00706 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00707 00711 Alarm::List alarms() const; 00712 00716 Alarm::Ptr newAlarm(); 00717 00724 void addAlarm( const Alarm::Ptr &alarm ); 00725 00732 void removeAlarm( const Alarm::Ptr &alarm ); 00733 00738 void clearAlarms(); 00739 00743 bool hasEnabledAlarms() const; 00744 00745 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00746 // %%%%% Other methods 00747 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 00748 00773 void setSchedulingID( const QString &sid, 00774 const QString &uid = QString() ); 00775 00781 QString schedulingID() const; 00782 00790 virtual void recurrenceUpdated( Recurrence *recurrence ); 00791 00799 virtual QLatin1String iconName( const KDateTime &recurrenceId = KDateTime() ) const = 0; 00800 00801 protected: 00802 00807 Incidence( const Incidence &other ); 00808 00814 virtual bool equals( const IncidenceBase &incidence ) const; 00815 00820 virtual IncidenceBase &assign( const IncidenceBase &other ); 00821 00822 private: 00829 Incidence &operator=( const Incidence &other ); 00830 00831 //@cond PRIVATE 00832 class Private; 00833 Private *const d; 00834 //@endcond 00835 }; 00836 00837 } 00838 00839 //@cond PRIVATE 00840 inline uint qHash( const QSharedPointer<KCalCore::Incidence> &key ) 00841 { 00842 return qHash<KCalCore::Incidence>( key.data() ); 00843 } 00844 //@endcond 00845 00846 Q_DECLARE_TYPEINFO( KCalCore::Incidence::Ptr, Q_MOVABLE_TYPE ); 00847 Q_DECLARE_METATYPE( KCalCore::Incidence * ) 00848 00849 #endif
This file is part of the KDE documentation.
Documentation copyright © 1996-2012 The KDE developers.
Generated on Thu May 10 2012 22:16:56 by doxygen 1.8.0 written by Dimitri van Heesch, © 1997-2006
Documentation copyright © 1996-2012 The KDE developers.
Generated on Thu May 10 2012 22:16:56 by doxygen 1.8.0 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.