aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/quick/items/qquickimage.cpp1
-rw-r--r--src/quick/items/qquickimage_p.h2
-rw-r--r--src/quick/items/qquickimagebase.cpp6
-rw-r--r--src/quick/items/qquickimagebase_p.h5
4 files changed, 9 insertions, 5 deletions
diff --git a/src/quick/items/qquickimage.cpp b/src/quick/items/qquickimage.cpp
index f0f17551b7..3ba09f9cea 100644
--- a/src/quick/items/qquickimage.cpp
+++ b/src/quick/items/qquickimage.cpp
@@ -152,7 +152,6 @@ QQuickImagePrivate::QQuickImagePrivate()
QQuickImage::QQuickImage(QQuickItem *parent)
: QQuickImageBase(*(new QQuickImagePrivate), parent)
{
- connect(this, SIGNAL(autoTransformBaseChanged()), SIGNAL(autoTransformChanged()));
}
QQuickImage::QQuickImage(QQuickImagePrivate &dd, QQuickItem *parent)
diff --git a/src/quick/items/qquickimage_p.h b/src/quick/items/qquickimage_p.h
index 5b1aea5940..8edf153ca3 100644
--- a/src/quick/items/qquickimage_p.h
+++ b/src/quick/items/qquickimage_p.h
@@ -88,6 +88,8 @@ public:
bool mipmap() const;
void setMipmap(bool use);
+ virtual void emitAutoTransformBaseChanged() { emit autoTransformChanged(); }
+
Q_SIGNALS:
void fillModeChanged();
void paintedGeometryChanged();
diff --git a/src/quick/items/qquickimagebase.cpp b/src/quick/items/qquickimagebase.cpp
index 0e2134842b..223cb8f46f 100644
--- a/src/quick/items/qquickimagebase.cpp
+++ b/src/quick/items/qquickimagebase.cpp
@@ -197,7 +197,7 @@ void QQuickImageBase::load()
}
if (autoTransform() != d->oldAutoTransform) {
d->oldAutoTransform = autoTransform();
- emit autoTransformBaseChanged();
+ emitAutoTransformBaseChanged();
}
update();
@@ -284,7 +284,7 @@ void QQuickImageBase::requestFinished()
}
if (autoTransform() != d->oldAutoTransform) {
d->oldAutoTransform = autoTransform();
- emit autoTransformBaseChanged();
+ emitAutoTransformBaseChanged();
}
update();
}
@@ -390,7 +390,7 @@ void QQuickImageBase::setAutoTransform(bool transform)
if (d->autoTransform != UsePluginDefault && transform == (d->autoTransform == ApplyTransform))
return;
d->autoTransform = transform ? ApplyTransform : DoNotApplyTransform;
- emit autoTransformBaseChanged();
+ emitAutoTransformBaseChanged();
}
QT_END_NAMESPACE
diff --git a/src/quick/items/qquickimagebase_p.h b/src/quick/items/qquickimagebase_p.h
index d43822bebe..4fcfaecd7d 100644
--- a/src/quick/items/qquickimagebase_p.h
+++ b/src/quick/items/qquickimagebase_p.h
@@ -83,6 +83,10 @@ public:
void resolve2xLocalFile(const QUrl &url, qreal targetDevicePixelRatio, QUrl *sourceUrl, qreal *sourceDevicePixelRatio);
+ // Use a virtual rather than a signal->signal to avoid the huge
+ // connect/conneciton overhead for this rare case.
+ virtual void emitAutoTransformBaseChanged() { }
+
Q_SIGNALS:
void sourceChanged(const QUrl &);
void sourceSizeChanged();
@@ -91,7 +95,6 @@ Q_SIGNALS:
void asynchronousChanged();
void cacheChanged();
void mirrorChanged();
- void autoTransformBaseChanged();
protected:
virtual void load();