File indexing completed on 2024-06-23 05:18:31

0001 /*
0002   SPDX-FileCopyrightText: 2015-2024 Laurent Montel <montel@kde.org>
0003 
0004   SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "attachmentclipboardjob.h"
0008 #include <KLocalizedString>
0009 #include <QApplication>
0010 #include <QClipboard>
0011 #include <QInputDialog>
0012 
0013 using namespace MessageComposer;
0014 
0015 AttachmentClipBoardJob::AttachmentClipBoardJob(QObject *parent)
0016     : MessageCore::AttachmentLoadJob(parent)
0017 {
0018 }
0019 
0020 AttachmentClipBoardJob::~AttachmentClipBoardJob() = default;
0021 
0022 void AttachmentClipBoardJob::addAttachment(const QByteArray &data, const QString &attachmentName)
0023 {
0024     MessageCore::AttachmentPart::Ptr attachment = MessageCore::AttachmentPart::Ptr(new MessageCore::AttachmentPart());
0025     if (!data.isEmpty()) {
0026         attachment->setName(attachmentName);
0027         attachment->setFileName(attachmentName);
0028         attachment->setData(data);
0029         attachment->setMimeType("text/plain");
0030         // TODO what about the other fields?
0031     }
0032     setAttachmentPart(attachment);
0033     emitResult(); // Success.
0034 }
0035 
0036 void AttachmentClipBoardJob::doStart()
0037 {
0038     QClipboard *clip = QApplication::clipboard();
0039     const QString clipText = clip->text();
0040     if (clipText.isEmpty()) {
0041         setError(KJob::UserDefinedError);
0042         setErrorText(i18n("No text found in Clipboard"));
0043         emitResult();
0044     } else {
0045         bool ok = false;
0046         QString attachmentName = QInputDialog::getText(nullptr, i18n("Define Attachment Name"), i18n("Attachment Name:"), {}, {}, &ok);
0047         if (ok) {
0048             if (attachmentName.isEmpty()) {
0049                 attachmentName = i18n("Clipboard Text");
0050             }
0051             addAttachment(clipText.toUtf8(), attachmentName);
0052         }
0053     }
0054 }
0055 
0056 #include "moc_attachmentclipboardjob.cpp"