diff --git a/src/customwidgets/CMakeLists.txt b/src/customwidgets/CMakeLists.txt index 253a5615bc5..4aeb0f9b2e5 100644 --- a/src/customwidgets/CMakeLists.txt +++ b/src/customwidgets/CMakeLists.txt @@ -38,6 +38,7 @@ SET (QGIS_CUSTOMWIDGETS_SRCS qgsscalewidgetplugin.cpp qgsscrollareawidgetplugin.cpp qgsspinboxplugin.cpp + qgssymbolbuttonplugin.cpp ) SET (QGIS_CUSTOMWIDGETS_MOC_HDRS @@ -68,6 +69,7 @@ SET (QGIS_CUSTOMWIDGETS_MOC_HDRS qgsscalewidgetplugin.h qgsscrollareawidgetplugin.h qgsspinboxplugin.h + qgssymbolbuttonplugin.h ) IF(MSVC) diff --git a/src/customwidgets/qgiscustomwidgets.cpp b/src/customwidgets/qgiscustomwidgets.cpp index c3387701f68..d97ce1d307b 100644 --- a/src/customwidgets/qgiscustomwidgets.cpp +++ b/src/customwidgets/qgiscustomwidgets.cpp @@ -41,7 +41,7 @@ #include "qgsscalewidgetplugin.h" #include "qgsscrollareawidgetplugin.h" #include "qgsspinboxplugin.h" - +#include "qgssymbolbuttonplugin.h" QgisCustomWidgets::QgisCustomWidgets( QObject *parent ) : QObject( parent ) @@ -71,6 +71,7 @@ QgisCustomWidgets::QgisCustomWidgets( QObject *parent ) mWidgets.append( new QgsScaleWidgetPlugin( this ) ); mWidgets.append( new QgsScrollAreaWidgetPlugin( this ) ); mWidgets.append( new QgsSpinBoxPlugin( this ) ); + mWidgets.append( new QgsSymbolButtonPlugin( this ) ); } QList QgisCustomWidgets::customWidgets() const diff --git a/src/customwidgets/qgssymbolbuttonplugin.cpp b/src/customwidgets/qgssymbolbuttonplugin.cpp new file mode 100644 index 00000000000..0ecee3c9c48 --- /dev/null +++ b/src/customwidgets/qgssymbolbuttonplugin.cpp @@ -0,0 +1,97 @@ +/*************************************************************************** + qgssymbolbuttonplugin.cpp + ------------------------ + Date : 23.07.2017 + Copyright : (C) 2017 Nyall Dawson + Email : nyall dot dawson at gmail dot com +*************************************************************************** +* * +* This program is free software; you can redistribute it and/or modify * +* it under the terms of the GNU General Public License as published by * +* the Free Software Foundation; either version 2 of the License, or * +* (at your option) any later version. * +* * +***************************************************************************/ + +#include "qgiscustomwidgets.h" +#include "qgssymbolbuttonplugin.h" +#include "qgssymbolbutton.h" + + +QgsSymbolButtonPlugin::QgsSymbolButtonPlugin( QObject *parent ) + : QObject( parent ) + , mInitialized( false ) +{ +} + + +QString QgsSymbolButtonPlugin::name() const +{ + return "QgsSymbolButton"; +} + +QString QgsSymbolButtonPlugin::group() const +{ + return QgisCustomWidgets::groupName(); +} + +QString QgsSymbolButtonPlugin::includeFile() const +{ + return "qgssymbolbutton.h"; +} + +QIcon QgsSymbolButtonPlugin::icon() const +{ + return QIcon( ":/images/icons/qgis-icon-60x60.png" ); +} + +bool QgsSymbolButtonPlugin::isContainer() const +{ + return false; +} + +QWidget *QgsSymbolButtonPlugin::createWidget( QWidget *parent ) +{ + return new QgsSymbolButton( parent ); +} + +bool QgsSymbolButtonPlugin::isInitialized() const +{ + return mInitialized; +} + +void QgsSymbolButtonPlugin::initialize( QDesignerFormEditorInterface *core ) +{ + Q_UNUSED( core ); + if ( mInitialized ) + return; + mInitialized = true; +} + + +QString QgsSymbolButtonPlugin::toolTip() const +{ + return tr( "Select symbol" ); +} + +QString QgsSymbolButtonPlugin::whatsThis() const +{ + return ""; +} + +QString QgsSymbolButtonPlugin::domXml() const +{ + return QString( "\n" + " \n" + " \n" + " \n" + " 0\n" + " 0\n" + " 27\n" + " 27\n" + " \n" + " \n" + " \n" + "\n" ) + .arg( name() ); +} diff --git a/src/customwidgets/qgssymbolbuttonplugin.h b/src/customwidgets/qgssymbolbuttonplugin.h new file mode 100644 index 00000000000..3f4c7b09500 --- /dev/null +++ b/src/customwidgets/qgssymbolbuttonplugin.h @@ -0,0 +1,51 @@ +/*************************************************************************** + qgssymbolbuttonplugin.h + ---------------------- + Date : 23.07.2017 + Copyright : (C) 2017 Nyall Dawson + Email : nyall dot dawson at gmail dot com +*************************************************************************** +* * +* This program is free software; you can redistribute it and/or modify * +* it under the terms of the GNU General Public License as published by * +* the Free Software Foundation; either version 2 of the License, or * +* (at your option) any later version. * +* * +***************************************************************************/ + +#ifndef QGSSYMBOLBUTTONPLUGIN_H +#define QGSSYMBOLBUTTONPLUGIN_H + + +#include +#include +#include +#include "qgis_customwidgets.h" + + +class CUSTOMWIDGETS_EXPORT QgsSymbolButtonPlugin : public QObject, public QDesignerCustomWidgetInterface +{ + Q_OBJECT + Q_INTERFACES( QDesignerCustomWidgetInterface ) + + public: + explicit QgsSymbolButtonPlugin( QObject *parent = 0 ); + + private: + bool mInitialized; + + // QDesignerCustomWidgetInterface interface + public: + QString name() const override; + QString group() const override; + QString includeFile() const override; + QIcon icon() const override; + bool isContainer() const override; + QWidget *createWidget( QWidget *parent ) override; + bool isInitialized() const override; + void initialize( QDesignerFormEditorInterface *core ) override; + QString toolTip() const override; + QString whatsThis() const override; + QString domXml() const override; +}; +#endif // QGSSYMBOLBUTTONPLUGIN_H