1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
/*
SPDX-FileCopyrightText: 2014-2025 Laurent Montel <montel@kde.org>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#pragma once
#include <QWidget>
#include <Akonadi/Collection>
#include <KCalendarCore/Event>
#include <KMime/Message>
class QLineEdit;
class QPushButton;
namespace Akonadi
{
class CollectionComboBox;
}
namespace MessageViewer
{
class EventDateTimeWidget;
class EventEdit : public QWidget
{
Q_OBJECT
public:
explicit EventEdit(QWidget *parent = nullptr);
~EventEdit() override;
[[nodiscard]] Akonadi::Collection collection() const;
void setCollection(const Akonadi::Collection &value);
[[nodiscard]] KMime::Message::Ptr message() const;
void setMessage(const KMime::Message::Ptr &value);
void writeConfig();
void showEventEdit();
public Q_SLOTS:
void slotCloseWidget();
Q_SIGNALS:
void createEvent(const KCalendarCore::Event::Ptr &event, const Akonadi::Collection &collection);
void collectionChanged(const Akonadi::Collection &col);
void messageChanged(const KMime::Message::Ptr &msg);
protected:
bool eventFilter(QObject *object, QEvent *e) override;
private:
void slotReturnPressed();
void slotCollectionChanged(int);
void slotOpenEditor();
void slotStartDateTimeChanged(const QDateTime &newDateTime);
void slotUpdateButtons(const QString &subject);
void slotEndDateTimeChanged(const QDateTime &newDateTime);
[[nodiscard]] KCalendarCore::Event::Ptr createEventItem();
void readConfig();
void comboboxRowInserted();
Akonadi::Collection mCollection;
KMime::Message::Ptr mMessage;
QLineEdit *const mEventEdit;
Akonadi::CollectionComboBox *mCollectionCombobox = nullptr;
EventDateTimeWidget *const mStartDateTimeEdit;
EventDateTimeWidget *const mEndDateTimeEdit;
QPushButton *const mSaveButton;
QPushButton *const mOpenEditorButton;
};
}
|