10#include "prefs_base.h"
12#include "calendarview_debug.h"
14#include <Akonadi/AttributeFactory>
15#include <Akonadi/CollectionColorAttribute>
17#include <QFontDatabase>
18#include <QRandomGenerator>
24 for (
int i = 0; i < array.
size(); ++i) {
25 if (i >= EventViews::EventView::IconCount) {
26 qCWarning(CALENDARVIEW_LOG) <<
"Icon array is too big: " << array.
size();
30 set.
insert(
static_cast<EventViews::EventView::ItemIcon
>(i));
39 for (
int i = 0; i < EventViews::EventView::IconCount; ++i) {
40 const bool contains = set.
contains(
static_cast<EventViews::EventView::ItemIcon
>(i));
41 array.
append(contains ? 1 : 0);
52 iconDefaults[EventViews::EventView::CalendarCustomIcon] = 1;
53 iconDefaults[EventViews::EventView::TaskIcon] = 1;
54 iconDefaults[EventViews::EventView::JournalIcon] = 1;
55 iconDefaults[EventViews::EventView::RecurringIcon] = 1;
56 iconDefaults[EventViews::EventView::ReminderIcon] = 1;
57 iconDefaults[EventViews::EventView::ReadOnlyIcon] = 1;
58 iconDefaults[EventViews::EventView::ReplyIcon] = 0;
68 iconDefaults[EventViews::EventView::CalendarCustomIcon] = 1;
69 iconDefaults[EventViews::EventView::TaskIcon] = 1;
70 iconDefaults[EventViews::EventView::JournalIcon] = 1;
71 iconDefaults[EventViews::EventView::RecurringIcon] = 0;
72 iconDefaults[EventViews::EventView::ReminderIcon] = 0;
73 iconDefaults[EventViews::EventView::ReadOnlyIcon] = 1;
74 iconDefaults[EventViews::EventView::ReplyIcon] = 0;
79class BaseConfig :
public PrefsBase
84 void setResourceColor(
const QString &resource,
const QColor &color);
86 void setTimeScaleTimezones(
const QStringList &timeZones);
87 QStringList timeScaleTimezones()
const;
90 QHash<QString, QColor> mResourceColors;
91 QColor mDefaultResourceColor;
93 QFont mDefaultMonthViewFont;
94 QFont mDefaultAgendaTimeLabelsFont;
96 QStringList mTimeScaleTimeZones;
98 QSet<EventViews::EventView::ItemIcon> mAgendaViewIcons;
99 QSet<EventViews::EventView::ItemIcon> mMonthViewIcons;
102 void usrSetDefaults()
override;
103 void usrRead()
override;
104 bool usrSave()
override;
107BaseConfig::BaseConfig()
110 mDefaultResourceColor = QColor();
114 mDefaultAgendaTimeLabelsFont.setPointSize(qMax(mDefaultAgendaTimeLabelsFont.pointSize() + 4, 16));
118 mDefaultMonthViewFont.setPointSize(qMax(mDefaultMonthViewFont.pointSize() - 2, 6));
120 agendaTimeLabelsFontItem()->setDefaultValue(mDefaultAgendaTimeLabelsFont);
121 agendaTimeLabelsFontItem()->setDefault();
122 monthViewFontItem()->setDefaultValue(mDefaultMonthViewFont);
123 monthViewFontItem()->setDefault();
126void BaseConfig::setResourceColor(
const QString &resource,
const QColor &color)
128 mResourceColors.insert(resource, color);
131void BaseConfig::setTimeScaleTimezones(
const QStringList &list)
133 mTimeScaleTimeZones =
list;
138 return mTimeScaleTimeZones;
141void BaseConfig::usrSetDefaults()
143 setAgendaTimeLabelsFont(mDefaultAgendaTimeLabelsFont);
144 setMonthViewFont(mDefaultMonthViewFont);
146 PrefsBase::usrSetDefaults();
149void BaseConfig::usrRead()
151 KConfigGroup rColorsConfig(config(), QStringLiteral(
"Resources Colors"));
152 const QStringList colorKeyList = rColorsConfig.keyList();
154 for (
const QString &key : colorKeyList) {
155 QColor color = rColorsConfig.readEntry(key, mDefaultResourceColor);
157 setResourceColor(key, color);
161 config()->setGroup(
"FreeBusy");
162 if (mRememberRetrievePw) {
168 KConfigGroup timeScaleConfig(config(), QStringLiteral(
"Timescale"));
169 setTimeScaleTimezones(timeScaleConfig.readEntry(
"Timescale Timezones", QStringList()));
171 KConfigGroup monthViewConfig(config(), QStringLiteral(
"Month View"));
172 KConfigGroup agendaViewConfig(config(), QStringLiteral(
"Agenda View"));
173 const auto agendaIconArray = agendaViewConfig.readEntry<QByteArray>(
"agendaViewItemIcons", agendaViewIconDefaults());
174 const auto monthIconArray = monthViewConfig.readEntry<QByteArray>(
"monthViewItemIcons", monthViewIconDefaults());
176 mAgendaViewIcons = iconArrayToSet(agendaIconArray);
177 mMonthViewIcons = iconArrayToSet(monthIconArray);
182bool BaseConfig::usrSave()
184 KConfigGroup rColorsConfig(config(), QStringLiteral(
"Resources Colors"));
185 for (
auto it = mResourceColors.constBegin(); it != mResourceColors.constEnd(); ++it) {
186 rColorsConfig.writeEntry(it.key(), it.value());
190 if (mRememberRetrievePw) {
191 config()->writeEntry(
"Retrieve Server Password",
194 config()->deleteEntry(
"Retrieve Server Password");
198 KConfigGroup timeScaleConfig(config(), QStringLiteral(
"Timescale"));
199 timeScaleConfig.writeEntry(
"Timescale Timezones", timeScaleTimezones());
201 KConfigGroup monthViewConfig(config(), QStringLiteral(
"Month View"));
202 KConfigGroup agendaViewConfig(config(), QStringLiteral(
"Agenda View"));
204 const QByteArray agendaIconArray = iconSetToArray(mAgendaViewIcons);
205 const QByteArray monthIconArray = iconSetToArray(mMonthViewIcons);
207 agendaViewConfig.writeEntry<QByteArray>(
"agendaViewItemIcons", agendaIconArray);
208 monthViewConfig.writeEntry<QByteArray>(
"monthViewItemIcons", monthIconArray);
213class EventViews::PrefsPrivate
216 explicit PrefsPrivate()
220 PrefsPrivate(KCoreConfigSkeleton *appConfig)
221 : mAppConfig(appConfig)
225 KConfigSkeletonItem *appConfigItem(
const KConfigSkeletonItem *baseConfigItem)
const;
227 void setBool(KCoreConfigSkeleton::ItemBool *baseConfigItem,
bool value);
228 bool getBool(
const KCoreConfigSkeleton::ItemBool *baseConfigItem)
const;
230 void setInt(KCoreConfigSkeleton::ItemInt *baseConfigItem,
int value);
231 int getInt(
const KCoreConfigSkeleton::ItemInt *baseConfigItem)
const;
233 void setString(KCoreConfigSkeleton::ItemString *baseConfigItem,
const QString &value);
234 QString getString(
const KCoreConfigSkeleton::ItemString *baseConfigItem)
const;
236 void setDateTime(KCoreConfigSkeleton::ItemDateTime *baseConfigItem,
const QDateTime &value);
237 QDateTime getDateTime(
const KCoreConfigSkeleton::ItemDateTime *baseConfigItem)
const;
239 void setStringList(KCoreConfigSkeleton::ItemStringList *baseConfigItem,
const QStringList &value);
240 QStringList getStringList(
const KCoreConfigSkeleton::ItemStringList *baseConfigItem)
const;
242 void setColor(KConfigSkeleton::ItemColor *baseConfigItem,
const QColor &value);
243 QColor getColor(
const KConfigSkeleton::ItemColor *baseConfigItem)
const;
245 void setFont(KConfigSkeleton::ItemFont *baseConfigItem,
const QFont &value);
246 QFont getFont(
const KConfigSkeleton::ItemFont *baseConfigItem)
const;
249 BaseConfig mBaseConfig;
250 KCoreConfigSkeleton *mAppConfig =
nullptr;
255 Q_ASSERT(baseConfigItem);
258 return mAppConfig->findItem(baseConfigItem->
name());
264void PrefsPrivate::setBool(KCoreConfigSkeleton::ItemBool *baseConfigItem,
bool value)
266 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
268 auto item =
dynamic_cast<KCoreConfigSkeleton::ItemBool *
>(appItem);
270 item->setValue(value);
272 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type Bool";
279bool PrefsPrivate::getBool(
const KCoreConfigSkeleton::ItemBool *baseConfigItem)
const
281 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
283 auto item =
dynamic_cast<KCoreConfigSkeleton::ItemBool *
>(appItem);
285 return item->value();
287 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type Bool";
289 return baseConfigItem->
value();
292void PrefsPrivate::setInt(KCoreConfigSkeleton::ItemInt *baseConfigItem,
int value)
294 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
296 auto item =
dynamic_cast<KCoreConfigSkeleton::ItemInt *
>(appItem);
298 item->setValue(value);
300 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type Int";
307int PrefsPrivate::getInt(
const KCoreConfigSkeleton::ItemInt *baseConfigItem)
const
309 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
311 auto item =
dynamic_cast<KCoreConfigSkeleton::ItemInt *
>(appItem);
313 return item->value();
315 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type Int";
317 return baseConfigItem->
value();
320void PrefsPrivate::setString(KCoreConfigSkeleton::ItemString *baseConfigItem,
const QString &value)
322 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
324 auto item =
dynamic_cast<KCoreConfigSkeleton::ItemString *
>(appItem);
327 item->setValue(value);
329 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type String";
336QString PrefsPrivate::getString(
const KCoreConfigSkeleton::ItemString *baseConfigItem)
const
338 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
340 auto item =
dynamic_cast<KCoreConfigSkeleton::ItemString *
>(appItem);
343 return item->value();
345 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type String";
347 return baseConfigItem->
value();
350void PrefsPrivate::setDateTime(KCoreConfigSkeleton::ItemDateTime *baseConfigItem,
const QDateTime &value)
352 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
354 auto item =
dynamic_cast<KCoreConfigSkeleton::ItemDateTime *
>(appItem);
357 item->setValue(value);
359 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type DateTime";
366QDateTime PrefsPrivate::getDateTime(
const KCoreConfigSkeleton::ItemDateTime *baseConfigItem)
const
368 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
370 auto item =
dynamic_cast<KCoreConfigSkeleton::ItemDateTime *
>(appItem);
373 return item->value();
375 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type DateTime";
377 return baseConfigItem->
value();
380void PrefsPrivate::setStringList(KCoreConfigSkeleton::ItemStringList *baseConfigItem,
const QStringList &value)
382 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
384 auto item =
dynamic_cast<KCoreConfigSkeleton::ItemStringList *
>(appItem);
387 item->setValue(value);
389 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type StringList";
396QStringList PrefsPrivate::getStringList(
const KCoreConfigSkeleton::ItemStringList *baseConfigItem)
const
398 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
400 auto item =
dynamic_cast<KCoreConfigSkeleton::ItemStringList *
>(appItem);
403 return item->value();
405 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type StringList";
407 return baseConfigItem->
value();
410void PrefsPrivate::setColor(KConfigSkeleton::ItemColor *baseConfigItem,
const QColor &value)
412 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
414 auto item =
dynamic_cast<KConfigSkeleton::ItemColor *
>(appItem);
416 item->setValue(value);
418 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type Color";
425QColor PrefsPrivate::getColor(
const KConfigSkeleton::ItemColor *baseConfigItem)
const
427 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
429 auto item =
dynamic_cast<KConfigSkeleton::ItemColor *
>(appItem);
431 return item->value();
433 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type Color";
435 return baseConfigItem->
value();
438void PrefsPrivate::setFont(KConfigSkeleton::ItemFont *baseConfigItem,
const QFont &value)
440 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
442 auto item =
dynamic_cast<KConfigSkeleton::ItemFont *
>(appItem);
444 item->setValue(value);
446 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type Font";
453QFont PrefsPrivate::getFont(
const KConfigSkeleton::ItemFont *baseConfigItem)
const
455 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
457 auto item =
dynamic_cast<KConfigSkeleton::ItemFont *
>(appItem);
459 return item->value();
461 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type Font";
463 return baseConfigItem->
value();
467 : d(new PrefsPrivate())
474 : d(new PrefsPrivate(appConfig))
480Prefs::~Prefs() =
default;
482void Prefs::readConfig()
484 d->mBaseConfig.load();
486 d->mAppConfig->load();
490void Prefs::writeConfig()
492 d->mBaseConfig.save();
494 d->mAppConfig->save();
498void Prefs::setUseSystemColor(
bool useSystemColor)
500 d->setBool(d->mBaseConfig.useSystemColorItem(), useSystemColor);
503bool Prefs::useSystemColor()
const
505 return d->getBool(d->mBaseConfig.useSystemColorItem());
508void Prefs::setMarcusBainsShowSeconds(
bool showSeconds)
510 d->setBool(d->mBaseConfig.marcusBainsShowSecondsItem(), showSeconds);
513bool Prefs::marcusBainsShowSeconds()
const
515 return d->getBool(d->mBaseConfig.marcusBainsShowSecondsItem());
518void Prefs::setAgendaMarcusBainsLineLineColor(
const QColor &color)
520 d->setColor(d->mBaseConfig.agendaMarcusBainsLineLineColorItem(), color);
523QColor Prefs::agendaMarcusBainsLineLineColor()
const
525 return d->getColor(d->mBaseConfig.agendaMarcusBainsLineLineColorItem());
528void Prefs::setMarcusBainsEnabled(
bool enabled)
530 d->setBool(d->mBaseConfig.marcusBainsEnabledItem(), enabled);
533bool Prefs::marcusBainsEnabled()
const
535 return d->getBool(d->mBaseConfig.marcusBainsEnabledItem());
538void Prefs::setAgendaMarcusBainsLineFont(
const QFont &font)
540 d->setFont(d->mBaseConfig.agendaMarcusBainsLineFontItem(), font);
543QFont Prefs::agendaMarcusBainsLineFont()
const
545 return d->getFont(d->mBaseConfig.agendaMarcusBainsLineFontItem());
548void Prefs::setHourSize(
int size)
550 d->setInt(d->mBaseConfig.hourSizeItem(), size);
553int Prefs::hourSize()
const
555 return d->getInt(d->mBaseConfig.hourSizeItem());
558void Prefs::setDayBegins(
const QDateTime &dateTime)
560 d->setDateTime(d->mBaseConfig.dayBeginsItem(), dateTime);
563QDateTime Prefs::dayBegins()
const
565 return d->getDateTime(d->mBaseConfig.dayBeginsItem());
568void Prefs::setFirstDayOfWeek(
const int day)
570 d->setInt(d->mBaseConfig.weekStartDayItem(), day - 1);
573int Prefs::firstDayOfWeek()
const
575 return d->getInt(d->mBaseConfig.weekStartDayItem()) + 1;
578void Prefs::setWorkingHoursStart(
const QDateTime &dateTime)
580 d->setDateTime(d->mBaseConfig.workingHoursStartItem(), dateTime);
583QDateTime Prefs::workingHoursStart()
const
585 return d->getDateTime(d->mBaseConfig.workingHoursStartItem());
588void Prefs::setWorkingHoursEnd(
const QDateTime &dateTime)
590 d->setDateTime(d->mBaseConfig.workingHoursEndItem(), dateTime);
593QDateTime Prefs::workingHoursEnd()
const
595 return d->getDateTime(d->mBaseConfig.workingHoursEndItem());
598void Prefs::setSelectionStartsEditor(
bool startEditor)
600 d->setBool(d->mBaseConfig.selectionStartsEditorItem(), startEditor);
603bool Prefs::selectionStartsEditor()
const
605 return d->getBool(d->mBaseConfig.selectionStartsEditorItem());
608void Prefs::setAgendaGridWorkHoursBackgroundColor(
const QColor &color)
610 d->setColor(d->mBaseConfig.agendaGridWorkHoursBackgroundColorItem(), color);
613QColor Prefs::agendaGridWorkHoursBackgroundColor()
const
615 return d->getColor(d->mBaseConfig.agendaGridWorkHoursBackgroundColorItem());
618void Prefs::setAgendaGridHighlightColor(
const QColor &color)
620 d->setColor(d->mBaseConfig.agendaGridHighlightColorItem(), color);
623QColor Prefs::agendaGridHighlightColor()
const
625 return d->getColor(d->mBaseConfig.agendaGridHighlightColorItem());
628void Prefs::setAgendaGridBackgroundColor(
const QColor &color)
630 d->setColor(d->mBaseConfig.agendaGridBackgroundColorItem(), color);
633QColor Prefs::agendaGridBackgroundColor()
const
635 return d->getColor(d->mBaseConfig.agendaGridBackgroundColorItem());
638void Prefs::setEnableAgendaItemIcons(
bool enable)
640 d->setBool(d->mBaseConfig.enableAgendaItemIconsItem(), enable);
643bool Prefs::enableAgendaItemIcons()
const
645 return d->getBool(d->mBaseConfig.enableAgendaItemIconsItem());
648void Prefs::setTodosUseCategoryColors(
bool useColors)
650 d->setBool(d->mBaseConfig.todosUseCategoryColorsItem(), useColors);
653bool Prefs::todosUseCategoryColors()
const
655 return d->getBool(d->mBaseConfig.todosUseCategoryColorsItem());
658void Prefs::setAgendaHolidaysBackgroundColor(
const QColor &color)
const
660 d->setColor(d->mBaseConfig.agendaHolidaysBackgroundColorItem(), color);
663QColor Prefs::agendaHolidaysBackgroundColor()
const
665 return d->getColor(d->mBaseConfig.agendaHolidaysBackgroundColorItem());
668void Prefs::setAgendaViewColors(
int colors)
670 d->setInt(d->mBaseConfig.agendaViewColorsItem(), colors);
673int Prefs::agendaViewColors()
const
675 return d->getInt(d->mBaseConfig.agendaViewColorsItem());
678void Prefs::setAgendaViewFont(
const QFont &font)
680 d->setFont(d->mBaseConfig.agendaViewFontItem(), font);
683QFont Prefs::agendaViewFont()
const
685 return d->getFont(d->mBaseConfig.agendaViewFontItem());
688void Prefs::setMonthViewFont(
const QFont &font)
690 d->setFont(d->mBaseConfig.monthViewFontItem(), font);
693QFont Prefs::monthViewFont()
const
695 return d->getFont(d->mBaseConfig.monthViewFontItem());
698QColor Prefs::monthGridBackgroundColor()
const
700 return d->getColor(d->mBaseConfig.monthGridBackgroundColorItem());
703void Prefs::setMonthGridBackgroundColor(
const QColor &color)
705 d->setColor(d->mBaseConfig.monthGridBackgroundColorItem(), color);
708QColor Prefs::monthGridWorkHoursBackgroundColor()
const
710 return d->getColor(d->mBaseConfig.monthGridWorkHoursBackgroundColorItem());
713void Prefs::monthGridWorkHoursBackgroundColor(
const QColor &color)
715 d->setColor(d->mBaseConfig.monthGridWorkHoursBackgroundColorItem(), color);
718int Prefs::monthViewColors()
const
720 return d->getInt(d->mBaseConfig.monthViewColorsItem());
723void Prefs::setMonthViewColors(
int colors)
const
725 d->setInt(d->mBaseConfig.monthViewColorsItem(), colors);
728void Prefs::setEnableMonthItemIcons(
bool enable)
730 d->setBool(d->mBaseConfig.enableMonthItemIconsItem(), enable);
733bool Prefs::enableMonthItemIcons()
const
735 return d->getBool(d->mBaseConfig.enableMonthItemIconsItem());
738bool Prefs::showTimeInMonthView()
const
740 return d->getBool(d->mBaseConfig.showTimeInMonthViewItem());
743void Prefs::setShowTimeInMonthView(
bool show)
745 d->setBool(d->mBaseConfig.showTimeInMonthViewItem(), show);
748bool Prefs::showTodosMonthView()
const
750 return d->getBool(d->mBaseConfig.showTodosMonthViewItem());
753void Prefs::setShowTodosMonthView(
bool enable)
755 d->setBool(d->mBaseConfig.showTodosMonthViewItem(), enable);
758bool Prefs::showJournalsMonthView()
const
760 return d->getBool(d->mBaseConfig.showJournalsMonthViewItem());
763void Prefs::setShowJournalsMonthView(
bool enable)
765 d->setBool(d->mBaseConfig.showJournalsMonthViewItem(), enable);
768bool Prefs::fullViewMonth()
const
770 return d->getBool(d->mBaseConfig.fullViewMonthItem());
773void Prefs::setFullViewMonth(
bool fullView)
775 d->setBool(d->mBaseConfig.fullViewMonthItem(), fullView);
778bool Prefs::sortCompletedTodosSeparately()
const
780 return d->getBool(d->mBaseConfig.sortCompletedTodosSeparatelyItem());
783void Prefs::setSortCompletedTodosSeparately(
bool enable)
785 d->setBool(d->mBaseConfig.sortCompletedTodosSeparatelyItem(), enable);
788void Prefs::setEnableToolTips(
bool enable)
790 d->setBool(d->mBaseConfig.enableToolTipsItem(), enable);
793bool Prefs::enableToolTips()
const
795 return d->getBool(d->mBaseConfig.enableToolTipsItem());
798void Prefs::setShowTodosAgendaView(
bool show)
800 d->setBool(d->mBaseConfig.showTodosAgendaViewItem(), show);
803bool Prefs::showTodosAgendaView()
const
805 return d->getBool(d->mBaseConfig.showTodosAgendaViewItem());
808void Prefs::setAgendaTimeLabelsFont(
const QFont &font)
810 d->setFont(d->mBaseConfig.agendaTimeLabelsFontItem(), font);
813QFont Prefs::agendaTimeLabelsFont()
const
815 return d->getFont(d->mBaseConfig.agendaTimeLabelsFontItem());
818QTimeZone Prefs::timeZone()
const
823bool Prefs::colorAgendaBusyDays()
const
825 return d->getBool(d->mBaseConfig.colorBusyDaysEnabledItem());
828bool Prefs::colorMonthBusyDays()
const
830 return d->getBool(d->mBaseConfig.colorMonthBusyDaysEnabledItem());
833QColor Prefs::viewBgBusyColor()
const
835 return d->getColor(d->mBaseConfig.viewBgBusyColorItem());
838void Prefs::setViewBgBusyColor(
const QColor &color)
840 d->mBaseConfig.mViewBgBusyColor = color;
843QColor Prefs::holidayColor()
const
845 return d->getColor(d->mBaseConfig.holidayColorItem());
848void Prefs::setHolidayColor(
const QColor &color)
850 d->mBaseConfig.mHolidayColor = color;
853QColor Prefs::agendaViewBackgroundColor()
const
855 return d->getColor(d->mBaseConfig.agendaBgColorItem());
858void Prefs::setAgendaViewBackgroundColor(
const QColor &color)
860 d->mBaseConfig.mAgendaBgColor = color;
863QColor Prefs::workingHoursColor()
const
865 return d->getColor(d->mBaseConfig.workingHoursColorItem());
868void Prefs::setWorkingHoursColor(
const QColor &color)
870 d->mBaseConfig.mWorkingHoursColor = color;
873QColor Prefs::todoDueTodayColor()
const
875 return d->getColor(d->mBaseConfig.todoDueTodayColorItem());
878void Prefs::setTodoDueTodayColor(
const QColor &color)
880 d->mBaseConfig.mTodoDueTodayColor = color;
883QColor Prefs::todoOverdueColor()
const
885 return d->getColor(d->mBaseConfig.todoOverdueColorItem());
888void Prefs::setTodoOverdueColor(
const QColor &color)
890 d->mBaseConfig.mTodoOverdueColor = color;
893void Prefs::setColorAgendaBusyDays(
bool enable)
895 d->mBaseConfig.mColorBusyDaysEnabled = enable;
898void Prefs::setColorMonthBusyDays(
bool enable)
900 d->mBaseConfig.mColorMonthBusyDaysEnabled = enable;
903void Prefs::setResourceColor(
const QString &cal,
const QColor &color)
905 d->mBaseConfig.setResourceColor(cal, color);
908QColor Prefs::resourceColorKnown(
const QString &cal)
const
912 color = d->mBaseConfig.mResourceColors.
value(cal);
917QColor Prefs::resourceColor(
const QString &cal)
920 return d->mBaseConfig.mDefaultResourceColor;
923 QColor color = resourceColorKnown(cal);
926 if (!color.
isValid() && d->getBool(d->mBaseConfig.assignDefaultResourceColorsItem())) {
927 color.
setRgb(0x37, 0x7A, 0xBC);
928 const int seed = d->getInt(d->mBaseConfig.defaultResourceColorSeedItem());
929 const QStringList colors = d->getStringList(d->mBaseConfig.defaultResourceColorsItem());
930 if (seed > 0 && seed - 1 < colors.
size()) {
935 d->setInt(d->mBaseConfig.defaultResourceColorSeedItem(), (seed + 1));
936 d->mBaseConfig.setResourceColor(cal, color);
941 return d->mBaseConfig.mDefaultResourceColor;
945QStringList Prefs::timeScaleTimezones()
const
947 return d->mBaseConfig.timeScaleTimezones();
950void Prefs::setTimeScaleTimezones(
const QStringList &list)
952 d->mBaseConfig.setTimeScaleTimezones(list);
955KConfigSkeleton::ItemFont *Prefs::fontItem(
const QString &name)
const
957 KConfigSkeletonItem *item = d->mAppConfig ? d->mAppConfig->findItem(name) :
nullptr;
960 item = d->mBaseConfig.findItem(name);
963 return dynamic_cast<KConfigSkeleton::ItemFont *
>(item);
966QStringList Prefs::selectedPlugins()
const
968 return d->mBaseConfig.mSelectedPlugins;
971QStringList Prefs::decorationsAtAgendaViewTop()
const
973 return d->mBaseConfig.decorationsAtAgendaViewTop();
976QStringList Prefs::decorationsAtAgendaViewBottom()
const
978 return d->mBaseConfig.decorationsAtAgendaViewBottom();
981void Prefs::setSelectedPlugins(
const QStringList &plugins)
983 d->mBaseConfig.setSelectedPlugins(plugins);
986void Prefs::setDecorationsAtAgendaViewTop(
const QStringList &decorations)
988 d->mBaseConfig.setDecorationsAtAgendaViewTop(decorations);
991void Prefs::setDecorationsAtAgendaViewBottom(
const QStringList &decorations)
993 d->mBaseConfig.setDecorationsAtAgendaViewBottom(decorations);
996QSet<EventViews::EventView::ItemIcon> Prefs::agendaViewIcons()
const
998 return d->mBaseConfig.mAgendaViewIcons;
1001void Prefs::setAgendaViewIcons(
const QSet<EventViews::EventView::ItemIcon> &icons)
1003 d->mBaseConfig.mAgendaViewIcons = icons;
1006QSet<EventViews::EventView::ItemIcon> Prefs::monthViewIcons()
const
1008 return d->mBaseConfig.mMonthViewIcons;
1011void Prefs::setMonthViewIcons(
const QSet<EventViews::EventView::ItemIcon> &icons)
1013 d->mBaseConfig.mMonthViewIcons = icons;
1016void Prefs::setFlatListTodo(
bool enable)
1018 d->mBaseConfig.mFlatListTodo = enable;
1021bool Prefs::flatListTodo()
const
1023 return d->mBaseConfig.mFlatListTodo;
1026void Prefs::setFullViewTodo(
bool enable)
1028 d->mBaseConfig.mFullViewTodo = enable;
1031bool Prefs::fullViewTodo()
const
1033 return d->mBaseConfig.mFullViewTodo;
1036bool Prefs::enableTodoQuickSearch()
const
1038 return d->mBaseConfig.mEnableTodoQuickSearch;
1041void Prefs::setEnableTodoQuickSearch(
bool enable)
1043 d->mBaseConfig.mEnableTodoQuickSearch = enable;
1046bool Prefs::enableQuickTodo()
const
1048 return d->mBaseConfig.mEnableQuickTodo;
1051void Prefs::setEnableQuickTodo(
bool enable)
1053 d->mBaseConfig.mEnableQuickTodo = enable;
1056bool Prefs::highlightTodos()
const
1058 return d->mBaseConfig.mHighlightTodos;
1061void Prefs::setHighlightTodos(
bool highlight)
1063 d->mBaseConfig.mHighlightTodos = highlight;
1066KConfig *Prefs::config()
const
1068 return d->mAppConfig ? d->mAppConfig->config() : d->mBaseConfig.config();
static void registerAttribute()
void setValue(const T &v)
Namespace EventViews provides facilities for displaying incidences, including events,...
KIOCORE_EXPORT QStringList list(const QString &fileClass)
KCOREADDONS_EXPORT QString obscure(const QString &str)
QByteArray & append(QByteArrayView data)
void resize(qsizetype newSize, char c)
qsizetype size() const const
QColor fromString(QAnyStringView name)
bool isValid() const const
QFont systemFont(SystemFont type)
qsizetype size() const const
QRandomGenerator * global()
bool contains(const QSet< T > &other) const const
iterator insert(const T &value)
bool isEmpty() const const
QTimeZone systemTimeZone()