We don't currently use this class for critical things like hostname
verification however we still want to ensure that it is not possible
to trick it using ASN.1 strings with embedded NUL characters. This will
avoid problems in the future.
Change-Id: Ibf3bc142a94fc9cad5f06db50f375399a087f9dc
Reviewed-by: Jeremy Lainé <jeremy.laine@m4x.org>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Daniel Molkentin <daniel@molkentin.de>
This header has not compiled since the MMX header it includes
was removed in 2011. It appears to be completely unused.
Change-Id: I48dbade1af186cf113cbd50eb7bedf3a32b97883
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
...with hints provided by platform font database.
Namely, if database reports fontsAlwaysScalable(), then we could
simply return true in QFontDatabase::is(Bitmap|Smoothly)Scalable.
Change-Id: I7af082718e007dfdaf430d3c4852005f62efa41a
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
If the platform returns false when asked to show a native
dialog, it means that it could not show it. Calling hide
on it later is therefore wrong, and can cause unwanted
side effects.
Change-Id: Icf5bdb5d98f40af6ef70fdbeaff824a535a404b3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
They need a special macro since they have a different metaobject
Change-Id: I2fa50b4b2e45990fb01771378765b42f03139183
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
These files are only required for a COM server, but since the
IAccessible2Proxy will actually be the effective server (inside our
process). We just have to make sure we respond to the correct events, and
reimplement the virtual functions as required.
This is already done, so these files can be removed.
Task-number: QTBUG-30838
Task-number: QTBUG-28645
Change-Id: Ic95101945bad263a6da63c08b3e47cc0c9d5734a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
QXcbConnection::touchDeviceForId attempts to retrieve an existing
XInput2TouchDeviceData from m_touchDevices via QHash::operator[]. If
m_touchDevices does not contain the specified XInput2TouchDeviceData,
QHash::operator[] adds a default constructed value (i.e. a null pointer) for
the specified id. This null pointer is not removed from m_touchDevices if
the condition "nrDevices <= 0" is true below. This causes a null pointer
dereference later on in QXcbConnection::finalizeXInput2.
Change-Id: Icd3352417047c4b35d56db2d9f51e3fa1d859e9d
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
In static builds of Qt, static initialization may not work because
we need an initialized list of screens before devicePixelRatio() can
use them to find the value. Anyway, it's better to know the dpr
at the time the tray icon will be shown rather than when the
application is started, just in case it changes.
Change-Id: Iedffb674d8e8818c2a4e64d7c7a3c89a2dca77f3
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Remove the QXcbClipboard::m_screen member variable and make it use
connection()->primaryScreen() instead. The clipboard is created in the
QXcbConnection constructor, and QXcbClipboard::m_screen was set to the primary
screen at the time of construction. If the primary screen later gets
disconnected, m_screen ends up pointing to a non-existing screen.
Change-Id: I2d23106673d0ba013056d4dbb7078acdf6f9bc7c
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Applications which construct a window with one screen configuration and show
the window later on after a screen configuration change crash because the
QXcbWindow::m_screen still pointed to the screen present at the time of window
construction. In QXcbWindow::handleConfigureNotifyEvent the m_screen should get
updated with the new screen, but I didn't see that method called in the
scenario outlined. Looking at the other platform backends, I however see that
they take the screen directly from the QPlatformWindow instead of storing the
instance, hence this patch which makes QXcbWindow do the same.
Change-Id: I13759a5939315c3aac36ec6e2c25bd0a6d7b1c35
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
The code just does the sprintf-equivalent of %0<n>d where <n>=fieldWidth.
Be explicit and use QString::rightJustified().
Change-Id: I7d72b5d62e5de581ba4207eba0d358a18f0b1972
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
1. Qt::FramelessWindowHint imlplies NSBorderlessWindowMask, but should
_not_ exclude NSResizableWindowMask - we still have API (showMaximized)
to resize this window. Without NSResizableWindowMask showMaximized
(calling NSWindow's '-zoom' under the hood) has no effect.
2. -performMiniaturize does not work with a borderless window, since such
a window does not have a minimize button - use miniaturize for such
window instead.
Change-Id: I691182ad7c1d230e670bfb70ef758483acbf0792
Task-number: QTBUG-44195
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
Classes should either use or not use override, otherwise it hurts
code readability.
Some inline keywords were removed because of an error with MSVC2010:
error C2216: 'override' cannot be used with 'inline'
Change-Id: I7276d5525a92281bd0d743beb11d0dc73441443b
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
This requires being able to create a QItemSelectionModel
without specifiying its model, and also setting the model
later. Also, several classes, like QPersistentModelIndex,
need to be declared as meta-type.
Finally, and in order to introduce the 'model' property,
we need to have a type compatible getter. Hence the new,
non-const model() function.
Where needed, meta-type declarations have been removed from
auto-tests.
[ChangeLog][QtCore][Item Models] QItemSelectionModel
can now be created without a model and have one set later.
Change-Id: If49bed061a5d1012331f335ca7f6e3959ecd3f1c
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Because Proxy Auto Configuration performs DNS lookups,
the proxy settings are being cached. For long-running
programs this means that once users switch e.g. from or
to company networks with a proxy, they instantly will
lose connectivity because we cache the old setting.
To remedy this, we monitor the Registry (locations
courtesy of Chromium's platform support) for changes
in its settings, and requery for the current proxy in
that case.
Task-number: QTBUG-3470
Task-number: QTBUG-29990
Change-Id: Id25a51387bcd232c5f879cea0371038986d0e2de
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Handling context losses is unavoidable with ANGLE. Introduce
some level of support for desktop GL too by making it possible
to opt in via a new flag.
Support is added for Windows (WGL, opengl32) only for now.
In case of Windows with ANGLE setting the flag is not necessary,
context losses will be reported regardless.
Change-Id: Ic354c1382e876566538c52a4381f7ff328b7477e
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
After changing the class name QmlClassNode to QmlTypeNode,
there remained several local variables that still used the
name qmlClass. These are now changed to qmlType. There were
also some uses of qmlType that were QString variables. These
have been changed to qmlTypeName.
Change-Id: I18fb05d4d8aeb1e36acabc4574c62c55a44f339a
Task-number: QTBUG-43715
Reviewed-by: Martin Smith <martin.smith@digia.com>
The uses of moduleName and qmlModuleName are changed to
physicalModuleName and logicalModuleName respectively. A
few other names are also changed in the same way. These
changes are being done both to support documentation of
javascript but also to emphasize that moduleName is
really the name of the physical library module the entity
is part of, and qmlModuleName is really the name of a
collection of logical entities that is versionable and
that may contain entities located in different physical
modules.
Change-Id: If49392aabf5950dc7b97c84f8134e9369e76dd1b
Task-number: QTBUG-43715
Reviewed-by: Martin Smith <martin.smith@digia.com>
We still have a bunch of Q_WS_ ifdefs in our code, which are easy to
mistake for Q_OS_ ifdefs when quickly scanning the code. By renaming
the ifdefs we make it clear that the code in question is dead.
In incremental follow-ups, we can then selectively either remove, or
port, the pieces that are dead code.
Change-Id: Ib5ef3e9e0662d321f179f3e25122cacafff0f41f
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
The "Fixed CE build of sqlite3" patch is preserved in this change,
Change-Id: I2ffcf1666b1d6838ae1ddba76b836f962e118f8d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
NSWindow setStyleMask can call viewDidMoveToWindow,
while setting the mask, view can have window == nil and we call 'obscure'
on this view's platform window/QWindow == 'unmapping' it.
As a result, it can happen that a child view (for example, QGLWidget's view)
never gets mapped back. This patch tries to limit this special
obscure/expose logic by the exact views it was introduced for
(c7bd85e97d, QTBUG-19840).
Change-Id: I4cc7a6b1bd3e34741ad50c2e0d2a2add242b28e4
Task-number: QTBUG-41701
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
This commit fixes incorrect logic of icons' lookup if there are
fallbacks or more than one theme's directory.
According to Icon Theme Specification, Directory Layout section, theme
can be spread across several base directories by having subdirectories
of the same name. This makes possible to extend system themes by
application-specific icons without making of collisions with other
applications.
According to Icon Naming Specification, Icon Naming Guidelines section,
icon name may contain dashes to separate levels of specificity in icon
names. This makes possible to set in application very specific icon
which may be not in every theme. So it can fallback to less specific one.
Change-Id: Iafc813902a3646be56e8f1d3a2fdbf8fd32ac542
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
The three validators in QCalendarDateValidator were heap-allocated,
but the pointers were never reseated.
Allocate by-value instead.
Text size savings are minimal.
Change-Id: I99401e29cfc8371656a17fba4affd5c6ffd6ad53
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Saves more than 1K text size in optimized builds.
Change-Id: I5b9ac4394f681485ef261d1c1bb7a35c4675936e
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Instead of using QString::sprintf() (and converting the result back to QByteArray),
simply do the conversion from uchar to hex digits ourselves, using QtMiscUtils.
This function is a copy of a similar (but not identical) one
in qprocess_unix.cpp, but it's not clear whether they can or
should be merged (both are only conditionally compiled), so
this patch does not attempt to do so.
Change-Id: I0be87963f78a98e35a54c98c5fb444756c57b672
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
The warning was:
warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘long unsigned int’ [-Wformat=]
Change-Id: I37dc13ca864d408e02c69102ba5208f8bfe70980
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
The warnings were:
warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘long int’ [-Wformat=] (2x)
Change-Id: If8c2e8fab7388cb4aa7d6e7ceb5faee531e16006
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
QList<int> wastes 50% space on 64-bit platforms. Use a more
fitting container. Since the storage is only used temporarily,
try to allocate it on the stack with QVarLengthArray.
Also give it better name than just 'list'.
Change-Id: I3dfb1d5927ac36f4b352b5d91ce0c9401b20705e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
If a QBrush has been created without QPixmap the texture() method will
create one. This patch avoids that in several places by checking the
type of the texture brush before accessing it, or not accessing it at
all.
Task-number: QTBUG-43766
Change-Id: If6009fe1d5bd51b239ae2c838e5c3b904b56b11a
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
According to GetStockObject() function docs at MSDN:
> It is not necessary (but it is not harmful) to delete
> stock objects by calling DeleteObject.
Change-Id: I755dc84c8b86ba2806e97ae41b3025aa3e633ae7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
We may receive viewWillLayoutSubviews calls for the view controller even
if QIOSScreen has released the UIWindow that retains the view controller.
Change-Id: I0cc7c50dbb5ee00224aec46d070b04efe069e85a
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Now that we can rely on screen() returning 0 when the QScreen is not
available we can return early from updateProperties(). We still compute
the member variables as they may be accessed directly for the still
alive QPlatformScreen.
Change-Id: Ia7d0d29a6b50a9c932b565dc53b23d66331c275e
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Change-Id: I6acac4c926fcf5459364133b6cc58baff0519074
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
We were only doing this for the size, which caused problems when moving
a window from one screen to another where the two screens had different
device pixel ratios.
Change-Id: If56df34677417369639ee8e4df05820fddd9198d
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>