presentation/QuickEventMenu.cpp
| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | #include "QuickEventMenu.h" | ||
| 2 | |||
| 3 | #include <QApplication> | ||
| 4 | #include <QIcon> | ||
| 5 | #include <QMenu> | ||
| 6 | #include <QPointer> | ||
| 7 | #include <QWindow> | ||
| 8 | |||
| 9 | 3 | bool QuickEventMenu::show(const QString &requester, const QVariantMap &occurrence, QObject *window, | |
| 10 | qreal sceneX, qreal sceneY, bool writable, bool full) { | ||
| 11 | 3 | auto *quickWindow = qobject_cast<QWindow *>(window); | |
| 12 |
4/7✓ Branch 3 → 4 taken 3 times.
✗ Branch 3 → 15 not taken.
✓ Branch 5 → 6 taken 3 times.
✓ Branch 6 → 7 taken 3 times.
✗ Branch 6 → 15 not taken.
✗ Branch 14 → 15 not taken.
✓ Branch 14 → 16 taken 3 times.
|
6 | if (!quickWindow || !qobject_cast<QApplication *>(QCoreApplication::instance()) || |
| 13 |
8/24✓ Branch 11 → 12 taken 3 times.
✓ Branch 12 → 13 taken 3 times.
✓ Branch 17 → 18 taken 3 times.
✗ Branch 17 → 19 not taken.
✓ Branch 19 → 20 taken 3 times.
✗ Branch 19 → 21 not taken.
✓ Branch 21 → 22 taken 3 times.
✗ Branch 21 → 23 not taken.
✓ Branch 23 → 24 taken 3 times.
✗ Branch 23 → 25 not taken.
✓ Branch 25 → 26 taken 3 times.
✗ Branch 25 → 27 not taken.
✗ Branch 27 → 28 not taken.
✓ Branch 27 → 29 taken 3 times.
✗ Branch 202 → 203 not taken.
✗ Branch 202 → 204 not taken.
✗ Branch 206 → 207 not taken.
✗ Branch 206 → 208 not taken.
✗ Branch 210 → 211 not taken.
✗ Branch 210 → 212 not taken.
✗ Branch 214 → 215 not taken.
✗ Branch 214 → 216 not taken.
✗ Branch 218 → 219 not taken.
✗ Branch 218 → 220 not taken.
|
9 | occurrence.value(QStringLiteral("uid")).toString().isEmpty()) |
| 14 | ✗ | return false; | |
| 15 |
3/6✓ Branch 29 → 30 taken 3 times.
✓ Branch 30 → 31 taken 3 times.
✗ Branch 31 → 32 not taken.
✓ Branch 31 → 33 taken 3 times.
✗ Branch 222 → 223 not taken.
✗ Branch 222 → 224 not taken.
|
3 | auto *menu = new QMenu; |
| 16 |
1/1✓ Branch 33 → 34 taken 3 times.
|
3 | menu->setAttribute(Qt::WA_DeleteOnClose); |
| 17 |
1/1✓ Branch 37 → 38 taken 3 times.
|
6 | menu->setObjectName(QStringLiteral("nativeEventMenu")); |
| 18 |
1/1✓ Branch 40 → 41 taken 3 times.
|
3 | const QPointer<QuickEventMenu> owner(this); |
| 19 | 25 | const auto add = [&](const QString &action, const QString &icon, const QString &label) { | |
| 20 |
2/2✓ Branch 2 → 3 taken 25 times.
✓ Branch 3 → 4 taken 25 times.
|
25 | auto *entry = menu->addAction(QIcon::fromTheme(icon), label); |
| 21 |
2/2✓ Branch 8 → 9 taken 25 times.
✓ Branch 9 → 10 taken 25 times.
|
50 | entry->setObjectName(QStringLiteral("eventMenu-") + action); |
| 22 |
1/7✓ Branch 17 → 18 taken 25 times.
✗ Branch 35 → 36 not taken.
✗ Branch 35 → 37 not taken.
✗ Branch 38 → 39 not taken.
✗ Branch 38 → 40 not taken.
✗ Branch 41 → 42 not taken.
✗ Branch 41 → 43 not taken.
|
25 | connect(entry, &QAction::triggered, this, [owner, requester, action, occurrence] { |
| 23 |
1/2✓ Branch 3 → 4 taken 2 times.
✗ Branch 3 → 6 not taken.
|
2 | if (owner) emit owner->actionRequested(requester, action, occurrence); |
| 24 | 2 | }); | |
| 25 | 25 | }; | |
| 26 | // Sprint 107 S107.5.8: a conflicting appointment offers the resolver first. | ||
| 27 |
3/4✓ Branch 45 → 46 taken 3 times.
✓ Branch 46 → 47 taken 3 times.
✗ Branch 51 → 52 not taken.
✓ Branch 51 → 66 taken 3 times.
|
6 | if (occurrence.value(QStringLiteral("conflict")).toBool()) { |
| 28 | ✗ | add(QStringLiteral("resolve"), QStringLiteral("dialog-warning"), tr("Resolve conflict…")); | |
| 29 | ✗ | menu->addSeparator(); | |
| 30 | } | ||
| 31 |
2/2✓ Branch 66 → 67 taken 2 times.
✓ Branch 66 → 98 taken 1 time.
|
3 | if (full) { |
| 32 |
3/5✓ Branch 67 → 68 taken 2 times.
✗ Branch 67 → 69 not taken.
✓ Branch 68 → 70 taken 2 times.
✗ Branch 69 → 70 not taken.
✓ Branch 76 → 77 taken 2 times.
|
6 | add(QStringLiteral("edit"), QStringLiteral("document-edit"), writable ? tr("Edit") : tr("Open")); |
| 33 |
3/4✓ Branch 82 → 83 taken 2 times.
✗ Branch 82 → 97 not taken.
✓ Branch 83 → 84 taken 2 times.
✓ Branch 90 → 91 taken 2 times.
|
6 | if (writable) add(QStringLiteral("delete"), QStringLiteral("edit-delete"), tr("Delete")); |
| 34 |
1/1✓ Branch 97 → 98 taken 2 times.
|
2 | menu->addSeparator(); |
| 35 | } | ||
| 36 |
1/2✓ Branch 98 → 99 taken 3 times.
✗ Branch 98 → 126 not taken.
|
3 | if (writable) { |
| 37 |
2/2✓ Branch 99 → 100 taken 3 times.
✓ Branch 106 → 107 taken 3 times.
|
9 | add(QStringLiteral("duplicate"), QStringLiteral("edit-copy"), tr("Duplicate")); |
| 38 |
2/2✓ Branch 112 → 113 taken 3 times.
✓ Branch 119 → 120 taken 3 times.
|
9 | add(QStringLiteral("move"), QStringLiteral("go-jump"), tr("Move to calendar…")); |
| 39 | } | ||
| 40 |
2/2✓ Branch 126 → 127 taken 3 times.
✓ Branch 133 → 134 taken 3 times.
|
9 | add(QStringLiteral("copy"), QStringLiteral("edit-copy"), tr("Copy as text")); |
| 41 | // Sprint 103 S103.3.5: a new contact met at this event (interaction.md §5.1). | ||
| 42 |
2/2✓ Branch 139 → 140 taken 3 times.
✓ Branch 146 → 147 taken 3 times.
|
9 | add(QStringLiteral("met"), QStringLiteral("contact-new"), tr("Met someone here…")); |
| 43 | // S93.5.3: handled by IcsImportDialog for every requester. | ||
| 44 |
2/2✓ Branch 152 → 153 taken 3 times.
✓ Branch 159 → 160 taken 3 times.
|
9 | add(QStringLiteral("export"), QStringLiteral("document-export"), tr("Export as file…")); |
| 45 |
2/2✓ Branch 165 → 166 taken 3 times.
✓ Branch 172 → 173 taken 3 times.
|
9 | add(QStringLiteral("mail"), QStringLiteral("mail-send"), tr("Send by mail…")); |
| 46 | // S93.5.6: a new message to everyone invited. | ||
| 47 |
2/2✓ Branch 178 → 179 taken 3 times.
✓ Branch 185 → 186 taken 3 times.
|
9 | add(QStringLiteral("attendees"), QStringLiteral("mail-message-new"), tr("Email attendees…")); |
| 48 | // Wayland popups need their transient parent (xdg_popup). | ||
| 49 |
1/1✓ Branch 191 → 192 taken 3 times.
|
3 | menu->winId(); |
| 50 |
3/4✓ Branch 192 → 193 taken 3 times.
✓ Branch 193 → 194 taken 3 times.
✗ Branch 193 → 195 not taken.
✓ Branch 194 → 195 taken 3 times.
|
3 | if (auto *handle = menu->windowHandle()) handle->setTransientParent(quickWindow); |
| 51 |
2/2✓ Branch 196 → 197 taken 3 times.
✓ Branch 198 → 199 taken 3 times.
|
3 | menu->popup(quickWindow->mapToGlobal(QPointF(sceneX, sceneY)).toPoint()); |
| 52 | 3 | return true; | |
| 53 | 3 | } | |
| 54 |