| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| |
| |
| | |
signed char is a numeric type
Change-Id: I5cf9ed63cb7a2ba56c08119c77bcac0f9369b5df
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This would result in (a == b) != (b == a). The == operation should be
commutative as much as possible.
Now, there's still an asymmetry in that b is forced to a type and the
conversion may fail. QVariant should have an idea of what conversions
are "promotion" and which ones are "demotion" (subject to loss of data
and/or can fail), so it can do the promotion first
Task-number: QTBUG-42254
Change-Id: I9fa4496bbbf0f8719ff8456cc24247290beac608
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This now guarantees that doing a round-trip from an FP number to string
and back to number results in the same number. This change is required
because DBL_DIG and FLT_DIG don't have the meaning that we were
expecting them to, here: they mean the minimum number of digits of
precision in decimal (i.e., changing the last decimal will always cause
the FP number to change). We need the maximum number: there is one
change in the last decimal place that causes the FP number to change.
IEEE 754 single-precision has 24 binary digits and double precision has
53 binary digits in their mantissa. To convert that to decimal, multiply
by the number of decimal digits a binary digit represents (log2(10) =
0.3), then add one for the rounding and one more digit for the actual
precision we want. That is, for floats we now ask for 9 digits and for
double, 17 decimal digits.
Task-number: QTBUG-42574
Change-Id: Ic78beb60a218f75322f832d33d63fd84e7a65b65
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: Iffe5a33b8a1f134d722371a9e92ba9c9d13c51f8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog][QtGui][QPlatformSurfaceEvent] Added event class
QPlatformSurfaceEvent, which is sent to QWindow and QOffscreenSurface
when native surface is created or about to be destroyed.
Task-number: QTBUG-42476
Task-number: QTBUG-42483
Change-Id: If62e2c2a1f2a94fd310bbf7cf22b94c70125ba7a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
These synchronously delivered events allow applications to correctly
and conveniently handle native platform surfaces being destroyed. This
is particularly useful when doing rendering on a non-gui thread as it
allows to shutdown rendering before the native surface gets destroyed
from under us.
Task-number: QTBUG-42476
Task-number: QTBUG-42483
Change-Id: I63f41bbdb32f281d0f3b8ec2537eb2b0361f3bb3
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Create and Delete wrappers are not necessary, because they can be
easily simulated with Construct and Destruct. This change removes
redundant function wrappers and a bit of over-optimized code. Gain is
quite big:
Before:
text data bss dec hex filename
5366008 47460 14904 5428372 52d494 libQt5Core.so.5.5.0
505578 7060 2124 514762 7daca libQt5DBus.so.5.5.0
5591079 134656 6728 5732463 57786f libQt5Gui.so.5.5.0
1398785 31676 2576 1433037 15ddcd libQt5Network.so.5.5.0
6642431 220952 2536 6865919 68c3ff libQt5Widgets.so.5.5.0
After:
text data bss dec hex filename
5342559 47460 14904 5404923 5278fb libQt5Core.so.5.5.0
496025 7068 2124 505217 7b581 libQt5DBus.so.5.5.0
5579291 134272 6728 5720291 5748e3 libQt5Gui.so.5.5.0
1389461 31676 2576 1423713 15b961 libQt5Network.so.5.5.0
6637139 220952 2536 6860627 68af53 libQt5Widgets.so.5.5.0
Cost of the change, is moved to CPU while calling QMetaType create()
and destroy(), these two functions became a bit slower. The cost should
not be visible, because they call operator new anyway.
Change-Id: I34fd410343377d9c29925675d7da8172bfda9ce6
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is required so we can take a QVariant and detect that it contains a
Q_GADGET and then use method like QMetaType::metaObject and QMetaProperty::write
with the QVariant::data
Change-Id: I3603692e4e84426e10bf59949e3def3ea4947bec
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Only the data for the first file could be reached with the mimetype
application/x-qt-windows-mime;value="FileContents"
To get the data for the other files, setting the lindex field of
the FORMATETC struct is necessary. Provide support for that by
appending ;index=N to the mimetype string.
The Windows API provides no generic way to find out how many of these
are available (the app has to find out by looking into the FILEGROUPDESCRIPTORW
structure, for this particular use case), so these additional mimetypes
are not listed in QMimeData::formats(). However this patch extends
the documentation to mention the feature.
[ChangeLog][Platform Specific Changes][Windows][QMimeData] Add support
for handling dropping of multiple mail attachments, adding ;index=N to
the mimetype string application/x-qt-windows-mime;value="FileContents"
Task-number: QTBUG-17373
Change-Id: I031e477d2357b4e5135d2dcd3e3cf991025715a5
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Follow the same convention as other functions using the QMetaTypeSwitcher
It was not a problem since none of the built-ins type in QtWidgets
or QtGui were pointer and could not have a QMetaObject. But since
we want to register the metaobject for Q_GADGET, it would fail compilation
as types like QFont are not defined in QtCore.
Change-Id: I6307bf6f25439ed48355ef7ecfa60575de318a25
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With the side-effect that variables and functions in the argument are
now "used". This means we don't need to #ifndef functions only used in
assertions: the compiler will eliminate them by dead code elimination.
Due to the mandatory short-circuiting of the condition, no functions
will ever be called and this expands to no more code than before.
On the negative side, because we won't get warnings for unused variables
initialized outside the Q_ASSERT, non-inlineable calls will not be
elminated by dead code elimination, so they will remain in release code
without warnings.
Because of the expanded code now in Q_ASSERT, the Intel compiler's
optimizer gets thrown: it complains that the non-void function is
failing to return anything, so I had to add two return statements.
Change-Id: I1bb79c9637a2771ef1ec093f901b8d2443788bd6
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QMetaType::type(const char *) requires that the string argument is
0-terminated. This new overload makes it possible to query the type
of a string with an explicit length.
In particular, QByteArrays constructed by QByteArray::fromRawData(),
for example from a substring of a normalized method signature (the
"int" part of "mySlot(int"), can now be queried without making a copy
of the string.
Also, Qt5 meta-objects represent type names as QByteArray literals,
which can be fed directly to this new QMetaType::type() overload (no
need to call strlen).
Change-Id: I60d35aa6bdc0f77e0997f98b0e30e12fd3d5e100
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Methods can be invoked with QMetaMethod::invokeOnGadget
Change-Id: Id734868bb530b02587daf0f62bce01798ade2ac2
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: Ic12f465d31459748ca08ac8c457fd61a5773e2e2
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
That way we will be able to access property of objects that are not QObject
(Q_GADGET)
Change-Id: Ib8ef6e52fc621e0b0d6530f82b1aa205f1ed5fd9
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
| |
| |
| |
| |
| |
| |
| | |
This provides a way to invoke Q_INVOKABLE method
Change-Id: I301cec2a21c2889fb9dde0b1eb6e92d0bd561bd7
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
src/gui/text/qfontdatabase.cpp
Change-Id: I6ac1f55faa22b8e7b591386fb67f0333d0ea443d
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-41403
Change-Id: I9dab0f9450cac11678eb6d20abd2dd08e86e0900
Reviewed-by: Stephen Kelly <steveire@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If the translations are incomplete it's actually not ensured that a
translation without disambiguation is used: lrelease will drop the
disambiguation from one of the identical messages if there is no message
which actually has no disambiguation ...
Task-number: QTBUG-30471
Change-Id: I1787f5c401a7afb964acbf8a8609ba328c8140a9
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The code didn't properly clean up the current state before
assigning the new state.
Change-Id: If56cf43bace976203ff186759b2a81705b2b22d2
Reviewed-by: Stephen Kelly <steveire@gmail.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
|
| |
| |
| |
| |
| |
| |
| | |
Also remove the ending space if the object is null
Change-Id: Ieb2bb903de35b4e339c812cd07555b5d108d118b
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
|
|\|
| |
| |
| | |
Change-Id: If7e51514ed6832750e3ad967e4d322ccf920d2bb
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change adds guards to ensure that we only do a class
look-up once when calling QJNIEnvironmentPrivate::findClass().
IF someone calls findClass() with an environment that does not contain
a "valid" class loader, we should fallback to loadClass(),
but only once.
Change-Id: If5fc82956db889f3269bb33c98a16c49cae55def
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Port change 3716a76704273fdbe5ad4ec978438daeda606c26 (Qt 4)
to Qt 5. Enforce the creation of the internal window
and registering of timers in the event dispatcher constructor
for GUI applications instead of delaying it to processEvents()
is called. Move the call to virtual wakeUp() out of
createInternalHwnd().
Task-number: QTBUG-40881
Change-Id: I82a4748897da140a39feff882c75ad5ac6155148
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Marking qt_eval_expiry_date alone as volatile apparently didn't stop
the compiler from optimizing away the calculation of the expiry date.
Task-number: QTBUG-41612
Change-Id: Ia51fb83f03250346952a76c8a1a641096b4ff9e7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Kalle Viironen <kalle.viironen@digia.com>
Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
|
|\|
| |
| |
| | |
Change-Id: I05fcd8dc66d9ad0dc76bb7f5bae05c9876bfba14
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The were made 'protected' as a side effect of a change enabling
support of template friends for MSVC. However, accessibility
is part of the MSVC's name mangling and thus BC was broken.
Task-number: QTBUG-41810
Change-Id: I5ce4c7010673c06d5b75219c89c7ebd337bac6c0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
| |\ |
|
| | |\
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/network/socket/qnativesocketengine_unix.cpp
src/widgets/kernel/qwidget_qpa.cpp
Change-Id: I6f1aa320d5ca66cd92d601a95885aeaab0abb191
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
For some reason it seems to be supported to call moveToThread(0).
That call will allocate a new QThreadData for the object. However,
if we then detect that we're calling moveToThread from a thread
which is not the one the QObject has affinity with,
we error out leaking that QThreadData object.
Change-Id: I0fe6625a2a9887535e457f3897b514d2a03d1480
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Using Python script title-cased.py
Task-number: QTBUG-41250
Change-Id: I00d3d7a0b30db7304a7904efd6d63abd9a7b493b
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This was broken in f95181c7bb340744a0ce172e8c5a8fcdc2543297,
and has been broken in all released versions of Qt5.
Change-Id: Ia75ab602be4904cc6ab19471f909716538af8746
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/corelib/tools/qbytearray.cpp
src/gui/image/qimage.cpp
src/gui/image/qppmhandler.cpp
src/gui/kernel/qguiapplication.cpp
src/gui/painting/qpaintengine_raster.cpp
Change-Id: I7c1a8e7ebdfd7f7ae767fdb932823498a7660765
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The static QJNIEnvironmentPrivate::findClass() function exposes the
cache and the class finding code in qjni.
Change-Id: I42043dc993cf9cace042faf763f2a647ba79d97f
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- Renamed LICENSE.LGPL to LICENSE.LGPLv21
- Added LICENSE.LGPLv3
- Removed LICENSE.GPL
Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2
Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-40362
Change-Id: I54a1111e39fb7e85d34ea97b937d2764d29b27a0
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
|
| |\ \ |
|
| | |\|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The isAlwaysAskOption was removed in 38621713150b663355ebeb799a5a50d8e39a3c38
so manually removed code in
src/plugins/bearer/connman/qconnmanengine.cpp
Conflicts:
src/corelib/global/qglobal.h
src/corelib/tools/qcollator_macx.cpp
src/corelib/tools/qstring.cpp
src/gui/kernel/qwindow.cpp
src/gui/kernel/qwindow_p.h
src/gui/text/qtextengine.cpp
src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h
src/plugins/platforms/android/qandroidinputcontext.cpp
src/plugins/platforms/xcb/qglxintegration.cpp
src/plugins/platforms/xcb/qglxintegration.h
src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
src/testlib/qtestcase.cpp
src/testlib/qtestlog.cpp
src/widgets/dialogs/qfiledialog.cpp
src/widgets/kernel/qwindowcontainer.cpp
tests/auto/corelib/tools/qcollator/tst_qcollator.cpp
tests/auto/gui/text/qtextscriptengine/tst_qtextscriptengine.cpp
tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp
tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
Change-Id: Ic5d4187f682257a17509f6cd28d2836c6cfe2fc8
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
AA_MacPluginApplication
Change-Id: I48cebbcb814ee8e97583c3165e7cb668077cfbad
Task-number: QTBUG-40409
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I7a4dd22ea3bcebf4c3ec3ad731628fd8f3c247e0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When no objectName is set, this will give at least some information,
other than the memory address of the current instance.
Change-Id: Iae452c0e9fe38f0aab35094ddf0edc0fd6b28c20
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The class name scheme can be separated by '/' or '.', if both formats
where used we would end-up caching those classes twice.
Change-Id: I3ae69694d6a8616bbaadfb3c2d0717fbf9ccb9fc
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I32b232883bb29ca7305bca1da1df263f106ddd93
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Starting/stopping timers from another thread may result in errors that
may not appear until hours, days or weeks after if a release build of
Qt is used with the GLib/UNIX event dispatchers. Such errors may
manifest as warnings such as "QObject::killTimer(): Error: timer id 7
is not valid for object 0x2a51b488 (), timer has not been killed" and
application crashes (e.g. crashes in malloc, realloc and
malloc_consolidate).
Initial-patch-by: Eike Ziller <eike.ziller@digia.com>
Task-number: QTBUG-40636
Change-Id: I2de50d50eb1fc7467fcebb9c73b74d2f85137933
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If the types doesn't match in QVariant::compare we do a comparison based
on QString, this may end up indicating a full match, though the we don't
match according to cmp. In this case it would be better if we preserved
the non-matching to avoid breaking ordering.
[ChangeLog][QtCore][QVariant] Fixed ordered comparison between QVariants
that do not match but produce identical toString output.
Task-number: QTBUG-40363
Change-Id: I84a8eca11e8875dba9948bde2906ae7c5aa35704
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The old code was completely broken. It did dereference
val for user types, but val does in this case only contain
garbage. Instead use the pointer to the correct data.
Change-Id: I20ccf0bfa3dd3774c787d08c51cc8dd7b1ec9a1a
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Unlike ordinary widgets, the ones that have OpenGL framebuffers must know
about screen changes because the device pixel ratio may be different on
the new screen. Add an internal event, ScreenChangeInternal, as the
counterpart to WindowChangeInternal.
Change-Id: I5e55999838e4c0284e7d9832299f7cc6b541ee3f
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Gestalt is deprecated so we can't use it long term. At the same time,
the new API is cross platform, so we'll no longer have to parse strings
in -[UIDevice systemVersion] either.
Change-Id: Ic81797174c1a3d50b47b9b209205a6a506cc75ef
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
|
|\| |
| | |
| | |
| | | |
Change-Id: Id4997327cc01bd4bb397a463bdffbd15e80398ef
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I934b68978fb32a518ed7cf9b47f1600982f58f66
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
|