Commit Graph

5564 Commits (33aa2fdd08880d2d6e2a4ff658b34c3a81c0b4ea)

Author SHA1 Message Date
Robin Burchell 422838685c xcb: Treat bitmap cursors differently from shaped cursors
QXcbCursor had a "cache" of cursor handles. Unfortunately, as QXcbCursor has its
lifetime tied to the screen, this cache grew unbounded whenever the cursor was
set: this could be witnessed worst when repeatedly setting the current cursor to
a different pixmap each time.

We fix this by keeping the cursor cache only for the "regular" shaped cursors
that are often shared between windows, working on the assumption that custom
cursors are generally specific only to a given window. This makes the lifetime
of the bitmap cursors much more clear: they are tied to that window, and when
the window is destroyed (or changes cursor), so too is the bitmap cursor
destroyed (if set).

Reported-by: Will Thompson <wjt@endlessm.com>
Change-Id: Ia558d858ff49e89cd5220344567203eb0267a133
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2016-09-29 12:09:18 +00:00
Liang Qi cdb56c42fc Merge remote-tracking branch 'origin/5.7' into 5.8
Conflicts:
	mkspecs/features/uikit/xcodebuild.mk
	tests/auto/other/lancelot/tst_lancelot.cpp
	tests/auto/widgets/widgets/qmdisubwindow/tst_qmdisubwindow.cpp
	tests/auto/widgets/widgets/qmenubar/tst_qmenubar.cpp

Change-Id: Ia0ae2de86094120281abd445138877c2cc3e882c
2016-09-29 00:38:01 +02:00
Tor Arne Vestbø aaf16b2f43 UIKit: Document the history and implementation of QIOSBackingStore
Change-Id: Icca393afa84bc7dae7f28669a3e73268ffed68b7
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2016-09-27 20:59:09 +00:00
Morten Johan Sørvig e3cbf0f196 Cocoa: Get mouse position from the event
We want the coordinates for a mouse event to be the
position at the time of event generation, not the
current position.

This is a followup to 39be577c which fixed this for
some cases. This commit replaces all usages of
[NSEvent mouseLocation] with code that gets the location
from the event.

Change-Id: I691a46a61ce65e2b33335453b5b22de01f76d767
Task-id: QTBUG-54399
Task-id: QTBUG-37926
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2016-09-27 11:24:57 +00:00
Paul Olav Tvete 1a947f6fc2 xcb: Support EGLStreams for Wayland on X11
To make NVidia EGLStreams work on the desktop, we need to use eglGetPlatformDisplayEXT
instead of eglGetDisplay. Therefore, let's try that first if we have the extension.

Change-Id: Id420fb46d5bc5345faa5cbb066584b0859d50417
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2016-09-27 08:16:50 +00:00
Eskil Abrahamsen Blomfeldt 6af82fe9fd Windows: Fix crash when loading color fonts from data
When color fonts are loaded from data, the font returned will
be a DirectWrite engine even the hinting preference does not
require it. This would cause a crash as we unconditionally cast
the pointer to QWindowsFontEngine*.

Using GDI and the unique family name hack to load the font from
data works fine, but we need to make sure we reference count
the font resource in this case, so we have to implement the
setUniqueFamilyName() logic in the DirectWrite engine as well
for this specific case.

[ChangeLog][Windows] Fixed crash when loading color fonts from
data.

Task-number: QTBUG-55595
Change-Id: I05443e8a396105da68ac4872b48339130b86c7f6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-09-27 07:59:56 +00:00
Shawn Rutledge 8cd28ea885 QGuiApplication, platform plugins: don't modify AA_DontUseNativeMenuBar
The default should be false, meaning the application will prefer to
use a native menubar if the platform supports it.  The application
author can set it to true if he wants to always use a Qt-rendered
menubar instead; or, he can call QMenuBar::setNativeMenuBar().
Qt and its plugins should not override the author's wishes.
Instead, if the platform plugin cannot create a native menubar
for whatever reason, createPlatformMenuBar() will return null,
and QMenuBar will fall back to using a Qt menubar instead.
The application can check the result via QMenuBar::isNativeMenuBar().

QMdiArea when maximized inside a QMainWindow with an empty title
does not replace the main window's title if we are using native menus.
This behavior turned out to be the same on Unity as it is on macOS,
so the autotest needed adjustment to expect that behavior whenever
the menubar is native, not only on certain platforms.

tst_QMenuBar::allowActiveAndDisabled() tests a standalone QMenuBar.
In f92f78094 it was disabled on macOS, but on Ubuntu it passes as
long as we force it to be a non-native menubar, so it should pass
that way on macOS too.  Removed unused variable RESET to fix warning.

Task-number: QTBUG-54793
Change-Id: I716e40da709f96331cbbf25213bd7bc153e4dbe2
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2016-09-26 14:13:20 +00:00
Eskil Abrahamsen Blomfeldt 31b3986e2d Fix DirectWrite engine when loading from data through QRawFont
The stretch, once it is passed to the font engine, is assumed to
be the horizontal scale needed to match the requested stretch
for the given font. When loading from data in QRawFont, there
is no way to specify this stretch; the scale should always be 1.

The effect of this was that when DirectWrite was backing a font
loaded through QRawFont directly from data, then the glyph images
would be scaled to 0xHEIGHT before they were returned, thus
they would be empty.

This was a regression caused by
ec7fee968f.

