Incidenceeditor

attendeeline.h
1/*
2 SPDX-FileCopyrightText: 2010 Casey Link <unnamedrambler@gmail.com>
3 SPDX-FileCopyrightText: 2009-2010 Klaralvdalens Datakonsult AB, a KDAB Group company <info@kdab.net>
4
5 SPDX-License-Identifier: LGPL-2.0-or-later
6*/
7
8#pragma once
9
10#include <Libkdepim/MultiplyingLine>
11#include <PimCommonAkonadi/AddresseeLineEdit>
12
13#include <KCalendarCore/Attendee>
14
15#include <QCheckBox>
16#include <QToolButton>
17
18class QKeyEvent;
19
20namespace IncidenceEditorNG
21{
22class AttendeeData;
23
24class AttendeeComboBox : public QToolButton
25{
27public:
28 explicit AttendeeComboBox(QWidget *parent);
29
30 void addItem(const QIcon &icon, const QString &text);
31 void addItems(const QStringList &texts);
32
33 [[nodiscard]] int currentIndex() const;
34
36 void rightPressed();
37 void leftPressed();
38 void itemChanged();
39
40public Q_SLOTS:
41 /** Clears the combobox, removing all items. */
42 void clear();
43 void setCurrentIndex(int index);
44
45protected:
46 void keyPressEvent(QKeyEvent *ev) override;
47
48private:
49 void slotActionTriggered();
50 QMenu *mMenu = nullptr;
52 int mCurrentIndex = -1;
53};
54
55class AttendeeLineEdit : public PimCommon::AddresseeLineEdit
56{
57 Q_OBJECT
58public:
59 explicit AttendeeLineEdit(QWidget *parent);
60
61Q_SIGNALS:
62 void deleteMe();
63 void leftPressed();
64 void rightPressed();
65 void upPressed();
66 void downPressed();
67
68protected:
69 void keyPressEvent(QKeyEvent *ev) override;
70};
71
72class AttendeeLine : public KPIM::MultiplyingLine
73{
75public:
76 enum AttendeeActions { EventActions, TodoActions };
77
78 explicit AttendeeLine(QWidget *parent);
79 ~AttendeeLine() override = default;
80
81 void activate() override;
82 [[nodiscard]] bool isActive() const override;
83
84 [[nodiscard]] bool isEmpty() const override;
85 void clear() override;
86
87 [[nodiscard]] bool isModified() const override;
88 void clearModified() override;
89
90 KPIM::MultiplyingLineData::Ptr data() const override;
91 void setData(const KPIM::MultiplyingLineData::Ptr &data) override;
92
93 void fixTabOrder(QWidget *previous) override;
94 QWidget *tabOut() const override;
95
96 void setCompletionMode(KCompletion::CompletionMode) override;
97
98 int setColumnWidth(int w) override;
99
100 void aboutToBeDeleted() override;
101 bool canDeleteLineEdit() const override;
102
103 void setActions(AttendeeActions actions);
104
106 void changed();
108 void editingFinished(KPIM::MultiplyingLine *);
109
110private:
111 void slotTextChanged(const QString &);
112 void slotHandleChange();
113 void slotComboChanged();
114 void dataFromFields();
115 void fieldsFromData();
116
117 AttendeeComboBox *mRoleCombo = nullptr;
118 AttendeeComboBox *mStateCombo = nullptr;
119 AttendeeComboBox *mResponseCombo = nullptr;
120 AttendeeLineEdit *mEdit = nullptr;
122 QString mUid;
123 bool mModified;
124};
125}
Q_OBJECTQ_OBJECT
Q_SIGNALSQ_SIGNALS
Q_SLOTSQ_SLOTS
QObject * parent() const const
T qobject_cast(QObject *object)
QList< QAction * > actions() const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:19:37 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.