Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit f3daa38

Browse files
authoredOct 11, 2023
Merge pull request #54854 from elpaso/backport-54644
Backport: RASTER properties dlg sync opacity
2 parents ac37571 + fe53a53 commit f3daa38

File tree

2 files changed

+34
-2
lines changed

2 files changed

+34
-2
lines changed
 

‎src/gui/raster/qgsrasterlayerproperties.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -678,6 +678,8 @@ void QgsRasterLayerProperties::sync()
678678
if ( !provider )
679679
return;
680680

681+
mRasterTransparencyWidget->syncToLayer();
682+
681683
if ( provider->dataType( 1 ) == Qgis::DataType::ARGB32
682684
|| provider->dataType( 1 ) == Qgis::DataType::ARGB32_Premultiplied )
683685
{

‎tests/src/python/test_qgsrasterlayerproperties.py

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,15 @@
1717
from qgis.PyQt.QtGui import QIcon
1818
from qgis.PyQt.QtWidgets import QWidget
1919
from qgis.core import QgsMapLayer, QgsProject, QgsRasterLayer
20-
from qgis.gui import QgsMapCanvas, QgsMapLayerConfigWidgetFactory, QgsMapLayerConfigWidget, QgsRasterLayerProperties
21-
from qgis.testing import start_app, unittest
20+
from qgis.gui import (
21+
QgsMapCanvas,
22+
QgsMapLayerConfigWidget,
23+
QgsMapLayerConfigWidgetFactory,
24+
QgsRasterLayerProperties,
25+
)
26+
import unittest
27+
from qgis.testing import start_app
28+
import tempfile
2229

2330
from utilities import unitTestDataPath
2431

@@ -92,6 +99,29 @@ def createWidget(self,
9299
self.assertEqual(MyFactory.COUNT, 1, msg='Custom QgsMapLayerConfigWidget::createWidget(...) not called')
93100
self.assertEqual(MyWidget.COUNT, 1, msg='Custom QgsMapLayerConfigWidget::apply() not called')
94101

102+
def test_transparency_load(self):
103+
"""Test issue GH #54496"""
104+
105+
myCanvas = QgsMapCanvas()
106+
myPath = pathlib.Path(unitTestDataPath('raster')) / 'band1_float32_noct_epsg4326.tif'
107+
myRasterLayer = QgsRasterLayer(myPath.as_posix(), myPath.name)
108+
109+
assert myRasterLayer.isValid(), f'Raster not loaded {myPath}'
110+
111+
dialog = QgsRasterLayerProperties(myRasterLayer, myCanvas)
112+
113+
with tempfile.NamedTemporaryFile(suffix='.qml') as qml_file_object:
114+
renderer = myRasterLayer.renderer()
115+
renderer.setOpacity(0.5)
116+
self.assertTrue(myRasterLayer.saveNamedStyle(qml_file_object.name)[1])
117+
myRasterLayer.loadNamedStyle(qml_file_object.name)
118+
dialog.syncToLayer()
119+
renderer = myRasterLayer.renderer()
120+
self.assertEqual(renderer.opacity(), 0.5)
121+
dialog.apply()
122+
renderer = myRasterLayer.renderer()
123+
self.assertEqual(renderer.opacity(), 0.5)
124+
95125

96126
if __name__ == '__main__':
97127
unittest.main()

0 commit comments

Comments
 (0)
Please sign in to comment.