45      if ( attributeChanged )
 
   47        const thread_local QRegularExpression expRe { QStringLiteral( R
"re(expression.evaluate\s*\(\s*"(.*)"\))re" ), QRegularExpression::PatternOption::MultilineOption | QRegularExpression::PatternOption::DotMatchesEverythingOption }; 
   48        const QRegularExpressionMatch match { expRe.match( mHtmlCode ) };
 
   63  mWidget = qobject_cast<QgsWebView *>( editor );
 
   68  mWidget->setHtml( mHtmlCode.replace( 
"\n", 
" " ) );
 
   72  const int horizontalDpi = mWidget->logicalDpiX();
 
   74  mWidget->setZoomFactor( horizontalDpi / 96.0 );
 
   77  connect( page, &QWebPage::contentsChanged, 
this, &QgsHtmlWidgetWrapper::fixHeight, Qt::ConnectionType::UniqueConnection );
 
   78  connect( page, &QWebPage::loadFinished, 
this, &QgsHtmlWidgetWrapper::fixHeight, Qt::ConnectionType::UniqueConnection );
 
   93void QgsHtmlWidgetWrapper::checkGeometryNeeds()
 
  101  NeedsGeometryEvaluator evaluator;
 
  107    evaluator.setExpressionContext( expressionContext );
 
  110  auto frame = webView.page()->mainFrame();
 
  111  connect( frame, &QWebFrame::javaScriptWindowObjectCleared, frame, [ frame, &evaluator ]
 
  113    frame->addToJavaScriptWindowObject( QStringLiteral( 
"expression" ), &evaluator );
 
  116  webView.setHtml( mHtmlCode );
 
  118  mNeedsGeometry = evaluator.needsGeometry();
 
  123  mHtmlCode = htmlCode;
 
  124  checkGeometryNeeds();
 
  127void QgsHtmlWidgetWrapper::setHtmlContext( )
 
  142  HtmlExpression *htmlExpression = 
new HtmlExpression();
 
  143  htmlExpression->setExpressionContext( expressionContext );
 
  144  auto frame = mWidget->page()->mainFrame();
 
  145  connect( frame, &QWebFrame::javaScriptWindowObjectCleared, frame, [ = ]
 
  147    frame->addToJavaScriptWindowObject( QStringLiteral( 
"expression" ), htmlExpression );
 
  150  mWidget->setHtml( mHtmlCode );
 
  154void QgsHtmlWidgetWrapper::fixHeight()
 
  157  const int docHeight { page->mainFrame()->contentsSize().height() };
 
  158  mWidget->setFixedHeight( docHeight );
 
  168  mFormFeature = feature;
 
  174  return mNeedsGeometry;
 
  181  mExpressionContext = context;
 
  184QString HtmlExpression::evaluate( 
const QString &expression )
 const 
  187  exp.
prepare( &mExpressionContext );
 
  188  return exp.evaluate( &mExpressionContext ).toString();
 
  191void NeedsGeometryEvaluator::evaluate( 
const QString &expression )
 
  194  exp.
prepare( &mExpressionContext );
 
  195  mNeedsGeometry |= exp.needsGeometry();
 
  200  mExpressionContext = context;
 
The QWebPage class is a collection of stubs to mimic the API of a QWebPage on systems where QtWebkit ...
 
This class contains context information for attribute editor widgets.
 
QString attributeFormModeString() const
Returns given attributeFormMode as string.
 
QgsFeature parentFormFeature() const
Returns the feature of the currently edited parent form in its actual state.
 
static QgsExpressionContextScope * parentFormScope(const QgsFeature &formFeature=QgsFeature(), const QString &formMode=QString())
Creates a new scope which contains functions and variables from the current parent attribute form/tab...
 
static QgsExpressionContextScope * formScope(const QgsFeature &formFeature=QgsFeature(), const QString &formMode=QString())
Creates a new scope which contains functions and variables from the current attribute form/table form...
 
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
 
void setFeature(const QgsFeature &feature)
Convenience function for setting a feature for the context.
 
Class for parsing and evaluation of expressions (formerly called "search strings").
 
bool prepare(const QgsExpressionContext *context)
Gets the expression ready for evaluation - find out column indexes.
 
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
 
bool setAttribute(int field, const QVariant &attr)
Sets an attribute's value by field index.
 
bool isValid() const
Returns the validity of this feature.
 
Represents a vector layer which manages a vector based data sets.
 
QgsExpressionContext createExpressionContext() const FINAL
This method needs to be reimplemented in all classes which implement this interface and return an exp...
 
The QgsWebView class is a collection of stubs to mimic the API of QWebView on systems where the real ...