1 /* 2 remoteviewframe.h 3 4 This file is part of GammaRay, the Qt application inspection and 5 manipulation tool. 6 7 Copyright (C) 2015-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_REMOTEVIEWFRAME_H 30 #define GAMMARAY_REMOTEVIEWFRAME_H 31 32 #include "gammaray_common_export.h" 33 #include "transferimage.h" 34 35 #include <QDataStream> 36 #include <QImage> 37 #include <QMetaType> 38 #include <QVariant> 39 40 namespace GammaRay { 41 class RemoteViewFrame; 42 43 QDataStream &operator<<(QDataStream &stream, const GammaRay::RemoteViewFrame &frame); 44 QDataStream &operator>>(QDataStream &stream, GammaRay::RemoteViewFrame &frame); 45 46 /** Data of a single frame displayed in the RemoteViewWidget. */ 47 class GAMMARAY_COMMON_EXPORT RemoteViewFrame 48 { 49 public: 50 RemoteViewFrame() = default; 51 ~RemoteViewFrame(); 52 53 bool isValid() const; 54 55 /// the visible area on screen 56 QRectF viewRect() const; 57 void setViewRect(const QRectF &viewRect); 58 /// the internal scene might expand beyond the visible view area 59 QRectF sceneRect() const; 60 void setSceneRect(const QRectF &sceneRect); 61 62 QImage image() const; 63 QTransform transform() const; 64 void setImage(const QImage &image); 65 void setImage(const QImage &image, const QTransform &transform); 66 67 /// tool specific frame data 68 QVariant data() const; 69 void setData(const QVariant &data); 70 71 private: 72 friend QDataStream &operator<<(QDataStream &stream, const RemoteViewFrame &frame); 73 friend QDataStream &operator>>(QDataStream &stream, RemoteViewFrame &frame); 74 TransferImage m_image; 75 QVariant m_data; 76 QRectF m_viewRect; 77 QRectF m_sceneRect; 78 }; 79 } 80 81 Q_DECLARE_METATYPE(GammaRay::RemoteViewFrame) 82 83 #endif // GAMMARAY_REMOTEVIEWFRAME_H 84