File indexing completed on 2024-05-26 05:23:03
0001 /* 0002 This file is part of KOrganizer. 0003 0004 SPDX-FileCopyrightText: 2011 Sérgio Martins <iamsergio@gmail.com> 0005 0006 SPDX-License-Identifier: LGPL-2.0-or-later 0007 */ 0008 0009 #include "kitemiconcheckcombo.h" 0010 0011 #include <KLocalizedString> 0012 0013 KItemIconCheckCombo::KItemIconCheckCombo(ViewType viewType, QWidget *parent) 0014 : KPIM::KCheckComboBox(parent) 0015 { 0016 addItem(i18n("Calendar's custom icon")); 0017 addItem(QIcon::fromTheme(QStringLiteral("view-calendar-tasks")), i18n("To-do")); 0018 addItem(QIcon::fromTheme(QStringLiteral("view-pim-journal")), i18n("Journal")); 0019 addItem(QIcon::fromTheme(QStringLiteral("appointment-recurring")), i18n("Recurring")); 0020 addItem(QIcon::fromTheme(QStringLiteral("appointment-reminder")), i18n("Alarm")); 0021 addItem(QIcon::fromTheme(QStringLiteral("object-locked")), i18n("Read Only")); 0022 addItem(QIcon::fromTheme(QStringLiteral("mail-reply-sender")), i18n("Needs Reply")); 0023 addItem(QIcon::fromTheme(QStringLiteral("meeting-attending")), i18n("Attending")); 0024 addItem(QIcon::fromTheme(QStringLiteral("meeting-attending-tentative")), i18n("Maybe Attending")); 0025 addItem(QIcon::fromTheme(QStringLiteral("meeting-organizer")), i18n("Organizer")); 0026 0027 // Agenda view doesn't support journals yet 0028 setItemEnabled(EventViews::EventView::JournalIcon, viewType != AgendaType); 0029 setItemEnabled(EventViews::EventView::ReplyIcon, viewType == AgendaType); 0030 setItemEnabled(EventViews::EventView::AttendingIcon, viewType == AgendaType); 0031 setItemEnabled(EventViews::EventView::TentativeIcon, viewType == AgendaType); 0032 setItemEnabled(EventViews::EventView::OrganizerIcon, viewType == AgendaType); 0033 0034 setDefaultText(i18nc("@item:inlistbox", "Icons to use")); 0035 setAlwaysShowDefaultText(true); 0036 } 0037 0038 KItemIconCheckCombo::~KItemIconCheckCombo() = default; 0039 0040 void KItemIconCheckCombo::setCheckedIcons(const QSet<EventViews::EventView::ItemIcon> &icons) 0041 { 0042 const int itemCount = count(); 0043 for (int i = 0; i < itemCount; ++i) { 0044 if (itemEnabled(i)) { 0045 setItemCheckState(i, icons.contains(static_cast<EventViews::EventView::ItemIcon>(i)) ? Qt::Checked : Qt::Unchecked); 0046 } else { 0047 setItemCheckState(i, Qt::Unchecked); 0048 } 0049 } 0050 } 0051 0052 QSet<EventViews::EventView::ItemIcon> KItemIconCheckCombo::checkedIcons() const 0053 { 0054 QSet<EventViews::EventView::ItemIcon> icons; 0055 const int itemCount = count(); 0056 for (int i = 0; i < itemCount; ++i) { 0057 const QVariant value = itemCheckState(i); 0058 if (value.toBool()) { 0059 icons.insert(static_cast<EventViews::EventView::ItemIcon>(i)); 0060 } 0061 } 0062 return icons; 0063 } 0064 0065 #include "moc_kitemiconcheckcombo.cpp"