|
17 | 17 | from qgis.PyQt.QtGui import QIcon
|
18 | 18 | from qgis.PyQt.QtWidgets import QWidget
|
19 | 19 | 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 |
22 | 29 |
|
23 | 30 | from utilities import unitTestDataPath
|
24 | 31 |
|
@@ -92,6 +99,29 @@ def createWidget(self,
|
92 | 99 | self.assertEqual(MyFactory.COUNT, 1, msg='Custom QgsMapLayerConfigWidget::createWidget(...) not called')
|
93 | 100 | self.assertEqual(MyWidget.COUNT, 1, msg='Custom QgsMapLayerConfigWidget::apply() not called')
|
94 | 101 |
|
| 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 | + |
95 | 125 |
|
96 | 126 | if __name__ == '__main__':
|
97 | 127 | unittest.main()
|
0 commit comments