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"