From f97d5e319ea002939134ecece060c2164db4b72d Mon Sep 17 00:00:00 2001 From: Denis Rouzaud Date: Tue, 2 Sep 2014 15:15:16 +0200 Subject: [PATCH] [custom widgets] adds filter line edit --- python/gui/qgsfilterlineedit.sip | 2 + src/customwidgets/CMakeLists.txt | 3 + src/customwidgets/CMakeLists.txt.user | 63 ----------- src/customwidgets/qgsfilterlineeditplugin.cpp | 100 ++++++++++++++++++ src/customwidgets/qgsfilterlineeditplugin.h | 48 +++++++++ src/gui/qgsfilterlineedit.h | 4 + 6 files changed, 157 insertions(+), 63 deletions(-) delete mode 100644 src/customwidgets/CMakeLists.txt.user create mode 100644 src/customwidgets/qgsfilterlineeditplugin.cpp create mode 100644 src/customwidgets/qgsfilterlineeditplugin.h diff --git a/python/gui/qgsfilterlineedit.sip b/python/gui/qgsfilterlineedit.sip index a603b4a535fe..9a1c6023cb55 100644 --- a/python/gui/qgsfilterlineedit.sip +++ b/python/gui/qgsfilterlineedit.sip @@ -10,6 +10,8 @@ class QgsFilterLineEdit : QLineEdit QgsFilterLineEdit( QWidget* parent = 0 ); void setNullValue( QString nullValue ); + + QString nullValue() const; signals: void cleared(); diff --git a/src/customwidgets/CMakeLists.txt b/src/customwidgets/CMakeLists.txt index c6a02a917630..2b4581185574 100644 --- a/src/customwidgets/CMakeLists.txt +++ b/src/customwidgets/CMakeLists.txt @@ -22,6 +22,7 @@ SET (QGIS_CUSTOMWIDGETS_SRCS qgsdatadefinedbuttonplugin.cpp qgsfieldcomboboxplugin.cpp qgsfieldexpressionwidgetplugin.cpp + qgsfilterlineeditplugin.cpp qgsmaplayercomboboxplugin.cpp qgsrelationeditorwidgetplugin.cpp qgsrelationreferencewidgetplugin.cpp @@ -37,6 +38,7 @@ SET (QGIS_CUSTOMWIDGETS_MOC_HDRS qgsdatadefinedbuttonplugin.h qgsfieldcomboboxplugin.h qgsfieldexpressionwidgetplugin.h + qgsfilterlineeditplugin.h qgsmaplayercomboboxplugin.h qgsrelationeditorwidgetplugin.h qgsrelationreferencewidgetplugin.h @@ -60,6 +62,7 @@ SET(QGIS_CUSTOMWIDGETS_HDRS qgsdatadefinedbuttonplugin.h qgsfieldcomboboxplugin.h qgsfieldexpressionwidgetplugin.h + qgsfilterlineeditplugin.h qgsmaplayercomboboxplugin.h qgsrelationeditorwidgetplugin.h qgsrelationreferencewidgetplugin.h diff --git a/src/customwidgets/CMakeLists.txt.user b/src/customwidgets/CMakeLists.txt.user deleted file mode 100644 index 84e2acc64209..000000000000 --- a/src/customwidgets/CMakeLists.txt.user +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - ProjectExplorer.Project.ActiveTarget - -1 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - true - 1 - true - 0 - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - - ProjectExplorer.Project.TargetCount - 0 - - - ProjectExplorer.Project.Updater.EnvironmentId - {316279e7-c793-4c38-a9aa-b021b7d95d28} - - - ProjectExplorer.Project.Updater.FileVersion - 15 - - diff --git a/src/customwidgets/qgsfilterlineeditplugin.cpp b/src/customwidgets/qgsfilterlineeditplugin.cpp new file mode 100644 index 000000000000..ef2e47e19ce4 --- /dev/null +++ b/src/customwidgets/qgsfilterlineeditplugin.cpp @@ -0,0 +1,100 @@ +/*************************************************************************** + qgsfilterlineeditplugin.cpp + -------------------------------------- + Date : 20.08.2014 + Copyright : (C) 2014 Denis Rouzaud + Email : denis.rouzaud@gmail.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 "qgsfilterlineedit.h" +#include "qgsfilterlineeditplugin.h" + + +QgsFilterLineEditPlugin::QgsFilterLineEditPlugin( QObject *parent ) + : QObject( parent ) + , mInitialized( false ) +{ +} + + +QString QgsFilterLineEditPlugin::name() const +{ + return "QgsFilterLineEdit"; +} + +QString QgsFilterLineEditPlugin::group() const +{ + return QgisCustomWidgets::groupName(); +} + +QString QgsFilterLineEditPlugin::includeFile() const +{ + return "qgsfilterlineedit.h"; +} + +QIcon QgsFilterLineEditPlugin::icon() const +{ + return QIcon(); +} + +bool QgsFilterLineEditPlugin::isContainer() const +{ + return false; +} + +QWidget *QgsFilterLineEditPlugin::createWidget( QWidget *parent ) +{ + return new QgsFilterLineEdit( parent ); +} + +bool QgsFilterLineEditPlugin::isInitialized() const +{ + return mInitialized; +} + +void QgsFilterLineEditPlugin::initialize( QDesignerFormEditorInterface *core ) +{ + Q_UNUSED( core ); + if ( mInitialized ) + return; + mInitialized = true; +} + + +QString QgsFilterLineEditPlugin::toolTip() const +{ + return ""; +} + +QString QgsFilterLineEditPlugin::whatsThis() const +{ + return ""; +} + +QString QgsFilterLineEditPlugin::domXml() const +{ + return QString( "\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " 0\n" + " 0\n" + " 60\n" + " 27\n" + " \n" + " \n" + " \n" + "\n" ) + .arg( name() ); +} diff --git a/src/customwidgets/qgsfilterlineeditplugin.h b/src/customwidgets/qgsfilterlineeditplugin.h new file mode 100644 index 000000000000..8efc7c4fe7ef --- /dev/null +++ b/src/customwidgets/qgsfilterlineeditplugin.h @@ -0,0 +1,48 @@ +/*************************************************************************** + qgsfilterlineeditplugin.h + -------------------------------------- + Date : 20.08.2014 + Copyright : (C) 2014 Denis Rouzaud + Email : denis.rouzaud@gmail.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 QGSFILTERLINEEDITPLUGIN_H +#define QGSFILTERLINEEDITPLUGIN_H + +#include +#include + + +class CUSTOMWIDGETS_EXPORT QgsFilterLineEditPlugin : public QObject, public QDesignerCustomWidgetInterface +{ + Q_OBJECT + Q_INTERFACES( QDesignerCustomWidgetInterface ) + + public: + explicit QgsFilterLineEditPlugin( QObject *parent = 0 ); + + private: + bool mInitialized; + + // QDesignerCustomWidgetInterface interface + public: + QString name() const; + QString group() const; + QString includeFile() const; + QIcon icon() const; + bool isContainer() const; + QWidget *createWidget( QWidget *parent ); + bool isInitialized() const; + void initialize( QDesignerFormEditorInterface *core ); + QString toolTip() const; + QString whatsThis() const; + QString domXml() const; +}; +#endif // QGSFILTERLINEEDITPLUGIN_H diff --git a/src/gui/qgsfilterlineedit.h b/src/gui/qgsfilterlineedit.h index 449b526648c2..7c8a1486a488 100644 --- a/src/gui/qgsfilterlineedit.h +++ b/src/gui/qgsfilterlineedit.h @@ -28,11 +28,15 @@ class QToolButton; class GUI_EXPORT QgsFilterLineEdit : public QLineEdit { Q_OBJECT + Q_PROPERTY( QString nullValue READ nullValue WRITE setNullValue ) + public: QgsFilterLineEdit( QWidget* parent = 0, QString nullValue = QString::null ); void setNullValue( QString nullValue ) { mNullValue = nullValue; } + QString nullValue() const {return mNullValue;} + signals: void cleared();