00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef FUNCTIONS_H
00022 #define FUNCTIONS_H
00023
00026 #include <QSize>
00027 #include <QString>
00028 #include <QList>
00029
00030 #include "alarmevent.h"
00031 #include "editdlg.h"
00032 #include <kfile.h>
00033 #include <kmimetype.h>
00034
00035 namespace KCal { class Event; }
00036 class QWidget;
00037 class KActionCollection;
00038 class KToggleAction;
00039 class QAction;
00040 class AlarmResource;
00041 class KAEvent;
00042 class MainWindow;
00043 class AlarmText;
00044 class TemplateMenuAction;
00045
00046 namespace KAlarm
00047 {
00048
00050 enum FileType { Unknown, TextPlain, TextFormatted, TextApplication, Image };
00054 enum UpdateStatus {
00055 UPDATE_OK,
00056 UPDATE_KORG_ERR,
00057 UPDATE_ERROR,
00058 UPDATE_FAILED,
00059 SAVE_FAILED
00060 };
00062 enum UpdateError { ERR_ADD, ERR_MODIFY, ERR_DELETE, ERR_REACTIVATE, ERR_TEMPLATE };
00063
00064
00066 MainWindow* displayMainWindowSelected(const QString& eventID = QString());
00067 bool readConfigWindowSize(const char* window, QSize&, int* splitterWidth = 0);
00068 void writeConfigWindowSize(const char* window, const QSize&, int splitterWidth = -1);
00069 QRect desktopWorkArea();
00073 FileType fileType(const KMimeType::Ptr& mimetype);
00075 int Version();
00076 inline int Version(int major, int minor, int rev) { return major*10000 + minor*100 + rev; }
00077 int getVersionNumber(const QString& version, QString* subVersion = 0);
00079 inline int currentCalendarVersion() { return KAEvent::calVersion(); }
00080 inline QString currentCalendarVersionString() { return KAEvent::calVersionString(); }
00081 QString browseFile(const QString& caption, QString& defaultDir, const QString& initialFile = QString(),
00082 const QString& filter = QString(), KFile::Modes mode = 0, QWidget* parent = 0);
00083 bool editNewAlarm(const QString& templateName, QWidget* parent = 0);
00084 void editNewAlarm(EditAlarmDlg::Type, QWidget* parent = 0);
00085 void editNewAlarm(KAEvent::Action, QWidget* parent = 0, const AlarmText* = 0);
00086 void editNewAlarm(const KAEvent* preset, QWidget* parent = 0);
00087 bool editAlarm(const QString& eventID, QWidget* parent = 0);
00088 void editAlarm(KAEvent*, QWidget* parent = 0);
00089 void viewAlarm(const KAEvent*, QWidget* parent = 0);
00090 void editNewTemplate(EditAlarmDlg::Type, QWidget* parent = 0);
00091 void editNewTemplate(const KAEvent* preset, QWidget* parent = 0);
00092 void editTemplate(KAEvent*, QWidget* parent = 0);
00094 TemplateMenuAction* createNewFromTemplateAction(const QString& label, KActionCollection*, const QString& name);
00095 KToggleAction* createAlarmEnableAction(QObject* parent);
00099 KAEvent::List templateList();
00100 void outputAlarmWarnings(QWidget* parent, const KAEvent* = 0);
00101 void refreshAlarms();
00102 void refreshAlarmsIfQueued();
00103 QString runKMail(bool minimise);
00104 bool runProgram(const QString& program, QString& dbusService, const QString& dbusWindowPath, QString& errorMessage);
00105
00106 QStringList dontShowErrors(const QString& eventId);
00107 bool dontShowErrors(const QString& eventId, const QString& tag);
00108 void setDontShowErrors(const QString& eventId, const QStringList& tags = QStringList());
00109 void setDontShowErrors(const QString& eventId, const QString& tag);
00110
00111 enum
00112 {
00113 USE_EVENT_ID = 0x01,
00114 NO_RESOURCE_PROMPT = 0x02,
00115 ALLOW_KORG_UPDATE = 0x04
00116 };
00117 UpdateStatus addEvent(KAEvent&, AlarmResource* = 0, QWidget* msgParent = 0, int options = ALLOW_KORG_UPDATE, bool showKOrgErr = true);
00118 UpdateStatus addEvents(QList<KAEvent>&, QWidget* msgParent = 0, bool allowKOrgUpdate = true, bool showKOrgErr = true);
00119 bool addArchivedEvent(KAEvent&, AlarmResource* = 0);
00120 UpdateStatus addTemplate(KAEvent&, AlarmResource* = 0, QWidget* msgParent = 0);
00121 UpdateStatus modifyEvent(KAEvent& oldEvent, KAEvent& newEvent, QWidget* msgParent = 0, bool showKOrgErr = true);
00122 UpdateStatus updateEvent(KAEvent&, QWidget* msgParent = 0, bool archiveOnDelete = true);
00123 UpdateStatus updateTemplate(KAEvent&, QWidget* msgParent = 0);
00124 UpdateStatus deleteEvent(KAEvent&, bool archive = true, QWidget* msgParent = 0, bool showKOrgErr = true);
00125 UpdateStatus deleteEvents(KAEvent::List&, bool archive = true, QWidget* msgParent = 0, bool showKOrgErr = true);
00126 UpdateStatus deleteTemplates(const QStringList& eventIDs, QWidget* msgParent = 0);
00127 inline UpdateStatus deleteTemplate(const QString& eventID, QWidget* msgParent = 0)
00128 { return deleteTemplates(QStringList(eventID), msgParent); }
00129 void deleteDisplayEvent(const QString& eventID);
00130 UpdateStatus reactivateEvent(KAEvent&, AlarmResource* = 0, QWidget* msgParent = 0, bool showKOrgErr = true);
00131 UpdateStatus reactivateEvents(KAEvent::List&, QStringList& ineligibleIDs, AlarmResource* = 0, QWidget* msgParent = 0, bool showKOrgErr = true);
00132 UpdateStatus enableEvents(KAEvent::List&, bool enable, QWidget* msgParent = 0);
00133 void purgeArchive(int purgeDays);
00134 void displayUpdateError(QWidget* parent, UpdateStatus, UpdateError, int nAlarms, int nKOrgAlarms = 1, bool showKOrgError = true);
00135 void displayKOrgUpdateError(QWidget* parent, UpdateError, int nAlarms);
00136
00137 QString stripAccel(const QString&);
00138
00139 bool convTimeString(const QByteArray& tzString, KDateTime& dateTime, const KDateTime& defaultDt = KDateTime(), bool allowTZ = true);
00140 KDateTime applyTimeZone(const QString& tzstring, const QDate& date, const QTime& time,
00141 bool haveTime, const KDateTime& defaultDt = KDateTime());
00142 bool isWorkingTime(const KDateTime&);
00143 int localeFirstDayOfWeek();
00144 QString weekDayName(int day, const KLocale*);
00145
00146
00147
00148
00149
00150 inline int weekDay_to_localeDayInWeek(int weekDay) { return (weekDay + 7 - localeFirstDayOfWeek()) % 7; }
00151
00152
00153
00154
00155
00156 inline int localeDayInWeek_to_weekDay(int index) { return (index + localeFirstDayOfWeek() - 1) % 7 + 1; }
00157
00158 }
00159
00160 bool caseInsensitiveLessThan(const QString& s1, const QString& s2);
00161
00162 #endif // FUNCTIONS_H