File indexing completed on 2024-04-28 05:11:30
0001 /* 0002 SPDX-FileCopyrightText: 2003 Cornelius Schumacher <schumacher@kde.org> 0003 SPDX-FileCopyrightText: 2005 Reinhold Kainhofer <reinhold@kainhofer.com> 0004 SPDX-FileCopyrightText: 2005 Rafal Rzepecki <divide@users.sourceforge.net> 0005 SPDX-FileCopyrightText: 2010 Bertjan Broeksema <broeksema@kde.org> 0006 SPDX-FileCopyrightText: 2010 Klaralvdalens Datakonsult AB, a KDAB Group company <info@kdab.net> 0007 0008 SPDX-License-Identifier: GPL-2.0-or-later WITH Qt-Commercial-exception-1.0 0009 0010 NOTE: May, 2010. Extracted this code from 0011 kdepim/incidenceeditors/editorattachments.{h,cpp} 0012 */ 0013 0014 #pragma once 0015 0016 #include <KCalendarCore/Attachment> 0017 0018 #include <QMimeType> 0019 #include <QUrl> 0020 0021 #include <QListWidget> 0022 0023 namespace IncidenceEditorNG 0024 { 0025 class AttachmentIconView : public QListWidget 0026 { 0027 Q_OBJECT 0028 friend class EditorAttachments; 0029 0030 public: 0031 explicit AttachmentIconView(QWidget *parent = nullptr); 0032 0033 [[nodiscard]] QMimeData *mimeData() const; 0034 0035 protected: 0036 QMimeData *mimeData(const QList<QListWidgetItem *> &items) const override; 0037 void startDrag(Qt::DropActions supportedActions) override; 0038 void keyPressEvent(QKeyEvent *event) override; 0039 }; 0040 0041 class AttachmentIconItem : public QListWidgetItem 0042 { 0043 public: 0044 AttachmentIconItem(const KCalendarCore::Attachment &att, QListWidget *parent); 0045 ~AttachmentIconItem() override; 0046 0047 [[nodiscard]] KCalendarCore::Attachment attachment() const; 0048 [[nodiscard]] const QString uri() const; 0049 [[nodiscard]] const QString savedUri() const; 0050 void setUri(const QString &uri); 0051 0052 using QListWidgetItem::setData; 0053 0054 void setData(const QByteArray &data); 0055 0056 [[nodiscard]] const QString mimeType() const; 0057 void setMimeType(const QString &mime); 0058 0059 [[nodiscard]] const QString label() const; 0060 void setLabel(const QString &description); 0061 0062 [[nodiscard]] bool isBinary() const; 0063 0064 static QPixmap icon(const QMimeType &mimeType, const QString &uri, bool binary = false); 0065 [[nodiscard]] QPixmap icon() const; 0066 0067 void readAttachment(); 0068 0069 [[nodiscard]] QUrl tempFileForAttachment(); 0070 0071 private: 0072 KCalendarCore::Attachment mAttachment; 0073 QString mSaveUri; 0074 QUrl mTempFile; 0075 }; 0076 }