Task-number: QTBUG-56091
Change-Id: I38e76e0e8f6809262474922946752b2ad0d6209b
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2016-09-23 07:29:14 +00:00
Mark Brand ced4d167a2 fix -system-sqlite configure option
Although configuration seemed to work and the configure summary
indicated that the system sqlite library was being used, qtsql
was actually still built from bundled sqlite sources. The problem
was that system-sqlite was not reaching the context of sqlite.pro.

Change-Id: I24676a19f0fc895111844cd0fe6c7e80f33574de
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-09-22 21:06:31 +00:00
Morten Johan Sørvig 3bd5876c89 Cocoa: Add drawBackingStoreUsingCoreGraphics
drawRect is a general “repaint now” function, which
we should handle also for OpenGL content. Make that
clearer by moving the implementation details of drawing
the raster backing store using CoreGraphics to a
separate function.

Behavior change: Call invalidateWindowShadowIfNeeded
also for the OpenGL case.

Change-Id: I158ebef548e063f826db2dc708c14ab1d784b095
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2016-09-22 16:45:20 +00:00
Oleksandr Tymoshenko e0254fdacc Fixed double delete in bsdfb plugin on app exit
Fixed double delete of QBsdFbScreen in destructor, first it was
deleted in destroyScreen, then as a smart pointer. Take ownership of
pointer before passing it to destroyScreen to avoid second delete.

Change-Id: I252fcd1f31a32b463ecefce5b7139c4b3c857d33
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2016-09-22 15:24:20 +00:00
Laszlo Agocs 7c713701bb eglfs: make qeglfsglobal.h private
To avoid build system warnings about including _p headers.

There is no real reason to have this as a .h header anymore, now that
it is in the device integration private module.

Change-Id: I16526419356284e66861f95d1d0553abf0711218
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2016-09-22 10:30:24 +00:00
Laszlo Agocs 2586a62264 eglfs: Move remaining sources to under api
Move platform integration, context and offscreensurface to under 'api'.
This allows accessing these from out-of-tree eglfs backends as well.

For instance, the upcoming eglfs_emu backend for the Qt Simulator may need
access to QEglFSIntegration.

Clean up the project files and remove out-of-date comments (the private
module QtEglFSDeviceIntegration is not really header-less since 5.7).

Change-Id: If96dd5780a6bd33a1cf29164364df9bf921c4d01
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2016-09-22 10:30:18 +00:00
Laszlo Agocs b638a7da38 eglfs: Add missing virtual layout setting for DRM/KMS
Just setting virtualDesktopLayout and virtualIndex are not
always enough. To create more complex shapes (e.g. a T-shaped
cluster) the top-left position has to be specified explicitly.
Enable this via an optional virtualPos property.

This also involves improving evdevtouch's mapping functionality.
Instead of fragile indices, rely on the screen name instead.

Change-Id: I138840779032ad9da674bfef7763adfdfc74ccd4
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2016-09-22 10:30:13 +00:00
Eskil Abrahamsen Blomfeldt 036639c2b5 Windows/freetype: Fix loading non-regular fonts
When resolving the filenames of fonts, we would first match against
the font face name, meaning that an italic font, for instance would
always be matched to the file of the regular font in the same face.
To fix this, we look up the full name in the file name cache first,
before the face name.

Also, since the font names in the registry are the English names,
but the names we get when enumerating the fonts on the system can
be localized on non-English locales, we need to translate the
full name of the font before we give up on matching it against the
registry. Since this can be a heavy operation, we add a cut-off
which skips resolving the English name when the style is one of
the most common "Italic" or "Bold" since we know these to be
English.

[ChangeLog][QtGui][Windows] Fix selecting non-regular fonts when
using the Freetype engine.

Task-number: QTBUG-47485
Change-Id: If897abb93dc93263902b1c62bc3f66c4d06721c2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2016-09-22 10:29:49 +00:00
Liang Qi 50908f023d Merge remote-tracking branch 'origin/5.7' into 5.8
Conflicts:
	src/plugins/platforms/ios/qiosviewcontroller.mm

Change-Id: I2dda31867cbc79ea7fe965f52afb518aefa4ad20
2016-09-22 07:28:34 +02:00
Liang Qi 7555a92581 Merge remote-tracking branch 'origin/5.7' into 5.8
5971b88e is not needed in new configure.

This merge also reverts "fix QMAKE_DEFAULT_*DIRS resolution with
apple SDK", 2c9d15d7, because it breaks iOS build with new
configure system.

Conflicts:
	mkspecs/features/default_pre.prf
	mkspecs/features/mac/toolchain.prf
	mkspecs/features/toolchain.prf
	src/dbus/qdbusconnection.cpp
	src/plugins/sqldrivers/mysql/qsql_mysql.cpp
	src/sql/drivers/mysql/qsql_mysql.cpp
	src/widgets/widgets/qmenubar.cpp
	src/widgets/widgets/qmenubar_p.h
	tools/configure/configureapp.cpp
	tools/configure/environment.cpp
	tools/configure/environment.h

