alarm.hGo 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
|