void QgsFieldCalculator::on_mOutputFieldNameLineEdit_textChanged( const QString &text ) { Q_UNUSED( text ); setOkButtonState(); }
QgsFieldCalculator::QgsFieldCalculator( QgsVectorLayer* vl, QWidget* parent ) : QDialog( parent ) , mVectorLayer( vl ) , mAttributeId( -1 ) { setupUi( this ); if ( !vl ) return; QgsExpressionContext expContext; expContext << QgsExpressionContextUtils::globalScope() << QgsExpressionContextUtils::projectScope() << QgsExpressionContextUtils::layerScope( mVectorLayer ); expContext.lastScope()->setVariable( "row_number", 1 ); expContext.setHighlightedVariables( QStringList() << "row_number" ); builder->setLayer( vl ); builder->loadFieldNames(); builder->setExpressionContext( expContext ); populateFields(); populateOutputFieldTypes(); connect( builder, SIGNAL( expressionParsed( bool ) ), this, SLOT( setOkButtonState() ) ); connect( mOutputFieldWidthSpinBox, SIGNAL( editingFinished() ), this, SLOT( setPrecisionMinMax() ) ); QgsDistanceArea myDa; myDa.setSourceCrs( vl->crs().srsid() ); myDa.setEllipsoidalMode( QgisApp::instance()->mapCanvas()->mapSettings().hasCrsTransformEnabled() ); myDa.setEllipsoid( QgsProject::instance()->readEntry( "Measure", "/Ellipsoid", GEO_NONE ) ); builder->setGeomCalculator( myDa ); //default values for field width and precision mOutputFieldWidthSpinBox->setValue( 10 ); mOutputFieldPrecisionSpinBox->setValue( 3 ); setPrecisionMinMax(); if ( vl->providerType() == "ogr" && vl->storageType() == "ESRI Shapefile" ) { mOutputFieldNameLineEdit->setMaxLength( 10 ); } if ( !( vl->dataProvider()->capabilities() & QgsVectorDataProvider::AddAttributes ) ) { mCreateVirtualFieldCheckbox->setChecked( true ); mCreateVirtualFieldCheckbox->setEnabled( false ); mOnlyVirtualFieldsInfoLabel->setVisible( true ); mInfoIcon->setVisible( true ); } else { mOnlyVirtualFieldsInfoLabel->setVisible( false ); mInfoIcon->setVisible( false ); } if ( !( vl->dataProvider()->capabilities() & QgsVectorDataProvider::ChangeAttributeValues ) ) { mUpdateExistingGroupBox->setEnabled( false ); mCreateVirtualFieldCheckbox->setChecked( true ); mCreateVirtualFieldCheckbox->setEnabled( false ); } Q_ASSERT( mNewFieldGroupBox->isEnabled() || mUpdateExistingGroupBox->isEnabled() ); if ( mNewFieldGroupBox->isEnabled() ) { mNewFieldGroupBox->setChecked( true ); } else { mNewFieldGroupBox->setToolTip( tr( "Not available for layer" ) ); mUpdateExistingGroupBox->setChecked( true ); mUpdateExistingGroupBox->setCheckable( false ); } if ( mUpdateExistingGroupBox->isEnabled() ) { mUpdateExistingGroupBox->setChecked( !mNewFieldGroupBox->isEnabled() ); } else { mUpdateExistingGroupBox->setToolTip( tr( "Not available for layer" ) ); mNewFieldGroupBox->setChecked( true ); mNewFieldGroupBox->setCheckable( false ); } if (( mNewFieldGroupBox->isChecked() && mCreateVirtualFieldCheckbox->isChecked() ) || mVectorLayer->isEditable() ) { mEditModeAutoTurnOnLabel->setVisible( false ); mInfoIcon->setVisible( false ); } else { mInfoIcon->setVisible( true ); } bool hasselection = vl->selectedFeatureCount() > 0; mOnlyUpdateSelectedCheckBox->setChecked( hasselection ); mOnlyUpdateSelectedCheckBox->setEnabled( hasselection ); mOnlyUpdateSelectedCheckBox->setText( tr( "Only update %1 selected features" ).arg( vl->selectedFeatureCount() ) ); builder->loadRecent( "fieldcalc" ); mInfoIcon->setPixmap( style()->standardPixmap( QStyle::SP_MessageBoxInformation ) ); setOkButtonState(); QSettings settings; restoreGeometry( settings.value( "/Windows/QgsFieldCalculator/geometry" ).toByteArray() ); }
void QgsFieldCalculator::on_mUpdateExistingGroupBox_toggled( bool on ) { mNewFieldGroupBox->setChecked( !on ); setOkButtonState(); }
void OptionsDialog::disableOkButton() { setOkButtonState(false); }
void OptionsDialog::enableOkButton() { /* prevent enabling of the OK button when data modified, if there is an invalid proxy address present */ if(fProxyIpValid) setOkButtonState(true); }
void QgsFieldCalculator::on_mExpressionTextEdit_textChanged() { setOkButtonState(); }
void QgsFieldCalculator::on_mUpdateExistingFieldCheckBox_stateChanged( int state ) { mExistingFieldComboBox->setEnabled( state == Qt::Checked ); mNewFieldGroupBox->setDisabled( state == Qt::Checked ); setOkButtonState(); }