Change-Id: I995533dd334211ebd25912db05b639d6f908aaec
2016-09-21 11:57:52 +02:00
Liang Qi d10e4c193b Merge remote-tracking branch 'origin/5.6' into 5.7
Change-Id: I9cfefaf22b010fca937be77979f5fb50574bb71e
2016-09-21 07:14:40 +02:00
Takumi ASAKI 25e9bde2d6 Bearer/ConnMan: Fix getTechnologies() is not called
Change-Id: I4e39c971198583af815f5bcecaad4a9c52e5d2dd
Reviewed-by: Lorn Potter <lorn.potter@canonical.com>
2016-09-21 00:46:10 +00:00
Jake Petroules 04cb6e2754 Fix namespaced build on iOS
Change-Id: I682fabe8891e0325e6545b4499a59af4ad584c41
Reviewed-by: Mike Krus <mike.krus@kdab.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2016-09-20 05:46:56 +00:00
Richard Moe Gustavsen 8347b54b97 iOS: open menu on popup regardless of visibility
It should be possible to show a menu by calling showPopup, even if
visible is set to false. After all, it's only logical that visibility
is false before showing it. And whether or not the menu is
enabled should not matter as well.

Change-Id: I9a2b453c8c6e88c47812c652d99e4b4a9c7524a7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2016-09-19 11:20:58 +00:00
Richard Moe Gustavsen e32ecdb280 iOS: explicit synthesize properties as readwrite
The synthesized properties were defined as (read only)
methods in the UIViewController API in iOS9, and we
extended them into readwrite properties in our own
sub class to enable some local bookkeeping in addition
to normal overriding.

But in iOS10, Apple has changed the methods into being
readonly properties instead. The difference then is
that automatic property synthesizing
will ignore our local readwrite declarations, and use
the declarations in the super class instead. And this
will lead to a runtime crash on iOS10 since no
setter methods are generated.

This patch will instead explicit synthesize the affected
properties to ensure that both getters and setters will be
generated.

Change-Id: Iac330e991b8a0fe335e383e1f7d9ff30c0ce1559
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2016-09-19 11:20:50 +00:00
Richard Moe Gustavsen d3389a6d46 iOS: let quiview conform to API signature changes in iOS 10
In the iOS 10 SDK, method signatures has been annotated with
NS_ASSUME_NONNULL macros and 'nullable' keywords. This means
that certain methods should not be called with argumens
that can be null, or in this case, set to 0 explicitly. The
result will be compiler warnings.

This patch will rewrite the explicit call we do to touchesCancelled
so that we send an empty set instead of 0.

Change-Id: I50aa80b91312397d17e0e380815adff87cee852b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2016-09-19 11:20:44 +00:00
Tor Arne Vestbø 44fec65624 Update swap interval of QCocoaGLContext after creation
QSurfaceFormat is recreated from scratch, and by not reading back the
swap interval the QCocoaGLContext seemed to be vsynced even if it
actually was not.

Change-Id: I72ddaae9a4c695fe4c74d7b4b70ca9db84bcc084
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2016-09-19 00:42:23 +00:00
Tor Arne Vestbø 2d2d90781a macOS: Implement QCocoaBackingStore in terms of QRasterBackingStore
The previous detection of device pixel ratio changes in paintDevice()
is not needed, as QBackingStore::beginPaint() already does this check
and calls resize().

Change-Id: I9ee8410fa3a5404c5ec19d2cba4543a9e3359fe9
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2016-09-18 14:33:04 +00:00
Tor Arne Vestbø dc3af6a164 iOS: Implement support for QScreen::grabWindow()
Only windows that are part of the application can be grabbed. This
excludes the system statusbar and other system overlays, as well
as windows of other applications. This is a limitation due to the
security model of iOS.

There exists APIs to grab a snapshot of the complete screen, but
these APIs return a view that can be used as a placeholder e.g.
during view transformations, and doesn't match our API that require
reading of pixels.

Task-number: QTBUG-49944
Change-Id: I8fd5b4c2777be1486f0ff22762d5e9b64c927e70
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-09-18 11:38:59 +00:00
Tor Arne Vestbø 5ad8b3aa32 macOS: Move QColor/QBrush conversion functions to QtGui
Change-Id: I971d1d69b491532fd0dc0bab72b274dec6591e6b
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-09-18 11:38:54 +00:00
Tor Arne Vestbø 49b3510bb9 macOS: Move image conversion functions to QtGui
Change-Id: I911f2648e506f27519e98be1bffe2c5ab0f388f1
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-09-18 11:38:47 +00:00
Tor Arne Vestbø e419403ebf macOS: Remove unused function qt_mac_QRegionToHIMutableShape
Code using it was removed in a198ce8d.

Change-Id: I841f55768da080fbc87e0f2d9394cdc0a22e500e
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-09-18 11:38:41 +00:00
Albert Astals Cid 8d64d1e0c3 xcb: Do not eat events with different keyboard state
Change-Id: Iac8dc7b369eb7c2fbe0cf27baa34a40278088219
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2016-09-18 10:34:53 +00:00
Albert Astals Cid 76adb6c29f xcb: Use the state of the key event to process it
Instead of the global state

Task-number: QTBUG-48795
Change-Id: Ic2c545718adb68df41730e5a3bf25adb374ffce3
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2016-09-18 09:56:41 +00:00
Tor Arne Vestbø c52bb03090 macOS: Move QMacCGContext helper into QtGui
The implementation was duplicated and spread out between QMacStyle,
QMacPaintEngine, and the Cocoa platform plugin.

Moving it into QtGui allows using it on other Apple platform.

Change-Id: Iadcbd71998204887e116271c575037789b6e2163
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2016-09-17 18:00:47 +00:00
BogDan Vatra 734da261a8 Android: Don't hang when resuming the application
If the main thread is blocked updateApplicationState will hang. It
happens when we're using functions like runOnAndroidThreadSync or
requestPermissionsSync.

