From 81d650de1564d5f455a10f645fbc298345d5035e Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Wed, 8 May 2024 12:07:16 +1000 Subject: [PATCH 1/2] Use QgsCodeEditorWidget in expression builder dialog Adds Ctrl+F search bar support to expression builder dialog --- .../auto_generated/qgsexpressionbuilderwidget.sip.in | 1 - .../auto_generated/qgsexpressionbuilderwidget.sip.in | 1 - src/gui/qgsexpressionbuilderwidget.cpp | 10 ++++++++-- src/gui/qgsexpressionbuilderwidget.h | 4 +++- src/gui/qgsexpressionlineedit.cpp | 2 +- src/ui/qgsexpressionbuilder.ui | 8 +------- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/python/PyQt6/gui/auto_generated/qgsexpressionbuilderwidget.sip.in b/python/PyQt6/gui/auto_generated/qgsexpressionbuilderwidget.sip.in index 6614ea27cec9..fe3674ffdfb4 100644 --- a/python/PyQt6/gui/auto_generated/qgsexpressionbuilderwidget.sip.in +++ b/python/PyQt6/gui/auto_generated/qgsexpressionbuilderwidget.sip.in @@ -12,7 +12,6 @@ - class QgsExpressionBuilderWidget : QWidget { %Docstring(signature="appended") diff --git a/python/gui/auto_generated/qgsexpressionbuilderwidget.sip.in b/python/gui/auto_generated/qgsexpressionbuilderwidget.sip.in index b746daf926d1..9542b1e398d3 100644 --- a/python/gui/auto_generated/qgsexpressionbuilderwidget.sip.in +++ b/python/gui/auto_generated/qgsexpressionbuilderwidget.sip.in @@ -12,7 +12,6 @@ - class QgsExpressionBuilderWidget : QWidget { %Docstring(signature="appended") diff --git a/src/gui/qgsexpressionbuilderwidget.cpp b/src/gui/qgsexpressionbuilderwidget.cpp index 10fff0940176..8872997532e3 100644 --- a/src/gui/qgsexpressionbuilderwidget.cpp +++ b/src/gui/qgsexpressionbuilderwidget.cpp @@ -39,7 +39,6 @@ #include "qgspythonrunner.h" #include "qgsgeometry.h" #include "qgsfeature.h" -#include "qgsfeatureiterator.h" #include "qgsvectorlayer.h" #include "qgssettings.h" #include "qgsproject.h" @@ -49,7 +48,7 @@ #include "qgsfieldformatter.h" #include "qgsexpressionstoredialog.h" #include "qgsexpressiontreeview.h" - +#include "qgscodeeditorwidget.h" bool formatterCanProvideAvailableValues( QgsVectorLayer *layer, const QString &fieldName ) @@ -76,6 +75,13 @@ QgsExpressionBuilderWidget::QgsExpressionBuilderWidget( QWidget *parent ) { setupUi( this ); + txtExpressionString = new QgsCodeEditorExpression(); + QgsCodeEditorWidget *codeEditorWidget = new QgsCodeEditorWidget( txtExpressionString ); + QVBoxLayout *vl = new QVBoxLayout(); + vl->setContentsMargins( 0, 0, 0, 0 ); + vl->addWidget( codeEditorWidget ); + mExpressionEditorContainer->setLayout( vl ); + connect( btnRun, &QToolButton::pressed, this, &QgsExpressionBuilderWidget::btnRun_pressed ); connect( btnNewFile, &QPushButton::clicked, this, &QgsExpressionBuilderWidget::btnNewFile_pressed ); connect( btnRemoveFile, &QPushButton::clicked, this, &QgsExpressionBuilderWidget::btnRemoveFile_pressed ); diff --git a/src/gui/qgsexpressionbuilderwidget.h b/src/gui/qgsexpressionbuilderwidget.h index c341e326229f..73a64476cc27 100644 --- a/src/gui/qgsexpressionbuilderwidget.h +++ b/src/gui/qgsexpressionbuilderwidget.h @@ -32,7 +32,7 @@ class QgsFields; class QgsExpressionHighlighter; class QgsRelation; - +class QgsCodeEditorExpression; /** * \ingroup gui @@ -493,6 +493,8 @@ class GUI_EXPORT QgsExpressionBuilderWidget : public QWidget, private Ui::QgsExp // Translated name of the user expressions group QString mUserExpressionsGroupName; + + QgsCodeEditorExpression *txtExpressionString = nullptr; }; // clazy:excludeall=qstring-allocations diff --git a/src/gui/qgsexpressionlineedit.cpp b/src/gui/qgsexpressionlineedit.cpp index 2eaeba2e79b2..476e5d7e0c97 100644 --- a/src/gui/qgsexpressionlineedit.cpp +++ b/src/gui/qgsexpressionlineedit.cpp @@ -19,10 +19,10 @@ #include "qgsapplication.h" #include "qgsexpressionbuilderdialog.h" #include "qgsexpressioncontextgenerator.h" -#include "qgscodeeditorsql.h" #include "qgsproject.h" #include "qgsvectorlayer.h" #include "qgsexpressioncontextutils.h" +#include "qgscodeeditorexpression.h" #include #include diff --git a/src/ui/qgsexpressionbuilder.ui b/src/ui/qgsexpressionbuilder.ui index 4b1a8b7180c3..6469220c5680 100644 --- a/src/ui/qgsexpressionbuilder.ui +++ b/src/ui/qgsexpressionbuilder.ui @@ -220,7 +220,7 @@ - + @@ -881,12 +881,6 @@ Saved scripts are auto loaded on QGIS startup. QLineEdit
qgsfilterlineedit.h
- - QgsCodeEditorExpression - QWidget -
qgscodeeditorexpression.h
- 1 -
QgsCodeEditorPython QWidget From 0a3c1870d0a27b7aeae68ce9acad15f95f41b81b Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Wed, 8 May 2024 12:11:38 +1000 Subject: [PATCH 2/2] Use QgsCodeEditorWidget in rich text editor HTML view --- src/gui/qgsrichtexteditor.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gui/qgsrichtexteditor.cpp b/src/gui/qgsrichtexteditor.cpp index 944a5f06ff53..f6910617b88d 100644 --- a/src/gui/qgsrichtexteditor.cpp +++ b/src/gui/qgsrichtexteditor.cpp @@ -33,6 +33,7 @@ #include "qgscolorbutton.h" #include "qgscodeeditor.h" #include "qgscodeeditorhtml.h" +#include "qgscodeeditorwidget.h" #include #include @@ -59,7 +60,8 @@ QgsRichTextEditor::QgsRichTextEditor( QWidget *parent ) QVBoxLayout *sourceLayout = new QVBoxLayout(); sourceLayout->setContentsMargins( 0, 0, 0, 0 ); mSourceEdit = new QgsCodeEditorHTML(); - sourceLayout->addWidget( mSourceEdit ); + QgsCodeEditorWidget *codeEditorWidget = new QgsCodeEditorWidget( mSourceEdit ); + sourceLayout->addWidget( codeEditorWidget ); mPageSourceEdit->setLayout( sourceLayout ); mToolBar->setIconSize( QgsGuiUtils::iconSize( false ) );