Merge lp:~aacid/ubuntu-ui-toolkit/fix-borderimage-regression into lp:ubuntu-ui-toolkit

Proposed by Albert Astals Cid
Status: Superseded
Proposed branch: lp:~aacid/ubuntu-ui-toolkit/fix-borderimage-regression
Merge into: lp:ubuntu-ui-toolkit
Diff against target: 46 lines (+12/-7)
2 files modified
src/UbuntuToolkit/ucqquickimageextension.cpp (+11/-7)
src/UbuntuToolkit/ucqquickimageextension_p.h (+1/-0)
To merge this branch: bzr merge lp:~aacid/ubuntu-ui-toolkit/fix-borderimage-regression
Reviewer Review Type Date Requested Status
Ubuntu SDK team Pending
Review via email: mp+319555@code.launchpad.net

This proposal has been superseded by a proposal from 2017-03-10.

Commit message

Fix regression that broke BorderImage

Description of the change

Sorry :/

To post a comment you must log in.

Unmerged revisions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== 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 @@
86 // This way if the Image {} has a sourceSize set the lambda gets called because of it86 // This way if the Image {} has a sourceSize set the lambda gets called because of it
87 // and if there's no sourceSize set the lambda gets called because we registered the finalize callback87 // and if there's no sourceSize set the lambda gets called because we registered the finalize callback
8888
89 connect(m_image, &QQuickImageBase::sourceSizeChanged,89 // WARNING do not convert this to a "modern-style" connect, i.e. &QQuickImageBase::sourceSizeChanged,
90 this,90 // it will break if m_image is a QQuickBorderImage since it redeclares the sourceSizeChanged
91 [&] {91 // See https://codereview.qt-project.org/#/c/187967/
92 QObject::disconnect(m_image, &QQuickImageBase::sourceSizeChanged, this, nullptr);92 connect(m_image, SIGNAL(sourceSizeChanged()), this, SLOT(onSourceSizeChanged()));
93 reloadSource();
94 });
95
96 QQmlEnginePrivate *engPriv = QQmlEnginePrivate::get(qmlEngine(m_image));93 QQmlEnginePrivate *engPriv = QQmlEnginePrivate::get(qmlEngine(m_image));
97 engPriv->registerFinalizeCallback(m_image, m_image->metaObject()->indexOfSignal("sourceSizeChanged()"));94 engPriv->registerFinalizeCallback(m_image, m_image->metaObject()->indexOfSignal("sourceSizeChanged()"));
98 }95 }
99 }96 }
100}97}
10198
99void UCQQuickImageExtension::onSourceSizeChanged()
100{
101 // See WARNING above
102 QObject::disconnect(m_image, SIGNAL(sourceSizeChanged()), this, SLOT(onSourceSizeChanged()));
103 reloadSource();
104}
105
102void UCQQuickImageExtension::reloadSource()106void UCQQuickImageExtension::reloadSource()
103{107{
104 if (!m_image) {108 if (!m_image) {
105109
=== 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 @@
4949
50protected Q_SLOTS:50protected Q_SLOTS:
51 void reloadSource();51 void reloadSource();
52 void onSourceSizeChanged();
5253
53protected:54protected:
54 bool rewriteSciFile(const QString &sciFilePath, const QString &scaleFactor, QTextStream& output);55 bool rewriteSciFile(const QString &sciFilePath, const QString &scaleFactor, QTextStream& output);

Subscribers

People subscribed via source and target branches

to status/vote changes: