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 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
/*
SPDX-FileCopyrightText: 2015-2025 Laurent Montel <montel@kde.org>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "viewerplugincreateeventinterface.h"
#include "createeventjob.h"
#include "eventedit.h"
#include <KLocalizedString>
#include <KActionCollection>
#include <QAction>
#include <QIcon>
#include <QLayout>
using namespace MessageViewer;
ViewerPluginCreateEventInterface::ViewerPluginCreateEventInterface(KActionCollection *ac, QWidget *parent)
: ViewerPluginInterface(parent)
{
createAction(ac);
}
ViewerPluginCreateEventInterface::~ViewerPluginCreateEventInterface() = default;
ViewerPluginInterface::SpecificFeatureTypes ViewerPluginCreateEventInterface::featureTypes() const
{
return ViewerPluginInterface::NeedMessage;
}
void ViewerPluginCreateEventInterface::setText(const QString &text)
{
Q_UNUSED(text)
// Nothing
}
QList<QAction *> ViewerPluginCreateEventInterface::actions() const
{
return mAction;
}
void ViewerPluginCreateEventInterface::setMessage(const KMime::Message::Ptr &value)
{
widget()->setMessage(value);
}
void ViewerPluginCreateEventInterface::closePlugin()
{
if (mEventEdit) {
mEventEdit->slotCloseWidget();
}
}
void ViewerPluginCreateEventInterface::showWidget()
{
widget()->showEventEdit();
}
void ViewerPluginCreateEventInterface::setMessageItem(const Akonadi::Item &item)
{
mMessageItem = item;
}
void ViewerPluginCreateEventInterface::createAction(KActionCollection *ac)
{
if (ac) {
auto act = new QAction(QIcon::fromTheme(QStringLiteral("appointment-new")), i18n("Create Event…"), this);
act->setIconText(i18n("Create Event"));
addHelpTextAction(act, i18n("Allows you to create a calendar Event"));
ac->addAction(QStringLiteral("create_event"), act);
ac->setDefaultShortcut(act, QKeySequence(Qt::CTRL | Qt::Key_E));
connect(act, &QAction::triggered, this, &ViewerPluginCreateEventInterface::slotActivatePlugin);
mAction.append(act);
}
}
EventEdit *ViewerPluginCreateEventInterface::widget()
{
if (!mEventEdit) {
auto parentWidget = static_cast<QWidget *>(parent());
mEventEdit = new EventEdit(parentWidget);
connect(mEventEdit, &EventEdit::createEvent, this, &ViewerPluginCreateEventInterface::slotCreateEvent);
mEventEdit->setObjectName(QLatin1StringView("eventedit"));
parentWidget->layout()->addWidget(mEventEdit);
mEventEdit->hide();
}
return mEventEdit;
}
void ViewerPluginCreateEventInterface::slotCreateEvent(const KCalendarCore::Event::Ptr &eventPtr, const Akonadi::Collection &collection)
{
auto createJob = new CreateEventJob(eventPtr, collection, mMessageItem, this);
createJob->start();
}
#include "moc_viewerplugincreateeventinterface.cpp"
|