Change-Id: Ic1135c5630b48cf1076ef5cbc133933fce439bfb
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
2016-09-17 07:38:15 +00:00
Liang Qi d148019f16 Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	src/plugins/platforms/qnx/qqnxscreeneventhandler.cpp

Change-Id: I0af32ee55936d523cbd259b6fe82eb9c409f9074
2016-09-16 23:16:25 +02:00
Liang Qi 6b9c57f8cd Merge "Merge remote-tracking branch 'origin/5.6.2' into 5.6" into refs/staging/5.6 2016-09-16 18:18:29 +00:00
James McDonnell 8a2401bd45 Switch to 7.0 screen property names
The names of some screen properties have changed in 7.0.

For 6.6, map the 7.0 names to 6.6 names.

Change-Id: Iaf9d297fdd6a0329a84150f2b9a27665d89cc1ec
Reviewed-by: Dan Cape <dcape@qnx.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2016-09-16 13:21:18 +00:00
James McDonnell 71e195f6ef Reverse the flush-screen-context test
It was backwards so the screen context was being flushed on every screen
interaction when the parameter was _not_ specified.  During mouse/touch
movement, the number of flushes can be so great that it negatively
impacts performance.

Change-Id: I4dfe9c33c8ce31237db1d78db1cb8e04c00c4dd3
Reviewed-by: Dan Cape <dcape@qnx.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2016-09-16 13:21:07 +00:00
Frederik Gladhorn 2c48695f04 XCB Drop from external app: fix keyboard modifier state
Fix inspired by Qt 4 sources. When we get drop events that are not
coming from the same application, it's unlikely that the keyboard
modifiers are in a sensible state (the usual XCB events are not sent
during drag and drop), so set the keyboard modifier state explicitly.

Task-number: QTBUG-49645
Change-Id: I9360f2b7ffeaa5243a4dfe7ccf96df134c5d2156
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2016-09-16 11:49:12 +00:00
Liang Qi 59b275b284 Merge remote-tracking branch 'origin/5.6.2' into 5.6
Change-Id: I84acde3251893f2a7a776962b2ff970b90884b63
2016-09-16 08:56:12 +02:00
Marc Mutz f1e87dc9bc QTableGenerator: Fix uninit'ed values
It's probably benign, but it causes Corverity to complain,
so always init all fields of QComposeCacheFileHeader.

Format the code so it can easily be ported to uniform init
later on.

Coverity-Id: 93043
Change-Id: Ifa1ccc3fa58dc813306917f216772fd24d4930c9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-09-16 04:12:00 +00:00
Sune Vuorela 469d68b344 Fix handling of bad compose table
The ASAN talk at QtCon was pointing out a out of
bound read in a vector.
Let's try to do something about it.

If the lazy initialization of compose table fails,
the first character handling still tries to actually
access it. Later characters are properly handled
in the caller.

Reported-by: Hanno Böck
Change-Id: Ieac3e95361abd0fcd06c555bcd00ca1c4d8f1931
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-09-15 17:31:09 +00:00
Maurice Kalinowski 9ff7e7df0f winrt: Fix touch on Hololens
The pressure indicator is not handled for touch on the Hololens causing
touch heuristic to fail and not identify the press event.

Change-Id: I2aba95fde8aa9abfa3838cad6b3466ff8bc41811
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-09-15 14:25:56 +00:00
Richard Moe Gustavsen c3084f101d iOS: accept window modal message dialogs
Although we cannot really show anything but application modal
dialogs on iOS, falling back to using non-native dialogs for
window modal seems unnecessary strict; In practice you will
never have a work flow on iOS where you have several windows
visible, and at the same time, need to show a dialog that
blocks only one of them.

This patch will lift the restriction, and handle window modal
as application modal on iOS.

Task-number: QTBUG-55909
Change-Id: I581c1a47724ee2bfc2e041672c82c25ed34b2b2d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2016-09-15 14:25:27 +00:00
Błażej Szczygieł 2cf3dee10b xcb: Don't send "Qt::WindowNoState" event when hiding minimized window
This prevents getting "QWidget::showEvent()" when hiding minimized
widget on some WMs like Marco or Xfwm4.

If QWindow is minimized and it gets the new "XCB_WM_STATE_WITHDRAWN"
event from XCB, then don't change the QWindow state.

Task-number: QTBUG-55942
Change-Id: I90cfc2bf55e507864ad8f26c8f569ea562c27314
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2016-09-15 10:16:42 +00:00
Richard Moe Gustavsen 1eb74c9f10 QIOSTextInputOverlay: compile with Xcode 8 beta / iOS 10
The iOS 10 SDK have introduced a protocol CAAnimationDelegate, which is
required for CAAnimation delegates. So we let our delegate implement it.
Since the SDK is not out yet, we need to support both version 9 and 10
for now.

Change-Id: I2624d8150c39439540a6554cba4921e3b9a2f0cf
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-09-12 07:51:33 +00:00
Eskil Abrahamsen Blomfeldt 001efe14f2 DirectWrite: Fix embedding fonts in PDF
If no filename is stored in the faceId() of the
font engine, then the PDF engine will bail out and embed
each glyph separately instead of embedding the font. This
would cause PDFs to be huge and unsearchable when high-dpi
was active, since we will automatically default to the
DirectWrite engine in this case.

