Skip to content

Commit 15d4196

Browse files
m-kuhnnyalldawson
authored andcommittedJul 21, 2021
Fix opacity slider crash
Fixes a race condition introduced by the timer.
1 parent 96f2cdb commit 15d4196

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed
 

‎src/gui/layertree/qgslayertreeembeddedwidgetsimpl.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,13 +71,17 @@ void QgsLayerTreeOpacityWidget::sliderValueChanged( int value )
7171

7272
void QgsLayerTreeOpacityWidget::updateOpacityFromSlider()
7373
{
74+
if ( !mLayer )
75+
return;
7476
int value = mSlider->value();
7577
mLayer->setOpacity( value / 1000.0 );
7678
mLayer->triggerRepaint();
7779
}
7880

7981
void QgsLayerTreeOpacityWidget::layerTrChanged()
8082
{
83+
if ( !mLayer )
84+
return;
8185
mSlider->blockSignals( true );
8286
mSlider->setValue( mLayer->opacity() * 1000.0 );
8387
mSlider->blockSignals( false );

‎src/gui/layertree/qgslayertreeembeddedwidgetsimpl.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#ifndef QGSLAYERTREEEMBEDDEDWIDGETSIMPL_H
1717
#define QGSLAYERTREEEMBEDDEDWIDGETSIMPL_H
1818

19+
#include <QPointer>
1920
#include <QWidget>
2021
#include "qgslayertreeembeddedwidgetregistry.h"
2122

@@ -56,7 +57,7 @@ class QgsLayerTreeOpacityWidget : public QWidget
5657
void layerTrChanged();
5758

5859
private:
59-
QgsMapLayer *mLayer = nullptr;
60+
QPointer<QgsMapLayer> mLayer;
6061
QSlider *mSlider = nullptr;
6162
QTimer *mTimer = nullptr;
6263
};

0 commit comments

Comments
 (0)
Please sign in to comment.