void QgsFeatureListView::mousePressEvent( QMouseEvent *event ) { if ( mModel ) { QPoint pos = event->pos(); QModelIndex index = indexAt( pos ); if ( QgsFeatureListViewDelegate::EditElement == mItemDelegate->positionToElement( event->pos() ) ) { mEditSelectionDrag = true; setEditSelection( mModel->mapToMaster( index ), QItemSelectionModel::ClearAndSelect ); } else { mFeatureSelectionModel->enableSync( false ); selectRow( index, true ); repaintRequested(); } } else { QgsDebugMsg( QStringLiteral( "No model assigned to this view" ) ); } }
void QgsAttributeTableView::setModel( QgsAttributeTableFilterModel* filterModel ) { if ( mFilterModel ) { // Cleanup old model stuff if present disconnect( mFilterModel, SIGNAL( filterAboutToBeInvalidated() ), this, SLOT( onFilterAboutToBeInvalidated() ) ); disconnect( mFilterModel, SIGNAL( filterInvalidated() ), this, SLOT( onFilterInvalidated() ) ); } mFilterModel = filterModel; QTableView::setModel( filterModel ); connect( mFilterModel, SIGNAL( destroyed() ), this, SLOT( modelDeleted() ) ); delete mFeatureSelectionModel; mFeatureSelectionModel = 0; if ( filterModel ) { if ( !mFeatureSelectionManager ) { mFeatureSelectionManager = new QgsVectorLayerSelectionManager( mFilterModel->layer(), mFilterModel ); } mFeatureSelectionModel = new QgsFeatureSelectionModel( mFilterModel, mFilterModel, mFeatureSelectionManager, mFilterModel ); setSelectionModel( mFeatureSelectionModel ); mTableDelegate->setFeatureSelectionModel( mFeatureSelectionModel ); connect( mFeatureSelectionModel, SIGNAL( requestRepaint( QModelIndexList ) ), this, SLOT( repaintRequested( QModelIndexList ) ) ); connect( mFeatureSelectionModel, SIGNAL( requestRepaint() ), this, SLOT( repaintRequested() ) ); } }
void QgsMapOverviewCanvas::setLayerSet( const QStringList& layerSet ) { QgsDebugMsg( "layerSet: " + layerSet.join( ", " ) ); Q_FOREACH ( const QString& layerID, mSettings.layers() ) { if ( QgsMapLayer* ml = QgsMapLayerRegistry::instance()->mapLayer( layerID ) ) disconnect( ml, SIGNAL( repaintRequested() ), this, SLOT( layerRepaintRequested() ) ); } mSettings.setLayers( layerSet ); Q_FOREACH ( const QString& layerID, mSettings.layers() ) { if ( QgsMapLayer* ml = QgsMapLayerRegistry::instance()->mapLayer( layerID ) ) connect( ml, SIGNAL( repaintRequested() ), this, SLOT( layerRepaintRequested() ) ); } updateFullExtent(); }
void QgsMapRendererCache::clearCacheImage( const QString& layerId ) { QMutexLocker lock( &mMutex ); mCachedImages.remove( layerId ); QgsMapLayer* layer = QgsProject::instance()->mapLayer( layerId ); if ( layer ) { disconnect( layer, SIGNAL( repaintRequested() ), this, SLOT( layerRequestedRepaint() ) ); } }
void QgsMapRendererCache::setCacheImage( const QString& layerId, const QImage& img ) { QMutexLocker lock( &mMutex ); mCachedImages[layerId] = img; // connect to the layer to listen to layer's repaintRequested() signals QgsMapLayer* layer = QgsProject::instance()->mapLayer( layerId ); if ( layer ) { connect( layer, SIGNAL( repaintRequested() ), this, SLOT( layerRequestedRepaint() ) ); } }
void QgsMapRendererCache::clearInternal() { mExtent.setMinimal(); mScale = 0; // make sure we are disconnected from all layers Q_FOREACH ( const QString& layerId, mCachedImages.keys() ) { QgsMapLayer* layer = QgsMapLayerRegistry::instance()->mapLayer( layerId ); if ( layer ) { disconnect( layer, SIGNAL( repaintRequested() ), this, SLOT( layerRequestedRepaint() ) ); } } mCachedImages.clear(); }
void QgsMapRendererCache::clearInternal() { mExtent.setMinimal(); mScale = 0; // make sure we are disconnected from all layers QMap<QString, QImage>::const_iterator it = mCachedImages.constBegin(); for ( ; it != mCachedImages.constEnd(); ++it ) { QgsMapLayer* layer = QgsProject::instance()->mapLayer( it.key() ); if ( layer ) { disconnect( layer, SIGNAL( repaintRequested() ), this, SLOT( layerRequestedRepaint() ) ); } } mCachedImages.clear(); }
void PageRunner::finished(bool ok) { // bind nativeio if (!ok) { qApp->exit(1); } if (!scriptMode) { mainFrame()->evaluateJavaScript(getRuntimeBindings()); } // connect signals connect(this, SIGNAL(contentsChanged()), this, SLOT(noteChange())); connect(this, SIGNAL(downloadRequested(QNetworkRequest)), this, SLOT(noteChange())); connect(this, SIGNAL(repaintRequested(QRect)), this, SLOT(noteChange())); connect(mainFrame(), SIGNAL(pageChanged()), this, SLOT(noteChange())); connect(this, SIGNAL(geometryChangeRequested(QRect)), this, SLOT(noteChange())); QTimer::singleShot(150, this, SLOT(reallyFinished())); changed = false; time.start(); }
void QgsMapLayer::clearCacheImage() { emit repaintRequested(); }
void QgsMapLayer::setCacheImage( QImage * ) { emit repaintRequested(); }
void QgsMapOverviewCanvas::setBackgroundColor( const QColor& color ) { mSettings.setBackgroundColor( color ); // set erase color QPalette palette; palette.setColor( backgroundRole(), color ); setPalette( palette ); } void QgsMapOverviewCanvas::setLayers( const QList<QgsMapLayer*>& layers ) { Q_FOREACH ( QgsMapLayer* ml, mSettings.layers() ) { disconnect( ml, SIGNAL( repaintRequested() ), this, SLOT( layerRepaintRequested() ) ); } mSettings.setLayers( layers ); Q_FOREACH ( QgsMapLayer* ml, mSettings.layers() ) { connect( ml, SIGNAL( repaintRequested() ), this, SLOT( layerRepaintRequested() ) ); } updateFullExtent(); refresh(); } void QgsMapOverviewCanvas::updateFullExtent()
void QgsFeatureListView::setModel( QgsFeatureListModel *featureListModel ) { QListView::setModel( featureListModel ); mModel = featureListModel; delete mFeatureSelectionModel; mCurrentEditSelectionModel = new QItemSelectionModel( mModel->masterModel(), this ); if ( !mFeatureSelectionManager ) { mFeatureSelectionManager = new QgsVectorLayerSelectionManager( mModel->layerCache()->layer(), mModel ); } mFeatureSelectionModel = new QgsFeatureSelectionModel( featureListModel, featureListModel, mFeatureSelectionManager, this ); setSelectionModel( mFeatureSelectionModel ); connect( featureListModel->layerCache()->layer(), &QgsVectorLayer::selectionChanged, this, [ this ]() { ensureEditSelection( true ); } ); if ( mItemDelegate && mItemDelegate->parent() == this ) { delete mItemDelegate; } mItemDelegate = new QgsFeatureListViewDelegate( mModel, this ); mItemDelegate->setEditSelectionModel( mCurrentEditSelectionModel ); setItemDelegate( mItemDelegate ); mItemDelegate->setFeatureSelectionModel( mFeatureSelectionModel ); connect( mFeatureSelectionModel, static_cast<void ( QgsFeatureSelectionModel::* )( const QModelIndexList &indexes )>( &QgsFeatureSelectionModel::requestRepaint ), this, static_cast<void ( QgsFeatureListView::* )( const QModelIndexList &indexes )>( &QgsFeatureListView::repaintRequested ) ); connect( mFeatureSelectionModel, static_cast<void ( QgsFeatureSelectionModel::* )()>( &QgsFeatureSelectionModel::requestRepaint ), this, static_cast<void ( QgsFeatureListView::* )()>( &QgsFeatureListView::repaintRequested ) ); connect( mCurrentEditSelectionModel, &QItemSelectionModel::selectionChanged, this, &QgsFeatureListView::editSelectionChanged ); connect( mModel->layerCache()->layer(), &QgsVectorLayer::attributeValueChanged, this, [ = ] { repaintRequested(); } ); connect( featureListModel, &QgsFeatureListModel::rowsRemoved, this, [ this ]() { ensureEditSelection(); } ); connect( featureListModel, &QgsFeatureListModel::rowsInserted, this, [ this ]() { ensureEditSelection(); } ); connect( featureListModel, &QgsFeatureListModel::modelReset, this, [ this ]() { ensureEditSelection(); } ); }
void QgsMapCanvas::setLayerSet( QList<QgsMapCanvasLayer> &layers ) { // create layer set QStringList layerSet, layerSetOverview; int i; for ( i = 0; i < layers.size(); i++ ) { QgsMapCanvasLayer &lyr = layers[i]; if ( !lyr.layer() ) { continue; } if ( lyr.isVisible() ) { layerSet.push_back( lyr.layer()->id() ); } if ( lyr.isInOverview() ) { layerSetOverview.push_back( lyr.layer()->id() ); } } const QStringList& layerSetOld = mapSettings().layers(); bool layerSetChanged = layerSetOld != layerSet; // update only if needed if ( layerSetChanged ) { QgsDebugMsg( "Layers changed to: " + layerSet.join( ", " ) ); for ( i = 0; i < layerCount(); i++ ) { // Add check if vector layer when disconnecting from selectionChanged slot // Ticket #811 - racicot QgsMapLayer *currentLayer = layer( i ); if ( !currentLayer ) continue; disconnect( currentLayer, SIGNAL( repaintRequested() ), this, SLOT( refresh() ) ); disconnect( currentLayer, SIGNAL( layerCrsChanged() ), this, SLOT( layerCrsChange() ) ); QgsVectorLayer *isVectLyr = qobject_cast<QgsVectorLayer *>( currentLayer ); if ( isVectLyr ) { disconnect( currentLayer, SIGNAL( selectionChanged() ), this, SLOT( selectionChangedSlot() ) ); } } mSettings.setLayers( layerSet ); for ( i = 0; i < layerCount(); i++ ) { // Add check if vector layer when connecting to selectionChanged slot // Ticket #811 - racicot QgsMapLayer *currentLayer = layer( i ); connect( currentLayer, SIGNAL( repaintRequested() ), this, SLOT( refresh() ) ); connect( currentLayer, SIGNAL( layerCrsChanged() ), this, SLOT( layerCrsChange() ) ); QgsVectorLayer *isVectLyr = qobject_cast<QgsVectorLayer *>( currentLayer ); if ( isVectLyr ) { connect( currentLayer, SIGNAL( selectionChanged() ), this, SLOT( selectionChangedSlot() ) ); } } updateDatumTransformEntries(); QgsDebugMsg( "Layers have changed, refreshing" ); emit layersChanged(); refresh(); } if ( mMapOverview ) { const QStringList& layerSetOvOld = mMapOverview->layerSet(); if ( layerSetOvOld != layerSetOverview ) { mMapOverview->setLayerSet( layerSetOverview ); } // refresh overview maplayers even if layer set is the same // because full extent might have changed updateOverview(); } } // setLayerSet