[ChangeLog][QtGui][Windows] Fixed embedding fonts in PDF when
dpi scaling is active or when the hinting preference was
none or vertical hinting.

Task-number: QTBUG-54740
Change-Id: I20630595f51660109c5a12c52076738a04036520
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2016-09-16 07:23:26 +00:00
Anton Kudryavtsev 6aa935cd92 Use QString::fromLatin1() less to avoid string allocations
QString::fromLatin1 always allocates memory, but there are
cases where we can avoid/reduce allocations or/and reduce
text size, e.g.:

QStringBuilder expressions
Fix: replace QString::fromLatin1 with QL1S

QString::fromLatin1().arg(String) pattern
Fix: replace with QStringBuilder

Overloaded functions with QL1S arg
Fix: replace QString::fromLatin1 with QL1S

In rare cases if there is no overloaded function
with QL1S and we have deal with string literal,
replace QString::fromLatin1 with QStringLiteral.

Change-Id: Iabe1a3cc0830f40ef78a0548afa4368583c31def
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-09-15 15:55:57 +00:00
Maurice Kalinowski 60da6313cf winrt: Fix initialization of input context
f104e43a72 moved QWinRTInputContext to the
gui thread. However, IInputPane needs to be queried from Xaml itself.
Otherwise it might cause unhandled exceptions.

Change-Id: I43848c796e7ff163e6befa7c58f0ad68445b9865
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-09-15 14:26:01 +00:00
Anton Kudryavtsev 6b2071c697 Use QStringBuilder more to optimize memory allocations
Change-Id: I2939ffa10496fdc59e0402a9cb54458565ccd657
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-09-15 09:08:45 +00:00
Lars Knoll a668c6a6b6 Convert the old feature system
... to the new qmake based configuration system.

This removes the old qfeatures.txt (distributed over configure.json
files) and qfeatures.h (distributed over qconfig-<module>.h files).

qfeatures.prf is gone without replacement, as attempts to use it would
lead to followup errors anyway.

Change-Id: I1598de19db937082283a905b9592d3849d2199d0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-09-15 08:24:10 +00:00
Lars Knoll 2d3c73fcfe Modularize configure.json/.pri
Move the different parts of configure.json/.pri into the libraries where
they belong.

Gui is not yet fully modularized, and contains many things related to
the different QPA plugins.

Done-with: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Change-Id: I6659bb29354ed1f36b95b8c69e7fce58f642053f
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-09-15 08:23:53 +00:00
Alexander Volkov fc098de70a xcb: Remove unused NoFontHinting hint
It is unused since 0f7bc885aa
(Turn off font hinting when active highdpi scaling).

Change-Id: I901407bedf24ae301acbe6afa94bc0a4cadb0620
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2016-09-12 13:36:26 +00:00
Allan Sandfeld Jensen 8cedf59a68 Fix Linux build without XINPUT2
XcbConnection::TabletData only exist if XCB_USE_XINPUT2 is defined and
QT_NO_TABLETEVENT is not.

Change-Id: I94f4558714b105f2ce98b9b4a7462e7a8eb628e3
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2016-09-12 06:33:55 +00:00
Maurice Kalinowski e9b51781d0 winrt: Fix display of tooltips
This touches multiple areas. First adding a tooltip to the window list
should not automatically invoke focussing and hence
handleWindowActivated should not be invoked. This is the same approach
as on the windows qpa.

The winrt qpa supports multiple (non-fullscreen) windows since a while.
However, pointerUpdated still acted on the top level window, which
caused problems resolving the real target of a mouse event. In this case
the tooltip received all events, while the application window should get
them. Hence identify the target window via the system coordinates.

Task-number: QTBUG-50733
Change-Id: Iea1f4cd7406e6cde85ab3fc83f018b871fc30824
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-09-11 17:15:01 +00:00
Lars Knoll 137e690ac7 Turn the available sql drivers into public features
This is required to do the modularization of those
features properly.

Change-Id: I384aff20274e795aa70483980f0ef25309328800
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-09-10 14:03:50 +00:00
Oliver Wolff f104e43a72 winrt: Make sure that cursor is visible when virtual keyboard is shown
We have to check whether the cursor is covered by the virtual keyboard
when it is shown. If that is the case and the keyboard is snapped to the
bottom of the screen the whole content is moved up to ensure the
cursors's visibility.

WinRT's input context had to be moved from the XAML to the GUI thread
as the signal/slot connection does not work otherwise. Signals from
QInputMethod were emitted but not handled in QWinRTInputContext as it
ran on another thread which did not spin an event loop.

Task-number: QTBUG-50291
Change-Id: Id89e970dc194c25ad07ceab14d9fea51bd7388b2
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2016-09-07 04:54:50 +00:00
Oliver Wolff a5915f260f winrt: Use ComPtrs in input context
By doing so we no longer leak the input pane inside the destructor.
Additionally the coding style is closer to the rest of the WinRT port.

Change-Id: I0d56086719c98585cec8bc3c4bcb2d86c3ea2e79
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2016-09-07 04:54:45 +00:00
Liang Qi d892e6f721 Merge remote-tracking branch 'origin/5.7' into 5.8
Conflicts:
	mkspecs/features/qt_common.prf
	src/plugins/platforms/windows/qwindowsdialoghelpers.cpp

