Instead of QSharedPointer<T>(new T), use QSharedPointer<T>::create(), since the latter
co-locates the refcount and the T instance in a single memory allocation, unlike the
first form, which uses separate memory allocations.
Change-Id: I5095ac43448aad9a7e3ec07ed4dcdca869bcd9e8
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Two changes broke compilation on armv5, where we're currently
not CI-testing:
634f82f1f1 changed the signature
in a function definition without changing its declaration, while
it was actually intending to add this as a new overload.
bfe0db6fbe added an #error
condition without fixing compilation on armv5. I don't know
if the fix is correct, but at least it compiles.
Task-number: QTBUG-37034
Change-Id: If99142fafb9bd55afc20b17f8b3cce5ee0ffec13
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The old code creates a default-constructed QByteArrayList, then performed two
list-appends, the first one of which just performs assignment.
Optimize by replacing the default construction and assignment with a copy
constructor call.
Change-Id: I6d5bd14172798c925b05bd3602e6d1d037d90796
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
This reportedly does fix crashes when running a Qt Quick 2 application
over remote X.
Task-number: QTCREATORBUG-11207
Change-Id: I6fa82420f9d12e56e52fa8efd263bf18d868d7d8
Reviewed-by: Ville Nummela <ville.nummela@parker.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Task-number: QTBUG-37027
Change-Id: Id18ee9c44650de9c434a82d3d10cf48e6ba9e78c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
This prevents a tool button menu from being opened by a replayed
click. This partially reverts
8301c0002280c10970cce1e17f634e74c61f2f5d .
Task-number: QTBUG-36863
Change-Id: I396e3694de8b3d4ca916457c2b2df39798502530
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
If there's no qApp, then QCoreApplication::arguments() returns an empty
list (after printing a warning). That means the callgrind runner can't
get the arguments it needs in order to rerun the benchmark.
The crash happens because it always uses .at(0) to try and get the
executable's path. Even if we get the path from somewhere else, we still
need the arguments.
Change-Id: I5c74af4d96fc5824b2b7fd7a89648d78393016e2
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
Needed for QOpenGLShaderProgram to be usable with
GL_OES_get_program_binary and potentially other extensions.
[Changelog][QtGui] The function QOpenGLShaderProgram::create()
has been added. It is can be used to force immediate allocation
of the program's id.
Change-Id: I36b3f45b00e7a439df12c54af7dc06c0ba913587
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
If raster only apps set QT_ANDROID_RASTER_IMAGE_DEPTH to 16 (RGB16), we
should create also RGB16 native surface.
Change-Id: I82692ff34b0e604e627d1d86a437272e3700daf8
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
The previously used GetActiveWindow() returns the application's
window also if it is minimized.
Task-number: QTBUG-36806
Change-Id: I8ede3ea30e7b714aa1af85ed67e510e1692ebb8f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Print "QMap<QString,QString>" for "a{ss}" and print a nicer expansion of
other types.
Change-Id: I0a7a2ecf8f0a62bd97931f3c129cd4cb4f471ef1
Reviewed-by: Lorn Potter <lorn.potter@jollamobile.com>
The bit scan function returns the index of the last non-ASCII
character. The next ASCII is the one after this. This means all the
benchmarks were made while reentering the SIMD loop uselessly...
Change-Id: If7de485a63428bfa36d413049d9239ddda1986aa
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Profiling showed that Qt Creator spent 2% of its load time normalizing
signals and slots. By pre-normalizing everything, we ensure that there
is no runtime cost. Profiling after this commit and the others in this
series shows that the cost dropped down to zero.
Change-Id: Ifc5a2c2552e245fb9a5f31514e9dd683c5c55327
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Disassembly shows the Intel compiler does expand to SIMD, but a much
worse code than ours. Clang 3.4 does generate a compact SIMD version,
probably of the same quality as our hand-written code. And GCC 4.7
through 4.9 don't generate SIMD at all.
So let's use the most efficient version.
Change-Id: I418e201a774ac0df1fb2b7a7d9589df7c9b655db
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
G does not come after I. That's actually my fault, in the original
commit. But some options have been added since then in the wrong place
and/or using wrong settings for the report_support function.
Change-Id: Ib3f7d58a41059e5e7f97fd0e223b9629664686ad
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Unit-test this by making the QList, QVector, QHash and QMap unit tests
be duplicated under strict-iterator mode. There's no test for
QLinkedList.
The tst_Collections test does not compile under strict-iterator
mode. It generated over 15000 errors when I tried.
The strict iterators required a small change: the difference_type
typedef needs to match the operators that get distances
(operator-(iterator)) and move the iterator around (+, -, +=, -=, etc.).
Task-number: QTBUG-29608
Change-Id: I834873934c51d0f139a994cd395818da4ec997e2
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Jason McDonald <macadder1@gmail.com>
Mouse selection does not work well with Android and text will be
randomly copied, pasted or deleted. This behavior is especially bad
when predictive text is enabled.
Task-number: QTBUG-34616
Change-Id: I732ad7db52169bfb5735c237cf24597a3d6d64ba
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Text selection does not work correctly and is currently causing
selected text to be randomly copied, pasted or deleted.
Task-id: QTBUG-34616
Change-Id: I98678b7575034325dd8a4fa181ee4cb182783a3b
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
A QSslCipher is not an equivalent representation of a QString, so
the constructor that takes a QString should be explicit.
Change-Id: I4c1329d1eebf91b212616eb5200450c0861d900f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
A QPainterPathStroker is not an equivalent representation of a QPen, so
the constructor that takes a QPen should be explicit.
Arguably, the named constructor idiom would be even better here:
static QPainterPathStroker QPainterPathStroker::fromPen(const QPen &pen);
But QPainterPathStroker is non-copyable.
Change-Id: I3148dc0ee336026781d8bc1baf21c113c7b41ce8
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
This fixes a problem that QScanConverter::mergeLine didn't recognize
lins as being the same (when they where), causing aliasing effects
Task-number: QTBUG-36354
Change-Id: I29d92ddb4e867025541bdc6b294cfaca55c0d3e1
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Add a new QMarginsF class to complement QMargins in the style of
QSize/QSizeF and QRect/QRectF.
[ChangeLog][QtCore] Added class QMarginsF to support handling margins
with floating-point values.
Change-Id: Iaaa95ec85f5d126d9d864fc4b607241a8c8a8f3a
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
On Windows, trailing spaces in a filename are silently ignored, so we
need to strip it before trying to open a file with it. Otherwise it ends
up being stripped later and in a case like " ." it will end up causing
Qt to think that a folder exists when it does not.
[ChangeLog][Platform Specific Changes][Windows][QtWidgets][QFileDialog]
Handled the case of having trailing spaces in a filename correctly so if
the filename ends up being empty that the parent path is used instead.
Change-Id: I6500cc3a44746bf4a65e73bcfb63265a0a97c8a3
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Trigger QOffscreenSurface's fallback mode (hidden QWindow and a regular window
surface) instead. queryDummyContext() already works like this but the same must
be done for any QOffscreenSurface.
Task-number: QTBUG-36900
Change-Id: I64176ac6704e9d6ed768fa3d456c40c8818be6dc
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Allow the developers to define a splash screen which will be visible
until the first window is created.
[ChangeLog][Android] Allow the developers to define a splash
screen which will be visible until the first window is created.
Task-number: QTBUG-30652
Change-Id: I5da80be417ffffb03e66009f45745d4b387d2912
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Android is using double buffering, so, we need to repaint the bounding
rect of the repaint region, otherwise black holes will appear.
Change-Id: I21f36a6f5f1a6c64b605c0fef3af10dfdc5ec6e2
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
The QTextLayout::FormatRange is larger than void* and thus should not be held in
QList. Use a QVector instead.
This is public, but as of yet unreleased API.
Change-Id: Ie04a561b43c91c3b2befb3cac2981821f84d5f77
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Otherwise, OleFlushClipboard() might query the data again which causes
problems for QMimeData-derived classes using QPixmap/QImage.
Task-number: QTBUG-36958
Change-Id: I89e58eeb64bd3481e89ad789f310f19ddb4604a2
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
So far we did bind the definition of Q_COMPILER_VARIADIC_MACROS to
C++11 (so gcc, clang will not define it in default gnu++98 standard).
However, variadic macros are a feature of the gcc preprocessor since
version 2.97, and are enabled in the default configurations on gcc, clang,
icc.
This might cause warnings and errors though if one enables additional
warnings in gcc, clang (e.g. by -pedantic). Anyhow, as a precedent
qglobal.h already relies on 'long long' ... The warning can be disabled
by adding '-Wno-variadic-macros'.
[ChangeLog][Compiler Specific Changes] Variadic macros are now enabled
more liberally for gcc, clang, icc. If you have warnings (because you e.g.
compile with -pedantic), disable them by -Wno-variadic-macros.
Change-Id: Ie979b85809508ad70cab75e6981f20496429f463
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Commit f4dd534 introduced a regression, so that QFontMetrics reported
a wrong size (to be more specific width) for FreeType fonts.
The calculation of glyph advances has to to reflect (rounded)
integral number of pixels. This was only done when the glyph was cached.
So in some cases the first call to QFontMetrics::size gave a different
result than the second.
This patch reverts f4dd5344fb.
The tst_QFontMetrics::same auto test only happened to work on some
platforms, on BlackBerry for instance it did not. Extended the test
case to make sure it works for different font sizes.
Change-Id: Ia5bb9abd3ff98193c9bba048b85207672ed8d9c3
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
This comment is wrong and should be removed. The manifest is always
generated.
Change-Id: I281737dd6a358380fb557063eadae88909f5078b
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
-new layout for landing page
-updates to title sizes and changes to footer
-fixes to general paragraph issues
-index.qdoc changed in qtdoc repository
Task-number: QTBUG-36411
Change-Id: Icb4fb0374e474137686f4cb67c64dc0249fef2c4
Reviewed-by: Martin Smith <martin.smith@digia.com>
-Qt Examples and Tutorials page does not need the table of contents.
Task-number: QTBUG-36838
Change-Id: Id51ebc7cba7831a24cd9d8e8e6bde7f96bece326
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>