mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-08 00:05:09 -04:00
Implement custom layer filter GUI for SensorThings layer filters
This commit is contained in:
parent
4c97462919
commit
1e07d03b74
@ -30,7 +30,7 @@
|
|||||||
*
|
*
|
||||||
* \since QGIS 3.36
|
* \since QGIS 3.36
|
||||||
*/
|
*/
|
||||||
class QgsSensorThingsProvider final : public QgsVectorDataProvider
|
class CORE_EXPORT QgsSensorThingsProvider final : public QgsVectorDataProvider
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
|
@ -464,6 +464,7 @@ set(QGIS_GUI_SRCS
|
|||||||
providers/sensorthings/qgssensorthingsguiprovider.cpp
|
providers/sensorthings/qgssensorthingsguiprovider.cpp
|
||||||
providers/sensorthings/qgssensorthingssourceselect.cpp
|
providers/sensorthings/qgssensorthingssourceselect.cpp
|
||||||
providers/sensorthings/qgssensorthingssourcewidget.cpp
|
providers/sensorthings/qgssensorthingssourcewidget.cpp
|
||||||
|
providers/sensorthings/qgssensorthingssubseteditor.cpp
|
||||||
|
|
||||||
providers/vtpkvectortiles/qgsvtpkvectortileguiprovider.cpp
|
providers/vtpkvectortiles/qgsvtpkvectortileguiprovider.cpp
|
||||||
providers/vtpkvectortiles/qgsvtpkvectortilesourcewidget.cpp
|
providers/vtpkvectortiles/qgsvtpkvectortilesourcewidget.cpp
|
||||||
@ -1426,6 +1427,7 @@ set(QGIS_GUI_HDRS
|
|||||||
providers/sensorthings/qgssensorthingsguiprovider.h
|
providers/sensorthings/qgssensorthingsguiprovider.h
|
||||||
providers/sensorthings/qgssensorthingssourceselect.h
|
providers/sensorthings/qgssensorthingssourceselect.h
|
||||||
providers/sensorthings/qgssensorthingssourcewidget.h
|
providers/sensorthings/qgssensorthingssourcewidget.h
|
||||||
|
providers/sensorthings/qgssensorthingssubseteditor.h
|
||||||
|
|
||||||
providers/vtpkvectortiles/qgsvtpkvectortileguiprovider.h
|
providers/vtpkvectortiles/qgsvtpkvectortileguiprovider.h
|
||||||
providers/vtpkvectortiles/qgsvtpkvectortilesourcewidget.h
|
providers/vtpkvectortiles/qgsvtpkvectortilesourcewidget.h
|
||||||
|
@ -30,6 +30,9 @@
|
|||||||
#include "qgssensorthingsprovider.h"
|
#include "qgssensorthingsprovider.h"
|
||||||
#include "qgssensorthingsdataitemguiprovider.h"
|
#include "qgssensorthingsdataitemguiprovider.h"
|
||||||
#include "qgsapplication.h"
|
#include "qgsapplication.h"
|
||||||
|
#include "qgssubsetstringeditorprovider.h"
|
||||||
|
#include "qgssensorthingssubseteditor.h"
|
||||||
|
#include "qgsvectorlayer.h"
|
||||||
|
|
||||||
//
|
//
|
||||||
// QgsSensorThingsSourceSelectProvider
|
// QgsSensorThingsSourceSelectProvider
|
||||||
@ -112,4 +115,34 @@ QList<QgsDataItemGuiProvider *> QgsSensorThingsProviderGuiMetadata::dataItemGuiP
|
|||||||
return { new QgsSensorThingsDataItemGuiProvider() };
|
return { new QgsSensorThingsDataItemGuiProvider() };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class QgsSensorThingsSubsetStringEditorProvider: public QgsSubsetStringEditorProvider
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
QString providerKey() const override { return QgsSensorThingsProvider::SENSORTHINGS_PROVIDER_KEY; }
|
||||||
|
|
||||||
|
bool canHandleLayer( QgsVectorLayer *layer ) const override
|
||||||
|
{
|
||||||
|
QgsDataProvider *provider = layer->dataProvider();
|
||||||
|
return static_cast< bool >( qobject_cast<QgsSensorThingsProvider *>( provider ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
QgsSubsetStringEditorInterface *createDialog( QgsVectorLayer *layer, QWidget *parent, Qt::WindowFlags fl ) override
|
||||||
|
{
|
||||||
|
QgsDataProvider *provider = layer->dataProvider();
|
||||||
|
QgsSensorThingsProvider *sensorThingsProvider = qobject_cast<QgsSensorThingsProvider *>( provider );
|
||||||
|
if ( !sensorThingsProvider )
|
||||||
|
return nullptr;
|
||||||
|
|
||||||
|
return new QgsSensorThingsSubsetEditor( layer, QgsFields(), parent, fl );
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
QList<QgsSubsetStringEditorProvider *> QgsSensorThingsProviderGuiMetadata::subsetStringEditorProviders()
|
||||||
|
{
|
||||||
|
return QList<QgsSubsetStringEditorProvider *>()
|
||||||
|
<< new QgsSensorThingsSubsetStringEditorProvider;
|
||||||
|
}
|
||||||
|
|
||||||
///@endcond
|
///@endcond
|
||||||
|
@ -53,6 +53,8 @@ class QgsSensorThingsProviderGuiMetadata: public QgsProviderGuiMetadata
|
|||||||
QList<QgsSourceSelectProvider *> sourceSelectProviders() override;
|
QList<QgsSourceSelectProvider *> sourceSelectProviders() override;
|
||||||
QList<QgsProviderSourceWidgetProvider *> sourceWidgetProviders() override;
|
QList<QgsProviderSourceWidgetProvider *> sourceWidgetProviders() override;
|
||||||
QList<QgsDataItemGuiProvider *> dataItemGuiProviders() override;
|
QList<QgsDataItemGuiProvider *> dataItemGuiProviders() override;
|
||||||
|
QList<QgsSubsetStringEditorProvider *> subsetStringEditorProviders() override;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
///@endcond
|
///@endcond
|
||||||
|
158
src/gui/providers/sensorthings/qgssensorthingssubseteditor.cpp
Normal file
158
src/gui/providers/sensorthings/qgssensorthingssubseteditor.cpp
Normal file
@ -0,0 +1,158 @@
|
|||||||
|
/***************************************************************************
|
||||||
|
qgssensorthingssubseteditor.cpp
|
||||||
|
--------------------------------------
|
||||||
|
Date : February 2024
|
||||||
|
Copyright : (C) 2024 by 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 "qgssensorthingssubseteditor.h"
|
||||||
|
#include "qgsvectorlayer.h"
|
||||||
|
#include "qgscodeeditor.h"
|
||||||
|
#include "qgsfieldproxymodel.h"
|
||||||
|
#include "qgsfieldmodel.h"
|
||||||
|
|
||||||
|
#include <QHBoxLayout>
|
||||||
|
#include <QLabel>
|
||||||
|
#include <QStandardItemModel>
|
||||||
|
#include <QPushButton>
|
||||||
|
|
||||||
|
///@cond PRIVATE
|
||||||
|
|
||||||
|
QgsSensorThingsSubsetEditor::QgsSensorThingsSubsetEditor( QgsVectorLayer *layer, const QgsFields &fields, QWidget *parent, Qt::WindowFlags fl )
|
||||||
|
: QgsSubsetStringEditorInterface( parent, fl )
|
||||||
|
, mLayer( layer )
|
||||||
|
, mFields( ( layer && fields.isEmpty() ) ? layer->fields() : fields )
|
||||||
|
{
|
||||||
|
setupUi( this );
|
||||||
|
|
||||||
|
mSubsetEditor = new QgsCodeEditor();
|
||||||
|
mSubsetEditor->setWrapMode( QsciScintilla::WrapWord );
|
||||||
|
|
||||||
|
QVBoxLayout *vl = new QVBoxLayout();
|
||||||
|
vl->addWidget( mSubsetEditor );
|
||||||
|
mEditorGroupBox->setLayout( vl );
|
||||||
|
|
||||||
|
mModelFields = new QgsFieldProxyModel();
|
||||||
|
mModelFields->setFilters( QgsFieldProxyModel::Filter::AllTypes | QgsFieldProxyModel::Filter::OriginProvider );
|
||||||
|
mModelFields->sourceFieldModel()->setFields( mFields );
|
||||||
|
lstFields->setModel( mModelFields );
|
||||||
|
lstFields->setViewMode( QListView::ListMode );
|
||||||
|
lstFields->setUniformItemSizes( true );
|
||||||
|
lstFields->setAlternatingRowColors( true );
|
||||||
|
lstFields->setSelectionBehavior( QAbstractItemView::SelectRows );
|
||||||
|
|
||||||
|
QFont boldFont = font();
|
||||||
|
boldFont.setBold( true );
|
||||||
|
mLabelComparisons->setFont( boldFont );
|
||||||
|
mLabelLogical->setFont( boldFont );
|
||||||
|
mLabelArithmetic->setFont( boldFont );
|
||||||
|
|
||||||
|
mButtonEq->setToolTip( tr( "Equal" ) );
|
||||||
|
mButtonEq->setProperty( "expression", " eq " );
|
||||||
|
mButtonNe->setToolTip( tr( "Not equal" ) );
|
||||||
|
mButtonNe->setProperty( "expression", " ne " );
|
||||||
|
mButtonGt->setToolTip( tr( "Greater than" ) );
|
||||||
|
mButtonGt->setProperty( "expression", " gt " );
|
||||||
|
mButtonGe->setToolTip( tr( "Greater than or equal" ) );
|
||||||
|
mButtonGe->setProperty( "expression", " ge " );
|
||||||
|
mButtonLt->setToolTip( tr( "Less than" ) );
|
||||||
|
mButtonLt->setProperty( "expression", " lt " );
|
||||||
|
mButtonLe->setToolTip( tr( "Less than or equal" ) );
|
||||||
|
mButtonLe->setProperty( "expression", " le " );
|
||||||
|
mButtonAnd->setToolTip( tr( "Logical and" ) );
|
||||||
|
mButtonAnd->setProperty( "expression", " and " );
|
||||||
|
mButtonOr->setToolTip( tr( "Logical or" ) );
|
||||||
|
mButtonOr->setProperty( "expression", " or " );
|
||||||
|
mButtonNot->setToolTip( tr( "Logical negation" ) );
|
||||||
|
mButtonNot->setProperty( "expression", " not " );
|
||||||
|
mButtonAdd->setToolTip( tr( "Addition" ) );
|
||||||
|
mButtonAdd->setProperty( "expression", " add " );
|
||||||
|
mButtonSub->setToolTip( tr( "Subtraction" ) );
|
||||||
|
mButtonSub->setProperty( "expression", " sub " );
|
||||||
|
mButtonMul->setToolTip( tr( "Multiplication" ) );
|
||||||
|
mButtonMul->setProperty( "expression", " mul " );
|
||||||
|
mButtonDiv->setToolTip( tr( "Division" ) );
|
||||||
|
mButtonDiv->setProperty( "expression", " div " );
|
||||||
|
mButtonMod->setToolTip( tr( "Modulo" ) );
|
||||||
|
mButtonMod->setProperty( "expression", " mod " );
|
||||||
|
|
||||||
|
if ( mLayer )
|
||||||
|
lblDataUri->setText( tr( "Set filter on %1" ).arg( mLayer->name() ) );
|
||||||
|
else
|
||||||
|
lblDataUri->setText( tr( "Set filter for layer" ) );
|
||||||
|
|
||||||
|
connect( mButtonBox->button( QDialogButtonBox::Reset ), &QPushButton::clicked, this, &QgsSensorThingsSubsetEditor::reset );
|
||||||
|
connect( mButtonBox, &QDialogButtonBox::accepted, this, &QgsSensorThingsSubsetEditor::accept );
|
||||||
|
connect( mButtonBox, &QDialogButtonBox::rejected, this, &QgsSensorThingsSubsetEditor::reject );
|
||||||
|
|
||||||
|
connect( lstFields, &QListView::doubleClicked, this, &QgsSensorThingsSubsetEditor::lstFieldsDoubleClicked );
|
||||||
|
|
||||||
|
for ( QPushButton *button :
|
||||||
|
{
|
||||||
|
mButtonEq,
|
||||||
|
mButtonNe,
|
||||||
|
mButtonGt,
|
||||||
|
mButtonGe,
|
||||||
|
mButtonLt,
|
||||||
|
mButtonLe,
|
||||||
|
mButtonAnd,
|
||||||
|
mButtonOr,
|
||||||
|
mButtonNot,
|
||||||
|
mButtonAdd,
|
||||||
|
mButtonSub,
|
||||||
|
mButtonMul,
|
||||||
|
mButtonDiv,
|
||||||
|
mButtonMod
|
||||||
|
} )
|
||||||
|
{
|
||||||
|
connect( button, &QPushButton::clicked, this, [this, button]
|
||||||
|
{
|
||||||
|
mSubsetEditor->insertText( button->property( "expression" ).toString() );
|
||||||
|
mSubsetEditor->setFocus();
|
||||||
|
} );
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QString QgsSensorThingsSubsetEditor::subsetString() const
|
||||||
|
{
|
||||||
|
return mSubsetEditor->text();
|
||||||
|
}
|
||||||
|
|
||||||
|
void QgsSensorThingsSubsetEditor::setSubsetString( const QString &subsetString )
|
||||||
|
{
|
||||||
|
mSubsetEditor->setText( subsetString );
|
||||||
|
}
|
||||||
|
|
||||||
|
void QgsSensorThingsSubsetEditor::accept()
|
||||||
|
{
|
||||||
|
if ( mLayer )
|
||||||
|
{
|
||||||
|
mLayer->setSubsetString( subsetString() );
|
||||||
|
}
|
||||||
|
QDialog::accept();
|
||||||
|
}
|
||||||
|
|
||||||
|
void QgsSensorThingsSubsetEditor::reset()
|
||||||
|
{
|
||||||
|
mSubsetEditor->clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
void QgsSensorThingsSubsetEditor::lstFieldsDoubleClicked( const QModelIndex &index )
|
||||||
|
{
|
||||||
|
mSubsetEditor->insertText( mModelFields->data( index, static_cast< int >( QgsFieldModel::CustomRole::FieldName ) ).toString() );
|
||||||
|
mSubsetEditor->setFocus();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///@endcond
|
61
src/gui/providers/sensorthings/qgssensorthingssubseteditor.h
Normal file
61
src/gui/providers/sensorthings/qgssensorthingssubseteditor.h
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
/***************************************************************************
|
||||||
|
qgssensorthingssubseteditor.h
|
||||||
|
--------------------------------------
|
||||||
|
Date : February 2024
|
||||||
|
Copyright : (C) 2024 by 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 QGSSENSORTHINGSSUBSETEDITOR_H
|
||||||
|
#define QGSSENSORTHINGSSUBSETEDITOR_H
|
||||||
|
|
||||||
|
#include "qgis.h"
|
||||||
|
#include "ui_qgssensorthingssubseteditorbase.h"
|
||||||
|
#include "qgssubsetstringeditorinterface.h"
|
||||||
|
#include "qgsfields.h"
|
||||||
|
#include <QVariantMap>
|
||||||
|
#include <QPointer>
|
||||||
|
|
||||||
|
class QgsVectorLayer;
|
||||||
|
class QgsCodeEditor;
|
||||||
|
class QgsFieldProxyModel;
|
||||||
|
|
||||||
|
///@cond PRIVATE
|
||||||
|
#define SIP_NO_FILE
|
||||||
|
|
||||||
|
class QgsSensorThingsSubsetEditor : public QgsSubsetStringEditorInterface, protected Ui::QgsSensorThingsSubsetEditorBase
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
QgsSensorThingsSubsetEditor( QgsVectorLayer *layer = nullptr,
|
||||||
|
const QgsFields &fields = QgsFields(),
|
||||||
|
QWidget *parent SIP_TRANSFERTHIS = nullptr,
|
||||||
|
Qt::WindowFlags fl = QgsGuiUtils::ModalDialogFlags );
|
||||||
|
QString subsetString() const override;
|
||||||
|
void setSubsetString( const QString &subsetString ) override;
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void accept() override;
|
||||||
|
void reset();
|
||||||
|
void lstFieldsDoubleClicked( const QModelIndex &index );
|
||||||
|
private:
|
||||||
|
|
||||||
|
QgsCodeEditor *mSubsetEditor = nullptr;
|
||||||
|
|
||||||
|
QPointer< QgsVectorLayer > mLayer;
|
||||||
|
QgsFields mFields;
|
||||||
|
|
||||||
|
QgsFieldProxyModel *mModelFields = nullptr;
|
||||||
|
};
|
||||||
|
|
||||||
|
///@endcond
|
||||||
|
#endif // QGSSENSORTHINGSSUBSETEDITOR_H
|
252
src/ui/qgssensorthingssubseteditorbase.ui
Normal file
252
src/ui/qgssensorthingssubseteditorbase.ui
Normal file
@ -0,0 +1,252 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>QgsSensorThingsSubsetEditorBase</class>
|
||||||
|
<widget class="QWidget" name="QgsSensorThingsSubsetEditorBase">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>816</width>
|
||||||
|
<height>740</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>OGC SensorThings Data Filter</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="gridLayout" rowstretch="0,0,1,0">
|
||||||
|
<item row="0" column="0" colspan="2">
|
||||||
|
<widget class="QLabel" name="lblDataUri">
|
||||||
|
<property name="text">
|
||||||
|
<string>Datasource</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QGroupBox" name="groupBox1">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Expanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string>Fields</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>11</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>11</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>11</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>11</number>
|
||||||
|
</property>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QListView" name="lstFields">
|
||||||
|
<property name="whatsThis">
|
||||||
|
<string><html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||||
|
p, li { white-space: pre-wrap; }
|
||||||
|
</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
|
||||||
|
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">List of fields in this vector file</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QgsCollapsibleGroupBox" name="groupBox4">
|
||||||
|
<property name="title">
|
||||||
|
<string>Operators</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QGridLayout" name="_3">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>11</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>11</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>11</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>11</number>
|
||||||
|
</property>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QPushButton" name="mButtonOr">
|
||||||
|
<property name="text">
|
||||||
|
<string>or</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="2">
|
||||||
|
<widget class="QPushButton" name="mButtonGt">
|
||||||
|
<property name="text">
|
||||||
|
<string>gt</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="5">
|
||||||
|
<widget class="QPushButton" name="mButtonLe">
|
||||||
|
<property name="text">
|
||||||
|
<string>le</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QPushButton" name="mButtonAnd">
|
||||||
|
<property name="text">
|
||||||
|
<string>and</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="0">
|
||||||
|
<widget class="QPushButton" name="mButtonEq">
|
||||||
|
<property name="text">
|
||||||
|
<string>eq</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QPushButton" name="mButtonNe">
|
||||||
|
<property name="text">
|
||||||
|
<string>ne</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="2">
|
||||||
|
<widget class="QPushButton" name="mButtonNot">
|
||||||
|
<property name="text">
|
||||||
|
<string>not</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0" colspan="6">
|
||||||
|
<widget class="QLabel" name="mLabelComparisons">
|
||||||
|
<property name="text">
|
||||||
|
<string>Comparisons</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="0">
|
||||||
|
<widget class="QPushButton" name="mButtonAdd">
|
||||||
|
<property name="text">
|
||||||
|
<string>add</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0" colspan="6">
|
||||||
|
<widget class="QLabel" name="mLabelLogical">
|
||||||
|
<property name="text">
|
||||||
|
<string>Logical operators</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="3">
|
||||||
|
<widget class="QPushButton" name="mButtonGe">
|
||||||
|
<property name="text">
|
||||||
|
<string>ge</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="4">
|
||||||
|
<widget class="QPushButton" name="mButtonLt">
|
||||||
|
<property name="text">
|
||||||
|
<string>lt</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="6">
|
||||||
|
<spacer name="horizontalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0" colspan="6">
|
||||||
|
<widget class="QLabel" name="mLabelArithmetic">
|
||||||
|
<property name="text">
|
||||||
|
<string>Arithmetic</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="1">
|
||||||
|
<widget class="QPushButton" name="mButtonSub">
|
||||||
|
<property name="text">
|
||||||
|
<string>sub</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="2">
|
||||||
|
<widget class="QPushButton" name="mButtonMul">
|
||||||
|
<property name="text">
|
||||||
|
<string>mul</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="3">
|
||||||
|
<widget class="QPushButton" name="mButtonDiv">
|
||||||
|
<property name="text">
|
||||||
|
<string>div</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="4">
|
||||||
|
<widget class="QPushButton" name="mButtonMod">
|
||||||
|
<property name="text">
|
||||||
|
<string>mod</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0" colspan="2">
|
||||||
|
<widget class="QGroupBox" name="mEditorGroupBox">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="title">
|
||||||
|
<string>OGC SensorThings Filter Expression</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0" colspan="2">
|
||||||
|
<widget class="QDialogButtonBox" name="mButtonBox">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="standardButtons">
|
||||||
|
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok|QDialogButtonBox::Reset</set>
|
||||||
|
</property>
|
||||||
|
<property name="centerButtons">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<customwidgets>
|
||||||
|
<customwidget>
|
||||||
|
<class>QgsCollapsibleGroupBox</class>
|
||||||
|
<extends>QGroupBox</extends>
|
||||||
|
<header>qgscollapsiblegroupbox.h</header>
|
||||||
|
<container>1</container>
|
||||||
|
</customwidget>
|
||||||
|
</customwidgets>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
Loading…
x
Reference in New Issue
Block a user