Change-Id: I03b92b6b89ecc5a8db7c95f04ebb92ed198098a8
2016-09-05 18:47:27 +02:00
Liang Qi 657c2bfbec Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	tests/auto/testlib/selftests/generate_expected_output.py

Change-Id: If856162abf9a24ae2c9946d336a7d1da03520fa7
2016-09-05 13:57:12 +02:00
Maurice Kalinowski c8a6b4278b winrt: Exclude user events when adding/removing windows
Handling user events while creating a window can cause problems and
crashes as the event tries to access non initialized parts of the window
itself being created. Hence exclude user input events at that time and
have them handled when the event loop checks for them regularly.

Change-Id: I2a78efd619250be8f6f2e737ed78e39481a4cf76
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2016-09-05 04:55:10 +00:00
Anton Kudryavtsev 6dbb16a856 Replace QLatin1Literal with QLatin1String
QLatin1Literal is just alias of QLatin1String
for Qt4 compatibility.
So it's style cleanup patch.

Change-Id: Ia3b3e5dc3169f13a1ef819d69be576b8a8bfb258
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2016-09-03 18:55:56 +00:00
Marc Mutz 7f801ed73a tuiotouch: clean up
- order includes from most specific to most general
- include only what you need
- port uses of inefficient QLists to QVector
  (required adding default ctors to the payload types)
- mark types as Q_MOVABLE_TYPE
- inline some trivial functions
- add explicit to ctors
- mark plugin with QT_NO_FOREACH

Change-Id: I7ae13141ece22bfdf49be42deb0987d51da2d72b
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
2016-09-03 05:07:28 +00:00
Marc Mutz ed9f8a0e9d bearer plugins: eradicate Java-style iterators and Q_FOREACH
This is the simple part of the job, removing Q_FOREACH loops
which are obviously safe to be replaced by C++11 range-for.

In QNetworkManagerEngine::sessionStateForId(), instead of
iterating over QHash::keys(), iterate over the QHash
directly (using C++11 range-for, as we're only using the
values, not the keys).

In QNetworkManagerEngine::connectToId(), simplify the loop
body by merging three identical if blocks into one.

Saves ~1.7KiB accumulated over the three Linux bearer plugins:
connman, generic, nm (optimized GCC 6.1 Linux AMD64 build).

Change-Id: Ic66139c25f7e2173f5a919927e269b873334d2c8
Reviewed-by: Lorn Potter <lorn.potter@canonical.com>
2016-09-02 12:46:41 +00:00
Oswald Buddenhagen 8d8c7b31ba Merge 5.6 into 5.6.2
Change-Id: I58b06ecd9c7d80f38ed4ebb36bde9e7c09486a20
2016-08-31 11:36:14 +02:00
Friedemann Kleint 531a2b1b1c Windows QPA: Fix leaks in native file dialogs
Release the IShellItem instances according to the
documentation of IFile[Open]Dialog.

Task-number: QTBUG-55509
Task-number: QTBUG-55459
Change-Id: Ib79622cde21982b1bda0be7d0483c6e652a1d5fe
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2016-08-30 12:48:15 +00:00
Laszlo Agocs 547d3f0ebe Fix bundled xkbcommon build without xcb-xkb present
The condition went missing in the process of cleaning up.

Change-Id: If4f7958e5e5983c86f86a009aaa88d1f5e7ec76d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-08-29 22:44:35 +00:00
Liang Qi 1cc571593a Merge remote-tracking branch 'origin/5.7' into 5.8
cf53aa21bf and 3aaa5d6b32
were reverted because of reconstruction in 5.7.

defineTest(qtConfTest_checkCompiler) in configure.pri is smart
enough to cover the case in a9474d1260.

DirectWrite: Fix advances being scaled to 0

Since 131eee5cd, the stretch of a font can be 0, meaning
"whatever the font provides". In combination with ec7fee96,
this would cause advances in the DirectWrite engine to be scaled to
0, causing the QRawFont test to fail.

Conflicts:
	configure
	mkspecs/features/uikit/device_destinations.sh
	mkspecs/features/uikit/xcodebuild.mk
	src/corelib/global/qglobal.cpp
	src/corelib/global/qnamespace.qdoc
	src/plugins/platforms/cocoa/qcocoamenuitem.h
	src/plugins/platforms/windows/qwindowsservices.cpp
	src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp
	src/plugins/platforms/windows/qwindowsfontenginedirectwrite.cpp
	src/widgets/kernel/qapplication.cpp
	tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp
	tests/auto/widgets/dialogs/qfiledialog2/tst_qfiledialog2.cpp

Change-Id: I4656d8133da7ee9fcc84ad3f1c7950f924432d1e
2016-08-29 15:30:17 +02:00
Tor Arne Vestbø dcfb814498 Cocoa: Add support for triple-buffered GL contexts
As usual, the requested format may not be available, so clients should
check the actual format to confirm triple-buffering.

Change-Id: Icf073cc9ddf2c912eb5c3ce0ac80d1694d1c56d7
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2016-08-29 10:11:52 +00:00
Liang Qi cc74452d6d Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	configure
	src/plugins/platforms/winrt/qwinrtclipboard.cpp

Change-Id: Ic6d58be3d1ed2bb507f2ba06c82361afd9f9ddb9
2016-08-29 08:13:40 +02:00
Marc Mutz 829c59aa4a linuxfb plugin: eradicate Q_FOREACH loops
... by replacing them with C++11 range-for loops.

