Changeset View
Changeset View
Standalone View
Standalone View
src/kontactplugin/korganizer/todosummarywidget.cpp
Show All 34 Lines | |||||
35 | #include <Akonadi/Calendar/IncidenceChanger> | 35 | #include <Akonadi/Calendar/IncidenceChanger> | ||
36 | 36 | | |||
37 | #include <KCalUtils/IncidenceFormatter> | 37 | #include <KCalUtils/IncidenceFormatter> | ||
38 | 38 | | |||
39 | #include <KontactInterface/Core> | 39 | #include <KontactInterface/Core> | ||
40 | 40 | | |||
41 | #include <KConfig> | 41 | #include <KConfig> | ||
42 | #include <KConfigGroup> | 42 | #include <KConfigGroup> | ||
43 | #include <KIconLoader> | | |||
44 | #include <KLocalizedString> | 43 | #include <KLocalizedString> | ||
45 | #include <QMenu> | 44 | #include <QMenu> | ||
46 | #include <KUrlLabel> | 45 | #include <KUrlLabel> | ||
47 | 46 | | |||
48 | #include <QGridLayout> | 47 | #include <QGridLayout> | ||
49 | #include <QLabel> | 48 | #include <QLabel> | ||
50 | #include <QTextDocument> // for Qt::mightBeRichText | 49 | #include <QTextDocument> // for Qt::mightBeRichText | ||
51 | #include <QVBoxLayout> | 50 | #include <QVBoxLayout> | ||
51 | #include <QStyle> | ||||
52 | 52 | | |||
53 | using namespace KCalUtils; | 53 | using namespace KCalUtils; | ||
54 | 54 | | |||
55 | TodoSummaryWidget::TodoSummaryWidget(TodoPlugin *plugin, QWidget *parent) | 55 | TodoSummaryWidget::TodoSummaryWidget(TodoPlugin *plugin, QWidget *parent) | ||
56 | : KontactInterface::Summary(parent) | 56 | : KontactInterface::Summary(parent) | ||
57 | , mPlugin(plugin) | 57 | , mPlugin(plugin) | ||
58 | { | 58 | { | ||
59 | QVBoxLayout *mainLayout = new QVBoxLayout(this); | 59 | QVBoxLayout *mainLayout = new QVBoxLayout(this); | ||
▲ Show 20 Lines • Show All 112 Lines • ▼ Show 20 Line(s) | 88 | { | |||
172 | // complete (100% completed) | 172 | // complete (100% completed) | ||
173 | // open-ended | 173 | // open-ended | ||
174 | // not-started (no start date and 0% completed) | 174 | // not-started (no start date and 0% completed) | ||
175 | 175 | | |||
176 | int counter = 0; | 176 | int counter = 0; | ||
177 | QLabel *label = nullptr; | 177 | QLabel *label = nullptr; | ||
178 | 178 | | |||
179 | if (!prList.isEmpty()) { | 179 | if (!prList.isEmpty()) { | ||
180 | KIconLoader loader(QStringLiteral("korganizer")); | 180 | QPixmap pm = QIcon::fromTheme(QStringLiteral("view-calendar-tasks")).pixmap(style()->pixelMetric(QStyle::PM_SmallIconSize)); | ||
181 | QPixmap pm = loader.loadIcon(QStringLiteral("view-calendar-tasks"), KIconLoader::Small); | | |||
182 | 181 | | |||
183 | QString str; | 182 | QString str; | ||
184 | 183 | | |||
185 | for (const KCalendarCore::Todo::Ptr &todo : qAsConst(prList)) { | 184 | for (const KCalendarCore::Todo::Ptr &todo : qAsConst(prList)) { | ||
186 | bool makeBold = false; | 185 | bool makeBold = false; | ||
187 | int daysTo = -1; | 186 | int daysTo = -1; | ||
188 | 187 | | |||
189 | // Optionally, show only my To-dos | 188 | // Optionally, show only my To-dos | ||
▲ Show 20 Lines • Show All 163 Lines • ▼ Show 20 Line(s) | 351 | { | |||
353 | KCalendarCore::Todo::Ptr todo = mCalendar->todo(uid); | 352 | KCalendarCore::Todo::Ptr todo = mCalendar->todo(uid); | ||
354 | if (!todo) { | 353 | if (!todo) { | ||
355 | return; | 354 | return; | ||
356 | } | 355 | } | ||
357 | Akonadi::Item item = mCalendar->item(uid); | 356 | Akonadi::Item item = mCalendar->item(uid); | ||
358 | QMenu popup(this); | 357 | QMenu popup(this); | ||
359 | QAction *editIt = popup.addAction(i18n("&Edit To-do...")); | 358 | QAction *editIt = popup.addAction(i18n("&Edit To-do...")); | ||
360 | QAction *delIt = popup.addAction(i18n("&Delete To-do")); | 359 | QAction *delIt = popup.addAction(i18n("&Delete To-do")); | ||
361 | delIt->setIcon(KIconLoader::global()->loadIcon(QStringLiteral( | 360 | delIt->setIcon(QIcon::fromTheme(QStringLiteral("edit-delete"))); | ||
362 | "edit-delete"), KIconLoader::Small)); | | |||
363 | 361 | | |||
364 | QAction *doneIt = nullptr; | 362 | QAction *doneIt = nullptr; | ||
365 | delIt->setEnabled(mCalendar->hasRight(item, Akonadi::Collection::CanDeleteItem)); | 363 | delIt->setEnabled(mCalendar->hasRight(item, Akonadi::Collection::CanDeleteItem)); | ||
366 | 364 | | |||
367 | if (!todo->isCompleted()) { | 365 | if (!todo->isCompleted()) { | ||
368 | doneIt = popup.addAction(i18n("&Mark To-do Completed")); | 366 | doneIt = popup.addAction(i18n("&Mark To-do Completed")); | ||
369 | doneIt->setIcon(KIconLoader::global()->loadIcon(QStringLiteral("task-complete"), | 367 | doneIt->setIcon(QIcon::fromTheme(QStringLiteral("task-complete"))); | ||
370 | KIconLoader::Small)); | | |||
371 | doneIt->setEnabled(mCalendar->hasRight(item, Akonadi::Collection::CanChangeItem)); | 368 | doneIt->setEnabled(mCalendar->hasRight(item, Akonadi::Collection::CanChangeItem)); | ||
372 | } | 369 | } | ||
373 | // TODO: add icons to the menu actions | 370 | // TODO: add icons to the menu actions | ||
374 | 371 | | |||
375 | const QAction *selectedAction = popup.exec(QCursor::pos()); | 372 | const QAction *selectedAction = popup.exec(QCursor::pos()); | ||
376 | if (selectedAction == editIt) { | 373 | if (selectedAction == editIt) { | ||
377 | viewTodo(uid); | 374 | viewTodo(uid); | ||
378 | } else if (selectedAction == delIt) { | 375 | } else if (selectedAction == delIt) { | ||
▲ Show 20 Lines • Show All 61 Lines • Show Last 20 Lines |