void QgsLegendModel::setLayerSetAndGroups( const QStringList& layerIds, const QList< GroupLayerInfo >& groupInfo ) { setLayerSet( layerIds ); QStandardItem* currentItem = 0; QStandardItem* currentGroupItem = 0; int i = 0; QList< GroupLayerInfo >::const_iterator infoIt = groupInfo.constBegin(); for ( ; infoIt != groupInfo.constEnd() && i < invisibleRootItem()->rowCount(); ) { currentItem = invisibleRootItem()->child( i, 0 ); QString infoKey = infoIt->first; if ( infoKey.isNull() ) //a toplevel layer { ++i; } else //a group { currentGroupItem = addGroup( infoKey, i ); ++i; QList<QString> layerList = infoIt->second; QList<QString>::const_iterator groupLayerIt = layerList.constBegin(); for ( ; currentItem && ( groupLayerIt != layerList.constEnd() ); ++groupLayerIt ) { //check if current item is contained in this group QgsComposerLayerItem* layerItem = dynamic_cast<QgsComposerLayerItem*>( currentItem ); if ( !layerItem ) { return; //should never happen } //QString layerID = currentItem->data(Qt::UserRole + 2).toString(); QString layerID = layerItem->layerID(); if ( layerList.contains( layerID ) ) { takeRow( i ); currentGroupItem->setChild( currentGroupItem->rowCount(), 0, currentItem ); } else { ++i; } currentItem = invisibleRootItem()->child( i, 0 ); } } ++infoIt; } }
bool ImageCanvas::LoadObject(const QString & session, const QString & cam, const QString & img, const double & ux, const double & uy) { if ((current_session == session) && (current_cam == cam) && (current_img == img)) { CenterOnWorldPosition(ux, uy, 1.0); return true; } UnloadObject(); QFileInfo image_file(db->GetImageLocation(session, cam, img)); if(!image_file.isFile() || !image_file.isReadable()) return false; image_layer = new QgsRasterLayer(image_file.filePath(),image_file.fileName()); connect(image_layer,SIGNAL(progressUpdate(int)),this,SLOT(ShowProgress(int))); image_layer->setLayerName("image"); image_provider = image_layer->dataProvider(); if (!image_layer->isValid()) return false; QgsContrastEnhancement* qgsContrastEnhRed = new QgsContrastEnhancement(QGis::UInt16); QgsContrastEnhancement* qgsContrastEnhGreen = new QgsContrastEnhancement(QGis::UInt16); QgsContrastEnhancement* qgsContrastEnhBlue = new QgsContrastEnhancement(QGis::UInt16); QgsMultiBandColorRenderer* renderer = new QgsMultiBandColorRenderer( image_provider, 1, 2, 3, qgsContrastEnhRed, qgsContrastEnhGreen, qgsContrastEnhBlue); image_layer->setRenderer( renderer ); layer_registry->addMapLayer(image_layer); QList<QgsMapCanvasLayer> layer_set; layer_set.append(image_layer); setLayerSet(layer_set); CenterOnWorldPosition(ux, uy, 1.0); current_session = session; current_cam = cam; current_img = img; return true; }