Then mark the plugin as QT_NO_FOREACH.

Change-Id: I80a18334b1e0c5bbd44dfe45eea80591d478a8d6
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-08-27 05:09:35 +00:00
Marc Mutz 33aaa6a995 minimal platform plugin: eradicate Q_FOREACH loops
... by replacing them with C++11 range-for loops.

Change-Id: I0798d02e19d9f53d96db2f14554325eaeff2a26d
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-08-27 05:09:25 +00:00
Marc Mutz 3c7d67a044 offscreen plugin: eradicate Q_FOREACH loops
... by replacing them with C++11 for-each loops.

In clearHash(), replace iteration over QHash::keys() with
iteration over the hash itself. Also use the new const-
iterator overload of QHash::erase() to save one attempted
detach (in QHash::find()).

Mark the plugin as QT_NO_FOREACH.

Saves almost 2KiB (1.4%) in text size on optimized GCC 6.1 Linux
AMD64 builds.

Change-Id: I9bb3154130687c0061ea09b04ab5f627a4d2296c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-08-27 05:09:20 +00:00
Marc Mutz 634708724b mark some already-clean platform plugins as Q_FOREACH-free
Change-Id: I6ef2bb7caf2cf624e7832936202e546298ee9256
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-08-26 22:23:50 +00:00
Nick Shaforostoff 8adad2fe09 fix build with various QT_NO_* defines
Done-with: Andriy Gerasika <andriy.gerasika@gmail.com>
Change-Id: I90883a491dbddb005c3d756c339e42285d50e437
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-08-26 07:39:53 +00:00
Maurice Kalinowski c0a513d55f winrt: avoid duplicate signal emit
emitChanged() will be invoked when the system notifies the application
about a clipboard change. Hence, there is no need to call it previously
and cause two signals on the same change to be emitted.

Change-Id: I99605c9a71054e0610006dbeaaa90c5fb2f46755
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-08-25 17:29:15 +00:00
Maurice Kalinowski ea4aa5b722 winrt: store mimedata in clipboard
In addition to setting the clipboard, we also need to store the mimedata
being passed. Otherwise requesting the mimedata returns a different
object, causing comparisons to fail.

Change-Id: I2ffea76e78be091cb98426e387619ac6788ea270
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-08-25 17:29:05 +00:00
Maurice Kalinowski 5f895fe0e2 winrt: Check validity of options shared pointer
QErrorMessage autotests managed to create a scenario where the options
are not initialized yet, causing a crash later on.

Change-Id: Iabad6f181f2bfdc81a9c73f0e67c8ba70753fec6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-08-25 17:28:55 +00:00
Liang Qi c7cdf3aac7 Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts:
	src/corelib/mimetypes/qmimeprovider.cpp
	src/corelib/mimetypes/qmimetype.cpp

Change-Id: Ib483ddb6bfc380e7c8f195feca535703814c3872
2016-08-25 16:12:11 +02:00
Oswald Buddenhagen e41263b61a fix build with qt-xcb and another installed qt in a system location
amends fc1092cf, necessary because of (the earlier) a28364bc1.

Change-Id: I5c86bcb27854994e59228fd205c799396464554d
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-08-25 12:08:56 +00:00
Kai Uwe Broulik 47aad8f1cc Android: show status bar for any window state except fullscreen
This fixes the status bar not re-appearing when a window is
reset to Qt::WindowNoState

Task-number: QTBUG-37830
Change-Id: Iaef99221993ddf17b9da5b48796143abbcd98c01
Reviewed-by: Risto Avila <risto.avila@qt.io>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2016-08-25 11:47:24 +00:00
Allan Sandfeld Jensen eb19cf15a9 Fix reading of font names
Correct a boundary check so the last present name can be read, and
correct a typo that caused non-present names to read garbage.

Change-Id: Ia9d0d3af7431c1f5f02824e884efb5f6f454dc5d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2016-08-25 11:00:30 +00:00
Lorn Potter 2aea77dbcb Fix UI freeze when using network-manager bearer plugin
This reduces the amount of dbus signals generated when many wifi AP's
are around

Task-number: QTBUG-54814
Change-Id: I4bdd5f0bfe173d6db63f3d975a98583c6c0fc5db
Reviewed-by: Richard J. Moore <rich@kde.org>
2016-08-24 23:39:10 +00:00
Jake Petroules acfc1cc362 Fix warning: 'UITextInputTextFontKey' is deprecated
first deprecated in iOS 8.0 - Use NSFontAttributeName instead

Change-Id: I763efc498644ac234a712ebcefd07111b4444c98
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2016-08-24 20:44:39 +00:00
Maurice Kalinowski 4d07042c70 winrt: Fix crash when clearing mimedata
Some autotests clear the clipboard by invoking setMimeData() with a null
QMimeData argument.

Change-Id: I4a9d3dfd41b2c52964e272fc1362162f47fd8cda
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-08-23 17:52:41 +00:00
Albert Astals Cid 3fa18bf881 Make sure connection is not null before using it
connectionFromId can return null if the id isn't found.

This causes crashes like http://paste.ubuntu.com/23061009/

Change-Id: Ib72412f61dc7661455394679b3e90662de505920
Reviewed-by: Lorn Potter <lorn.potter@canonical.com>
2016-08-23 14:46:06 +00:00
Friedemann Kleint 95c767f5be Windows Font Engine: Fix MinGW developer build
Suppress warning:
qwindowsfontengine.cpp:590:26: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
Amends change ac1e87d9f3.

