void AnagraficaAddDialog::save(void) { //Effettua diversi controlli per verificare che i dati nel dialog //siano stati inseriti, se tutti i controlli vengono passati esegue //la query. qDebug() << "AnagraficaAddDialog::save()"; prepareMap(m_mapPersona, int(modelCols::id)); if (!checkValues()) return; QSqlQuery query = prepareQuery(); if (!query.exec()) { if (m_mapPersona.contains(ph::ID)) showDialogError(this, ERR011, MSG005, query.lastError().text()); //NOTE codice errore 011 else showDialogError(this, ERR025, MSG002, query.lastError().text()); //NOTE codice errore 025 return; } while (query.next()) setId(query.value("id").toString()); this->accept(); }
void AnagraficaAddDialog::save(void) { //Effettua diversi controlli per verificare che i dati nel dialog //siano stati inseriti, se tutti i controlli vengono passati esegue //la query. qDebug() << "AnagraficaAddDialog::save()"; prepareMap(); if (mapPersona[anagrafica::PH_RAG_SOCIALE].isEmpty()) { showDialogError(this, ERR020, MSG016); //NOTE codice errore 020 ui->le_rag_sociale->setStyleSheet(anagrafica::CSS_WARNING_STYLE); return; } else if (mapPersona[anagrafica::PH_CLIENTE] == "n" && mapPersona[anagrafica::PH_FORNITORE] == "n") { showDialogError(this, ERR021, MSG017); //NOTE codice errore 021 ui->cliente_cb->setStyleSheet(anagrafica::CSS_WARNING_STYLE); ui->fornitore_cb->setStyleSheet(anagrafica::CSS_WARNING_STYLE); return; } else if (mapPersona[anagrafica::PH_COD_FISCALE].isEmpty() || mapPersona[anagrafica::PH_PRT_IVA].isEmpty()) { showDialogError(this, ERR022, MSG018); //NOTE codice errore 022 ui->le_cod_fiscale->setStyleSheet(anagrafica::CSS_WARNING_STYLE); ui->le_piva->setStyleSheet(anagrafica::CSS_WARNING_STYLE); return; } if (!controlloPartitaIva(mapPersona[anagrafica::PH_PRT_IVA])) { if (!showDialogWarning(this, ERR023, MSG019)) //NOTE codice errore 023 return; } if (mapPersona[anagrafica::PH_COD_FISCALE] != mapPersona[anagrafica::PH_PRT_IVA]) { if (!controlloCodiceFiscale(mapPersona[anagrafica::PH_COD_FISCALE])) { if (!showDialogWarning(this, ERR024, MSG020)) //NOTE codice errore 024 return; } } QSqlQuery query = prepareQuery(); if (!query.exec()) { if (mapPersona.contains(anagrafica::PH_ID)) { showDialogError(this, ERR011, MSG005, query.lastError().text()); //NOTE codice errore 011 } else { showDialogError(this, ERR025, MSG002, query.lastError().text()); //NOTE codice errore 025 } return; } this->accept(); }
void global_planner::VoronoiExpansion::setNewMap(cv::Mat _map, Eigen::Vector2d _origin, float _resoltuion, int _optimization) { ROS_INFO("debug got map"); size_t new_hash = getHash(_map, _origin, _resoltuion); if (currentHash_ != new_hash) { ROS_INFO("Global Planner: Computing distance field ..."); origin_[0] = _origin[0]; origin_[1] = _origin[1]; resolution_ = _resoltuion; prepareMap(_map, map_, _optimization); computeDistanceField(map_, distfield_); ROS_INFO("Global Planner: Computing voronoi graph ..."); computeVoronoiMap(distfield_, voronoi_); currentHash_ = new_hash; } gotMap_ = true; }
void QgsAtlasComposition::prepareForFeature( int featureI ) { if ( !mCoverageLayer ) { return; } if ( mFeatureIds.size() == 0 ) { emit statusMsgChanged( tr( "No matching atlas features" ) ); return; } // retrieve the next feature, based on its id mCoverageLayer->getFeatures( QgsFeatureRequest().setFilterFid( mFeatureIds[ featureI ] ) ).nextFeature( mCurrentFeature ); QgsExpression::setSpecialColumn( "$atlasfeatureid", mCurrentFeature.id() ); QgsExpression::setSpecialColumn( "$atlasgeometry", QVariant::fromValue( *mCurrentFeature.geometry() ) ); QgsExpression::setSpecialColumn( "$feature", QVariant(( int )featureI + 1 ) ); // generate filename for current feature evalFeatureFilename(); // evaluate label expressions QList<QgsComposerLabel*> labels; mComposition->composerItems( labels ); for ( QList<QgsComposerLabel*>::iterator lit = labels.begin(); lit != labels.end(); ++lit ) { ( *lit )->setExpressionContext( &mCurrentFeature, mCoverageLayer ); } // update shapes (in case they use data defined symbology with atlas properties) QList<QgsComposerShape*> shapes; mComposition->composerItems( shapes ); for ( QList<QgsComposerShape*>::iterator lit = shapes.begin(); lit != shapes.end(); ++lit ) { ( *lit )->update(); } // update page background (in case it uses data defined symbology with atlas properties) QList<QgsPaperItem*> pages; mComposition->composerItems( pages ); for ( QList<QgsPaperItem*>::iterator pageIt = pages.begin(); pageIt != pages.end(); ++pageIt ) { ( *pageIt )->update(); } emit statusMsgChanged( QString( tr( "Atlas feature %1 of %2" ) ).arg( featureI + 1 ).arg( mFeatureIds.size() ) ); //update composer maps //build a list of atlas-enabled composer maps QList<QgsComposerMap*> maps; QList<QgsComposerMap*> atlasMaps; mComposition->composerItems( maps ); for ( QList<QgsComposerMap*>::iterator mit = maps.begin(); mit != maps.end(); ++mit ) { QgsComposerMap* currentMap = ( *mit ); if ( !currentMap->atlasDriven() ) { continue; } atlasMaps << currentMap; } //clear the transformed bounds of the previous feature mTransformedFeatureBounds = QgsRectangle(); if ( atlasMaps.isEmpty() ) { //no atlas enabled maps return; } // compute extent of current feature in the map CRS. This should be set on a per-atlas map basis, // but given that it's not currently possible to have maps with different CRSes we can just // calculate it once based on the first atlas maps' CRS. computeExtent( atlasMaps[0] ); //update atlas bounds of every atlas enabled composer map for ( QList<QgsComposerMap*>::iterator mit = atlasMaps.begin(); mit != atlasMaps.end(); ++mit ) { prepareMap( *mit ); } }
bool QgsAtlasComposition::prepareForFeature( const int featureI, const bool updateMaps ) { if ( !mCoverageLayer ) { return false; } if ( mFeatureIds.isEmpty() ) { emit statusMsgChanged( tr( "No matching atlas features" ) ); return false; } if ( featureI >= mFeatureIds.size() ) { return false; } mCurrentFeatureNo = featureI; // retrieve the next feature, based on its id mCoverageLayer->getFeatures( QgsFeatureRequest().setFilterFid( mFeatureIds[ featureI ].first ) ).nextFeature( mCurrentFeature ); QgsExpressionContext expressionContext = createExpressionContext(); // generate filename for current feature if ( !evalFeatureFilename( expressionContext ) ) { //error evaluating filename return false; } mGeometryCache.clear(); emit featureChanged( &mCurrentFeature ); emit statusMsgChanged( QString( tr( "Atlas feature %1 of %2" ) ).arg( featureI + 1 ).arg( mFeatureIds.size() ) ); if ( !mCurrentFeature.isValid() ) { //bad feature return true; } if ( !updateMaps ) { //nothing more to do return true; } //update composer maps //build a list of atlas-enabled composer maps QList<QgsComposerMap*> maps; QList<QgsComposerMap*> atlasMaps; mComposition->composerItems( maps ); if ( maps.isEmpty() ) { return true; } for ( QList<QgsComposerMap*>::iterator mit = maps.begin(); mit != maps.end(); ++mit ) { QgsComposerMap* currentMap = ( *mit ); if ( !currentMap->atlasDriven() ) { continue; } atlasMaps << currentMap; } if ( !atlasMaps.isEmpty() ) { //clear the transformed bounds of the previous feature mTransformedFeatureBounds = QgsRectangle(); // compute extent of current feature in the map CRS. This should be set on a per-atlas map basis, // but given that it's not currently possible to have maps with different CRSes we can just // calculate it once based on the first atlas maps' CRS. computeExtent( atlasMaps[0] ); } for ( QList<QgsComposerMap*>::iterator mit = maps.begin(); mit != maps.end(); ++mit ) { if (( *mit )->atlasDriven() ) { // map is atlas driven, so update it's bounds (causes a redraw) prepareMap( *mit ); } else { // map is not atlas driven, so manually force a redraw (to reflect possibly atlas // dependent symbology) ( *mit )->cache(); } } return true; }
void QgsAtlasComposition::prepareForFeature( int featureI ) { if ( !mCoverageLayer ) { return; } if ( mFeatureIds.size() == 0 ) { emit statusMsgChanged( tr( "No matching atlas features" ) ); return; } // retrieve the next feature, based on its id mCoverageLayer->getFeatures( QgsFeatureRequest().setFilterFid( mFeatureIds[ featureI ] ) ).nextFeature( mCurrentFeature ); QgsExpression::setSpecialColumn( "$atlasfeatureid", mCurrentFeature.id() ); QgsExpression::setSpecialColumn( "$atlasgeometry", QVariant::fromValue( *mCurrentFeature.geometry() ) ); QgsExpression::setSpecialColumn( "$feature", QVariant(( int )featureI + 1 ) ); // generate filename for current feature evalFeatureFilename(); // evaluate label expressions QList<QgsComposerLabel*> labels; mComposition->composerItems( labels ); for ( QList<QgsComposerLabel*>::iterator lit = labels.begin(); lit != labels.end(); ++lit ) { ( *lit )->setExpressionContext( &mCurrentFeature, mCoverageLayer ); } // update shapes (in case they use data defined symbology with atlas properties) QList<QgsComposerShape*> shapes; mComposition->composerItems( shapes ); for ( QList<QgsComposerShape*>::iterator lit = shapes.begin(); lit != shapes.end(); ++lit ) { ( *lit )->update(); } // update page background (in case it uses data defined symbology with atlas properties) QList<QgsPaperItem*> pages; mComposition->composerItems( pages ); for ( QList<QgsPaperItem*>::iterator pageIt = pages.begin(); pageIt != pages.end(); ++pageIt ) { ( *pageIt )->update(); } emit statusMsgChanged( QString( tr( "Atlas feature %1 of %2" ) ).arg( featureI + 1 ).arg( mFeatureIds.size() ) ); //update composer maps //build a list of atlas-enabled composer maps QList<QgsComposerMap*> maps; QList<QgsComposerMap*> atlasMaps; mComposition->composerItems( maps ); for ( QList<QgsComposerMap*>::iterator mit = maps.begin(); mit != maps.end(); ++mit ) { QgsComposerMap* currentMap = ( *mit ); if ( !currentMap->atlasDriven() ) { continue; } atlasMaps << currentMap; } if ( atlasMaps.isEmpty() ) { //no atlas enabled maps return; } // // compute the new extent // keep the original aspect ratio // and apply a margin const QgsCoordinateReferenceSystem& coverage_crs = mCoverageLayer->crs(); // transformation needed for feature geometries. This should be set on a per-atlas map basis, // but given that it's not currently possible to have maps with different CRSes we can just // calculate it once based on the first atlas maps' CRS. const QgsCoordinateReferenceSystem& destination_crs = atlasMaps[0]->mapRenderer()->destinationCrs(); mTransform.setSourceCrs( coverage_crs ); mTransform.setDestCRS( destination_crs ); // QgsGeometry::boundingBox is expressed in the geometry"s native CRS // We have to transform the grometry to the destination CRS and ask for the bounding box // Note: we cannot directly take the transformation of the bounding box, since transformations are not linear QgsGeometry tgeom( *mCurrentFeature.geometry() ); tgeom.transform( mTransform ); mTransformedFeatureBounds = tgeom.boundingBox(); //update atlas bounds of every atlas enabled composer map for ( QList<QgsComposerMap*>::iterator mit = atlasMaps.begin(); mit != atlasMaps.end(); ++mit ) { prepareMap( *mit ); } }
bool QgsAtlasComposition::prepareForFeature( int featureI ) { if ( !mCoverageLayer ) { return false; } if ( mFeatureIds.size() == 0 ) { emit statusMsgChanged( tr( "No matching atlas features" ) ); return false; } mCurrentFeatureNo = featureI; // retrieve the next feature, based on its id mCoverageLayer->getFeatures( QgsFeatureRequest().setFilterFid( mFeatureIds[ featureI ] ) ).nextFeature( mCurrentFeature ); QgsExpression::setSpecialColumn( "$atlasfeatureid", mCurrentFeature.id() ); QgsExpression::setSpecialColumn( "$atlasgeometry", QVariant::fromValue( *mCurrentFeature.geometry() ) ); QgsExpression::setSpecialColumn( "$atlasfeature", QVariant::fromValue( mCurrentFeature ) ); QgsExpression::setSpecialColumn( "$feature", QVariant(( int )featureI + 1 ) ); // generate filename for current feature if ( !evalFeatureFilename() ) { //error evaluating filename return false; } emit featureChanged( &mCurrentFeature ); emit statusMsgChanged( QString( tr( "Atlas feature %1 of %2" ) ).arg( featureI + 1 ).arg( mFeatureIds.size() ) ); //update composer maps //build a list of atlas-enabled composer maps QList<QgsComposerMap*> maps; QList<QgsComposerMap*> atlasMaps; mComposition->composerItems( maps ); for ( QList<QgsComposerMap*>::iterator mit = maps.begin(); mit != maps.end(); ++mit ) { QgsComposerMap* currentMap = ( *mit ); if ( !currentMap->atlasDriven() ) { continue; } atlasMaps << currentMap; } //clear the transformed bounds of the previous feature mTransformedFeatureBounds = QgsRectangle(); if ( atlasMaps.isEmpty() ) { //no atlas enabled maps return true; } // compute extent of current feature in the map CRS. This should be set on a per-atlas map basis, // but given that it's not currently possible to have maps with different CRSes we can just // calculate it once based on the first atlas maps' CRS. computeExtent( atlasMaps[0] ); //update atlas bounds of every atlas enabled composer map for ( QList<QgsComposerMap*>::iterator mit = atlasMaps.begin(); mit != atlasMaps.end(); ++mit ) { prepareMap( *mit ); } return true; }