summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2011-01-18 12:29:11 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2011-01-18 12:29:11 (GMT)
commitae4b284a0e9fddf052fe8043940a995533ffe7c8 (patch)
tree3bf554aed7565f7578c8b25253bcb2fe10c86af4
parent33f8a90c303fc19426183b30824d5eba24e5d104 (diff)
parentb928bab9dde43cf3acace6dfae0ae6a4f6649650 (diff)
downloadQt-ae4b284a0e9fddf052fe8043940a995533ffe7c8.zip
Qt-ae4b284a0e9fddf052fe8043940a995533ffe7c8.tar.gz
Qt-ae4b284a0e9fddf052fe8043940a995533ffe7c8.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public: Fix to data detaching in OpenVG pixmap data Remove toolcheck from generic clean targets for symbian-sbsv2
-rw-r--r--qmake/generators/symbian/symmake_sbsv2.cpp8
-rw-r--r--src/openvg/qpixmapdata_vg.cpp12
2 files changed, 15 insertions, 5 deletions
diff --git a/qmake/generators/symbian/symmake_sbsv2.cpp b/qmake/generators/symbian/symmake_sbsv2.cpp
index f6f2e78..47c5b31 100644
--- a/qmake/generators/symbian/symmake_sbsv2.cpp
+++ b/qmake/generators/symbian/symmake_sbsv2.cpp
@@ -386,7 +386,7 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo
}
t << endl;
t << "clean-debug: " << BLD_INF_FILENAME << endl;
- t << "\t$(SBS) reallyclean";
+ t << "\t$(SBS) reallyclean --toolcheck=off";
foreach(QString clause, debugClauses) {
t << clause;
}
@@ -406,7 +406,7 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo
}
t << endl;
t << "clean-release: " << BLD_INF_FILENAME << endl;
- t << "\t$(SBS) reallyclean";
+ t << "\t$(SBS) reallyclean --toolcheck=off";
foreach(QString clause, releaseClauses) {
t << clause;
}
@@ -516,8 +516,10 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo
generateDistcleanTargets(t);
+ // Do not check for tools when doing generic clean, as most tools are not actually needed for
+ // cleaning. Mainly this is relevant for environments that do not have winscw compiler.
t << "clean: " << BLD_INF_FILENAME << endl;
- t << "\t-$(SBS) reallyclean";
+ t << "\t-$(SBS) reallyclean --toolcheck=off";
foreach(QString clause, allClauses) {
t << clause;
}
diff --git a/src/openvg/qpixmapdata_vg.cpp b/src/openvg/qpixmapdata_vg.cpp
index e4b1d02..732b484 100644
--- a/src/openvg/qpixmapdata_vg.cpp
+++ b/src/openvg/qpixmapdata_vg.cpp
@@ -200,6 +200,9 @@ bool QVGPixmapData::fromData(const uchar *buffer, uint len, const char *format,
return !isNull();
}
+/*!
+ out-of-place conversion (inPlace == false) will always detach()
+ */
void QVGPixmapData::createPixmapForImage(QImage &image, Qt::ImageConversionFlags flags, bool inPlace)
{
if (image.size() == QSize(w, h))
@@ -216,11 +219,16 @@ void QVGPixmapData::createPixmapForImage(QImage &image, Qt::ImageConversionFlags
else
format = image.hasAlphaChannel() ? sourceFormat() : QImage::Format_RGB32;
- if (inPlace && image.data_ptr()->convertInPlace(format, flags))
+ if (inPlace && image.data_ptr()->convertInPlace(format, flags)) {
source = image;
- else
+ } else {
source = image.convertToFormat(format);
+ // convertToFormat won't detach the image if format stays the same.
+ if (image.format() == format)
+ source.detach();
+ }
+
recreate = true;
}