void QgsPropertyOverrideButton::menuActionTriggered( QAction *action ) { if ( action == mActionActive ) { setActivePrivate( mActionActive->data().toBool() ); updateGui(); emit changed(); } else if ( action == mActionDescription ) { showDescriptionDialog(); } else if ( action == mActionExpDialog ) { showExpressionDialog(); } else if ( action == mActionExpression ) { mProperty.setExpressionString( mExpressionString ); mProperty.setTransformer( nullptr ); setActivePrivate( true ); updateSiblingWidgets( isActive() ); updateGui(); emit changed(); } else if ( action == mActionCopyExpr ) { QApplication::clipboard()->setText( mExpressionString ); } else if ( action == mActionPasteExpr ) { QString exprString = QApplication::clipboard()->text(); if ( !exprString.isEmpty() ) { mExpressionString = exprString; mProperty.setExpressionString( mExpressionString ); mProperty.setTransformer( nullptr ); setActivePrivate( true ); updateSiblingWidgets( isActive() ); updateGui(); emit changed(); } } else if ( action == mActionClearExpr ) { setActivePrivate( false ); mProperty.setStaticValue( QVariant() ); mProperty.setTransformer( nullptr ); mExpressionString.clear(); updateSiblingWidgets( isActive() ); updateGui(); emit changed(); } else if ( action == mActionAssistant ) { showAssistant(); } else if ( action == mActionCreateAuxiliaryField ) { emit createAuxiliaryField(); } else if ( mFieldsMenu->actions().contains( action ) ) // a field name clicked { if ( action->isEnabled() ) { if ( mFieldName != action->text() ) { mFieldName = action->data().toString(); } mProperty.setField( mFieldName ); mProperty.setTransformer( nullptr ); setActivePrivate( true ); updateSiblingWidgets( isActive() ); updateGui(); emit changed(); } } else if ( mVariablesMenu->actions().contains( action ) ) // a variable name clicked { if ( mExpressionString != action->text().prepend( "@" ) ) { mExpressionString = action->data().toString().prepend( "@" ); } mProperty.setExpressionString( mExpressionString ); mProperty.setTransformer( nullptr ); setActivePrivate( true ); updateSiblingWidgets( isActive() ); updateGui(); emit changed(); } }
void QgsDataDefinedButton::menuActionTriggered( QAction* action ) { if ( action == mActionActive ) { setActive( mActionActive->data().toBool() ); updateGui(); } else if ( action == mActionDescription ) { showDescriptionDialog(); } else if ( action == mActionExpDialog ) { showExpressionDialog(); } else if ( action == mActionExpression ) { setUseExpression( true ); setActive( true ); updateGui(); } else if ( action == mActionCopyExpr ) { QApplication::clipboard()->setText( getExpression() ); } else if ( action == mActionPasteExpr ) { QString exprString = QApplication::clipboard()->text(); if ( !exprString.isEmpty() ) { setExpression( exprString ); setUseExpression( true ); setActive( true ); updateGui(); } } else if ( action == mActionClearExpr ) { // only deactivate if defined expression is being used if ( isActive() && useExpression() ) { setUseExpression( false ); setActive( false ); } setExpression( QString() ); updateGui(); } else if ( action == mActionAssistant ) { showAssistant(); } else if ( mFieldsMenu->actions().contains( action ) ) // a field name clicked { if ( action->isEnabled() ) { if ( getField() != action->text() ) { setField( action->data().toString() ); } setUseExpression( false ); setActive( true ); updateGui(); } } else if ( mVariablesMenu->actions().contains( action ) ) // a variable name clicked { if ( getExpression() != action->text().prepend( "@" ) ) { setExpression( action->data().toString().prepend( "@" ) ); } setUseExpression( true ); setActive( true ); updateGui(); } }