KCal Library
alarm.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00030 #ifndef KCAL_ALARM_H
00031 #define KCAL_ALARM_H
00032
00033 #include <QtCore/QString>
00034 #include <QtCore/QStringList>
00035 #include <QtCore/QList>
00036
00037 #include <kdatetime.h>
00038
00039 #include "customproperties.h"
00040 #include "duration.h"
00041 #include "person.h"
00042 #include "listbase.h"
00043 #include "kcal_export.h"
00044
00045 #include <kpimutils/supertrait.h>
00046
00047 namespace boost {
00048 template <typename T> class shared_ptr;
00049 }
00050
00051 namespace KCal {
00052
00053 class Incidence;
00054
00065 class KCAL_EXPORT Alarm : public CustomProperties
00066 {
00067 public:
00071 enum Type {
00072 Invalid,
00073 Display,
00074 Procedure,
00075 Email,
00076 Audio
00077 };
00078
00082 typedef ListBase<Alarm> List;
00083
00087 typedef boost::shared_ptr<Alarm> Ptr;
00088
00094 explicit Alarm( Incidence *parent );
00095
00100 Alarm( const Alarm &other );
00101
00105 virtual ~Alarm();
00106
00111 bool operator==( const Alarm &a ) const;
00112
00118 bool operator!=( const Alarm &a ) const { return !operator==( a ); }
00119
00127 void setParent( Incidence *parent );
00128
00134 Incidence *parent() const;
00135
00145 void setType( Type type );
00146
00152 Type type() const;
00153
00163 void setDisplayAlarm( const QString &text = QString() );
00164
00173 void setText( const QString &text );
00174
00181 QString text() const;
00182
00192 void setAudioAlarm( const QString &audioFile = QString() );
00193
00203 void setAudioFile( const QString &audioFile );
00204
00211 QString audioFile() const;
00212
00224 void setProcedureAlarm( const QString &programFile,
00225 const QString &arguments = QString() );
00226
00237 void setProgramFile( const QString &programFile );
00238
00246 QString programFile() const;
00247
00257 void setProgramArguments( const QString &arguments );
00258
00266 QString programArguments() const;
00267
00282 void setEmailAlarm( const QString &subject, const QString &text,
00283 const QList<Person> &addressees,
00284 const QStringList &attachments = QStringList() );
00285
00296 void setMailAddress( const Person &mailAlarmAddress );
00297
00308 void setMailAddresses( const QList<Person> &mailAlarmAddresses );
00309
00320 void addMailAddress( const Person &mailAlarmAddress );
00321
00328 QList<Person> mailAddresses() const;
00329
00340 void setMailSubject( const QString &mailAlarmSubject );
00341
00348 QString mailSubject() const;
00349
00360 void setMailAttachment( const QString &mailAttachFile );
00361
00372 void setMailAttachments( const QStringList &mailAttachFiles );
00373
00383 void addMailAttachment( const QString &mailAttachFile );
00384
00391 QStringList mailAttachments() const;
00392
00403 void setMailText( const QString &text );
00404
00411 QString mailText() const;
00412
00420 void setTime( const KDateTime &alarmTime );
00421
00427 KDateTime time() const;
00428
00435 KDateTime endTime() const;
00436
00440 bool hasTime() const;
00441
00450 void setStartOffset( const Duration &offset );
00451
00459 Duration startOffset() const;
00460
00467 bool hasStartOffset() const;
00468
00477 void setEndOffset( const Duration &offset );
00478
00486 Duration endOffset() const;
00487
00494 bool hasEndOffset() const;
00495
00510 void shiftTimes( const KDateTime::Spec &oldSpec,
00511 const KDateTime::Spec &newSpec );
00512
00520 void setSnoozeTime( const Duration &alarmSnoozeTime );
00521
00527 Duration snoozeTime() const;
00528
00538 void setRepeatCount( int alarmRepeatCount );
00539
00545 int repeatCount() const;
00546
00558 KDateTime nextRepetition( const KDateTime &preTime ) const;
00559
00573 KDateTime previousRepetition( const KDateTime &afterTime ) const;
00574
00579 Duration duration() const;
00580
00587 void toggleAlarm();
00588
00596 void setEnabled( bool enable );
00597
00603 bool enabled() const;
00604
00605 protected:
00610 virtual void customPropertyUpdated();
00611
00612 private:
00613
00614 class Private;
00615 Private *const d;
00616
00617 };
00618
00619 }
00620
00621 #endif