1 /* 2 transferimage.h 3 4 This file is part of GammaRay, the Qt application inspection and 5 manipulation tool. 6 7 Copyright (C) 2014-2021 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com 8 Author: Volker Krause <volker.krause@kdab.com> 9 10 Licensees holding valid commercial KDAB GammaRay licenses may use this file in 11 accordance with GammaRay Commercial License Agreement provided with the Software. 12 13 Contact info@kdab.com if any conditions of this licensing are not clear to you. 14 15 This program is free software; you can redistribute it and/or modify 16 it under the terms of the GNU General Public License as published by 17 the Free Software Foundation, either version 2 of the License, or 18 (at your option) any later version. 19 20 This program is distributed in the hope that it will be useful, 21 but WITHOUT ANY WARRANTY; without even the implied warranty of 22 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 GNU General Public License for more details. 24 25 You should have received a copy of the GNU General Public License 26 along with this program. If not, see <http://www.gnu.org/licenses/>. 27 */ 28 29 #ifndef GAMMARAY_TRANSFERIMAGE_H 30 #define GAMMARAY_TRANSFERIMAGE_H 31 32 #include <QDataStream> 33 #include <QImage> 34 #include <QVariant> 35 36 namespace GammaRay { 37 /** Wrapper class for a QImage to allow raw data transfer over a QDataStream, bypassing the usuale PNG encoding. */ 38 class TransferImage 39 { 40 public: 41 TransferImage() = default; 42 explicit TransferImage(const QImage &image); 43 44 const QImage &image() const; 45 void setImage(const QImage &image); 46 47 QTransform transform() const; 48 void setTransform(const QTransform &transform); 49 50 enum Format { 51 QImageFormat, 52 RawFormat 53 }; 54 55 private: 56 QImage m_image; 57 QTransform m_transform; 58 }; 59 60 QDataStream &operator<<(QDataStream &stream, const GammaRay::TransferImage &image); 61 QDataStream &operator>>(QDataStream &stream, GammaRay::TransferImage &image); 62 } 63 64 Q_DECLARE_METATYPE(GammaRay::TransferImage) 65 66 #endif // GAMMARAY_TRANSFERIMAGE_H 67