void QgsExpressionLineEdit::setMultiLine( bool multiLine ) { QString exp = expression(); if ( multiLine && !mCodeEditor ) { mCodeEditor = new QgsCodeEditorSQL(); mCodeEditor->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ); delete mLineEdit; mLineEdit = nullptr; QHBoxLayout* newLayout = new QHBoxLayout(); newLayout->setContentsMargins( 0, 0, 0, 0 ); newLayout->addWidget( mCodeEditor ); QVBoxLayout* vLayout = new QVBoxLayout(); vLayout->addWidget( mButton ); vLayout->addStretch(); newLayout->addLayout( vLayout ); delete layout(); setLayout( newLayout ); setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ); setFocusProxy( mCodeEditor ); connect( mCodeEditor, SIGNAL( textChanged() ), this, SLOT( expressionEdited() ) ); setExpression( exp ); } else if ( !multiLine && !mLineEdit ) { delete mCodeEditor; mCodeEditor = nullptr; mLineEdit = new QgsFilterLineEdit(); mLineEdit->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum ); QHBoxLayout* newLayout = new QHBoxLayout(); newLayout->setContentsMargins( 0, 0, 0, 0 ); newLayout->addWidget( mLineEdit ); newLayout->addWidget( mButton ); delete layout(); setLayout( newLayout ); setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Minimum ); setFocusProxy( mLineEdit ); connect( mLineEdit, SIGNAL( textChanged( QString ) ), this, SLOT( expressionEdited( QString ) ) ); setExpression( exp ); } }
ExpressionEditorWidget::ExpressionEditorWidget(const iscore::DocumentContext& doc, QWidget *parent) : QWidget(parent), m_context{doc} { m_mainLayout = new iscore::MarginLess<QVBoxLayout>{this}; auto btnWidg = new QWidget{this}; auto btnLay = new iscore::MarginLess<QHBoxLayout>{btnWidg}; auto validBtn = new QPushButton{tr("Ok"), btnWidg}; auto cancelBtn = new QPushButton{tr("Cancel"),btnWidg}; btnLay->addWidget(validBtn); btnLay->addWidget(cancelBtn); m_mainLayout->addWidget(btnWidg); connect(validBtn, &QPushButton::clicked, this, &ExpressionEditorWidget::on_editFinished); connect(cancelBtn, &QPushButton::clicked, this, [&] () { if(m_expression.isEmpty()) { for(auto& elt : m_relations) { delete elt; } m_relations.clear(); addNewTerm(); } else setExpression(*State::parseExpression(m_expression)); }); }
QgsFieldConditionalFormatWidget::QgsFieldConditionalFormatWidget( QWidget *parent ) : QWidget( parent ) , mLayer( 0 ) , mEditIndex( 0 ) , mEditing( false ) , mSymbol( 0 ) { setupUi( this ); mDeleteButton->hide(); connect( mFieldCombo, SIGNAL( fieldChanged( QString ) ), SLOT( fieldChanged( QString ) ) ); connect( fieldRadio, SIGNAL( clicked() ), SLOT( reloadStyles() ) ); connect( rowRadio, SIGNAL( clicked() ), SLOT( reloadStyles() ) ); connect( mNewButton, SIGNAL( clicked() ), SLOT( addNewRule() ) ); connect( mSaveRule, SIGNAL( clicked() ), SLOT( saveRule() ) ); connect( mCancelButton, SIGNAL( clicked() ), SLOT( cancelRule() ) ); connect( mDeleteButton, SIGNAL( clicked() ), SLOT( deleteRule() ) ); connect( listView, SIGNAL( clicked( QModelIndex ) ), SLOT( ruleClicked( QModelIndex ) ) ); connect( btnChangeIcon , SIGNAL( clicked() ), SLOT( updateIcon() ) ); connect( btnBuildExpression , SIGNAL( clicked() ), SLOT( setExpression() ) ); connect( mPresetsList , SIGNAL( currentIndexChanged( int ) ), SLOT( presetSet( int ) ) ); btnBackgroundColor->setAllowAlpha( true ); btnBackgroundColor->setShowNoColor( true ); btnTextColor->setAllowAlpha( true ); btnTextColor->setShowNoColor( true ); mPresetsModel = new QStandardItemModel( listView ); mModel = new QStandardItemModel( listView ); listView->setModel( mModel ); mPresetsList->setModel( mPresetsModel ); setPresets( defaultPresets() ); }
void QgsDefaultSearchWidgetWrapper::textChanged( const QString &text ) { if ( text.isEmpty() ) emit valueCleared(); setExpression( text ); }
void PropertyEditorValue::setExpressionWithEmit(const QString &expression) { if ( m_expression != expression) { setExpression(expression); emit expressionChanged(name()); } }
bool DlgSetRDRPropertyByExpressionEditor::loadWidget(QSettings *settings, const QString &prefix) { setExpression(settings->value(prefix+"expression").toString()); setType(settings->value(prefix+"type").toInt()); setPropertyName(settings->value(prefix+"property").toString()); return true; }
EVALOBJ::EVALOBJ(int num) : BASE_CL() { outports = 1; inports=1; width = 70; strcpy(in_ports[0].in_name,"A"); strcpy(in_ports[1].in_name,"B"); strcpy(in_ports[2].in_name,"C"); strcpy(in_ports[3].in_name,"D"); strcpy(in_ports[4].in_name,"E"); strcpy(in_ports[5].in_name,"F"); strcpy(out_ports[0].out_name,"out"); inputA = 0; inputB = 0; inputC = 0; inputD = 0; inputE = 0; inputF = 0; expression = NULL; evaluator = NULL; setexp=FALSE; setExpression("A"); }
void HStatement::keyPressEvent(Visualization::Item *target, QKeyEvent *event) { Visualization::VList* lst = nullptr; auto p = target->parent(); while (p && !(lst = dynamic_cast<Visualization::VList*>(p))) p = p->parent(); bool processed = false; if (lst && event->modifiers() == Qt::NoModifier && (event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return)) { processed = true; event->accept(); int index = lst->focusedNodeIndex() + 1; auto empty = new OOModel::EmptyExpression(); auto es = new OOModel::ExpressionStatement(); es->setExpression(empty); lst->node()->model()->beginModification(lst->node(), "add empty statement"); lst->node()->insert(index, es); lst->node()->model()->endModification(); lst->setUpdateNeeded(Visualization::Item::StandardUpdate); target->scene()->addPostEventAction( new Interaction::SetCursorEvent(lst, empty)); } if (!processed) GenericHandler::keyPressEvent(target, event); }
void EVALOBJ::load(HANDLE hFile) { char expr[MAXEXPRLENGTH]; load_object_basics(this); load_property("expression",P_STRING,expr); setExpression(expr); }
Variable::Variable(const string& name, bool create_expression){ assignNode(new VariableInternal(name)); if(create_expression){ setExpression(SX(name)); setDerivative(SX("der_" + name)); setBinding(var(),false); setBinding(der(),true); } }
FindMatch::FindMatch( char *_expression, U32 _maxMatches ) { VECTOR_SET_ASSOCIATION(matchList); expression = NULL; setExpression( _expression ); maxMatches = _maxMatches; matchList.reserve( maxMatches ); }
/* * If the expression of a simple query clause is query local, then * return the clause as is. Otherwise return a clone of the clause * with the expression rewritten to reference a query parameter. */ SimpleQueryClausePtr CaptureExtractor::rewriteSimpleClause( SimpleQueryClausePtr sc) { assert (sc != nullptr); auto expr = sc->getExpression(); auto newExpr = rewrite(expr); if (expr == newExpr) return sc; auto rsc = static_pointer_cast<SimpleQueryClause>(sc->clone()); rsc->setExpression(newExpr); return rsc; }
bool SglExprLex::run(const QStringList& script) { int i = -1; bool result = true; while (result && ++i < script.size()) { setExpression(script.at(i)); result = Error(eval()) == Success; } return result; }
void QgsCheckboxSearchWidgetWrapper::stateChanged( int ) { if ( mCheckBox ) { mCheckBox->setTristate( false ); QString exp = value().toString(); setExpression( exp ); emit valueChanged(); emit expressionChanged( mExpression ); } }
void HMethod::keyPressEvent(Visualization::Item *target, QKeyEvent *event) { bool createDown = event->modifiers() == Qt::NoModifier && (event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return); bool createRight = event->modifiers() == Qt::ShiftModifier && (event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return); //bool switchVertical = event->modifiers() == Qt::NoModifier && event->key() == Qt::Key_Tab; bool switchHorizontal = event->modifiers() == Qt::ShiftModifier && event->key() == Qt::Key_Tab; bool processed = false; auto m = dynamic_cast<OOVisualization::VMethod*> ( target ); if (m) { if ( (m->name()->itemOrChildHasFocus() || m->arguments()->itemOrChildHasFocus()) && createDown) { processed = true; if (m->node()->items()->size() > 0) { target->scene()->addPostEventAction( new Interaction::SetCursorEvent(target, m->node()->items()->at(0))); } else { auto empty = new OOModel::EmptyExpression(); auto es = new OOModel::ExpressionStatement(); es->setExpression(empty); m->node()->model()->beginModification(m->node(), "add empty statement"); m->node()->items()->append(es); m->node()->model()->endModification(); m->setUpdateNeeded(Visualization::Item::StandardUpdate); target->scene()->addPostEventAction( new Interaction::SetCursorEvent(target, empty)); } } else if (m->name()->itemOrChildHasFocus() && switchHorizontal) { processed = true; if (m->node()->arguments()->size() > 0) { target->scene()->addPostEventAction( new Interaction::SetCursorEvent(target, m->node()->arguments()->at(0))); } } else if ( (m->name()->itemOrChildHasFocus()) && createRight) { processed = true; createNewArgument(m, 0); } } if (!processed) GenericHandler::keyPressEvent(target, event); }
void QgsDateTimeSearchWidgetWrapper::dateTimeChanged( const QDateTime& dt ) { if ( mDateTimeEdit ) { QString exp = value().toString(); setExpression( exp ); if ( dt.isValid() && !dt.isNull() ) emit valueChanged(); else emit valueCleared(); emit expressionChanged( mExpression ); } }
void QgsDefaultSearchWidgetWrapper::initWidget( QWidget* widget ) { mContainer = widget; mContainer->setLayout( new QHBoxLayout() ); mLineEdit = new QgsFilterLineEdit(); mCheckbox = new QCheckBox( "Case sensitive" ); mContainer->layout()->addWidget( mLineEdit ); mContainer->layout()->addWidget( mCheckbox ); connect( mLineEdit, SIGNAL( textChanged( QString ) ), this, SLOT( setExpression( QString ) ) ); connect( mCheckbox, SIGNAL( stateChanged( int ) ), this, SLOT( setCaseString( int ) ) ); mCheckbox->setChecked( Qt::Unchecked ); mCaseString = "ILIKE"; }
void QgsDefaultSearchWidgetWrapper::setCaseString( int caseSensitiveCheckState ) { if ( caseSensitiveCheckState == Qt::Checked ) { mCaseString = "LIKE"; } else { mCaseString = "ILIKE"; } // need to update also the line edit setExpression( mLineEdit->text() ); }
void QgsValueRelationSearchWidgetWrapper::valueChanged() { QVariant vl = value(); if ( !vl.isValid() ) { clearExpression(); } else { QSettings settings; setExpression( vl.isNull() ? settings.value( "qgis/nullValue", "NULL" ).toString() : vl.toString() ); } emit expressionChanged( mExpression ); }
void QgsValueMapSearchWidgetWrapper::comboBoxIndexChanged( int idx ) { if ( mComboBox ) { if ( idx == 0 ) { clearExpression(); } else { setExpression( mComboBox->itemData( idx ).toString() ); } emit expressionChanged( mExpression ); } }
void QgsRelationReferenceSearchWidgetWrapper::onValueChanged( const QVariant &value ) { if ( !value.isValid() ) { clearExpression(); emit valueCleared(); } else { QgsSettings settings; setExpression( value.isNull() ? QgsApplication::nullRepresentation() : value.toString() ); emit valueChanged(); } emit expressionChanged( mExpression ); }
void QgsValueRelationSearchWidgetWrapper::onValueChanged() { QVariant vl = value(); if ( !vl.isValid() ) { clearExpression(); emit valueCleared(); } else { setExpression( vl.isNull() ? QgsApplication::nullRepresentation() : vl.toString() ); emit valueChanged(); } emit expressionChanged( mExpression ); }
void QgsRelationReferenceSearchWidgetWrapper::onValueChanged( const QVariant& value ) { if ( !value.isValid() ) { clearExpression(); emit valueCleared(); } else { QSettings settings; setExpression( value.isNull() ? settings.value( QStringLiteral( "qgis/nullValue" ), "NULL" ).toString() : value.toString() ); emit valueChanged(); } emit expressionChanged( mExpression ); }
CEventAssignment::CEventAssignment(const CEventAssignment & src, const CCopasiContainer * pParent): CCopasiContainer(src, pParent), mKey(CCopasiRootContainer::getKeyFactory()->add("EventAssignment", this)), mpModel(static_cast<CModel *>(getObjectAncestor("Model"))), mpTarget(src.mpTarget), mpExpression(NULL) { if (mpModel != NULL) { mpModel->setCompileFlag(true); } setExpression(src.getExpression()); }
void QgsDataDefinedButton::showExpressionDialog() { QgsExpressionBuilderDialog d( const_cast<QgsVectorLayer*>( mVectorLayer ), getExpression() ); if ( d.exec() == QDialog::Accepted ) { QString newExp = d.expressionText(); setExpression( d.expressionText().trimmed() ); bool hasExp = !newExp.isEmpty(); setUseExpression( hasExp ); setActive( hasExp ); updateGui(); } activateWindow(); // reset focus to parent window }
bool CMathObject::setExpression(const std::string & infix, const bool & isBoolean, CMathContainer & container) { bool success = true; CExpression Expression; Expression.setIsBoolean(isBoolean); success &= Expression.setInfix(infix); CObjectInterface::ContainerList ListOfContainer; ListOfContainer.push_back(&container); success &= Expression.compile(ListOfContainer); success &= setExpression(Expression, container); return success; }
void QgsDefaultSearchWidgetWrapper::setCaseString( int caseSensitiveCheckState ) { if ( caseSensitiveCheckState == Qt::Checked ) { mCaseString = QStringLiteral( "LIKE" ); } else { mCaseString = QStringLiteral( "ILIKE" ); } // need to update also the line edit setExpression( mLineEdit->text() ); if ( applyDirectly() ) emit expressionChanged( mExpression ); }
void QgsDataDefinedButton::showAssistant() { if ( !mAssistant.data() ) return; if ( mAssistant->exec() == QDialog::Accepted ) { QgsDataDefined dd = mAssistant->dataDefined(); setUseExpression( dd.useExpression() ); setActive( dd.isActive() ); if ( dd.isActive() && dd.useExpression() ) setExpression( dd.expressionString() ); else if ( dd.isActive() ) setField( dd.field() ); updateGui(); } activateWindow(); // reset focus to parent window }
void QgsExpressionLineEdit::editExpression() { QString currentExpression = expression(); QgsExpressionContext context = mExpressionContextGenerator ? mExpressionContextGenerator->createExpressionContext() : mExpressionContext; QgsExpressionBuilderDialog dlg( mLayer, currentExpression, this, QStringLiteral( "generic" ), context ); if ( !mDa.isNull() ) { dlg.setGeomCalculator( *mDa ); } dlg.setWindowTitle( mExpressionDialogTitle ); if ( dlg.exec() ) { QString newExpression = dlg.expressionText(); setExpression( newExpression ); } }
bool SglExprLex::autoFix(const QString& newexpr) { int tokencnt = 0; int assignseqpos = -1; int lastToken; bool inText = false; setExpression(newexpr); reset(); do { getNextScanResult(); switch (lastScanResult.type) { case eol: case sot: case eot: inText = !inText; case whitespace: continue; case ASSIGN: if (assignseqpos < 0) assignseqpos = start; continue; case UNKNOWNTOKEN: return false; default: assignseqpos = -1; break; } lastToken = lastScanResult.type; ++tokencnt; } while ( lastScanResult.type != eol ); // remove trailing '=' if ( assignseqpos >= 0 ) expr.truncate(assignseqpos); // supply 'ans' as parameter, if just a function name is given /* if ( tokencnt == 1 && lasttoken == FUNCTION ) expr.append(revLookup(ans));*/ // close all unmatched left paranthesis if (inText) expr.append(closePar.pop()); while ( !closePar.isEmpty() ) expr.append(addDelim(closePar.pop())); return true; }