/****************************************************************************** * Read preference values from the config file. */ void Preferences::read() { initialise(); KConfig *config = KGlobal::config(); config->setGroup(GENERAL_SECTION); QStringList cols = config->readListEntry(MESSAGE_COLOURS); if(!cols.count()) mMessageColours = default_messageColours; else { mMessageColours.clear(); for(QStringList::Iterator it = cols.begin(); it != cols.end(); ++it) { QColor c((*it)); if(c.isValid()) mMessageColours.insert(c); } } mDefaultBgColour = config->readColorEntry(MESSAGE_BG_COLOUR, &default_defaultBgColour); mMessageFont = config->readFontEntry(MESSAGE_FONT, &mDefault_messageFont); mRunInSystemTray = config->readBoolEntry(RUN_IN_SYSTEM_TRAY, default_runInSystemTray); mDisableAlarmsIfStopped = config->readBoolEntry(DISABLE_IF_STOPPED, default_disableAlarmsIfStopped); mAutostartTrayIcon = config->readBoolEntry(AUTOSTART_TRAY, default_autostartTrayIcon); mModalMessages = config->readBoolEntry(MODAL_MESSAGES, default_modalMessages); mMessageButtonDelay = config->readNumEntry(MESSAGE_BUTTON_DELAY, default_messageButtonDelay); if(mMessageButtonDelay > 10) mMessageButtonDelay = 10; // prevent windows being unusable for a long time if(mMessageButtonDelay < -1) mMessageButtonDelay = -1; mTooltipAlarmCount = static_cast<int>(config->readUnsignedNumEntry(TOOLTIP_ALARM_COUNT, default_tooltipAlarmCount)); if(mTooltipAlarmCount < 1) mTooltipAlarmCount = 1; mShowTooltipAlarmTime = config->readBoolEntry(TOOLTIP_ALARM_TIME, default_showTooltipAlarmTime); mShowTooltipTimeToAlarm = config->readBoolEntry(TOOLTIP_TIME_TO_ALARM, default_showTooltipTimeToAlarm); mTooltipTimeToPrefix = config->readEntry(TOOLTIP_TIME_TO_PREFIX, default_tooltipTimeToPrefix); mDaemonTrayCheckInterval = static_cast<int>(config->readUnsignedNumEntry(DAEMON_TRAY_INTERVAL, default_daemonTrayCheckInterval)); if(mDaemonTrayCheckInterval < 1) mDaemonTrayCheckInterval = 1; QCString client = config->readEntry(EMAIL_CLIENT, defaultEmailClient).local8Bit(); // don't use readPathEntry() here (values are hard-coded) mEmailClient = (client == "sendmail" ? SENDMAIL : KMAIL); mEmailCopyToKMail = config->readBoolEntry(EMAIL_COPY_TO_KMAIL, default_emailCopyToKMail); QString from = config->readEntry(EMAIL_FROM, emailFrom(default_emailFrom(), false, false)); mEmailFrom = emailFrom(from); QString bccFrom = config->readEntry(EMAIL_BCC_ADDRESS, emailFrom(default_emailBccFrom, false, true)); mEmailBccFrom = emailFrom(bccFrom); if(mEmailFrom == MAIL_FROM_CONTROL_CENTRE || mEmailBccFrom == MAIL_FROM_CONTROL_CENTRE) mEmailAddress = mEmailBccAddress = KAMail::controlCentreAddress(); if(mEmailFrom == MAIL_FROM_ADDR) mEmailAddress = from; if(mEmailBccFrom == MAIL_FROM_ADDR) mEmailBccAddress = bccFrom; mCmdXTermCommand = translateXTermPath(config, config->readEntry(CMD_XTERM_COMMAND), false); QDateTime defStartOfDay(QDate(1900, 1, 1), default_startOfDay); mStartOfDay = config->readDateTimeEntry(START_OF_DAY, &defStartOfDay).time(); mOldStartOfDay.setHMS(0, 0, 0); int sod = config->readNumEntry(START_OF_DAY_CHECK, 0); if(sod) mOldStartOfDay = mOldStartOfDay.addMSecs(sod ^ SODxor); mDisabledColour = config->readColorEntry(DISABLED_COLOUR, &default_disabledColour); mExpiredColour = config->readColorEntry(EXPIRED_COLOUR, &default_expiredColour); mExpiredKeepDays = config->readNumEntry(EXPIRED_KEEP_DAYS, default_expiredKeepDays); config->setGroup(DEFAULTS_SECTION); mDefaultLateCancel = static_cast<int>(config->readUnsignedNumEntry(DEF_LATE_CANCEL, default_defaultLateCancel)); mDefaultAutoClose = config->readBoolEntry(DEF_AUTO_CLOSE, default_defaultAutoClose); mDefaultConfirmAck = config->readBoolEntry(DEF_CONFIRM_ACK, default_defaultConfirmAck); mDefaultCopyToKOrganizer = config->readBoolEntry(DEF_COPY_TO_KORG, default_defaultCopyToKOrganizer); int soundType = config->readNumEntry(DEF_SOUND_TYPE, default_defaultSoundType); mDefaultSoundType = (soundType < 0 || soundType > SoundPicker::SPEAK) ? default_defaultSoundType : (SoundPicker::Type)soundType; mDefaultSoundVolume = static_cast<float>(config->readDoubleNumEntry(DEF_SOUND_VOLUME, default_defaultSoundVolume)); #ifdef WITHOUT_ARTS mDefaultSoundRepeat = false; #else mDefaultSoundRepeat = config->readBoolEntry(DEF_SOUND_REPEAT, default_defaultSoundRepeat); #endif mDefaultSoundFile = config->readPathEntry(DEF_SOUND_FILE); mDefaultCmdScript = config->readBoolEntry(DEF_CMD_SCRIPT, default_defaultCmdScript); int logType = config->readNumEntry(DEF_CMD_LOG_TYPE, default_defaultCmdLogType); mDefaultCmdLogType = (logType < EditAlarmDlg::DISCARD_OUTPUT || logType > EditAlarmDlg::EXEC_IN_TERMINAL) ? default_defaultCmdLogType : (EditAlarmDlg::CmdLogType)logType; mDefaultCmdLogFile = config->readPathEntry(DEF_LOG_FILE); mDefaultEmailBcc = config->readBoolEntry(DEF_EMAIL_BCC, default_defaultEmailBcc); int recurPeriod = config->readNumEntry(DEF_RECUR_PERIOD, default_defaultRecurPeriod); mDefaultRecurPeriod = (recurPeriod < RecurrenceEdit::SUBDAILY || recurPeriod > RecurrenceEdit::ANNUAL) ? default_defaultRecurPeriod : (RecurrenceEdit::RepeatType)recurPeriod; QCString feb29 = config->readEntry(FEB29_RECUR_TYPE, defaultFeb29RecurType).local8Bit(); mDefaultFeb29Type = (feb29 == "Mar1") ? KARecurrence::FEB29_MAR1 : (feb29 == "Feb28") ? KARecurrence::FEB29_FEB28 : KARecurrence::FEB29_FEB29; QString remindUnits = config->readEntry(DEF_REMIND_UNITS); mDefaultReminderUnits = (remindUnits == QString::fromLatin1("Minutes")) ? TimePeriod::MINUTES : (remindUnits == QString::fromLatin1("HoursMinutes")) ? TimePeriod::HOURS_MINUTES : (remindUnits == QString::fromLatin1("Days")) ? TimePeriod::DAYS : (remindUnits == QString::fromLatin1("Weeks")) ? TimePeriod::WEEKS : default_defaultReminderUnits; mDefaultPreAction = config->readEntry(DEF_PRE_ACTION, default_defaultPreAction); mDefaultPostAction = config->readEntry(DEF_POST_ACTION, default_defaultPostAction); mInstance->emitPreferencesChanged(); mStartOfDayChanged = (mStartOfDay != mOldStartOfDay); if(mStartOfDayChanged) { mInstance->emitStartOfDayChanged(); mOldStartOfDay = mStartOfDay; } }