1 /* 2 paintanalyzerinterface.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_PAINTANALYZERINTERFACE_H 30 #define GAMMARAY_PAINTANALYZERINTERFACE_H 31 32 #include "gammaray_common_export.h" 33 34 #include <QDataStream> 35 #include <QMetaType> 36 #include <QObject> 37 #include <QPainterPath> 38 39 QT_BEGIN_NAMESPACE 40 class QImage; 41 QT_END_NAMESPACE 42 43 namespace GammaRay { 44 45 /** Communication interface for GammaRay::PaintAnalyzer. */ 46 class GAMMARAY_COMMON_EXPORT PaintAnalyzerInterface : public QObject 47 { 48 Q_OBJECT 49 Q_PROPERTY(bool hasArgumentDetails READ hasArgumentDetails WRITE setHasArgumentDetails NOTIFY hasArgumentDetailsChanged) 50 Q_PROPERTY(bool hasStackTrace READ hasStackTrace WRITE setHasStackTrace NOTIFY hasStackTraceChanged) 51 public: 52 explicit PaintAnalyzerInterface(const QString &name, QObject *parent = nullptr); 53 QString name() const; 54 55 bool hasArgumentDetails() const; 56 void setHasArgumentDetails(bool hasDetails); 57 58 bool hasStackTrace() const; 59 void setHasStackTrace(bool hasStackTrace); 60 61 Q_SIGNALS: 62 void hasArgumentDetailsChanged(bool); 63 void hasStackTraceChanged(bool); 64 65 private: 66 QString m_name; 67 bool m_hasArgumentDetails; 68 bool m_hasStackTrace; 69 }; 70 71 struct PaintAnalyzerFrameData 72 { 73 QPainterPath clipPath; 74 }; 75 76 QDataStream &operator<<(QDataStream &stream, const GammaRay::PaintAnalyzerFrameData &data); 77 QDataStream &operator>>(QDataStream &stream, GammaRay::PaintAnalyzerFrameData &data); 78 } 79 80 Q_DECLARE_METATYPE(GammaRay::PaintAnalyzerFrameData) 81 QT_BEGIN_NAMESPACE 82 Q_DECLARE_INTERFACE(GammaRay::PaintAnalyzerInterface, "com.kdab.GammaRay.PaintAnalyzer/1.0") 83 QT_END_NAMESPACE 84 85 #endif // GAMMARAY_PAINTANALYZERINTERFACE_H 86