QgsNewSpatialiteLayerDialog::QgsNewSpatialiteLayerDialog( QWidget *parent, Qt::WindowFlags fl ) : QDialog( parent, fl ) { setupUi( this ); QSettings settings; restoreGeometry( settings.value( "/Windows/NewSpatiaLiteLayer/geometry" ).toByteArray() ); mAddAttributeButton->setIcon( QgsApplication::getThemeIcon( "/mActionNewAttribute.svg" ) ); mRemoveAttributeButton->setIcon( QgsApplication::getThemeIcon( "/mActionDeleteAttribute.svg" ) ); mTypeBox->addItem( tr( "Text data" ), "text" ); mTypeBox->addItem( tr( "Whole number" ), "integer" ); mTypeBox->addItem( tr( "Decimal number" ), "real" ); mPointRadioButton->setChecked( true ); // Populate the database list from the stored connections settings.beginGroup( "/SpatiaLite/connections" ); QStringList keys = settings.childGroups(); QStringList::Iterator it = keys.begin(); mDatabaseComboBox->clear(); while ( it != keys.end() ) { // retrieving the SQLite DB name and full path QString text = settings.value( *it + "/sqlitepath", "###unknown###" ).toString(); mDatabaseComboBox->addItem( text ); ++it; } settings.endGroup(); mOkButton = buttonBox->button( QDialogButtonBox::Ok ); mOkButton->setEnabled( false ); // Set the SRID box to a default of WGS84 QgsCoordinateReferenceSystem srs = QgsCRSCache::instance()->crsByOgcWmsCrs( settings.value( "/Projections/layerDefaultCrs", GEO_EPSG_CRS_AUTHID ).toString() ); srs.validate(); mCrsId = srs.authid(); leSRID->setText( srs.authid() + " - " + srs.description() ); pbnFindSRID->setEnabled( mDatabaseComboBox->count() ); connect( mNameEdit, SIGNAL( textChanged( QString ) ), this, SLOT( nameChanged( QString ) ) ); connect( mAttributeView, SIGNAL( itemSelectionChanged() ), this, SLOT( selectionChanged() ) ); connect( leLayerName, SIGNAL( textChanged( QString ) ), this, SLOT( checkOk() ) ); connect( checkBoxPrimaryKey, SIGNAL( clicked() ), this, SLOT( checkOk() ) ); mAddAttributeButton->setEnabled( false ); mRemoveAttributeButton->setEnabled( false ); }
void QgsNewVectorLayerDialog::mAddAttributeButton_clicked() { QString myName = mNameEdit->text(); QString myWidth = mWidth->text(); QString myPrecision = mPrecision->isEnabled() ? mPrecision->text() : QLatin1String( "" ); //use userrole to avoid translated type string QString myType = mTypeBox->currentData( Qt::UserRole ).toString(); mAttributeView->addTopLevelItem( new QTreeWidgetItem( QStringList() << myName << myType << myWidth << myPrecision ) ); checkOk(); mNameEdit->clear(); }
bool SerialClient::writePacket(QByteArray& data) { quint16 checksum; checksum = qChecksum(data, data.size()); for(int i = 0;i < SERIAL_MAX_RETRY;i++) { m_stream << SERIAL_KEY; m_stream << data; m_stream << qChecksum(data.constData(), data.size()); if(checkOk()) return true; } return false; }
void QgsNewSpatialiteLayerDialog::on_mAddAttributeButton_clicked() { if ( !mNameEdit->text().isEmpty() ) { QString myName = mNameEdit->text(); //use userrole to avoid translated type string QString myType = mTypeBox->itemData( mTypeBox->currentIndex(), Qt::UserRole ).toString(); mAttributeView->addTopLevelItem( new QTreeWidgetItem( QStringList() << myName << myType ) ); checkOk(); mNameEdit->clear(); } }
void QgsNewGeoPackageLayerDialog::mAddAttributeButton_clicked() { if ( !mFieldNameEdit->text().isEmpty() ) { QString myName = mFieldNameEdit->text(); if ( myName == mFeatureIdColumnEdit->text() ) { QMessageBox::critical( this, tr( "Invalid field name" ), tr( "The field cannot have the same name as the feature identifier" ) ); return; } //use userrole to avoid translated type string QString myType = mFieldTypeBox->currentData( Qt::UserRole ).toString(); QString length = mFieldLengthEdit->text(); mAttributeView->addTopLevelItem( new QTreeWidgetItem( QStringList() << myName << myType << length ) ); checkOk(); mFieldNameEdit->clear(); } }
void CreateTableDialog::checkChanges() { m_dubious = false; m_createButton->setEnabled(checkOk(ui.nameEdit->text())); }
void QgsNewSpatialiteLayerDialog::on_mRemoveAttributeButton_clicked() { delete mAttributeView->currentItem(); checkOk(); }
QgsNewVectorLayerDialog::QgsNewVectorLayerDialog( QWidget *parent, Qt::WindowFlags fl ) : QDialog( parent, fl ) { setupUi( this ); connect( mAddAttributeButton, &QToolButton::clicked, this, &QgsNewVectorLayerDialog::mAddAttributeButton_clicked ); connect( mRemoveAttributeButton, &QToolButton::clicked, this, &QgsNewVectorLayerDialog::mRemoveAttributeButton_clicked ); connect( mFileFormatComboBox, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsNewVectorLayerDialog::mFileFormatComboBox_currentIndexChanged ); connect( mTypeBox, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsNewVectorLayerDialog::mTypeBox_currentIndexChanged ); connect( buttonBox, &QDialogButtonBox::helpRequested, this, &QgsNewVectorLayerDialog::showHelp ); QgsSettings settings; restoreGeometry( settings.value( QStringLiteral( "Windows/NewVectorLayer/geometry" ) ).toByteArray() ); mAddAttributeButton->setIcon( QgsApplication::getThemeIcon( QStringLiteral( "/mActionNewAttribute.svg" ) ) ); mRemoveAttributeButton->setIcon( QgsApplication::getThemeIcon( QStringLiteral( "/mActionDeleteAttribute.svg" ) ) ); mTypeBox->addItem( QgsApplication::getThemeIcon( QStringLiteral( "/mIconFieldText.svg" ) ), tr( "Text data" ), "String" ); mTypeBox->addItem( QgsApplication::getThemeIcon( QStringLiteral( "/mIconFieldInteger.svg" ) ), tr( "Whole number" ), "Integer" ); mTypeBox->addItem( QgsApplication::getThemeIcon( QStringLiteral( "/mIconFieldFloat.svg" ) ), tr( "Decimal number" ), "Real" ); mTypeBox->addItem( QgsApplication::getThemeIcon( QStringLiteral( "/mIconFieldDate.svg" ) ), tr( "Date" ), "Date" ); mWidth->setValidator( new QIntValidator( 1, 255, this ) ); mPrecision->setValidator( new QIntValidator( 0, 15, this ) ); mGeometryTypeBox->addItem( QgsApplication::getThemeIcon( QStringLiteral( "/mIconPointLayer.svg" ) ), tr( "Point" ), QgsWkbTypes::Point ); mGeometryTypeBox->addItem( QgsApplication::getThemeIcon( QStringLiteral( "/mIconLineLayer.svg" ) ), tr( "Line" ), QgsWkbTypes::LineString ); mGeometryTypeBox->addItem( QgsApplication::getThemeIcon( QStringLiteral( "/mIconPolygonLayer.svg" ) ), tr( "Polygon" ), QgsWkbTypes::Polygon ); mOkButton = buttonBox->button( QDialogButtonBox::Ok ); mOkButton->setEnabled( false ); mFileFormatComboBox->addItem( tr( "ESRI Shapefile" ), "ESRI Shapefile" ); #if 0 // Disabled until provider properly supports editing the created file formats // When enabling this, adapt the window-title of the dialog and the title of all actions showing this dialog. mFileFormatComboBox->addItem( tr( "Comma Separated Value" ), "Comma Separated Value" ); mFileFormatComboBox->addItem( tr( "GML" ), "GML" ); mFileFormatComboBox->addItem( tr( "Mapinfo File" ), "Mapinfo File" ); #endif if ( mFileFormatComboBox->count() == 1 ) { mFileFormatComboBox->setVisible( false ); mFileFormatLabel->setVisible( false ); } mFileFormatComboBox->setCurrentIndex( 0 ); mFileEncoding->addItems( QgsVectorDataProvider::availableEncodings() ); // Use default encoding if none supplied QString enc = QgsSettings().value( QStringLiteral( "/UI/encoding" ), "System" ).toString(); // The specified decoding is added if not existing already, and then set current. // This should select it. int encindex = mFileEncoding->findText( enc ); if ( encindex < 0 ) { mFileEncoding->insertItem( 0, enc ); encindex = 0; } mFileEncoding->setCurrentIndex( encindex ); mAttributeView->addTopLevelItem( new QTreeWidgetItem( QStringList() << QStringLiteral( "id" ) << QStringLiteral( "Integer" ) << QStringLiteral( "10" ) << QLatin1String( "" ) ) ); connect( mNameEdit, &QLineEdit::textChanged, this, &QgsNewVectorLayerDialog::nameChanged ); connect( mAttributeView, &QTreeWidget::itemSelectionChanged, this, &QgsNewVectorLayerDialog::selectionChanged ); mAddAttributeButton->setEnabled( false ); mRemoveAttributeButton->setEnabled( false ); mFileName->setStorageMode( QgsFileWidget::SaveFile ); mFileName->setFilter( QgsVectorFileWriter::filterForDriver( mFileFormatComboBox->currentData( Qt::UserRole ).toString() ) ); mFileName->setDialogTitle( tr( "Save Layer as…" ) ); mFileName->setDefaultRoot( settings.value( QStringLiteral( "UI/lastVectorFileFilterDir" ), QDir::homePath() ).toString() ); connect( mFileName, &QgsFileWidget::fileChanged, this, [ = ] { QgsSettings settings; QFileInfo tmplFileInfo( mFileName->filePath() ); settings.setValue( QStringLiteral( "UI/lastVectorFileFilterDir" ), tmplFileInfo.absolutePath() ); checkOk(); } ); }
void QgsNewVectorLayerDialog::mRemoveAttributeButton_clicked() { delete mAttributeView->currentItem(); checkOk(); }
QgsNewGeoPackageLayerDialog::QgsNewGeoPackageLayerDialog( QWidget *parent, Qt::WindowFlags fl ) : QDialog( parent, fl ) { setupUi( this ); connect( mAddAttributeButton, &QToolButton::clicked, this, &QgsNewGeoPackageLayerDialog::mAddAttributeButton_clicked ); connect( mRemoveAttributeButton, &QToolButton::clicked, this, &QgsNewGeoPackageLayerDialog::mRemoveAttributeButton_clicked ); connect( mFieldTypeBox, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsNewGeoPackageLayerDialog::mFieldTypeBox_currentIndexChanged ); connect( mGeometryTypeBox, static_cast<void ( QComboBox::* )( int )>( &QComboBox::currentIndexChanged ), this, &QgsNewGeoPackageLayerDialog::mGeometryTypeBox_currentIndexChanged ); connect( mTableNameEdit, &QLineEdit::textChanged, this, &QgsNewGeoPackageLayerDialog::mTableNameEdit_textChanged ); connect( mTableNameEdit, &QLineEdit::textEdited, this, &QgsNewGeoPackageLayerDialog::mTableNameEdit_textEdited ); connect( mLayerIdentifierEdit, &QLineEdit::textEdited, this, &QgsNewGeoPackageLayerDialog::mLayerIdentifierEdit_textEdited ); connect( buttonBox, &QDialogButtonBox::accepted, this, &QgsNewGeoPackageLayerDialog::buttonBox_accepted ); connect( buttonBox, &QDialogButtonBox::rejected, this, &QgsNewGeoPackageLayerDialog::buttonBox_rejected ); connect( buttonBox, &QDialogButtonBox::helpRequested, this, &QgsNewGeoPackageLayerDialog::showHelp ); QgsSettings settings; restoreGeometry( settings.value( QStringLiteral( "Windows/NewGeoPackageLayer/geometry" ) ).toByteArray() ); mAddAttributeButton->setIcon( QgsApplication::getThemeIcon( QStringLiteral( "/mActionNewAttribute.svg" ) ) ); mRemoveAttributeButton->setIcon( QgsApplication::getThemeIcon( QStringLiteral( "/mActionDeleteAttribute.svg" ) ) ); mGeometryTypeBox->addItem( tr( "Non spatial" ), wkbNone ); mGeometryTypeBox->addItem( tr( "Point" ), wkbPoint ); mGeometryTypeBox->addItem( tr( "Line" ), wkbLineString ); mGeometryTypeBox->addItem( tr( "Polygon" ), wkbPolygon ); mGeometryTypeBox->addItem( tr( "Multi point" ), wkbMultiPoint ); mGeometryTypeBox->addItem( tr( "Multi line" ), wkbMultiLineString ); mGeometryTypeBox->addItem( tr( "Multi polygon" ), wkbMultiPolygon ); #if 0 // QGIS always create CompoundCurve and there's no real interest of having just CircularString. CompoundCurve are more useful mGeometryTypeBox->addItem( tr( "Circular string" ), wkbCircularString ); #endif mGeometryTypeBox->addItem( tr( "Compound curve" ), wkbCompoundCurve ); mGeometryTypeBox->addItem( tr( "Curve polygon" ), wkbCurvePolygon ); mGeometryTypeBox->addItem( tr( "Multi curve" ), wkbMultiCurve ); mGeometryTypeBox->addItem( tr( "Multi surface" ), wkbMultiSurface ); mGeometryWithZCheckBox->setEnabled( false ); mGeometryWithMCheckBox->setEnabled( false ); mGeometryColumnEdit->setEnabled( false ); mCheckBoxCreateSpatialIndex->setEnabled( false ); mCrsSelector->setEnabled( false ); mFieldTypeBox->addItem( tr( "Text data" ), "text" ); mFieldTypeBox->addItem( tr( "Whole number (integer)" ), "integer" ); mFieldTypeBox->addItem( tr( "Whole number (integer 64 bit)" ), "integer64" ); mFieldTypeBox->addItem( tr( "Decimal number (real)" ), "real" ); mFieldTypeBox->addItem( tr( "Date" ), "date" ); mFieldTypeBox->addItem( tr( "Date&time" ), "datetime" ); mOkButton = buttonBox->button( QDialogButtonBox::Ok ); mOkButton->setEnabled( false ); connect( mFieldNameEdit, &QLineEdit::textChanged, this, &QgsNewGeoPackageLayerDialog::fieldNameChanged ); connect( mAttributeView, &QTreeWidget::itemSelectionChanged, this, &QgsNewGeoPackageLayerDialog::selectionChanged ); connect( mTableNameEdit, &QLineEdit::textChanged, this, &QgsNewGeoPackageLayerDialog::checkOk ); mAddAttributeButton->setEnabled( false ); mRemoveAttributeButton->setEnabled( false ); mCheckBoxCreateSpatialIndex->setChecked( true ); mDatabase->setStorageMode( QgsFileWidget::SaveFile ); mDatabase->setFilter( tr( "GeoPackage" ) + " (*.gpkg)" ); mDatabase->setDialogTitle( tr( "Select Existing or Create a New GeoPackage Database File..." ) ); mDatabase->setDefaultRoot( settings.value( QStringLiteral( "UI/lastVectorFileFilterDir" ), QDir::homePath() ).toString() ); mDatabase->setConfirmOverwrite( false ); connect( mDatabase, &QgsFileWidget::fileChanged, this, [ = ]( const QString & filePath ) { QgsSettings settings; QFileInfo tmplFileInfo( filePath ); settings.setValue( QStringLiteral( "UI/lastVectorFileFilterDir" ), tmplFileInfo.absolutePath() ); if ( !filePath.isEmpty() && !mTableNameEdited ) { QFileInfo fileInfo( filePath ); mTableNameEdit->setText( fileInfo.baseName() ); } checkOk(); } ); }