widgets/designerplugins.h

Wed, 20 Jul 2022 12:59:07 +0300

author
Teemu Piippo <teemu.s.piippo@gmail.com>
date
Wed, 20 Jul 2022 12:59:07 +0300
changeset 335
c5830bce1c23
parent 269
593545977c5e
child 349
673b8dffbe14
permissions
-rw-r--r--

Fix crashing
Add option to set tool button style

#pragma once
#include <QObject>
#include <QDesignerCustomWidgetInterface>

class PluginCollection final : public QObject, public QDesignerCustomWidgetCollectionInterface
{
	Q_OBJECT
	Q_PLUGIN_METADATA(IID "org.qgis.customwidgets")
	Q_INTERFACES(QDesignerCustomWidgetCollectionInterface)
	// QDesignerCustomWidgetCollectionInterface interface
	QList<QDesignerCustomWidgetInterface*> interfaces;
public:
	PluginCollection(QObject* parent = nullptr);
	QList<QDesignerCustomWidgetInterface*> customWidgets() const override;
};

class Vec3EditorPlugin final : public QObject, public QDesignerCustomWidgetInterface
{
	Q_OBJECT
	Q_INTERFACES(QDesignerCustomWidgetInterface)
	// QDesignerCustomWidgetInterface interface
public:
	Vec3EditorPlugin(QObject* parent) : QObject{parent}{}
	QString name() const override;
	QString group() const override;
	QString toolTip() const override;
	QString whatsThis() const override;
	QString includeFile() const override;
	QIcon icon() const override;
	bool isContainer() const override;
	QWidget* createWidget(QWidget* parent) override;
};

class MatrixEditorPlugin final : public QObject, public QDesignerCustomWidgetInterface
{
	Q_OBJECT
	Q_INTERFACES(QDesignerCustomWidgetInterface)
	// QDesignerCustomWidgetInterface interface
public:
	MatrixEditorPlugin(QObject* parent) : QObject{parent}{}
	QString name() const override;
	QString group() const override;
	QString toolTip() const override;
	QString whatsThis() const override;
	QString includeFile() const override;
	QIcon icon() const override;
	bool isContainer() const override;
	QWidget* createWidget(QWidget* parent) override;
};

class ColorButtonPlugin final : public QObject, public QDesignerCustomWidgetInterface
{
	Q_OBJECT
	Q_INTERFACES(QDesignerCustomWidgetInterface)
public:
	ColorButtonPlugin(QObject* parent) : QObject{parent}{}
	// QDesignerCustomWidgetInterface interface
	QString name() const override;
	QString group() const override;
	QString toolTip() const override;
	QString whatsThis() const override;
	QString includeFile() const override;
	QIcon icon() const override;
	bool isContainer() const override;
	QWidget* createWidget(QWidget* parent) override;
};

mercurial