ubuntu-sdk-team team mailing list archive
-
ubuntu-sdk-team team
-
Mailing list archive
-
Message #00969
[Merge] lp:~aacid/ubuntu-ui-toolkit/fix-borderimage-regression into lp:ubuntu-ui-toolkit
Albert Astals Cid has proposed merging lp:~aacid/ubuntu-ui-toolkit/fix-borderimage-regression into lp:ubuntu-ui-toolkit.
Commit message:
Fix regression that broke BorderImage
Requested reviews:
Ubuntu SDK team (ubuntu-sdk-team)
For more details, see:
https://code.launchpad.net/~aacid/ubuntu-ui-toolkit/fix-borderimage-regression/+merge/319555
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.
=== modified file 'src/UbuntuToolkit/ucqquickimageextension.cpp'
--- src/UbuntuToolkit/ucqquickimageextension.cpp 2017-02-06 13:20:30 +0000
+++ src/UbuntuToolkit/ucqquickimageextension.cpp 2017-03-10 11:47:37 +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 11:47:37 +0000
@@ -49,6 +49,7 @@
protected Q_SLOTS:
void reloadSource();
+ void onSourceSizeChanged();
protected:
bool rewriteSciFile(const QString &sciFilePath, const QString &scaleFactor, QTextStream& output);
Follow ups