Fixes #39031 : commitData on scale changed for advanced snap

configuration min/max scale
This commit is contained in:
Julien Cabieces 2020-10-02 12:04:58 +02:00 committed by Nyall Dawson
parent 163941cad5
commit 55c0f93c5d
2 changed files with 10 additions and 0 deletions

View File

@ -129,6 +129,7 @@ QWidget *QgsSnappingLayerDelegate::createEditor( QWidget *parent, const QStyleOp
{ {
QgsScaleWidget *minLimitSp = new QgsScaleWidget( parent ); QgsScaleWidget *minLimitSp = new QgsScaleWidget( parent );
minLimitSp->setToolTip( tr( "Minimum scale from which snapping is enabled (i.e. most \"zoomed out\" scale)" ) ); minLimitSp->setToolTip( tr( "Minimum scale from which snapping is enabled (i.e. most \"zoomed out\" scale)" ) );
connect( minLimitSp, &QgsScaleWidget::scaleChanged, this, &QgsSnappingLayerDelegate::onScaleChanged );
return minLimitSp; return minLimitSp;
} }
@ -136,12 +137,18 @@ QWidget *QgsSnappingLayerDelegate::createEditor( QWidget *parent, const QStyleOp
{ {
QgsScaleWidget *maxLimitSp = new QgsScaleWidget( parent ); QgsScaleWidget *maxLimitSp = new QgsScaleWidget( parent );
maxLimitSp->setToolTip( tr( "Maximum scale up to which snapping is enabled (i.e. most \"zoomed in\" scale)" ) ); maxLimitSp->setToolTip( tr( "Maximum scale up to which snapping is enabled (i.e. most \"zoomed in\" scale)" ) );
connect( maxLimitSp, &QgsScaleWidget::scaleChanged, this, &QgsSnappingLayerDelegate::onScaleChanged );
return maxLimitSp; return maxLimitSp;
} }
return nullptr; return nullptr;
} }
void QgsSnappingLayerDelegate::onScaleChanged()
{
emit commitData( qobject_cast<QgsScaleWidget *>( sender() ) );
}
void QgsSnappingLayerDelegate::setEditorData( QWidget *editor, const QModelIndex &index ) const void QgsSnappingLayerDelegate::setEditorData( QWidget *editor, const QModelIndex &index ) const
{ {
QVariant val = index.model()->data( index, Qt::UserRole ); QVariant val = index.model()->data( index, Qt::UserRole );

View File

@ -40,6 +40,9 @@ class APP_EXPORT QgsSnappingLayerDelegate : public QItemDelegate
void setEditorData( QWidget *editor, const QModelIndex &index ) const override; void setEditorData( QWidget *editor, const QModelIndex &index ) const override;
void setModelData( QWidget *editor, QAbstractItemModel *model, const QModelIndex &index ) const override; void setModelData( QWidget *editor, QAbstractItemModel *model, const QModelIndex &index ) const override;
private slots:
void onScaleChanged();
private: private:
QgsMapCanvas *mCanvas = nullptr; QgsMapCanvas *mCanvas = nullptr;
}; };