void QgsWFSSourceSelect::addButtonClicked() { //get selected entry in treeview QModelIndex currentIndex = treeView->selectionModel()->currentIndex(); if ( !currentIndex.isValid() ) { return; } QgsWfsConnection connection( cmbConnections->currentText() ); QString pCrsString( labelCoordRefSys->text() ); //create layers that user selected from this WFS source QModelIndexList list = treeView->selectionModel()->selectedRows(); for ( int i = 0; i < list.size(); i++ ) { //add a wfs layer to the map QModelIndex idx = mModelProxy->mapToSource( list[i] ); if ( !idx.isValid() ) { continue; } int row = idx.row(); QString typeName = mModel->item( row, MODEL_IDX_NAME )->text(); //WFS repository's name for layer QString titleName = mModel->item( row, MODEL_IDX_TITLE )->text(); //WFS type name title for layer name (if option is set) QString sql = mModel->item( row, MODEL_IDX_SQL )->text(); //optional SqL specified by user QString layerName = typeName; if ( cbxUseTitleLayerName->isChecked() && !titleName.isEmpty() ) { layerName = titleName; } QgsDebugMsg( "Layer " + typeName + " SQL is " + sql ); mUri = QgsWFSDataSourceURI::build( connection.uri().uri(), typeName, pCrsString, sql, cbxFeatureCurrentViewExtent->isChecked() ); emit addVectorLayer( mUri, layerName ); } if ( ! mHoldDialogOpen->isChecked() && widgetMode() == QgsProviderRegistry::WidgetMode::None ) { accept(); } }
void QgsVirtualLayerSourceSelect::on_buttonBox_accepted() { QString layer_name = "virtual_layer"; if ( ! mLayerName->text().isEmpty() ) { layer_name = mLayerName->text(); } QUrl url; // embedded layers for ( int i = 0; i < mSourceLayers->rowCount(); i++ ) { QString encodedSource( QUrl::toPercentEncoding(mSourceLayers->item(i,3)->text(), "", ":%") ); QComboBox* cmb = qobject_cast<QComboBox*>(mSourceLayers->cellWidget(i,2)); QString encoding = cmb->currentText(); QString v = QString("%1:%2:%3:%4") .arg(mSourceLayers->item(i, 1)->text(), encodedSource, mSourceLayers->item(i,0)->text(), encoding ); url.addQueryItem( "layer", v ); } QString q = mQueryEdit->toPlainText(); if ( ! q.isEmpty() ) { url.addQueryItem( "query", q ); } if ( ! mUidField->text().isEmpty() ) { url.addQueryItem( "uid", mUidField->text() ); } if ( mHasGeometry->checkState() == Qt::Unchecked ) { url.addQueryItem( "nogeometry", "" ); } else if ( ! mGeometryField->text().isEmpty() ) { url.addQueryItem( "geometry", mGeometryField->text() ); } if ( ! mFilename->text().isEmpty() ) { url.setPath( mFilename->text() ); } emit addVectorLayer( url.toString(), layer_name, "virtual" ); }
void QgsDelimitedTextSourceSelect::on_buttonBox_accepted() { // The following conditions should not be hit! OK will not be enabled... if ( txtLayerName->text().isEmpty() ) { QMessageBox::warning( this, tr( "No layer name" ), tr( "Please enter a layer name before adding the layer to the map" ) ); txtLayerName->setFocus(); return; } if ( delimiterChars->isChecked() ) { if ( selectedChars().size() == 0 ) { QMessageBox::warning( this, tr( "No delimiters set" ), tr( "Please one or more characters to use as the delimiter, or choose a different delimiter type" ) ); txtDelimiterOther->setFocus(); return; } } if ( delimiterRegexp->isChecked() ) { QRegExp re( txtDelimiterRegexp->text() ); if ( ! re.isValid() ) { QMessageBox::warning( this, tr( "Invalid regular expression" ), tr( "Please enter a valid regular expression as the delimiter, or choose a different delimiter type" ) ); txtDelimiterRegexp->setFocus(); return; } } if ( ! mFile->isValid() ) { QMessageBox::warning( this, tr( "Invalid delimited text file" ), tr( "Please enter a valid file and delimiter" ) ); return; } //Build the delimited text URI from the user provided information QUrl url = mFile->url(); if ( cbxPointIsComma->isChecked() ) { url.addQueryItem( "decimalPoint", "," ); } if ( cbxXyDms->isChecked() ) { url.addQueryItem( "xyDms", "yes" ); } if ( geomTypeXY->isChecked() ) { if ( !cmbXField->currentText().isEmpty() && !cmbYField->currentText().isEmpty() ) { QString field = cmbXField->currentText(); url.addQueryItem( "xField", field ); field = cmbYField->currentText(); url.addQueryItem( "yField", field ); } } else if ( geomTypeWKT->isChecked() ) { if ( ! cmbWktField->currentText().isEmpty() ) { QString field = cmbWktField->currentText(); url.addQueryItem( "wktField", field ); } if ( cmbGeometryType->currentIndex() > 0 ) { url.addQueryItem( "geomType", cmbGeometryType->currentText() ); } } else { url.addQueryItem( "geomType", "none" ); } // store the settings saveSettings(); saveSettingsForFile( txtFilePath->text() ); // add the layer to the map emit addVectorLayer( QString::fromAscii( url.toEncoded() ), txtLayerName->text(), "delimitedtext" ); accept(); }
void QgsDelimitedTextSourceSelect::on_buttonBox_accepted() { if ( !txtLayerName->text().isEmpty() ) { //Build the delimited text URI from the user provided information QString delimiterType; if ( delimiterSelection->isChecked() ) delimiterType = ( selectedChars().size() <= 1 ) ? "plain" : "regexp"; else if ( delimiterPlain->isChecked() ) delimiterType = "plain"; else if ( delimiterRegexp->isChecked() ) delimiterType = "regexp"; QUrl url = QUrl::fromLocalFile( txtFilePath->text() ); url.addQueryItem( "delimiter", txtDelimiter->text() ); url.addQueryItem( "delimiterType", delimiterType ); if ( !decimalPoint->text().isEmpty() ) { url.addQueryItem( "decimalPoint", decimalPoint->text() ); } if ( geomTypeXY->isChecked() ) { if ( !cmbXField->currentText().isEmpty() && !cmbYField->currentText().isEmpty() ) { url.addQueryItem( "xField", cmbXField->currentText() ); url.addQueryItem( "yField", cmbYField->currentText() ); } } else { if ( ! cmbWktField->currentText().isEmpty() ) { url.addQueryItem( "wktField", cmbWktField->currentText() ); } } int skipLines = rowCounter->value(); if ( skipLines > 0 ) url.addQueryItem( "skipLines", QString( "%1" ).arg( skipLines ) ); // add the layer to the map emit addVectorLayer( QString::fromAscii( url.toEncoded() ), txtLayerName->text(), "delimitedtext" ); // store the settings QSettings settings; QString key = "/Plugin-DelimitedText"; settings.setValue( key + "/geometry", saveGeometry() ); settings.setValue( key + "/delimiter", txtDelimiter->text() ); QFileInfo fi( txtFilePath->text() ); settings.setValue( key + "/text_path", fi.path() ); settings.setValue( key + "/startFrom", rowCounter->value() ); if ( delimiterSelection->isChecked() ) settings.setValue( key + "/delimiterType", "selection" ); else if ( delimiterPlain->isChecked() ) settings.setValue( key + "/delimiterType", "plain" ); else settings.setValue( key + "/delimiterType", "regexp" ); settings.setValue( key + "/delimiterChars", selectedChars().join( "" ) ); accept(); } else { QMessageBox::warning( this, tr( "No layer name" ), tr( "Please enter a layer name before adding the layer to the map" ) ); } }