File indexing completed on 2024-04-28 16:54:24

0001 /*
0002     SPDX-FileCopyrightText: 2004 Esben Mose Hansen <kde@mosehansen.dk>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "historyitem.h"
0010 
0011 /**
0012  * A image entry in the clipboard history.
0013  */
0014 class HistoryImageItem : public HistoryItem
0015 {
0016 public:
0017     explicit HistoryImageItem(const QImage &data);
0018     ~HistoryImageItem() override
0019     {
0020     }
0021 
0022     HistoryItemType type() const override
0023     {
0024         return HistoryItemType::Image;
0025     }
0026 
0027     QString text() const override;
0028     bool operator==(const HistoryItem &rhs) const override
0029     {
0030         if (const HistoryImageItem *casted_rhs = dynamic_cast<const HistoryImageItem *>(&rhs)) {
0031             return &casted_rhs->m_data == &m_data; // Not perfect, but better than nothing.
0032         }
0033         return false;
0034     }
0035     QPixmap image() const override;
0036     QMimeData *mimeData() const override;
0037 
0038     void write(QDataStream &stream) const override;
0039 
0040 private:
0041     /**
0042      *
0043      */
0044     const QImage m_data;
0045     /**
0046      * Cache for m_data's string representation
0047      */
0048     mutable QString m_text;
0049 };