QgsAtlasComposition::QgsAtlasComposition( QgsComposition* composition ) : mComposition( composition ) , mEnabled( false ) , mHideCoverage( false ) , mFilenamePattern( QStringLiteral( "'output_'||@atlas_featurenumber" ) ) , mCoverageLayer( nullptr ) , mSingleFile( false ) , mSortFeatures( false ) , mSortAscending( true ) , mCurrentFeatureNo( 0 ) , mFilterFeatures( false ) { //listen out for layer removal connect( QgsMapLayerRegistry::instance(), SIGNAL( layersWillBeRemoved( QStringList ) ), this, SLOT( removeLayers( QStringList ) ) ); }
void LayerTreeSidebar::createForms() { QVBoxLayout *mainLayout = new QVBoxLayout(); mainLayout->setSpacing(0); mainLayout->setContentsMargins(0, 0, 0, 0); { auto view = new QTreeView(); if (d->uiController) view->setItemDelegate(new LayerModelViewDelegate(d->uiController, this)); view->setHeaderHidden(true); view->setSelectionMode(QAbstractItemView::ExtendedSelection); view->setDragDropMode(QAbstractItemView::DragDrop); view->setDefaultDropAction(Qt::MoveAction); view->setDropIndicatorShown(true); if (d->document) { view->setModel(d->document->layerScene()->itemModel()); view->setSelectionModel(d->document->layerScene()->itemSelectionModel()); connect(d->document->layerScene(), SIGNAL(thumbnailsUpdated(QPointSet)), view, SLOT(update())); } view->setContextMenuPolicy(Qt::CustomContextMenu); connect(view, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(showViewContextMenu(QPoint))); view->installEventFilter(this); d->view = view; mainLayout->addWidget(view); } { auto lowerLayout = new QVBoxLayout(); lowerLayout->setSpacing(6); lowerLayout->setContentsMargins(6,6,6,6); { auto editor = new LayerPropertyEditor(d->document ? d->document->layerScene() : 0); lowerLayout->addWidget(editor); } // buttons { auto layout = new QHBoxLayout(); layout->setSpacing(0); auto addButton = new SimpleButton(":/icons/16x16/add.svg", QSize(16,16)); addButton->setMargins(4, 0, 4, 0); auto removeButton = new SimpleButton(":/icons/16x16/subtract.svg", QSize(16,16)); removeButton->setMargins(4, 0, 4, 0); auto miscButton = new SimpleButton(":/icons/16x16/menuDown.svg", QSize(16,16)); miscButton->setMargins(4, 0, 4, 0); if (d->uiController) { auto addMenu = new QMenu(this); addMenu->addAction(d->uiController->action(LayerUIController::ActionNewRaster)); addMenu->addAction(d->uiController->action(LayerUIController::ActionNewGroup)); addMenu->addAction(d->uiController->action(LayerUIController::ActionImport)); addButton->setMenu(addMenu); connect(removeButton, SIGNAL(pressed()), d->uiController, SLOT(removeLayers())); QMenu *miscMenu = new QMenu(this); miscMenu->addAction(d->uiController->action(LayerUIController::ActionMerge)); miscButton->setMenu(miscMenu); } layout->addWidget(addButton); layout->addWidget(removeButton); layout->addWidget(miscButton); layout->addStretch(1); lowerLayout->addLayout(layout); } mainLayout->addLayout(lowerLayout); } setLayout(mainLayout); }
QgsMapLayerModel::QgsMapLayerModel( QObject *parent ) : QAbstractItemModel( parent ) , mLayersChecked( QMap<QString, Qt::CheckState>() ) , mItemCheckable( false ) { connect( QgsMapLayerRegistry::instance(), SIGNAL( layersAdded( QList<QgsMapLayer*> ) ), this, SLOT( addLayers( QList<QgsMapLayer*> ) ) ); connect( QgsMapLayerRegistry::instance(), SIGNAL( layersWillBeRemoved( QStringList ) ), this, SLOT( removeLayers( QStringList ) ) ); addLayers( QgsMapLayerRegistry::instance()->mapLayers().values() ); }
QgsAtlasComposition::QgsAtlasComposition( QgsComposition* composition ) : mComposition( composition ) , mEnabled( false ) , mHideCoverage( false ) , mFilenamePattern( "'output_'||$feature" ) , mCoverageLayer( 0 ) , mSingleFile( false ) , mSortFeatures( false ) , mSortAscending( true ) , mCurrentFeatureNo( 0 ) , mFilterFeatures( false ) { // declare special columns with a default value QgsExpression::setSpecialColumn( "$page", QVariant(( int )1 ) ); QgsExpression::setSpecialColumn( "$feature", QVariant(( int )0 ) ); QgsExpression::setSpecialColumn( "$numpages", QVariant(( int )1 ) ); QgsExpression::setSpecialColumn( "$numfeatures", QVariant(( int )0 ) ); QgsExpression::setSpecialColumn( "$atlasfeatureid", QVariant(( int )0 ) ); QgsExpression::setSpecialColumn( "$atlasfeature", QVariant::fromValue( QgsFeature() ) ); QgsExpression::setSpecialColumn( "$atlasgeometry", QVariant::fromValue( QgsGeometry() ) ); //listen out for layer removal connect( QgsMapLayerRegistry::instance(), SIGNAL( layersWillBeRemoved( QStringList ) ), this, SLOT( removeLayers( QStringList ) ) ); }