This is a leftover from the QGL->QOpenGL migration, the function
never existed in the QOpenGL variant of the class.
Change-Id: I47bdfb7f65ffc6cdd39b353e3a69900ccf10e4fc
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
qmlimportscanner is run as a $$system command (as opposed
to as a makefile command) so specify it as such to
qtPrepareTool and run it as such too.
The distinction is important for MinGW-w64 static
builds where it must be run via cmd.exe and not sh.exe.
Change-Id: I0832d5138bff7f4fa1968646df28d2367ad062c2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
The minimumRenderSize is a qreal value that is used as a lower bound to
determine what items are visible when a scene is rendered. If an item's
view-transformed width or height are less than minimumRenderSize then
this item is considered to insignificantly affect the final result and
is not drawn. If the item clips its children to its shape they are
automatically not drawn. This greatly reduces the drawing overhead
for scenes with many items rendered in a zoomed out view.
[ChangeLog][QtWidgets][QGraphicsScene] Added the minimumRenderSize
property which can be used to speed up rendering by not painting
items, smaller than a give size.
Change-Id: Ie208234707dffb4d2fc620fc5d1514e0c144d9a8
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
FreeType engine on QNX has the same weakness as on Windows, so some
tests are expected to fail.
Change-Id: Icd8fcafae425246ca25ad8e029bf8d6fdc7bd250
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
The patch removes unwritten requirements of having a class name as the
first string in qt_meta_stringdata_XXX::stringdata. It allows us to use
the name for suffix check in moc and potentially reduce the object size.
The patch actually fixes QMetaObject, so it properly interpret
classname field in qt_meta_data_XXX, which was previously ignored.
Change-Id: Id31aaf214b6d48c9dd1063ef9c00ec6b22738cbf
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
It is not sufficient that QSharedPointer<ForwardDeclared>'s default ctor
and dtor compile. Copy/move assignment/construction and swapping should work, too.
Arguably, there are more functions that should compile with just a forward-declared
payload, but this is a start.
Change-Id: I75470e3d4ba949c3e735c4078cbc123d53ec3007
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Use QSharedPointer<T>::create(), which co-locates the refcount with the payload
in a single memory allocation, instead of QSharedPointer<T>(new T), which causes
two allocations.
Change-Id: I3f70d15a6d1bfaaa8b48a36ed3c877e817a5b701
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Use QSharedPointer<T>::create(), which co-locates the refcount with the payload
in a single memory allocation, instead of QSharedPointer<T>(new T), which causes
two allocations.
Change-Id: I280caf861b894f87996a9d3ae783943f55d54ff3
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
The signature needs a small change -- from qHash(QChar, uint) to
qHash(const QChar, uint). The reason is that we need to select
the const (and constexpr) overload of QChar::unicode in the body.
Apart from this, it shouldn't have any effect on user code.
Change-Id: I38f4f66a715111c7472e3d7def75a6cff7030919
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
By removing the if and switching to a ternary operator.
Change-Id: I754c312ef06cb1e029de8e6cc562de8b12c88fc4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
The body doesn't make sense as the if condition is always true
(we even have static asserts checking that sizeof(int) == 4).
Removing the if allows us to mark the function as constexpr.
Change-Id: Iddeb042a6164d4afe6c827c10177596424d770eb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Creates new themable setting SH_LineEdit_PasswordMaskDelay which can be used
to override QPlatformTheme::PasswordMaskDelay. SH_LineEdit_PasswordMaskDelay defines number
in ms which the password character is visible when echoMode is set to Password
[ChangeLog][General][QStyle] Creates a new themable variable SH_LineEdit_PasswordMaskDelay
Change-Id: I26f0ddfda2b49bc293e00e8fcf62260cf4896ab2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
This simplifies deployment and makes instantiating accessible interfaces
faster since no plugin needs to be loaded.
[ChangeLog][QtWidgets] Accessibility for widgets is now included in the
widget library instead of being a separate plugin. For static builds
this means that libqtaccessiblewidgets is no longer required.
Task-number: QTBUG-32888
Change-Id: Ie7347898868fd67c1fc568f0d251cbd2ef71e041
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
This is necessary to allow QtWebEngine to create a separate display
connection through eglGetDisplay to the same display as Qt is
working on.
Change-Id: I3635888bd5e41239ef18b197d24683dcea68f6ee
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Depending on whether the arguments are enough (f.i. arithmetic types)
or they actually need to walk through memory.
There are still a few which can't be marked constexpr due their body,
but they'll be fixed in subsequent commits.
Change-Id: I8e2bc395b8e7ae93a306d0ff8752c595e05abaf1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
tst_qdebug didn't test adding something else after the MyLine object,
so I didn't realize that a space was missing there. All debug operators
should end with maybeSpace(), but with the settings of the caller, so this
requires restoring the settings before calling it. To make it convenient
for all << operators, the destructor of QDebugStateSaver takes care of that.
Change-Id: I18ab78d99d7ee3be951082b5b5d34718ee60e21d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This is useful for widget styles to react when widgets are set
read-only, e.g. to update their palette accordingly.
[ChangeLog][QtWidgets] All widgets with a setReadOnly method now
send a ReadOnlyChange event (e.g. for app-specific palette changes)
Change-Id: I74719a3e1b7d034d9bfc94305f846f42aae935bd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
The font database and QFont should have normalized font family names,
so using CTFontDescriptorCopyLocalizedAttribute is not a good idea.
If the feature of reporting the localized name of a font family or
style is needed in for example the font selection dropdown or dialog,
it should be exposed as an explicit property of the font.
Change-Id: Iaa15ad861043f4c78a38080608b6fe4d99efee18
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Change-Id: I494c4fdfa49139316efac0f68f8d463c02056372
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Remove definition QT_EDITION which was set in configure
since it is not used anywhere anymore.
Change-Id: I5c30ab47c6244fcb07707fd05e11decf2068f6d1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Make sure that the correct context is current when freeing GL resources.
Otherwise, on shutdown, QOpenGLVertexArrayObject would try to use the
previously current context, which mmay already have been deleted.
Task-number: QTBUG-37385
Change-Id: Ib2332f54636738a1a4b1041a7dcbffd0af00261d
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Make sure the alphamask in the backingstore is updated whenever the
geometry of a QQuickWidget/QOpenGLWidget child changes.
Task-number: QTBUG-37372
Change-Id: I70e94664bd7da774694645f604e1a7277fe563c7
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Ulf Hermann <ulf.hermann@digia.com>
Beautifier and Windows Runtime plugins were added for 3.1.
Change-Id: I6ad16aa004e4ea2c468d2dc07e3d6142e63ff396
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Check also for rules set in an environment variable QT_LOGGING_RULES.
This makes it even more convenient to set rules e.g. for just one run of an
application, without having to create a logging configuration file. It
is also more in place with the current way we enable/disable debugging
of parts of Qt via environment variables.
Change-Id: I4d05976f2b6c12bca472552ffa22345475cd01de
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Tomasz Olszak <olszak.tomasz@gmail.com>
Tell the user from where logging configurations are loaded from if
the QT_LOGGING_DEBUG environment variable is set. This allows 'debugging'
of the logging rules database, because it's very simple to e.g. silence
all debug messages by adding a logging configuration file somewhere, and
forget about it.
Change-Id: Iee34031d531462060b5603e2210e01fd40952c63
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Use QStringRef to speed up the parsing of the left side of logging rules.
Change-Id: Idd4d75496e3865d092f2802c45928a414c14c615
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Do not accept rules with wildcards in the middle.
Change-Id: If6fa71629c46bc4127aa8bd475643bc0e8a9f57c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The documentation says that the left side of a logging rule has the syntax
<category>[.<type>]
with optional wildcard '*' as the first or the last character (or at
both positions.
However, so far we didn't allow
qt.*.debug
But what we did allow is implicit dropping of trailing '.', e.g.
qt.* matched also 'qt'
Fix these by splitting up the '.type' in advance, and then do string
matching only on the 'real' category names.
Change-Id: Iab50ad0fc673464e870f5ab8dfb3245d829b3107
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Use the QTextStream stream operator for formatting 64 bit numbers,
just like we do for other numbers, too. This ensures all numbers in
a QDebug stream e.g. respect the hex and showbase modifiers.
The original reason for formatting qin64, quint64 with QString::number
is unclear (pre-dates the original qt4 git import). Maybe QTextStream
did lack proper support for 64 bit numbers back then.
Task-number: QTBUG-36841
Change-Id: I049516c2a8394c9c1a708f86c3d950418a20a957
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Change-Id: I213ac1fb2733e675f3641441fe6c621bab06c1f0
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
D-Bus libraries were recently added to OS X 10.7 making these
tests to be executed for first time.
Task-number: QTBUG-37469
Change-Id: Ia7a74a45b18d4a645307f7fb7666236c5e009e5f
Reviewed-by: Simo Fält <simo.falt@digia.com>
Do not close connection in slot bytesWritten() since that can
cause clients to fail with "Connection Closed". Instead, use
deleteLater() to close properly and prevent leaking the sockets.
FAIL! : tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() 'waitForFinish(reply) == Success' returned FALSE. ( QUrl( "http://localhost:58240" ) failed: # 2 "Connection closed" )
..\tst_qnetworkreply.cpp(7067) : failure location
Task-number: QTBUG-37449
Change-Id: Ib92cb62fae523370b2fb45e1ccfa217559732bc8
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Replacing old troll.no domain with qt-project.org domain. Using troll.no
doesn't work anymore.
Change-Id: Ic6fa71b044d1adbdc66c875b47bfdc256a2afc8e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Populating the whole database takes a while, and it's very easy to trigger
the fallback family code path through eg. matching or getting the default
font family from QFont.
Instead of relying on populate to resolve family name to a PostScript name
(which was required when using CTFontCreateWithName), we instead use the
CTFontDescriptorCreateWithAttributes() function to create a descriptor
based on the family name, and then use CTFontCreateWithFontDescriptor().
The other way around, we use CTFontDescriptorCreateWithNameAndSize, and
then pull out the family name from the descriptor. The need for creating
a CTFont for private fonts (eg '.Apple Symbols Fallback') does not seem
necessary anymore, as tested on 10.7-10.9.
The disadvantage of creating font descriptors instead of re-using the
data computed by population is that we're doing the same work twice,
but the end result is making the font database more lazy, and the 80%
use-case is assumed to be that you're only interested in the fallback
of a small number of fonts, which means you don't want to populate all
of the fonts in the system (taking about 1100ms on the test system).
Looking up the fallback of a single family or style now takes about
15-25ms.
Task-number: QTBUG-37165
Change-Id: I6b904dbe796a3f236919d778d0168fdef9a20e69
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
During the QPA refactoring, the custom font substitution list support
was lost by ignoring the font request's fallbackFamilies member
when the multi font engine gets created/initialized.
If fallbackFamilies is not empty, it should be prepended to the
font database default fallback families list. Also respect the
custom fallback families list in the cache key to avoid picking
a multi font engine with wrong fallbacks list.
Task-number: QTBUG-36628
Change-Id: Ie2b84b3a397bee4816f421cddf76a5375829f13a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
After QPA refactoring, QWindowsFontDatabase::fontEngine() was returning
a multi font engine w/o any particular reason.
This makes the code more obvious and opens the road to further improvements.
Change-Id: I4858026ddf774d3159c89357b1c905f5112b1c51
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Many bugs originate due to mismatches between the build-time and
run-time versions of openssl but they're hard to debug as we don't
provide access to the build-time info. This addresses that weakness.
[ChangeLog][QtNetwork][QSslSocket] Added accessors for the version
of openssl used at build-time. This will help when debugging
problems caused by a mismatch with the run-time version.
Change-Id: I6a4c21c8f16ab4c90cdf166f38c62fe37bf1f165
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Previously we allowed you to specify which version(s) you wanted to use,
but did not provide access to the version that was actually negotiated.
[ChangeLog][QtNetwork][QSslSocket] Add support for finding the version
of SSL/TLS in use by a connection.
Task-number: QTBUG-28471
Change-Id: I6d50d2bc9f1ce7f98192e67992178fe7e41c0575
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
[ChangeLog] GLES3 and desktop OpenGL are now fully supported with EGL
Task-number: QTBUG-37332
Change-Id: Ic695db573d90b3a204941d105a370f5c63182b63
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Passing OpenGLES and majorVersion 3 in a QSurfaceFormat selects GLES3 in case
it is supported. This works fine already now, but is not safe since the config
choosing logic does not request a GLES3-capable configuration and so it may
end up with a non-GLES3 compatible one.
This is now corrected by passing the EGL_OPENGL_ES3_BIT_KHR bit when
EGL_KHR_create_context is available.
Change-Id: Iacee1e1819b944c0f7c1062666106abddf59272b
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
The GLX and WGL support code does this already. Do it for EGL too since
requesting OpenGLES with majorVersion 3 results in GLES3 (where supported)
and in this case the expected majorVersion in QOpenGLContext::format() is 3.
Change-Id: I73d61d7569e6ebaa91aef57fb1b0051a77a73355
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
The API is chosen via QSurfaceFormat, the constructor argument is ignored.
Remove this historical artifact.
Change-Id: I4a5c1e12cb297de22f239ad0a6747c1c36168eed
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
The use of Qt::Dialog as a way to signal that a parentless window be created
as a child proved problematic as some applications use dialogs as their sole
window.
Instead, rely on the existence of a dynamic property called 'qnxWindowGroup'.
If found, the window will be created as a child window and that window group
will be joined.
Also added the ability to set the id string window property via another
dynamic property 'qnxWindowId'. While strictly related to the original
issue, one typically needs the ability to set the window id if one
is joining a group.
Added extensive documentation on the mysterious rules of the QNX QPA as
regards windows, at least covering the areas affected by this patch.
This patch was originally implemented by Roger McLean.
Change-Id: I0ef88d654b794ddcb54d4c4d9804bef750da5a33
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
The test takes too long and fails:
FAIL! : tst_QFtp::abort(WithoutProxy:get_fluke01) '(int)newData_ba.size() == bytesDone' returned FALSE. ()
tst_qftp.cpp(1886) : failure location
FAIL! : tst_QFtp::abort(WithoutProxy:get_fluke01) Network operation timed out
tst_qftp.cpp(1392) : failure location
FAIL! : tst_QFtp::abort(WithoutProxy:put_fluke01) 'bytesDone != bytesTotal' returned FALSE. ()
tst_qftp.cpp(1406) : failure location
FAIL! : tst_QFtp::abort(WithSocks5Proxy:get_fluke01) '(int)newData_ba.size() == bytesDone' returned FALSE. ()
tst_qftp.cpp(1886) : failure location
FAIL! : tst_QFtp::abort(WithSocks5Proxy:get_fluke01) Network operation timed out
tst_qftp.cpp(1392) : failure location
FAIL! : tst_QFtp::abort(WithoutProxyWithSession:get_fluke01) '(int)newData_ba.size() == bytesDone' returned FALSE. ()
tst_qftp.cpp(1886) : failure location
FAIL! : tst_QFtp::abort(WithoutProxyWithSession:get_fluke01) Network operation timed out
tst_qftp.cpp(1392) : failure location
FAIL! : tst_QFtp::abort(WithoutProxyWithSession:put_fluke01) 'bytesDone != bytesTotal' returned FALSE. ()
tst_qftp.cpp(1406) : failure location
FAIL! : tst_QFtp::abort(WithSocks5ProxyAndSession:get_fluke01) '(int)newData_ba.size() == bytesDone' returned FALSE. ()
tst_qftp.cpp(1886) : failure location
FAIL! : tst_QFtp::abort(WithSocks5ProxyAndSession:get_fluke01) Network operation timed out
tst_qftp.cpp(1392) : failure location
Totals: 327 passed, 10 failed, 4 skipped
QtQA::App::TestRunner: warning: test duration (398 seconds) is dangerously close to maximum permitted time (450 seconds)
QtQA::App::TestRunner: warning: Either modify the test to reduce its runtime, or use a higher timeout.
QtQA::App::TestRunner: test failed, running again to see if it is flaky...
Change-Id: I122641f174927c6b3668df05c79f88e38b88042f
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Try to fix frequently failing test:
FAIL! : tst_NetworkSelfTest::ftpProxyServer() Failed to receive data in step 32: timeout
tst_networkselftest.cpp(230) : failure location
on Windows. Introduce timeout constant, add message.
Change-Id: I709f0b34cd1cfe5d3c64cf61ccb7907bd616bc54
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Reviewed-by: Richard J. Moore <rich@kde.org>