ubuntu-sdk-team team mailing list archive
-
ubuntu-sdk-team team
-
Mailing list archive
-
Message #00971
[Merge] lp:~aacid/ubuntu-ui-toolkit/fix-borderimage-regression into lp:ubuntu-ui-toolkit/staging
Albert Astals Cid has proposed merging lp:~aacid/ubuntu-ui-toolkit/fix-borderimage-regression into lp:ubuntu-ui-toolkit/staging.
Commit message:
Fix regression that broke BorderImage
Requested reviews:
ubuntu-sdk-build-bot (ubuntu-sdk-build-bot): continuous-integration
Ubuntu SDK team (ubuntu-sdk-team)
Related bugs:
Bug #1671449 in Canonical System Image: "Unity8 window shadows have gone missing"
https://bugs.launchpad.net/canonical-devices-system-image/+bug/1671449
For more details, see:
https://code.launchpad.net/~aacid/ubuntu-ui-toolkit/fix-borderimage-regression/+merge/319556
Sorry :/
--
Your team Ubuntu SDK team is requested to review the proposed merge of lp:~aacid/ubuntu-ui-toolkit/fix-borderimage-regression into lp:ubuntu-ui-toolkit/staging.
=== modified file 'src/UbuntuToolkit/ucqquickimageextension.cpp'
--- src/UbuntuToolkit/ucqquickimageextension.cpp 2017-02-06 13:20:30 +0000
+++ src/UbuntuToolkit/ucqquickimageextension.cpp 2017-03-10 12:04:49 +0000
@@ -86,19 +86,23 @@
// This way if the Image {} has a sourceSize set the lambda gets called because of it
// and if there's no sourceSize set the lambda gets called because we registered the finalize callback
- connect(m_image, &QQuickImageBase::sourceSizeChanged,
- this,
- [&] {
- QObject::disconnect(m_image, &QQuickImageBase::sourceSizeChanged, this, nullptr);
- reloadSource();
- });
-
+ // WARNING do not convert this to a "modern-style" connect, i.e. &QQuickImageBase::sourceSizeChanged,
+ // it will break if m_image is a QQuickBorderImage since it redeclares the sourceSizeChanged
+ // See https://codereview.qt-project.org/#/c/187967/
+ connect(m_image, SIGNAL(sourceSizeChanged()), this, SLOT(onSourceSizeChanged()));
QQmlEnginePrivate *engPriv = QQmlEnginePrivate::get(qmlEngine(m_image));
engPriv->registerFinalizeCallback(m_image, m_image->metaObject()->indexOfSignal("sourceSizeChanged()"));
}
}
}
+void UCQQuickImageExtension::onSourceSizeChanged()
+{
+ // See WARNING above
+ QObject::disconnect(m_image, SIGNAL(sourceSizeChanged()), this, SLOT(onSourceSizeChanged()));
+ reloadSource();
+}
+
void UCQQuickImageExtension::reloadSource()
{
if (!m_image) {
=== modified file 'src/UbuntuToolkit/ucqquickimageextension_p.h'
--- src/UbuntuToolkit/ucqquickimageextension_p.h 2017-02-06 10:52:06 +0000
+++ src/UbuntuToolkit/ucqquickimageextension_p.h 2017-03-10 12:04:49 +0000
@@ -49,6 +49,7 @@
protected Q_SLOTS:
void reloadSource();
+ void onSourceSizeChanged();
protected:
bool rewriteSciFile(const QString &sciFilePath, const QString &scaleFactor, QTextStream& output);