21#include <QStackedWidget>
24#include "moc_qgsattributeformwidget.cpp"
26using namespace Qt::StringLiterals;
33 mEditPage =
new QWidget();
34 QHBoxLayout *l =
new QHBoxLayout();
35 l->setContentsMargins( 0, 0, 0, 0 );
36 mEditPage->setLayout( l );
38 l =
new QHBoxLayout();
39 l->setContentsMargins( 0, 0, 0, 0 );
40 mSearchFrame =
new QWidget();
41 mSearchFrame->setLayout( l );
43 mSearchPage =
new QWidget();
44 l =
new QHBoxLayout();
45 l->setContentsMargins( 0, 0, 0, 0 );
46 mSearchPage->setLayout( l );
47 l->addWidget( mSearchFrame, 1 );
49 mSearchWidgetToolButton->setObjectName( u
"SearchWidgetToolButton"_s );
51 l->addWidget( mSearchWidgetToolButton, 0 );
53 mStack =
new QStackedWidget();
65 l =
new QHBoxLayout();
66 l->setContentsMargins( 0, 0, 0, 0 );
68 l->addWidget( mStack );
70 if ( !mWidget || !mForm )
73 mEditPage->layout()->addWidget( mWidget->widget() );
76 setSizePolicy( mWidget->widget()->sizePolicy() );
88 mSearchPage =
nullptr;
109 mSearchWidgets.clear();
110 mSearchWidgets << wrapper;
111 mSearchFrame->layout()->addWidget( wrapper->widget() );
112 mSearchWidgetToolButton->setAvailableFlags( wrapper->supportedFlags() );
114 mSearchWidgetToolButton->setDefaultFlags( wrapper->defaultFlags() );
121 mSearchWidgets << wrapper;
123 mSearchFrame->layout()->addWidget( wrapper->
widget() );
124 wrapper->
widget()->hide();
129 return mSearchWidgets;
134 if ( mSearchWidgets.isEmpty() )
137 if ( !mSearchWidgetToolButton->isActive() )
145 return u
"%1 AND %2"_s.arg( filter1, filter2 );
152 return u
"%1 OR %2"_s.arg( filter1, filter2 );
155 return mSearchWidgets.at( 0 )->createExpression( mSearchWidgetToolButton->activeFlags() );
160 mSearchWidgetToolButton->setInactive();
161 const auto constMSearchWidgets = mSearchWidgets;
164 widget->clearWidget();
170 return mWidget->layer();
175 const auto constMSearchWidgets = mSearchWidgets;
179 if ( !mSearchWidgetToolButton->
isActive() )
181 widget->clearWidget();
185 if ( mSearchWidgets.count() >= 2 )
191void QgsAttributeFormWidget::updateWidgets()
198 QWidget *currentVisibleWidget = mStack->currentWidget();
200 QWidget *newVisibleWidget =
nullptr;
205 newVisibleWidget = mEditPage;
211 newVisibleWidget = mSearchPage;
216 if ( newVisibleWidget != currentVisibleWidget )
218 if ( currentVisibleWidget )
221 mStack->removeWidget( currentVisibleWidget );
224 mStack->addWidget( newVisibleWidget );
225 mStack->setCurrentWidget( newVisibleWidget );
231 return mSearchWidgetToolButton->isVisible();
Represents a vector layer which manages a vector based dataset.