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(Prefs *parent)
221 PrefsPrivate(Prefs *parent, KCoreConfigSkeleton *appConfig)
222 : mAppConfig(appConfig)
227 KConfigSkeletonItem *appConfigItem(
const KConfigSkeletonItem *baseConfigItem)
const;
229 void setBool(KCoreConfigSkeleton::ItemBool *baseConfigItem,
bool value);
230 bool getBool(
const KCoreConfigSkeleton::ItemBool *baseConfigItem)
const;
232 void setInt(KCoreConfigSkeleton::ItemInt *baseConfigItem,
int value);
233 int getInt(
const KCoreConfigSkeleton::ItemInt *baseConfigItem)
const;
235 void setString(KCoreConfigSkeleton::ItemString *baseConfigItem,
const QString &value);
236 QString getString(
const KCoreConfigSkeleton::ItemString *baseConfigItem)
const;
238 void setDateTime(KCoreConfigSkeleton::ItemDateTime *baseConfigItem,
const QDateTime &value);
239 QDateTime getDateTime(
const KCoreConfigSkeleton::ItemDateTime *baseConfigItem)
const;
241 void setStringList(KCoreConfigSkeleton::ItemStringList *baseConfigItem,
const QStringList &value);
242 QStringList getStringList(
const KCoreConfigSkeleton::ItemStringList *baseConfigItem)
const;
244 void setColor(KConfigSkeleton::ItemColor *baseConfigItem,
const QColor &value);
245 QColor getColor(
const KConfigSkeleton::ItemColor *baseConfigItem)
const;
247 void setFont(KConfigSkeleton::ItemFont *baseConfigItem,
const QFont &value);
248 QFont getFont(
const KConfigSkeleton::ItemFont *baseConfigItem)
const;
251 BaseConfig mBaseConfig;
252 KCoreConfigSkeleton *mAppConfig =
nullptr;
260 Q_ASSERT(baseConfigItem);
263 return mAppConfig->findItem(baseConfigItem->
name());
269void PrefsPrivate::setBool(KCoreConfigSkeleton::ItemBool *baseConfigItem,
bool value)
271 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
273 auto item =
dynamic_cast<KCoreConfigSkeleton::ItemBool *
>(appItem);
275 item->setValue(value);
277 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type Bool";
284bool PrefsPrivate::getBool(
const KCoreConfigSkeleton::ItemBool *baseConfigItem)
const
286 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
288 auto item =
dynamic_cast<KCoreConfigSkeleton::ItemBool *
>(appItem);
290 return item->value();
292 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type Bool";
294 return baseConfigItem->
value();
297void PrefsPrivate::setInt(KCoreConfigSkeleton::ItemInt *baseConfigItem,
int value)
299 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
301 auto item =
dynamic_cast<KCoreConfigSkeleton::ItemInt *
>(appItem);
303 item->setValue(value);
305 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type Int";
312int PrefsPrivate::getInt(
const KCoreConfigSkeleton::ItemInt *baseConfigItem)
const
314 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
316 auto item =
dynamic_cast<KCoreConfigSkeleton::ItemInt *
>(appItem);
318 return item->value();
320 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type Int";
322 return baseConfigItem->
value();
325void PrefsPrivate::setString(KCoreConfigSkeleton::ItemString *baseConfigItem,
const QString &value)
327 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
329 auto item =
dynamic_cast<KCoreConfigSkeleton::ItemString *
>(appItem);
332 item->setValue(value);
334 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type String";
341QString PrefsPrivate::getString(
const KCoreConfigSkeleton::ItemString *baseConfigItem)
const
343 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
345 auto item =
dynamic_cast<KCoreConfigSkeleton::ItemString *
>(appItem);
348 return item->value();
350 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type String";
352 return baseConfigItem->
value();
355void PrefsPrivate::setDateTime(KCoreConfigSkeleton::ItemDateTime *baseConfigItem,
const QDateTime &value)
357 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
359 auto item =
dynamic_cast<KCoreConfigSkeleton::ItemDateTime *
>(appItem);
362 item->setValue(value);
364 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type DateTime";
371QDateTime PrefsPrivate::getDateTime(
const KCoreConfigSkeleton::ItemDateTime *baseConfigItem)
const
373 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
375 auto item =
dynamic_cast<KCoreConfigSkeleton::ItemDateTime *
>(appItem);
378 return item->value();
380 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type DateTime";
382 return baseConfigItem->
value();
385void PrefsPrivate::setStringList(KCoreConfigSkeleton::ItemStringList *baseConfigItem,
const QStringList &value)
387 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
389 auto item =
dynamic_cast<KCoreConfigSkeleton::ItemStringList *
>(appItem);
392 item->setValue(value);
394 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type StringList";
401QStringList PrefsPrivate::getStringList(
const KCoreConfigSkeleton::ItemStringList *baseConfigItem)
const
403 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
405 auto item =
dynamic_cast<KCoreConfigSkeleton::ItemStringList *
>(appItem);
408 return item->value();
410 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type StringList";
412 return baseConfigItem->
value();
415void PrefsPrivate::setColor(KConfigSkeleton::ItemColor *baseConfigItem,
const QColor &value)
417 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
419 auto item =
dynamic_cast<KConfigSkeleton::ItemColor *
>(appItem);
421 item->setValue(value);
423 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type Color";
430QColor PrefsPrivate::getColor(
const KConfigSkeleton::ItemColor *baseConfigItem)
const
432 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
434 auto item =
dynamic_cast<KConfigSkeleton::ItemColor *
>(appItem);
436 return item->value();
438 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type Color";
440 return baseConfigItem->
value();
443void PrefsPrivate::setFont(KConfigSkeleton::ItemFont *baseConfigItem,
const QFont &value)
445 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
447 auto item =
dynamic_cast<KConfigSkeleton::ItemFont *
>(appItem);
449 item->setValue(value);
451 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type Font";
458QFont PrefsPrivate::getFont(
const KConfigSkeleton::ItemFont *baseConfigItem)
const
460 KConfigSkeletonItem *appItem = appConfigItem(baseConfigItem);
462 auto item =
dynamic_cast<KConfigSkeleton::ItemFont *
>(appItem);
464 return item->value();
466 qCCritical(CALENDARVIEW_LOG) <<
"Application config item" << appItem->
name() <<
"is not of type Font";
468 return baseConfigItem->
value();
472 : d(new PrefsPrivate(this))
479 : d(new PrefsPrivate(this, appConfig))
485Prefs::~Prefs() =
default;
487void Prefs::readConfig()
489 d->mBaseConfig.load();
491 d->mAppConfig->load();
495void Prefs::writeConfig()
497 d->mBaseConfig.save();
499 d->mAppConfig->save();
503void Prefs::setUseSystemColor(
bool useSystemColor)
505 d->setBool(d->mBaseConfig.useSystemColorItem(), useSystemColor);
508bool Prefs::useSystemColor()
const
510 return d->getBool(d->mBaseConfig.useSystemColorItem());
513void Prefs::setMarcusBainsShowSeconds(
bool showSeconds)
515 d->setBool(d->mBaseConfig.marcusBainsShowSecondsItem(), showSeconds);
518bool Prefs::marcusBainsShowSeconds()
const
520 return d->getBool(d->mBaseConfig.marcusBainsShowSecondsItem());
523void Prefs::setAgendaMarcusBainsLineLineColor(
const QColor &color)
525 d->setColor(d->mBaseConfig.agendaMarcusBainsLineLineColorItem(), color);
528QColor Prefs::agendaMarcusBainsLineLineColor()
const
530 return d->getColor(d->mBaseConfig.agendaMarcusBainsLineLineColorItem());
533void Prefs::setMarcusBainsEnabled(
bool enabled)
535 d->setBool(d->mBaseConfig.marcusBainsEnabledItem(), enabled);
538bool Prefs::marcusBainsEnabled()
const
540 return d->getBool(d->mBaseConfig.marcusBainsEnabledItem());
543void Prefs::setAgendaMarcusBainsLineFont(
const QFont &font)
545 d->setFont(d->mBaseConfig.agendaMarcusBainsLineFontItem(), font);
548QFont Prefs::agendaMarcusBainsLineFont()
const
550 return d->getFont(d->mBaseConfig.agendaMarcusBainsLineFontItem());
553void Prefs::setHourSize(
int size)
555 d->setInt(d->mBaseConfig.hourSizeItem(), size);
558int Prefs::hourSize()
const
560 return d->getInt(d->mBaseConfig.hourSizeItem());
563void Prefs::setDayBegins(
const QDateTime &dateTime)
565 d->setDateTime(d->mBaseConfig.dayBeginsItem(), dateTime);
568QDateTime Prefs::dayBegins()
const
570 return d->getDateTime(d->mBaseConfig.dayBeginsItem());
573void Prefs::setFirstDayOfWeek(
const int day)
575 d->setInt(d->mBaseConfig.weekStartDayItem(), day - 1);
578int Prefs::firstDayOfWeek()
const
580 return d->getInt(d->mBaseConfig.weekStartDayItem()) + 1;
583void Prefs::setWorkingHoursStart(
const QDateTime &dateTime)
585 d->setDateTime(d->mBaseConfig.workingHoursStartItem(), dateTime);
588QDateTime Prefs::workingHoursStart()
const
590 return d->getDateTime(d->mBaseConfig.workingHoursStartItem());
593void Prefs::setWorkingHoursEnd(
const QDateTime &dateTime)
595 d->setDateTime(d->mBaseConfig.workingHoursEndItem(), dateTime);
598QDateTime Prefs::workingHoursEnd()
const
600 return d->getDateTime(d->mBaseConfig.workingHoursEndItem());
603void Prefs::setSelectionStartsEditor(
bool startEditor)
605 d->setBool(d->mBaseConfig.selectionStartsEditorItem(), startEditor);
608bool Prefs::selectionStartsEditor()
const
610 return d->getBool(d->mBaseConfig.selectionStartsEditorItem());
613void Prefs::setAgendaGridWorkHoursBackgroundColor(
const QColor &color)
615 d->setColor(d->mBaseConfig.agendaGridWorkHoursBackgroundColorItem(), color);
618QColor Prefs::agendaGridWorkHoursBackgroundColor()
const
620 return d->getColor(d->mBaseConfig.agendaGridWorkHoursBackgroundColorItem());
623void Prefs::setAgendaGridHighlightColor(
const QColor &color)
625 d->setColor(d->mBaseConfig.agendaGridHighlightColorItem(), color);
628QColor Prefs::agendaGridHighlightColor()
const
630 return d->getColor(d->mBaseConfig.agendaGridHighlightColorItem());
633void Prefs::setAgendaGridBackgroundColor(
const QColor &color)
635 d->setColor(d->mBaseConfig.agendaGridBackgroundColorItem(), color);
638QColor Prefs::agendaGridBackgroundColor()
const
640 return d->getColor(d->mBaseConfig.agendaGridBackgroundColorItem());
643void Prefs::setEnableAgendaItemIcons(
bool enable)
645 d->setBool(d->mBaseConfig.enableAgendaItemIconsItem(), enable);
648bool Prefs::enableAgendaItemIcons()
const
650 return d->getBool(d->mBaseConfig.enableAgendaItemIconsItem());
653void Prefs::setTodosUseCategoryColors(
bool useColors)
655 d->setBool(d->mBaseConfig.todosUseCategoryColorsItem(), useColors);
658bool Prefs::todosUseCategoryColors()
const
660 return d->getBool(d->mBaseConfig.todosUseCategoryColorsItem());
663void Prefs::setAgendaHolidaysBackgroundColor(
const QColor &color)
const
665 d->setColor(d->mBaseConfig.agendaHolidaysBackgroundColorItem(), color);
668QColor Prefs::agendaHolidaysBackgroundColor()
const
670 return d->getColor(d->mBaseConfig.agendaHolidaysBackgroundColorItem());
673void Prefs::setAgendaViewColors(
int colors)
675 d->setInt(d->mBaseConfig.agendaViewColorsItem(), colors);
678int Prefs::agendaViewColors()
const
680 return d->getInt(d->mBaseConfig.agendaViewColorsItem());
683void Prefs::setAgendaViewFont(
const QFont &font)
685 d->setFont(d->mBaseConfig.agendaViewFontItem(), font);
688QFont Prefs::agendaViewFont()
const
690 return d->getFont(d->mBaseConfig.agendaViewFontItem());
693void Prefs::setMonthViewFont(
const QFont &font)
695 d->setFont(d->mBaseConfig.monthViewFontItem(), font);
698QFont Prefs::monthViewFont()
const
700 return d->getFont(d->mBaseConfig.monthViewFontItem());
703QColor Prefs::monthGridBackgroundColor()
const
705 return d->getColor(d->mBaseConfig.monthGridBackgroundColorItem());
708void Prefs::setMonthGridBackgroundColor(
const QColor &color)
710 d->setColor(d->mBaseConfig.monthGridBackgroundColorItem(), color);
713QColor Prefs::monthGridWorkHoursBackgroundColor()
const
715 return d->getColor(d->mBaseConfig.monthGridWorkHoursBackgroundColorItem());
718void Prefs::monthGridWorkHoursBackgroundColor(
const QColor &color)
720 d->setColor(d->mBaseConfig.monthGridWorkHoursBackgroundColorItem(), color);
723int Prefs::monthViewColors()
const
725 return d->getInt(d->mBaseConfig.monthViewColorsItem());
728void Prefs::setMonthViewColors(
int colors)
const
730 d->setInt(d->mBaseConfig.monthViewColorsItem(), colors);
733void Prefs::setEnableMonthItemIcons(
bool enable)
735 d->setBool(d->mBaseConfig.enableMonthItemIconsItem(), enable);
738bool Prefs::enableMonthItemIcons()
const
740 return d->getBool(d->mBaseConfig.enableMonthItemIconsItem());
743bool Prefs::showTimeInMonthView()
const
745 return d->getBool(d->mBaseConfig.showTimeInMonthViewItem());
748void Prefs::setShowTimeInMonthView(
bool show)
750 d->setBool(d->mBaseConfig.showTimeInMonthViewItem(), show);
753bool Prefs::showTodosMonthView()
const
755 return d->getBool(d->mBaseConfig.showTodosMonthViewItem());
758void Prefs::setShowTodosMonthView(
bool enable)
760 d->setBool(d->mBaseConfig.showTodosMonthViewItem(), enable);
763bool Prefs::showJournalsMonthView()
const
765 return d->getBool(d->mBaseConfig.showJournalsMonthViewItem());
768void Prefs::setShowJournalsMonthView(
bool enable)
770 d->setBool(d->mBaseConfig.showJournalsMonthViewItem(), enable);
773bool Prefs::fullViewMonth()
const
775 return d->getBool(d->mBaseConfig.fullViewMonthItem());
778void Prefs::setFullViewMonth(
bool fullView)
780 d->setBool(d->mBaseConfig.fullViewMonthItem(), fullView);
783bool Prefs::sortCompletedTodosSeparately()
const
785 return d->getBool(d->mBaseConfig.sortCompletedTodosSeparatelyItem());
788void Prefs::setSortCompletedTodosSeparately(
bool enable)
790 d->setBool(d->mBaseConfig.sortCompletedTodosSeparatelyItem(), enable);
793void Prefs::setEnableToolTips(
bool enable)
795 d->setBool(d->mBaseConfig.enableToolTipsItem(), enable);
798bool Prefs::enableToolTips()
const
800 return d->getBool(d->mBaseConfig.enableToolTipsItem());
803void Prefs::setShowTodosAgendaView(
bool show)
805 d->setBool(d->mBaseConfig.showTodosAgendaViewItem(), show);
808bool Prefs::showTodosAgendaView()
const
810 return d->getBool(d->mBaseConfig.showTodosAgendaViewItem());
813void Prefs::setAgendaTimeLabelsFont(
const QFont &font)
815 d->setFont(d->mBaseConfig.agendaTimeLabelsFontItem(), font);
818QFont Prefs::agendaTimeLabelsFont()
const
820 return d->getFont(d->mBaseConfig.agendaTimeLabelsFontItem());
823QTimeZone Prefs::timeZone()
const
828bool Prefs::colorAgendaBusyDays()
const
830 return d->getBool(d->mBaseConfig.colorBusyDaysEnabledItem());
833bool Prefs::colorMonthBusyDays()
const
835 return d->getBool(d->mBaseConfig.colorMonthBusyDaysEnabledItem());
838QColor Prefs::viewBgBusyColor()
const
840 return d->getColor(d->mBaseConfig.viewBgBusyColorItem());
843void Prefs::setViewBgBusyColor(
const QColor &color)
845 d->mBaseConfig.mViewBgBusyColor = color;
848QColor Prefs::holidayColor()
const
850 return d->getColor(d->mBaseConfig.holidayColorItem());
853void Prefs::setHolidayColor(
const QColor &color)
855 d->mBaseConfig.mHolidayColor = color;
858QColor Prefs::agendaViewBackgroundColor()
const
860 return d->getColor(d->mBaseConfig.agendaBgColorItem());
863void Prefs::setAgendaViewBackgroundColor(
const QColor &color)
865 d->mBaseConfig.mAgendaBgColor = color;
868QColor Prefs::workingHoursColor()
const
870 return d->getColor(d->mBaseConfig.workingHoursColorItem());
873void Prefs::setWorkingHoursColor(
const QColor &color)
875 d->mBaseConfig.mWorkingHoursColor = color;
878QColor Prefs::todoDueTodayColor()
const
880 return d->getColor(d->mBaseConfig.todoDueTodayColorItem());
883void Prefs::setTodoDueTodayColor(
const QColor &color)
885 d->mBaseConfig.mTodoDueTodayColor = color;
888QColor Prefs::todoOverdueColor()
const
890 return d->getColor(d->mBaseConfig.todoOverdueColorItem());
893void Prefs::setTodoOverdueColor(
const QColor &color)
895 d->mBaseConfig.mTodoOverdueColor = color;
898void Prefs::setColorAgendaBusyDays(
bool enable)
900 d->mBaseConfig.mColorBusyDaysEnabled = enable;
903void Prefs::setColorMonthBusyDays(
bool enable)
905 d->mBaseConfig.mColorMonthBusyDaysEnabled = enable;
908void Prefs::setResourceColor(
const QString &cal,
const QColor &color)
910 d->mBaseConfig.setResourceColor(cal, color);
913QColor Prefs::resourceColorKnown(
const QString &cal)
const
917 color = d->mBaseConfig.mResourceColors.
value(cal);
922QColor Prefs::resourceColor(
const QString &cal)
925 return d->mBaseConfig.mDefaultResourceColor;
928 QColor color = resourceColorKnown(cal);
931 if (!color.
isValid() && d->getBool(d->mBaseConfig.assignDefaultResourceColorsItem())) {
932 color.
setRgb(0x37, 0x7A, 0xBC);
933 const int seed = d->getInt(d->mBaseConfig.defaultResourceColorSeedItem());
934 const QStringList colors = d->getStringList(d->mBaseConfig.defaultResourceColorsItem());
935 if (seed > 0 && seed - 1 < colors.
size()) {
940 d->setInt(d->mBaseConfig.defaultResourceColorSeedItem(), (seed + 1));
941 d->mBaseConfig.setResourceColor(cal, color);
946 return d->mBaseConfig.mDefaultResourceColor;
950QStringList Prefs::timeScaleTimezones()
const
952 return d->mBaseConfig.timeScaleTimezones();
955void Prefs::setTimeScaleTimezones(
const QStringList &list)
957 d->mBaseConfig.setTimeScaleTimezones(list);
960KConfigSkeleton::ItemFont *Prefs::fontItem(
const QString &name)
const
962 KConfigSkeletonItem *item = d->mAppConfig ? d->mAppConfig->findItem(name) :
nullptr;
965 item = d->mBaseConfig.findItem(name);
968 return dynamic_cast<KConfigSkeleton::ItemFont *
>(item);
971QStringList Prefs::selectedPlugins()
const
973 return d->mBaseConfig.mSelectedPlugins;
976QStringList Prefs::decorationsAtAgendaViewTop()
const
978 return d->mBaseConfig.decorationsAtAgendaViewTop();
981QStringList Prefs::decorationsAtAgendaViewBottom()
const
983 return d->mBaseConfig.decorationsAtAgendaViewBottom();
986void Prefs::setSelectedPlugins(
const QStringList &plugins)
988 d->mBaseConfig.setSelectedPlugins(plugins);
991void Prefs::setDecorationsAtAgendaViewTop(
const QStringList &decorations)
993 d->mBaseConfig.setDecorationsAtAgendaViewTop(decorations);
996void Prefs::setDecorationsAtAgendaViewBottom(
const QStringList &decorations)
998 d->mBaseConfig.setDecorationsAtAgendaViewBottom(decorations);
1001QSet<EventViews::EventView::ItemIcon> Prefs::agendaViewIcons()
const
1003 return d->mBaseConfig.mAgendaViewIcons;
1006void Prefs::setAgendaViewIcons(
const QSet<EventViews::EventView::ItemIcon> &icons)
1008 d->mBaseConfig.mAgendaViewIcons = icons;
1011QSet<EventViews::EventView::ItemIcon> Prefs::monthViewIcons()
const
1013 return d->mBaseConfig.mMonthViewIcons;
1016void Prefs::setMonthViewIcons(
const QSet<EventViews::EventView::ItemIcon> &icons)
1018 d->mBaseConfig.mMonthViewIcons = icons;
1021void Prefs::setFlatListTodo(
bool enable)
1023 d->mBaseConfig.mFlatListTodo = enable;
1026bool Prefs::flatListTodo()
const
1028 return d->mBaseConfig.mFlatListTodo;
1031void Prefs::setFullViewTodo(
bool enable)
1033 d->mBaseConfig.mFullViewTodo = enable;
1036bool Prefs::fullViewTodo()
const
1038 return d->mBaseConfig.mFullViewTodo;
1041bool Prefs::enableTodoQuickSearch()
const
1043 return d->mBaseConfig.mEnableTodoQuickSearch;
1046void Prefs::setEnableTodoQuickSearch(
bool enable)
1048 d->mBaseConfig.mEnableTodoQuickSearch = enable;
1051bool Prefs::enableQuickTodo()
const
1053 return d->mBaseConfig.mEnableQuickTodo;
1056void Prefs::setEnableQuickTodo(
bool enable)
1058 d->mBaseConfig.mEnableQuickTodo = enable;
1061bool Prefs::highlightTodos()
const
1063 return d->mBaseConfig.mHighlightTodos;
1066void Prefs::setHighlightTodos(
bool highlight)
1068 d->mBaseConfig.mHighlightTodos = highlight;
1071KConfig *Prefs::config()
const
1073 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()