@@ -193,6 +193,7 @@ void QgsAttributeForm::setMode( QgsAttributeForm::Mode mode )
193
193
194
194
case QgsAttributeForm::SearchMode:
195
195
mSearchButtonBox ->setVisible ( true );
196
+ hideButtonBox ();
196
197
break ;
197
198
}
198
199
@@ -385,7 +386,8 @@ void QgsAttributeForm::filterTriggered()
385
386
{
386
387
QString filter = createFilterExpression ();
387
388
emit filterExpressionSet ( filter, ReplaceFilter );
388
- setMode ( SingleEditMode );
389
+ if ( mContext .formMode () == QgsAttributeEditorContext::Embed )
390
+ setMode ( SingleEditMode );
389
391
}
390
392
391
393
void QgsAttributeForm::filterAndTriggered ()
@@ -394,7 +396,8 @@ void QgsAttributeForm::filterAndTriggered()
394
396
if ( filter.isEmpty () )
395
397
return ;
396
398
397
- setMode ( SingleEditMode );
399
+ if ( mContext .formMode () == QgsAttributeEditorContext::Embed )
400
+ setMode ( SingleEditMode );
398
401
emit filterExpressionSet ( filter, FilterAnd );
399
402
}
400
403
@@ -404,7 +407,8 @@ void QgsAttributeForm::filterOrTriggered()
404
407
if ( filter.isEmpty () )
405
408
return ;
406
409
407
- setMode ( SingleEditMode );
410
+ if ( mContext .formMode () == QgsAttributeEditorContext::Embed )
411
+ setMode ( SingleEditMode );
408
412
emit filterExpressionSet ( filter, FilterOr );
409
413
}
410
414
@@ -436,7 +440,8 @@ void QgsAttributeForm::runSearchSelect( QgsVectorLayer::SelectBehaviour behaviou
436
440
437
441
mLayer ->selectByExpression ( filter, behaviour );
438
442
pushSelectedFeaturesMessage ();
439
- setMode ( SingleEditMode );
443
+ if ( mContext .formMode () == QgsAttributeEditorContext::Embed )
444
+ setMode ( SingleEditMode );
440
445
}
441
446
442
447
void QgsAttributeForm::searchSetSelection ()
@@ -1245,14 +1250,14 @@ void QgsAttributeForm::init()
1245
1250
mSearchButtonBox ->setLayout ( boxLayout );
1246
1251
mSearchButtonBox ->setObjectName ( " searchButtonBox" );
1247
1252
1248
- QPushButton* clearButton = new QPushButton ( tr ( " Reset form" ), mSearchButtonBox );
1253
+ QPushButton* clearButton = new QPushButton ( tr ( " & Reset form" ), mSearchButtonBox );
1249
1254
connect ( clearButton, SIGNAL ( clicked ( bool ) ), this , SLOT ( resetSearch () ) );
1250
1255
boxLayout->addWidget ( clearButton );
1251
1256
boxLayout->addStretch ( 1 );
1252
1257
1253
1258
QToolButton* selectButton = new QToolButton ();
1254
1259
selectButton->setSizePolicy ( QSizePolicy::Minimum, QSizePolicy::Minimum );
1255
- selectButton->setText ( tr ( " Select features" ) );
1260
+ selectButton->setText ( tr ( " & Select features" ) );
1256
1261
selectButton->setPopupMode ( QToolButton::MenuButtonPopup );
1257
1262
connect ( selectButton, SIGNAL ( clicked ( bool ) ), this , SLOT ( searchSetSelection () ) );
1258
1263
QMenu* selectMenu = new QMenu ( selectButton );
@@ -1271,20 +1276,30 @@ void QgsAttributeForm::init()
1271
1276
selectButton->setMenu ( selectMenu );
1272
1277
boxLayout->addWidget ( selectButton );
1273
1278
1274
- QToolButton* filterButton = new QToolButton ();
1275
- filterButton->setText ( tr ( " Filter features" ) );
1276
- filterButton->setPopupMode ( QToolButton::MenuButtonPopup );
1277
- filterButton->setSizePolicy ( QSizePolicy::Minimum, QSizePolicy::Minimum );
1278
- connect ( filterButton, SIGNAL ( clicked ( bool ) ), this , SLOT ( filterTriggered () ) );
1279
- QMenu* filterMenu = new QMenu ( filterButton );
1280
- QAction* filterAndAction = new QAction ( tr ( " Filter within (\" AND\" )" ), filterMenu );
1281
- connect ( filterAndAction, SIGNAL ( triggered ( bool ) ), this , SLOT ( filterAndTriggered () ) );
1282
- filterMenu->addAction ( filterAndAction );
1283
- QAction* filterOrAction = new QAction ( tr ( " Extend filter (\" OR\" )" ), filterMenu );
1284
- connect ( filterOrAction, SIGNAL ( triggered ( bool ) ), this , SLOT ( filterOrTriggered () ) );
1285
- filterMenu->addAction ( filterOrAction );
1286
- filterButton->setMenu ( filterMenu );
1287
- boxLayout->addWidget ( filterButton );
1279
+ if ( mContext .formMode () == QgsAttributeEditorContext::Embed )
1280
+ {
1281
+ QToolButton* filterButton = new QToolButton ();
1282
+ filterButton->setText ( tr ( " Filter features" ) );
1283
+ filterButton->setPopupMode ( QToolButton::MenuButtonPopup );
1284
+ filterButton->setSizePolicy ( QSizePolicy::Minimum, QSizePolicy::Minimum );
1285
+ connect ( filterButton, SIGNAL ( clicked ( bool ) ), this , SLOT ( filterTriggered () ) );
1286
+ QMenu* filterMenu = new QMenu ( filterButton );
1287
+ QAction* filterAndAction = new QAction ( tr ( " Filter within (\" AND\" )" ), filterMenu );
1288
+ connect ( filterAndAction, SIGNAL ( triggered ( bool ) ), this , SLOT ( filterAndTriggered () ) );
1289
+ filterMenu->addAction ( filterAndAction );
1290
+ QAction* filterOrAction = new QAction ( tr ( " Extend filter (\" OR\" )" ), filterMenu );
1291
+ connect ( filterOrAction, SIGNAL ( triggered ( bool ) ), this , SLOT ( filterOrTriggered () ) );
1292
+ filterMenu->addAction ( filterOrAction );
1293
+ filterButton->setMenu ( filterMenu );
1294
+ boxLayout->addWidget ( filterButton );
1295
+ }
1296
+ else
1297
+ {
1298
+ QPushButton* closeButton = new QPushButton ( tr ( " Close" ), mSearchButtonBox );
1299
+ connect ( closeButton, SIGNAL ( clicked ( bool ) ), this , SLOT ( close () ) );
1300
+ closeButton->setShortcut ( Qt::Key_Escape );
1301
+ boxLayout->addWidget ( closeButton );
1302
+ }
1288
1303
1289
1304
layout->addWidget ( mSearchButtonBox );
1290
1305
}
@@ -1302,6 +1317,12 @@ void QgsAttributeForm::init()
1302
1317
{
1303
1318
iface->initForm ();
1304
1319
}
1320
+
1321
+ if ( mContext .formMode () == QgsAttributeEditorContext::Embed || mMode == SearchMode )
1322
+ {
1323
+ hideButtonBox ();
1324
+ }
1325
+
1305
1326
QApplication::restoreOverrideCursor ();
1306
1327
}
1307
1328
0 commit comments