21#include <QStackedWidget>
23#include "moc_qgsattributeformwidget.cpp"
30 mEditPage =
new QWidget();
31 QHBoxLayout *l =
new QHBoxLayout();
32 l->setContentsMargins( 0, 0, 0, 0 );
33 mEditPage->setLayout( l );
35 l =
new QHBoxLayout();
36 l->setContentsMargins( 0, 0, 0, 0 );
37 mSearchFrame =
new QWidget();
38 mSearchFrame->setLayout( l );
40 mSearchPage =
new QWidget();
41 l =
new QHBoxLayout();
42 l->setContentsMargins( 0, 0, 0, 0 );
43 mSearchPage->setLayout( l );
44 l->addWidget( mSearchFrame, 1 );
46 mSearchWidgetToolButton->setObjectName( QStringLiteral(
"SearchWidgetToolButton" ) );
48 l->addWidget( mSearchWidgetToolButton, 0 );
50 mStack =
new QStackedWidget();
62 l =
new QHBoxLayout();
63 l->setContentsMargins( 0, 0, 0, 0 );
65 l->addWidget( mStack );
67 if ( !mWidget || !mForm )
70 mEditPage->layout()->addWidget( mWidget->widget() );
73 setSizePolicy( mWidget->widget()->sizePolicy() );
85 mSearchPage =
nullptr;
106 mSearchWidgets.clear();
107 mSearchWidgets << wrapper;
108 mSearchFrame->layout()->addWidget( wrapper->widget() );
109 mSearchWidgetToolButton->setAvailableFlags( wrapper->supportedFlags() );
111 mSearchWidgetToolButton->setDefaultFlags( wrapper->defaultFlags() );
118 mSearchWidgets << wrapper;
120 mSearchFrame->layout()->addWidget( wrapper->
widget() );
121 wrapper->
widget()->hide();
126 return mSearchWidgets;
131 if ( mSearchWidgets.isEmpty() )
134 if ( !mSearchWidgetToolButton->isActive() )
142 return QStringLiteral(
"%1 AND %2" ).arg( filter1, filter2 );
149 return QStringLiteral(
"%1 OR %2" ).arg( filter1, filter2 );
152 return mSearchWidgets.at( 0 )->createExpression( mSearchWidgetToolButton->activeFlags() );
157 mSearchWidgetToolButton->setInactive();
158 const auto constMSearchWidgets = mSearchWidgets;
161 widget->clearWidget();
167 return mWidget->layer();
172 const auto constMSearchWidgets = mSearchWidgets;
176 if ( !mSearchWidgetToolButton->
isActive() )
178 widget->clearWidget();
182 if ( mSearchWidgets.count() >= 2 )
188void QgsAttributeFormWidget::updateWidgets()
195 QWidget *currentVisibleWidget = mStack->currentWidget();
197 QWidget *newVisibleWidget =
nullptr;
202 newVisibleWidget = mEditPage;
208 newVisibleWidget = mSearchPage;
213 if ( newVisibleWidget != currentVisibleWidget )
215 if ( currentVisibleWidget )
218 mStack->removeWidget( currentVisibleWidget );
221 mStack->addWidget( newVisibleWidget );
222 mStack->setCurrentWidget( newVisibleWidget );
228 return mSearchWidgetToolButton->isVisible();
Represents a vector layer which manages a vector based dataset.