Most libs use QMAKE_LIBS/CFLAGS, but some have other naming
conventions. Unify them into using QMAKE_LIBS/CFLAGS.
Change-Id: I39b188adc1f9a223a83b294c5315c3095a9c68de
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
It's 2016, and file sizes larger than 4G are common, so
-no-largefile is something we really shouldn't support
anymore.
For now left the implementation as is, just removed the
configurability from the command line. But this should
really get replaced by decent configure checks that
check for 64bit stat() vs stat64() vs 32bit stat().
Change-Id: I057515e3cc1f06a022d80f02e866944428026b1d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Replace substring functions that return QString with
corresponding functions that return QStringRef where
it's possible.
Create QString from QStringRef only where necessary.
While touching the code, also port loops to C++11 style.
Change-Id: Ib94d29b6ecec1cdab2604d0277a743e8b340be5e
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
TUIO supports tracking tagged physical objects on touchscreens by
various means (QR codes, RFIDs etc.) It can detect both position
and rotation. Likewise, it may be possible for some touchscreens or
drivers to detect orientation of the fingers. So, just as QTabletEvent
has rotation, each touchpoint needs to include the rotation value.
When using tokens, each object has a permanent unique ID, whereas
QTouchEvent::TouchPoint::id() is a transient ID which usually auto-
increments each time a finger is pressed to the device. So we need to
make that available too, to identify each token. Different platforms
may use different kinds of IDs (int, UUID, QR code etc.); however for
TUIO 1.x, the unique IDs are just 32-bit integers. QPointerUniqueId
is added, storing only a qint64 for now (like QTabletEvent::uniqueId())
but able to be expanded as necessary later on.
Task-number: QTBUG-51844
Change-Id: I04182042f47fa2954728079139a4664a31184b54
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
To avoid infinite loop on unbuffered socket, previous implementation
always disabled the read notifications before emitting a readyRead()
signal. So, it's very likely that the socket will toggle the state of
notifier twice (on->off->on) in one notification cycle.
This patch prevents this unnecessary toggling by deferring the
notification disabling in canReadNotification() to the next
notification cycle.
Change-Id: Iebc5a7ad18a6f40ea1cf63e7f1b12f6c180cbf7a
Reviewed-by: Markus Goetz (Woboq GmbH) <markus@woboq.com>
When QT_XCB_GL_INTEGRATION=none we were printing:
1) qt.xcb.glintegration: QT_XCB_GL_INTEGRATION is set to "none"
2) qt.xcb.glintegration: Choosing xcb gl-integration based on following priority ()
3) qt.xcb.glintegration: Failed to create xcb gl-integration
Omit line 2 (useless) and line 3 (misleading).
Change-Id: If5e65a5bc8cc4a1fa97858049a26aac9a9535950
Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
Most containers have them in Qt 5.7, so add them
to QStringRef, too.
Brush up the docs, use the const_iterator typedef
in the API, for consistency with QString's docs.
[ChangeLog][QtCore][QStringRef] Added reverse iterators,
rbegin(), rend(), crbegin(), crend().
Change-Id: I3d2884a1b2faae02c610ab3871552b65bc6e2521
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Remove Windows CE-specific files, #ifdef sections for Q_OS_WINCE and wince
.pro file clauses in library, examples and tests.
Task-number: QTBUG-51673
Change-Id: I102745aaca9d9737f2108fe7618111743d5ae980
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
These are not being used in Qt anymore, we use their
xcb replacements instead where it makes sense.
Task-number: QTBUG-30939
Change-Id: I2d8141818b402c23b29b0c0398f876a6189d0d27
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Compiling the drivers into Qt Sql does not make a lot of sense
anymore, as we handle plugins well enough in the build system
these days.
[ChangeLog][Build system] SQL drivers are now always compiled as plugins.
Change-Id: I364b82a480849399d1fafe4b20e9f08922569260
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Our handling of plugins when Qt is build statically is
nowadays good enough, so we don't need to build the
JPEG and GIF support directly into Qt for static builds.
Let's simply always build them as plugins.
Also simplify the logic in configure, and get rid of the
no-gif, no-jpeg and no-png config variables.
[ChangelLog][Build system] JPEG and GIF image support is now
always built as a plugin. Removed -imageformat-[jpeg|gif]
arguments to configure.
Change-Id: Ic01559ff406c966807b3be8761252e8802adcdf7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
According to RFC 2640, FTP uses UTF-8 encoding. Fix the conversions
accordingly.
Task-number: QTBUG-52303
Change-Id: I615199b3d074fc3861f25df113dda672525766b6
Reviewed-by: Edward Welbourne <edward.welbourne@theqtcompany.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
Their implementations were swapped.
Found while extending tst_qstringapisymmetry, which only exists in
dev, so test will be added to dev once this change has merged up.
[ChangeLog][QtCore][QStringRef] Fixed relational operators against
(const char*) to return the correct result.
Change-Id: I3f331037571b9a543a6885802836b768143d1c1a
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Pass the DC obtained drawBackground() to drawBackgroundDirectly(),
saving a call to hdcForWidgetBackingStore() to find it.
Pass the error code from the Win32 API DrawThemeBackground()
to the calling functions.
Change-Id: I1c25241f53d87e4429ad924f7b2e29da215d7e4f
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Separate factors in QWindowsCursor::createPixmapCursor()
and apply factor to the hotspot.
Task-number: QTBUG-52276
Change-Id: Ia5a5db39ddc2bc4215a23ff8625431af9b4a76d8
Reviewed-by: Adam Light <aclight@gmail.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Its "rules" are actually guidelines, its suggested regex was wrong,
its actual implementation was fuzzier than its documentation suggested
and the exception it tacitly permitted should be distinguished from
the stricter rules it otherwise appears to implement. There was also
a redundant check ('-' had been handled earlier in the chained if).
Explain why the situation is tricky, fix the regex mentioned (making
it more readable, too) and note what might be worth doing a little
more fussily, without actually changing code behavior.
Change-Id: I93fa0da0640a134e5d84011b435a186576824063
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Directly link against DwmApi and fix breakage introduced by refactoring
QRegion.
Change-Id: I45cd696de630aebb5347130560ab69530eefbcdb
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This might be useful for IDE or other tools to be made aware of Qt macros.
This is inspired to what QtCreator[1] and moc-ng[2] does. But they are forced
to redefine or inject code at precise location which might be difficult.
This is going to make it easier to use libclang in qdoc.
With this change, the tooling can just predefine the macro QT_ANNOTATE_FUNCTION
and QT_ANNOTATE_CLASS to get what they need.
Example with libclang:
"-DQT_ANNOTATE_CLASS(type,...)=static_assert(sizeof(#__VA_ARGS__),#type);"
"-DQT_ANNOTATE_CLASS2(type,a1,a2)=static_assert(sizeof(#a1,#a2),#type);"
"-DQT_ANNOTATE_FUNCTION(a)=__attribute__((annotate(#a)))"
"-DQT_ANNOTATE_ACCESS_SPECIFIER(a)=__attribute__((annotate(#a)))"
"-DQ_CLASSINFO(name,value)=static_assert(sizeof(name,value),\"qt_classinfo\");"
"-DQ_REVISION(v)=__attribute__((annotate(\"qt_revision:\" QT_STRINGIFY2(v))))"
[1] qt-creator/cplusplus/wrappedQtHeaders/QtCore/qobjectdefs.h
[2] https://code.woboq.org/mocng/src/qobjectdefs-injected.h.html
Change-Id: I88fcb28f1dbb3d26ea82f10e9948e68a18c795e9
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
Reviewed-by: Kevin Funk <kevin.funk@kdab.com>
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
Adds the following API:
* QInputMethod::anchorRectangle()
* QPlatformInputContext::setSelectionOnFocusObject()
This will be used for determining how to display selection handles.
Change-Id: If57e3fd58ff0f1ba7899f7dd62bfa9c006028667
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Replace substring functions that return QString with
corresponding functions that return QStringRef where
it's possible.
Create QString from QStringRef only where necessary.
Change-Id: Id1c39093199519f2794b11560c2c0ded2d52b928
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
This prevents the call from happening in case no C++ signal is
connected.
Change-Id: I32027df446391f3fc979528738a106223042d632
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Remove #ifdef sections for Q_OS_WINCE and wince .pro file clauses in library
and tests.
Task-number: QTBUG-51673
Change-Id: I552b3fe8d6e0eb7c8c7b3a3d41558e5e21904dd2
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
The instance of QWindowsStaticOpenGLContext has been observed to be 0.
Task-number: QTBUG-52387
Change-Id: I1ca97c6df0d96e732ae62354e03f465cd461bcb4
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
The logic for activating a delayed popup menu on QToolButton is a bit
cumbersome: when the button is pressed, a timer is started. This timer
however doesn't get reset if the button is released before the timer
expires. Instead, the function triggered by the timer checks if the
button is pressed at that time. If so, the popup menu is shown.
This logic allows the user to press-release a QToolButton many times
and suddenly get a popup menu appear way before the expected timeout
for the popup expired. That's because the first press started the timer,
and then the button happened to be down when the timer expired.
Instead, always *re*start the timer on a button press, and cancel
the timer when the button is released.
Change-Id: I3e0849264fdb6f670d018ebb5012eb15fa699cfb
Task-number: QTBUG-48906
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Remove #ifdef sections for Q_OS_WINCE from library.
Task-number: QTBUG-51673
Change-Id: I857165858118be91bfb25094ee3229b36942dc4e
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
That configuration causes gcc to create non portable code and thus
should not be used.
Task-number: QTBUG-51938
Change-Id: Ib134bd0b12811c15805943180c41af8f411e6453
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
The bug was introduced by 410aa20f07
(QAIV - allow users to control single step in ScrollPerPixel mode).
QAbstractSliderPrivate::viewMayChangeSingleStep is reponsible
for the expected behavior when scrolling by wheel. It is set to
true by default, but calling QAbstractScrollArea::set*ScrollBar()
results to always setting it to false. So we should copy
viewMayChangeSingleStep manually from the old scrollbar.
Change-Id: I2ee218054e473fa96785b123805e3943a5d74dbd
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Ensures that QStyleOption is correctly initialized.
This prevents possible styling issues due to
QStyleOption's reporting version 0, see qstyleoption_cast.
This enables users to handle more cases in their QProxyStyle.
For now the test is only used for QCommonStyle.
Change-Id: I768db00b12b46890343fffe44e4f562762e9cf80
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Instead of relying on the QString relational operators to
implicitly convert the QChar to a QString, add relational
operator overloads that compare the QChar without first
turning it into a QString, saving one memory allocation
per comparison, and allowing to mark the operation as
nothrow.
Consequently, in tst_QStringBinOps, verify now that all
relational operations are noexcept.
The added overloads make QChar ==/!= int comparisons
ambiguous. De-ambiguate by providing a constrained
template that matches int and nothing but int (otherwise,
the QChar and the int versions would compete for a
QChar::SpecialCharacter argument, and end up creating
new ambiguities). This solution may not be perfect, but
it can be easily extended should more ambiguities crop up.
The existing overload deals with all patterns found in
qtbase.
Change-Id: I4156d918e9b9134c1da684b8b69e0ee526ad24e3
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
For QChar <> QStringRef, equality and inequality were already provided
(via QChar -> QString implicit conversions, to be fixed in a separate
patch). Missing were the less/greater than (or equal) operators.
Added.
For QChar <> QLatin1String, all relational operators were missing.
Added, too.
[ChangeLog][QtCore][QChar] Added missing operator{<,>,<=,>=}
comparing against QLatin1String and QStringRef.
[ChangeLog][QtCore][QChar] Added missing operator{==,!=}
comparing against QLatin1String.
Change-Id: I9941fe7e7281ea560b3bd5970cb9651ffadc1495
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
The change in bc1796f for QTBUG-42503 only works for scaling down
pixel-doubled images. Smaller images scale up incorrectly. Fixed by
setting the devicePixelRatio of the scaled pixmap to the
devicePixelRatio of the label.
Also, caching was broken by not accounting for scaling by
devicePixelRatio in the condition.
Change-Id: I6e1503652e61683a16312c74f46b79d28c880848
Task-number: QTBUG-46846
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
The format to use was computed, every time round a loop, in both
branches of a ?: choice, duplicating code and potentially computation.
Pull it out into a const computed once before the loop.
A conditional return 2 is pointless for the #if-branch which returns 2
unconditionally, so move it into the #else.
Change-Id: Ia583e958e24f9f37b92cb3f2a173bc07e88bcd06
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Native applications do open the native input pane when the touch release
happens, not during press. Widget applications seem to not ask the
theme, so it was acting like native there already. For Qt Quick
applications the platform theme is queried, now returning true for
SetFocusOnTouchRelease.
As a side-effect this also fixes QTBUG-52295, as showInputPanel() at
press time causes issues with focus handling, causing the input pane to
disappear again.
Task-number: QTBUG-52295
Change-Id: I6da6a0126f695233b7c8a399a1549a8b7c824af2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>