Makes the code slightly less awkward to deal with.
Change-Id: Ie98a04d812beecfbf0d19e77b8e784db783a19d6
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Change-Id: I6b1239941f8fd13eec72b0874d15d821d717ddf3
Reviewed-by: Stephan Binner <stephan.binner@basyskom.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
By default, it enabled only for Gnome
Task-number: QTBUG-59298
Change-Id: Ib44f52b3175ed1904f24ec9e21f00ea3f3334287
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Replace all QT_NO_PROCESS with QT_CONFIG(process), define it in
qconfig-bootstrapped.h, add QT_REQUIRE_CONFIG(process) to the qprocess
headers, exclude the sources from compilation when switched off, guard
header inclusions in places where compilation without QProcess seems
supported, drop some unused includes, and fix some tests that were
apparently designed to work with QT_NO_PROCESS but failed to.
Change-Id: Ieceea2504dea6fdf43b81c7c6b65c547b01b9714
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
instead of having a library and a test, use a library with two sources,
the first being empty (i.e., just libc). this allows us doing away with
the "libdl" feature, and using just the "dlopen" one.
subsequently, replace all LIBS+=$$QMAKE_LIBS_DYNLOAD with
QMAKE_USE+=libdl.
the definitions of QMAKE_LIBS_DYNLOAD remain in the qmakespecs for
backwards compat only. n.b.: the only specs where it is not empty or
"-ldl" (i.e., what we support now) are the hpux ones, where the library
is called 'dld'.
technically, the "library" feature should depend on '!unix || dlopen', but
that's for a later patch.
Change-Id: Ib8546affc4b7bc757f1a76729573ddd00e152176
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
We do use xcb-xrender, and it has its own detection
logic in configure.json.
Change-Id: I20bbc1ddf5dd0c32e93ef2c12c7b0eda3f96f4f4
Reviewed-by: Alexander Volkov <a.volkov@rusbitech.ru>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
NVIDIA 370 introduced new calls needed to work with eglstreams in the
wayland window system
Task-number: QTBUG-58299
Change-Id: I606b143d3016f365b0d5ca4bc163b99289afbea1
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Change-Id: I4f7df9abcd580297a40fd9dd16a26f5f93e1c4c7
Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
exporting the freetype dependency caused qtwayland to break with
-qt-freetype, as the helper libraries' module pri files are not
installed (for good reasons)
after f9a80e06a, no actual user of FontDatabaseSupport needs access to
the transitive dependencies anyway (one of the headers has a fontconfig
dependency, but it's not used outside the module itself), so hiding them
again is just fine.
this partially reverts ec774500f.
Task-number: QTBUG-56666
Change-Id: I9e68a7e0725a92833b856c9ffdbec61c8aa5fed2
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
that's where the files are actually used nowadays.
also removes an obsolete (and bogus) gui export.
Change-Id: I4551aad798acb6ce8c0abe43a2fcb8e5ac64a2d4
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
It's better to save icons in $XDG_RUNTIME_DIR or
$XDG_CACHE_HOME paths than in $TMPDIR as these
places are readable from the desktop environment
when an app is ran confined in a sandbox (as in
snap packages)
Change-Id: I1a3e4c5714f8ea51034d18fb87cead87ed21d6be
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
When a black font is used, such as Arial Black, it would cause
the font to appear to be rendered twice, particularly at large
point sizes. This is down to the synthesizing of the bold
aspect, however since the font is actually weighted as black
this is not required.
Change-Id: Ie32e0da8bc67c94123631253854312ed5c25ad9f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Changes how we control if gamma-correction is done, and enables it for
the freetype CFF engine when stem-darkening is available.
The new code replaces existing hacks to force gamma-correction off
when using Freetype on X11 and Windows.
Change-Id: Ic703ca6965a3d81b204349e10f406c991b292edd
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Change-Id: I62448507f80daf6be72994ee99f0fb1aa107eb78
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
We enforce the check of saving the icon when the indicator
process name isn't available (as we might be running in a
confined world), but we're running in Unity.
Change-Id: I80d3be1a8c6eba8c391364260746e78cf89a5b98
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
This way the Qt accelerator shortcuts (i.e. Alt+F for the File menu)
will cause the matching menu to be opened on the server side.
Change-Id: I02a5b3c20c6eae130d0f133b33c9e247cff38d44
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Not having a way to say that a given output should be registered as the
primary screen (meaning it comes first in the QGuiApplication::screens() list,
emits primaryScreenChanged() signal etc.) can be a problem for some systems.
The order of the outputs array in the JSON configuration file is not relevant
in this respect since screens are registered either in the original DRM connector
order, or, when the virtual desktop layout is specified via virtualIndex, in the
order specified by virtualIndex. The primary screen status is independent from this.
Therefore, add a new, optional boolean property: primary. For example, the following
forces the QScreen corresponding to the VGA output to be the primary screen on the
Renesas R-Car H2 board, even though by default it is the HDMI one that happens to
be reported first by the system.
{
"device": "/dev/dri/card0",
"outputs": [
{ "name": "HDMI1", "mode": "1280x720" },
{ "name": "VGA1", "mode": "1280x720", "primary": true },
{ "name": "LVDS1", "mode": "off" }
]
}
In addition, improve the quality of the logging output.
[ChangeLog][Platform Specific Changes] Added support for specifying the primary screen
in the JSON config file in QT_QPA_EGLFS_KMS_CONFIG when running on DRM/KMS with eglfs.
Task-number: QTBUG-57980
Change-Id: Iba490800dee3b7162c68c4d40b0822f3f6d81b69
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
QPlatformFontDatabase::resolveFontFamilyAlias returns the input
unchanged if the font-name is not found. This means we never register
the system default font when it is only a virtual font name.
Task-number: QTBUG-58225
Change-Id: Ib4f80bb758aa66a163d223573bfe624bb3c134ab
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
- Clamp the position to the bounding rect of the device
- Send TouchRelease only once
Change-Id: I8776079dbc886612e6adfb1fef5ec7cf14a8af3b
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Register font's english name as alias when populating font families.
This was incorrectly undone when support for subfamilies was added.
Task-number: QTBUG-57856
Change-Id: Ib71f905bb00db86d44fa0921ec56c8c76c332e06
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
This amends 59b80d606e for MinGW.
Change-Id: I37cd9a0902350e57d4f0961f88734d3b72cb22fa
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
This solves link errors with font support in the minimal QPA plugin.
This is similar to 449204f8c0 in the Cocoa font DB.
Change-Id: Ia0268b5c4d3c69125c909e458d15ea5224d2630a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
This patch adds a Kalman filter to the evdev touch plugin
which samples velocity and position in x and y direction
and uses this to emit touch points in sync with the application's
repaint rate. The filter also allows for basic prediction
based on current position and velocity estimates.
Filtering is opt-in, and can be enabled by passing for instance
> app -plugin evdevtouch:/dev/touchscreen:filtered:prediction=16
The logic relies on a stable QWindow::requestUpdate() and will work
best in combination with QtQuick and blocking swap buffers (or
equivalent). QScreen::refreshRate() will also have to be reasonably
accurate.
[ChangeLog][Platform Specific Changes] The evdevtouch plugin now
has the option to apply filtering and prediction. Enabled by
passing "filtered" as an argument. Prediction can be specified
by passing "prediction=X" as an argument, where X is in
milliseconds.
Change-Id: I682db4386fe3a7cef8b4a08ea0d16c1491efb873
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
This solves link errors with font support in the minimal QPA plugin.
Change-Id: Id05128e1d752b974621d7035f1e886e75aa004f0
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
A stretch equal to 0 is since 5.8 defined as "accept the stretch of the font",
and this needs to be accounted for in the font engines.
Task-number: QTBUG-57491
Change-Id: Idabbe44677c4b92cbd8ad8278b054de53e9cc7f9
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Commit 2bc7a40048 taught the CoreText font database to populate the
families lazily, and in the process added a guard to ensure that we
didn't populate internal fonts (prefixed with a '.'), as these fonts
would then show up in font selection dialogs.
Commit 909d3f5c7 then added support for private fonts, by making it
possible to filter out any private fonts from font selection daialogs.
But the guard was not removed, so we were still not populating these
fonts. This guard has been removed, and the filtering function has
been updated to include the conditions of the guard.
Next, commit e5e93345c5 used [UIFont fontNamesForFamilyName:] to verify
that each family that we registered with the font database would also
have matching fonts when finally populated. This is not the right approach,
as [UIFont fontNamesForFamilyName:] does not handle internal fonts.
Instead we trust what CTFontDescriptorCreateMatchingFontDescriptors()
gives us, but make sure to register the resulting font descriptors
with the original/originating font family, instead of the one we pull
out of the font descriptor.
Finally, as of iOS 10, we can use CTFontManagerCopyAvailableFontFamilyNames
instead of [UIFont familyNames], which gives us all of the internal font
families like on macOS, instead of just the user-visible families. For
earlier iOS versions we manually add '.PhoneFallback', as we know it
will be available even if not listed in [UIFont familyNames].
The end result is that we register and populate families like '.PhoneFallback',
which is critical to supporting more esoteric writing systems.
The check in tst_QFont that styles for a given family is not empty has
been removed, as we can't guarantee that on all platforms, which is
also documented for QFontDatabase::styles().
Task-number: QTBUG-45746
Task-number: QTBUG-50624
Change-Id: I04674dcb2bb36b4cdf5646d540c35727ff3daaad
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Parent patch introducing usage of this attribute did not add it to
the EGLStream support header. This is likely not fatal, but follow
the practice of defining the constants ourselves, in case they are
not present.
Change-Id: Ib16f9809f9c6a212570c49472bb840183232e68a
Reviewed-by: Pasi Petäjäjärvi <pasi.petajajarvi@qt.io>