Change-Id: Ibd25c522aac8e946c5e0759ea20e023883622914
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2016-08-23 10:33:17 +00:00
Liang Qi 2111bf00fe Merge remote-tracking branch 'origin/5.6' into 5.7
Change-Id: I4f4ab05b2de67cd4b1d29b294b96a8c9ffb964b2
2016-08-22 21:58:45 +02:00
Oswald Buddenhagen d314819fc0 Merge dev into 5.8
Change-Id: I41ee7b50534b01cf042bed8bb8824ba2e5026a29
2016-08-22 11:30:01 +02:00
Olivier Goffart e0e9e196a7 Android: Show the edit menu when things are selected
Change-Id: I3647fa39469c87bcc08bb439546e5e61c535c71d
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2016-08-21 20:17:45 +00:00
J-P Nurmi b2799062f3 GTK+ dialogs: do not emit duplicate selected signals
As mentioned in the bug report, these are already emitted in:
- QColorDialog::done(Accepted)
- QFileDialog::done()
- QFontDialog::accepted()

The same signal emissions were reverted from the Cocoa dialogs
in 916a8c44c4.

For QtQuick Dialogs, these don't matter because they handle this
in accepted().

Task-number: QTBUG-55298
Change-Id: I7990836745b160ec8de948697e2924322a583b6c
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2016-08-20 08:20:38 +00:00
J-P Nurmi e416cc553d QGtk3FileDialogHelper: provide proper filterSelected()
The GTK+ file dialog never had a proper filterSelected() signal. As a
workaround, filterSelected() was emitted from accept() to ensure that
the signal wasn't entirely missing. Now we can remove the improper
emission on accept, because using the "notify::filter" signal gives
proper notifications whenever the filter selection in the dialog
changes.

Change-Id: Iedfe08c49b85adf262af9cdc750efb1fd1698379
Task-number: QTBUG-55298
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
2016-08-20 08:20:25 +00:00
Jake Petroules 57378a108c Add support for Apple watchOS
Change-Id: I3f9e00569458a463af2eaa5a3a16a6afd1e9c1ea
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2016-08-19 21:05:55 +00:00
Allan Sandfeld Jensen 9f888d2fde Support C++17 fallthrough attribute
Replaces our mix of comments for annotating intended absence of break
in switches with the C++17 attribute [[fallthrough]], or its earlier
a clang extension counterpart.

Change-Id: I4b2d0b9b5e4425819c7f1bf01608093c536b6d14
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2016-08-19 18:38:53 +00:00
Alexander Volkov d13d81eb01 Fix QWidget::setWindowRole()
Introduce QXcbWindowFunctions::setWmWindowRole() and call it either from
the implementation of QWidget::setWindowRole() or after the creation of
the corresponding QWidgetWindow.

Change-Id: I143450f4673dd707bb491c1d0f0e8b61d564283d
Task-number: QTBUG-45484
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Ivan Čukić <ivan.cukic@kde.org>
2016-08-19 11:53:39 +00:00
Lars Knoll fd89fb4566 Cleanup QT_NO_FONTCONFIG usage
Stop messing around with the define in pro files, and rely on
the configuration system. Disable fontconfig on Mac, which in practice
gives the same result as before.

Change-Id: Iea3aec127af96f221f4ee8682fb20a624332b82f
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-08-19 04:28:30 +00:00
Lars Knoll 60985aa42b Use qtConfig throughout in qtbase
Use the new qtConfig macro in all pro/pri files.

This required adding some feature entries, and adding
{private,public}Feature to every referenced already existing entry.

Change-Id: I164214dad1154df6ad84e86d99ed14994ef97cf4
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-08-19 04:28:05 +00:00
Lars Knoll 792a994387 Clean up xkbcommon.pri
Don't set a variable in QT_CONFIG to build the right
things. Instead have an xkbcommon-x11.pri in addition to
xkbcommon.pri that also builds the x11 specific things.

Change-Id: I16a5f0bcb39b7f4039583a676b6c14b0e073a37f
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-08-19 04:27:50 +00:00
Oswald Buddenhagen b786993f8d fix xcb-render nesting
xcb-render is emitIf on xcb-syslibs, so it needs to move into the
respective branches in the project files.

Change-Id: Iaa6db9012287ae0e9c363ca5eeec48daad862320
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-08-19 04:27:44 +00:00
Lars Knoll 56ee007b3f Rework privateFeature
privateFeature would add QT_NO_FEATURE to the DEFINES in the private
.pri file, which was somewhat inelegant.
Additionally, it would add the feature to the _public_ QT_CONFIG
variable, which was plain wrong.

Replace the implementation with the one just introduced for
publicFeature, with the difference that the features are written to the
private files instead.

As this entirely disposes of the old system, all usages in the project
files need to be replaced atomically as well.

Change-Id: I506b5d41054410659ea503bc6901736cd5edec6e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-08-19 04:27:29 +00:00
Lars Knoll 48b4e0bf6f Improve library version handling
Output the version as a define into the private config header as
a define using a hex number. Like that we can easily do version checks
on libraries using the QT_LIBRARY_VERSION(lib) and QT_VERSION_CHECK()
macros.

Change-Id: I6dc4ac6550886ca95c5542b6e75cd933ed079d76
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2016-08-19 04:27:06 +00:00