prefsettings.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <kglobal.h>
00022 #include <kconfig.h>
00023
00024 #include "prefsettings.moc"
00025
00026
00027
00028 const bool Settings::default_runInSystemTray = true;
00029 const bool Settings::default_disableAlarmsIfStopped = true;
00030 const bool Settings::default_autostartTrayIcon = true;
00031 const bool Settings::default_confirmAlarmDeletion = true;
00032 const int Settings::default_daemonTrayCheckInterval = 10;
00033 const QColor Settings::default_defaultBgColour(red);
00034 const QFont Settings::default_messageFont(QString::fromLatin1("Helvetica"), 16, QFont::Bold);
00035 const QTime Settings::default_startOfDay(0, 0);
00036 const bool Settings::default_defaultLateCancel = false;
00037 const bool Settings::default_defaultConfirmAck = false;
00038 const bool Settings::default_defaultBeep = false;
00039 const bool Settings::default_defaultEmailBcc = false;
00040 const RecurrenceEdit::RepeatType Settings::default_defaultRecurPeriod = RecurrenceEdit::SUBDAILY;
00041
00042
00043 static const QString GENERAL_SECTION = QString::fromLatin1("General");
00044 static const QString MESSAGE_BG_COLOUR = QString::fromLatin1("MessageBackgroundColour");
00045 static const QString MESSAGE_FONT = QString::fromLatin1("MessageFont");
00046 static const QString RUN_IN_SYSTEM_TRAY = QString::fromLatin1("RunInSystemTray");
00047 static const QString DISABLE_IF_STOPPED = QString::fromLatin1("DisableAlarmsIfStopped");
00048 static const QString AUTOSTART_TRAY = QString::fromLatin1("AutostartTray");
00049 static const QString CONFIRM_ALARM_DELETION = QString::fromLatin1("ConfirmAlarmDeletion");
00050 static const QString DAEMON_TRAY_INTERVAL = QString::fromLatin1("DaemonTrayCheckInterval");
00051 static const QString START_OF_DAY = QString::fromLatin1("StartOfDay");
00052 static const QString START_OF_DAY_CHECK = QString::fromLatin1("Sod");
00053 static const QString DEFAULTS_SECTION = QString::fromLatin1("Defaults");
00054 static const QString DEF_LATE_CANCEL = QString::fromLatin1("DefLateCancel");
00055 static const QString DEF_CONFIRM_ACK = QString::fromLatin1("DefConfirmAck");
00056 static const QString DEF_BEEP = QString::fromLatin1("DefBeep");
00057 static const QString DEF_EMAIL_BCC = QString::fromLatin1("DefEmailBcc");
00058 static const QString DEF_RECUR_PERIOD = QString::fromLatin1("DefRecurPeriod");
00059
00060 inline int Settings::startOfDayCheck() const
00061 {
00062
00063
00064 return QTime().msecsTo(mStartOfDay) ^ 0x82451630;
00065 }
00066
00067
00068 Settings::Settings(QWidget* parent)
00069 : QObject(parent)
00070 {
00071 loadSettings();
00072 }
00073
00074 void Settings::loadSettings()
00075 {
00076 KConfig* config = KGlobal::config();
00077 config->setGroup(GENERAL_SECTION);
00078 mDefaultBgColour = config->readColorEntry(MESSAGE_BG_COLOUR, &default_defaultBgColour);
00079 mMessageFont = config->readFontEntry(MESSAGE_FONT, &default_messageFont);
00080 mRunInSystemTray = config->readBoolEntry(RUN_IN_SYSTEM_TRAY, default_runInSystemTray);
00081 mDisableAlarmsIfStopped = config->readBoolEntry(DISABLE_IF_STOPPED, default_disableAlarmsIfStopped);
00082 mAutostartTrayIcon = config->readBoolEntry(AUTOSTART_TRAY, default_autostartTrayIcon);
00083 mConfirmAlarmDeletion = config->readBoolEntry(CONFIRM_ALARM_DELETION, default_confirmAlarmDeletion);
00084 mDaemonTrayCheckInterval = config->readNumEntry(DAEMON_TRAY_INTERVAL, default_daemonTrayCheckInterval);
00085 QDateTime defStartOfDay(QDate(1900,1,1), default_startOfDay);
00086 mStartOfDay = config->readDateTimeEntry(START_OF_DAY, &defStartOfDay).time();
00087 mStartOfDayChanged = (config->readNumEntry(START_OF_DAY_CHECK, 0) != startOfDayCheck());
00088 config->setGroup(DEFAULTS_SECTION);
00089 mDefaultLateCancel = config->readBoolEntry(DEF_LATE_CANCEL, default_defaultLateCancel);
00090 mDefaultConfirmAck = config->readBoolEntry(DEF_CONFIRM_ACK, default_defaultConfirmAck);
00091 mDefaultBeep = config->readBoolEntry(DEF_BEEP, default_defaultBeep);
00092 mDefaultEmailBcc = config->readBoolEntry(DEF_EMAIL_BCC, default_defaultEmailBcc);
00093 int recurPeriod = config->readNumEntry(DEF_RECUR_PERIOD, default_defaultRecurPeriod);
00094 mDefaultRecurPeriod = (recurPeriod < RecurrenceEdit::SUBDAILY || recurPeriod > RecurrenceEdit::ANNUAL)
00095 ? default_defaultRecurPeriod : (RecurrenceEdit::RepeatType)recurPeriod;
00096 emit settingsChanged();
00097 }
00098
00099 void Settings::saveSettings(bool syncToDisc)
00100 {
00101 KConfig* config = KGlobal::config();
00102 config->setGroup(GENERAL_SECTION);
00103 config->writeEntry(MESSAGE_BG_COLOUR, mDefaultBgColour);
00104 config->writeEntry(MESSAGE_FONT, mMessageFont);
00105 config->writeEntry(RUN_IN_SYSTEM_TRAY, mRunInSystemTray);
00106 config->writeEntry(DISABLE_IF_STOPPED, mDisableAlarmsIfStopped);
00107 config->writeEntry(AUTOSTART_TRAY, mAutostartTrayIcon);
00108 config->writeEntry(CONFIRM_ALARM_DELETION, mConfirmAlarmDeletion);
00109 config->writeEntry(DAEMON_TRAY_INTERVAL, mDaemonTrayCheckInterval);
00110 config->writeEntry(START_OF_DAY, QDateTime(QDate(1900,1,1), mStartOfDay));
00111
00112 config->setGroup(DEFAULTS_SECTION);
00113 config->writeEntry(DEF_LATE_CANCEL, mDefaultLateCancel);
00114 config->writeEntry(DEF_CONFIRM_ACK, mDefaultConfirmAck);
00115 config->writeEntry(DEF_BEEP, mDefaultBeep);
00116 #ifdef KALARM_EMAIL
00117 config->writeEntry(DEF_EMAIL_BCC, mDefaultEmailBcc);
00118 #endif
00119 config->writeEntry(DEF_RECUR_PERIOD, mDefaultRecurPeriod);
00120 if (syncToDisc)
00121 config->sync();
00122 }
00123
00124 void Settings::updateStartOfDayCheck()
00125 {
00126 KConfig* config = KGlobal::config();
00127 config->setGroup(GENERAL_SECTION);
00128 config->writeEntry(START_OF_DAY_CHECK, startOfDayCheck());
00129 config->sync();
00130 mStartOfDayChanged = false;
00131 }
00132
00133 void Settings::emitSettingsChanged()
00134 {
00135 emit settingsChanged();
00136 }
This file is part of the documentation for kdelibs Version 3.1.4.