Skip to content

Commit 2f7d634

Browse files
authored
Merge pull request #8652 from 3nids/fix17727_34
move value group box under help area [Expression builder] [needs-docs]
2 parents d0cd606 + d33f11e commit 2f7d634

File tree

2 files changed

+49
-38
lines changed

2 files changed

+49
-38
lines changed

src/gui/qgsexpressionbuilderwidget.cpp

+17-4
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ QgsExpressionBuilderWidget::QgsExpressionBuilderWidget( QWidget *parent )
5757
connect( mValuesListView, &QListView::doubleClicked, this, &QgsExpressionBuilderWidget::mValuesListView_doubleClicked );
5858

5959
mValueGroupBox->hide();
60-
mLoadGroupBox->hide();
6160
// highlighter = new QgsExpressionHighlighter( txtExpressionString->document() );
6261

6362
mModel = new QStandardItemModel();
@@ -94,6 +93,19 @@ QgsExpressionBuilderWidget::QgsExpressionBuilderWidget( QWidget *parent )
9493

9594
editorSplit->setSizes( QList<int>( {175, 300} ) );
9695

96+
functionsplit->setCollapsible( 0, false );
97+
connect( mShowHelpButton, &QPushButton::clicked, this, [ = ]()
98+
{
99+
functionsplit->setSizes( QList<int>( {mOperationListGroup->width() - mHelpAndValuesWidget->minimumWidth(),
100+
mHelpAndValuesWidget->minimumWidth()} ) );
101+
mShowHelpButton->setEnabled( false );
102+
} );
103+
connect( functionsplit, &QSplitter::splitterMoved, this, [ = ]( int, int )
104+
{
105+
mShowHelpButton->setEnabled( functionsplit->sizes().at( 1 ) == 0 );
106+
} );
107+
108+
97109
QgsSettings settings;
98110
splitter->restoreState( settings.value( QStringLiteral( "Windows/QgsExpressionBuilderWidget/splitter" ) ).toByteArray() );
99111
editorSplit->restoreState( settings.value( QStringLiteral( "Windows/QgsExpressionBuilderWidget/editorsplitter" ) ).toByteArray() );
@@ -228,8 +240,9 @@ void QgsExpressionBuilderWidget::currentChanged( const QModelIndex &index, const
228240
mValuesModel->setStringList( values );
229241
}
230242

231-
mLoadGroupBox->setVisible( item->getItemType() == QgsExpressionItem::Field && mLayer );
232-
mValueGroupBox->setVisible( item->getItemType() == QgsExpressionItem::Field && mLayer );
243+
bool isField = mLayer && item->getItemType() == QgsExpressionItem::Field;
244+
mValueGroupBox->setVisible( isField );
245+
mShowHelpButton->setText( isField ? tr( "Show Values" ) : tr( "Show Help" ) );
233246

234247
// Show the help for the current item.
235248
QString help = loadFunctionHelp( item );
@@ -1094,7 +1107,7 @@ void QgsExpressionBuilderWidget::indicatorClicked( int line, int index, Qt::Keyb
10941107
if ( state & Qt::ControlModifier )
10951108
{
10961109
int position = txtExpressionString->positionFromLineIndex( line, index );
1097-
long fncIndex = txtExpressionString->SendScintilla( QsciScintilla::SCI_INDICATORVALUEAT, FUNCTION_MARKER_ID, ( long int )position );
1110+
long fncIndex = txtExpressionString->SendScintilla( QsciScintilla::SCI_INDICATORVALUEAT, FUNCTION_MARKER_ID, static_cast<long int>( position ) );
10981111
QgsExpressionFunction *func = QgsExpression::Functions()[fncIndex];
10991112
QString help = getFunctionHelp( func );
11001113
txtHelpText->setText( help );

src/ui/qgsexpressionbuilder.ui

+32-34
Original file line numberDiff line numberDiff line change
@@ -447,23 +447,30 @@
447447
</item>
448448
</layout>
449449
</widget>
450-
<widget class="QFrame" name="moperationListGroup">
450+
<widget class="QFrame" name="mOperationListGroup">
451451
<layout class="QGridLayout" name="gridLayout_6">
452452
<item row="0" column="0">
453453
<widget class="QSplitter" name="functionsplit">
454454
<property name="orientation">
455455
<enum>Qt::Horizontal</enum>
456456
</property>
457457
<widget class="QWidget" name="layoutWidget1">
458-
<layout class="QVBoxLayout" name="verticalLayout_4">
459-
<item>
458+
<layout class="QGridLayout" name="gridLayout_9">
459+
<item row="0" column="0">
460460
<widget class="QgsFilterLineEdit" name="txtSearchEdit">
461461
<property name="enabled">
462462
<bool>true</bool>
463463
</property>
464464
</widget>
465465
</item>
466-
<item>
466+
<item row="0" column="1">
467+
<widget class="QPushButton" name="mShowHelpButton">
468+
<property name="text">
469+
<string>Show Help</string>
470+
</property>
471+
</widget>
472+
</item>
473+
<item row="1" column="0" colspan="2">
467474
<widget class="QTreeView" name="expressionTree">
468475
<property name="frameShape">
469476
<enum>QFrame::StyledPanel</enum>
@@ -488,39 +495,41 @@
488495
</attribute>
489496
</widget>
490497
</item>
498+
</layout>
499+
</widget>
500+
<widget class="QWidget" name="mHelpAndValuesWidget" native="true">
501+
<property name="minimumSize">
502+
<size>
503+
<width>250</width>
504+
<height>0</height>
505+
</size>
506+
</property>
507+
<layout class="QVBoxLayout" name="verticalLayout_2">
508+
<property name="spacing">
509+
<number>0</number>
510+
</property>
511+
<item>
512+
<widget class="QTextEdit" name="txtHelpText">
513+
<property name="readOnly">
514+
<bool>true</bool>
515+
</property>
516+
</widget>
517+
</item>
491518
<item>
492519
<widget class="QFrame" name="mValueGroupBox">
493520
<layout class="QGridLayout" name="gridLayout_5">
494521
<property name="leftMargin">
495522
<number>0</number>
496523
</property>
497524
<property name="topMargin">
498-
<number>0</number>
525+
<number>10</number>
499526
</property>
500527
<property name="rightMargin">
501528
<number>0</number>
502529
</property>
503530
<property name="bottomMargin">
504531
<number>0</number>
505532
</property>
506-
<item row="4" column="0">
507-
<widget class="QWidget" name="mLoadGroupBox" native="true">
508-
<layout class="QHBoxLayout" name="horizontalLayout">
509-
<property name="leftMargin">
510-
<number>0</number>
511-
</property>
512-
<property name="topMargin">
513-
<number>0</number>
514-
</property>
515-
<property name="rightMargin">
516-
<number>0</number>
517-
</property>
518-
<property name="bottomMargin">
519-
<number>0</number>
520-
</property>
521-
</layout>
522-
</widget>
523-
</item>
524533
<item row="0" column="0">
525534
<widget class="QLabel" name="label_4">
526535
<property name="sizePolicy">
@@ -574,17 +583,6 @@
574583
</item>
575584
</layout>
576585
</widget>
577-
<widget class="QWidget" name="layoutWidget2">
578-
<layout class="QVBoxLayout" name="verticalLayout_2">
579-
<item>
580-
<widget class="QTextEdit" name="txtHelpText">
581-
<property name="readOnly">
582-
<bool>true</bool>
583-
</property>
584-
</widget>
585-
</item>
586-
</layout>
587-
</widget>
588586
</widget>
589587
</item>
590588
</layout>

0 commit comments

Comments
 (0)