From 596ffd06fd3e710cdf6f4481c04d848e9e51cd1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Fischer?= Date: Sat, 24 Aug 2019 23:49:22 +0200 Subject: [PATCH] Fix layout picture item test (alternate fix to #31382) (#31383) * Fix layout picture item test (alternate fix to #31382) * doxygen: add pointer to QgsProperty::value() to QgsAbstractPropertyCollection::value() --- .../qgspropertycollection.sip.in | 2 ++ src/core/layout/qgslayoutitempicture.cpp | 6 ++++-- src/core/qgspropertycollection.h | 2 ++ tests/src/core/CMakeLists.txt | 3 ++- tests/src/core/testqgslayoutpicture.cpp | 1 + ...expected_composerpicture_badexpression.png | Bin 4335 -> 32995 bytes 6 files changed, 11 insertions(+), 3 deletions(-) diff --git a/python/core/auto_generated/qgspropertycollection.sip.in b/python/core/auto_generated/qgspropertycollection.sip.in index 595b5699bba..4a49c3ad48d 100644 --- a/python/core/auto_generated/qgspropertycollection.sip.in +++ b/python/core/auto_generated/qgspropertycollection.sip.in @@ -89,6 +89,8 @@ Returns a matching property from the collection, if one exists. virtual QVariant value( int key, const QgsExpressionContext &context, const QVariant &defaultValue = QVariant() ) const = 0; %Docstring Returns the calculated value of the property with the specified key from within the collection. +If you need the validity of the value (like ok provided from the +valueAs* variants) refer to the property() and :py:func:`QgsProperty.value()` :param key: integer key for property to return. The intended use case is that a context specific enum is cast to int and used for the key value. diff --git a/src/core/layout/qgslayoutitempicture.cpp b/src/core/layout/qgslayoutitempicture.cpp index 4d2f0acef94..ef6219fe52a 100644 --- a/src/core/layout/qgslayoutitempicture.cpp +++ b/src/core/layout/qgslayoutitempicture.cpp @@ -342,8 +342,10 @@ void QgsLayoutItemPicture::refreshPicture( const QgsExpressionContext *context ) mHasExpressionError = false; if ( mDataDefinedProperties.isActive( QgsLayoutObject::PictureSource ) ) { - source = mDataDefinedProperties.value( QgsLayoutObject::PictureSource, *evalContext, QVariant( source ) ); - if ( !source.canConvert( QMetaType::QString ) ) + bool ok = false; + const QgsProperty &sourceProperty = mDataDefinedProperties.property( QgsLayoutObject::PictureSource ); + source = sourceProperty.value( *evalContext, QVariant( source ), &ok ); + if ( !ok || !source.canConvert( QMetaType::QString ) ) { mHasExpressionError = true; source = QString(); diff --git a/src/core/qgspropertycollection.h b/src/core/qgspropertycollection.h index 777773b22c0..e98ace1541a 100644 --- a/src/core/qgspropertycollection.h +++ b/src/core/qgspropertycollection.h @@ -101,6 +101,8 @@ class CORE_EXPORT QgsAbstractPropertyCollection /** * Returns the calculated value of the property with the specified key from within the collection. + * If you need the validity of the value (like ok provided from the + * valueAs* variants) refer to the property() and QgsProperty::value() * \param key integer key for property to return. The intended use case is that a context specific enum is cast to * int and used for the key value. * \param context expression context to evaluate property against diff --git a/tests/src/core/CMakeLists.txt b/tests/src/core/CMakeLists.txt index 23bcf61bf52..2f2caa2a26a 100644 --- a/tests/src/core/CMakeLists.txt +++ b/tests/src/core/CMakeLists.txt @@ -60,7 +60,8 @@ MACRO (ADD_QGIS_TEST TESTSRC) STRING(REPLACE "qgs" "" TESTNAME ${TESTNAME}) STRING(REPLACE ".cpp" "" TESTNAME ${TESTNAME}) SET (TESTNAME "qgis_${TESTNAME}test") - ADD_EXECUTABLE(${TESTNAME} ${TESTSRC} ${util_SRCS}) + QT5_ADD_RESOURCES(IMAGES_RCC_SRC ${CMAKE_SOURCE_DIR}/images/images.qrc) + ADD_EXECUTABLE(${TESTNAME} ${TESTSRC} ${util_SRCS} ${IMAGES_RCC_SRC}) SET_TARGET_PROPERTIES(${TESTNAME} PROPERTIES AUTOMOC TRUE) TARGET_LINK_LIBRARIES(${TESTNAME} ${Qt5Core_LIBRARIES} diff --git a/tests/src/core/testqgslayoutpicture.cpp b/tests/src/core/testqgslayoutpicture.cpp index 023c139d700..a89f6ce57c6 100644 --- a/tests/src/core/testqgslayoutpicture.cpp +++ b/tests/src/core/testqgslayoutpicture.cpp @@ -76,6 +76,7 @@ void TestQgsLayoutPicture::initTestCase() { QgsApplication::init(); QgsApplication::initQgis(); + QgsApplication::showSettings(); mPngImage = QStringLiteral( TEST_DATA_DIR ) + "/sample_image.png"; mSvgImage = QStringLiteral( TEST_DATA_DIR ) + "/sample_svg.svg"; diff --git a/tests/testdata/control_images/composer_picture/expected_composerpicture_badexpression/expected_composerpicture_badexpression.png b/tests/testdata/control_images/composer_picture/expected_composerpicture_badexpression/expected_composerpicture_badexpression.png index 499665c2f0360c3eb7432017915667e628885b86..8da4e6e4b63b371d34ede93c9b05f0a9c50b76af 100644 GIT binary patch literal 32995 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