Commit Graph

25870 Commits

Author SHA1 Message Date
Lars Knoll
dcc605beb6 Chop a possible trailing \0 from retrieved text
Some apps (e.g. Chromium) explicitly append a \0 to the text they
transmit through the clipboard. Remove that one, when we retrieve the
text, so it doesn't become part of the text we're pasting.

This was e.g. visible when pasting from chromium to the textedit example.

Change-Id: I9445319e6e5ef304a364e14f794b16557a3cc919
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2017-12-29 08:14:55 +00:00
Thiago Macieira
198c59dbce tst_QUdpSocket: always use an interface when binding to IPv6
Binding without an interface and expecting the OS to select something is
not supported in all OSes. On FreeBSD, I keep getting EADDRNOTAVAIL. So
modify our test to only join, leave and send to multicast groups with an
interface selection.

With this, all tests either pass or are skipped for me on Linux,
FreeBSD, and macOS. On Windows, this revealed an inconsistency in
behavior, which this commit adds a workaround for.

Change-Id: Ifb5969bf206e4cd7b14efffd14fb6815456494d2
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2017-12-29 00:10:54 +00:00
Thiago Macieira
656804b964 qrandom.h: actually #undef min and max instead of using parentheses
Putting parentheses around the call to (std::numeric_limits<T>::min)()
works, but the trick cannot apply to the min() function declaration on
the same line. So we really need to #undef.

I hope no one after the 1990s still needs these macros.

Task-number: QTBUG-65414
Change-Id: I39332e0a867442d58082fffd15024f8edb293311
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2017-12-28 21:30:28 +00:00
Jake Petroules
44da5b8635 Allow moc to handle Unicode output filenames on Windows with MSVC
The C standard library functions cannot handle UTF-8 filenames. Instead,
we need to use the wide-character versions which accept UTF-16 input.

Task-number: QTBUG-65492
Change-Id: If4b3b4eeeec4f3bbb428b8f6b0311a65d01463b0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-12-28 15:29:02 +00:00
Thiago Macieira
6f7b64e2a9 QMap: fix another UB (invalid cast) relating to QMap's end
Like in commit 75cdf654bc, we use the
pointer value of the QMap header (which is of type QMapNodeBase) as a
sentinel. It's never dereferenced. In that commit, the issue was calling
end() directly; in here, it happens when iterating forward from any
element, which means nextNode() can reach back to the header.

However, using static_cast is wrong, so we use reinterpret_cast.

Change-Id: I39332e0a867442d58082fffd15040317704a87ce
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2017-12-27 21:01:00 +00:00
Albert Astals Cid
d733014019 CUPS: Refactor the code a bit
Move the selected and selDescription members to a subclass of QOptionTreeItem
since it's only ever used for Option type nodes of the tree

Change-Id: Ic99841c4e04a3afcff0950f72abf12977850f6d3
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Reviewed-by: Renato Araujo Oliveira Filho <renato.araujo@kdab.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2017-12-27 16:46:38 +00:00
Thiago Macieira
3d7cdb64fc qfloat16: NaN is not infinite
Change-Id: I39332e0a867442d58082fffd1502b7010424f0f8
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2017-12-27 11:50:09 +00:00
Gabriel de Dietrich
c7faa4ad8f Cocoa QPA: Delete singletons on exit
This involves QCocoaApplicationDelegate and QCocoaMenuLoader.

The former has been modernized to use blocks. The latter was
not being deleted previously.

Change-Id: Ic4cbfed2d9598fa04130675b3330d985b9489a21
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2017-12-26 21:43:43 +00:00
Thiago Macieira
b12db22fcf Replace a few hardcoded paths with defaults from paths.h
This removes at least one special-case we had to have, in Android's lack
of /etc/mnttab. Bionic's _PATH_MOUNTED is already /proc/mounts.

Change-Id: I9407dcf22de6407c83b5fffd14fedc638586d0f9
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2017-12-24 02:04:12 +00:00
Thiago Macieira
f95d64d075 Doc: attempt to fix some qdoc errors for QRandomGenerator
This fixes only those that look fixable. There are a number of errors in
the online documentation that look like qdoc tool bugs, like missing
functions (operator==) and documentation text that does not exist in the
source code. This fixes:

 - QRandomGenerator(System) constructor showing up
 - Links for C++ reference documentation not showing up as links

Change-Id: I9e2892cb6c374e93bcb7fffd14fe21db5a6969d9
Reviewed-by: Martin Smith <martin.smith@qt.io>
2017-12-24 02:04:10 +00:00
Christian Ehrlicher
a02b371eb2 QHeaderView: properly connect rows/columnsMoved
QHeaderViewPrivate reimplemented _q_layoutChanged() to handle changes
of rows/columns via layoutChanged/layoutAboutToBeChanged. This worked
fine for Qt4 but since Qt5 only the special signals rowsAboutToBeMoved/
rowsMoved are used for this (8021e2d5e7).
With this change, QAbstractItemViewPrivate::_q_rows/columnsMoved() is
calling the virtual function _q_layoutChanged(). This resulted in a
wrong call of QHP::_q_layoutChanged() for a horizontal header when
a row changed and for a vertical header during a column change. In the
end this can lead to an unhide of hidden sections.

Task-number: QTBUG-54610
Change-Id: Ide4bfc5b24a97746fd1e5af82d3ba08257149157
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2017-12-22 16:17:56 +00:00
Tor Arne Vestbø
44ef95a885 iOS: Don't send all touch events async
Commit 77942a1bdf introduced the QScopedValueRollback, but without
assigning it to a local temporary, so the value was rolled back
immediately, resulting in always sending touch events async.

Change-Id: Ic7f65c3d38c46813ff06694e883dae3df138b9d4
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2017-12-22 11:13:21 +00:00
Eskil Abrahamsen Blomfeldt
67b1fa48be Update font when text format's letter spacing type is changed
The QTextFormat::FontLetterSpacingType property was added outside
the span of the FirstFontProperty and LastFontProperty, so
the fontDirty flag would not be set when it was changed. There is
no binary compatible way to fix this before Qt 6, so for now, we
add a special case for it.

[ChangeLog][QtGui][Text] Fixed an issue where changing the letter
spacing type of a QTextCharFormat would not cause its font to
update.

Task-number: QTBUG-65345
Change-Id: I5ab53d7f82d529b57edceacfc3fa688c6741cd17
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: C. Boemann <cbo@boemann.dk>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
2017-12-22 05:37:55 +00:00
Gabriel de Dietrich
c5a3022b04 QMacStyle: Minimize size of scrollbar transparency layer
Instead of allocating the full backing store size for
the transparency layer, we make sure we only allocate
exactly as much as needed by the scrollbar.

Change-Id: I55c3172fe3dd2a1f3fd46828463497f9f35cb1ae
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2017-12-21 20:53:23 +00:00
Gabriel de Dietrich
e3c79b4356 QMacStyle: Use light color on expanding scrollbar
Change-Id: I4e9c870c8acaaa690f530f847c9927d61a508a94
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2017-12-21 20:53:20 +00:00
Gabriel de Dietrich
117148c381 QMacStyle: Bring back submenu indicator
This one fell off the truck while we were removing
HITheme calls. We add it back by simply rendering a
BLACK RIGHT-POINTING TRIANGLE character.

We also fix smaller issues, such as not displaying
any shortcut related to a submenu action — this is
simply not a thing. The spacing between the menu
item's text and the submenu indicator has also been
slightly improved.

Change-Id: I6c768a5506a5eb9528b0dd76acd52b561266d67b
Task-number: QTBUG-64405
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2017-12-21 20:53:17 +00:00
Ulf Hermann
ca47afbfaa Fix build with -no-feature-regularexpression
The thing we are looking for in qstandardpaths_unix.cpp is
regularexpression, not QT_BOOTSTRAPPED.

Change-Id: I37eb0cdd8a52b0adfd69f592b84659e8807e35ad
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-12-21 18:23:17 +00:00
Ulf Hermann
74027e7f99 Fix build with -no-feature-network
The vnc and tuiotouch plugins depend on network support. The tuiotouch
plugin furthermore depends on a specific feature from network.

Change-Id: I3bc1f7b1dcf3437c6ed0d41cc9e282114a95a39c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-12-21 18:19:55 +00:00
Thiago Macieira
aad0c8dda1 Fix build with ICC: it miscompiles the F16C intrinsics
By not actually making them intrinsic, leading to linker errors:

 /home/qt/work/qt/qtbase/src/corelib/global/qfloat16_f16c.c:61: undefined reference to `_mm256_cvtps_ph'
 /home/qt/work/qt/qtbase/src/corelib/global/qfloat16_f16c.c:76: undefined reference to `_mm256_cvtph_ps'

I had the workaround applied, but only for "intel_icl", the qmake config
for the Intel compiler compatible with MS cl.exe options. The one for
compatibility with Unix cc (intel_icc) was missing.

Task-number: QTBUG-65367
Change-Id: I39332e0a867442d58082fffd15020e4838b6a01d
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-12-21 15:51:08 +00:00
Friedemann Kleint
309169afd9 QScroller: Fix deprecation warning about QDdesktopWidget:::primaryScreen()
In file included from ..\..\include\QtWidgets/qdesktopwidget.h:1:0,
                 from kernel\qt_widgets_pch.h:71:
..\..\include\QtWidgets/../../src/widgets/kernel/qdesktopwidget.h:71:65: note: declared here
     QT_DEPRECATED_X("Use QGuiApplication::primaryScreen()") int primaryScreen() const;

Use QScreen directly and remove the then unused function realDpi().

Change-Id: I526adb09ba35ed0699338d6a8d044c2ff9a03a1e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-12-21 15:49:44 +00:00
Timur Pocheptsov
54519d7327 Fix signed/unsigned comparison
It breaks a build if warnings are treated as errors.

Task-number: QTBUG-65357
Change-Id: I42d5cbdbd90f831662a6decaebecebef5005e735
Reviewed-by: Sami Nurmenniemi <sami.nurmenniemi@qt.io>
Reviewed-by: Liang Qi <liang.qi@qt.io>
2017-12-21 15:46:05 +00:00
Dyami Caliri
ffc8409aa5 Use AccessCheck for current user effective file permissions
On Windows, QFileInfo.isWritable() was returning true in situations
where the file would only be writable with elevated privileges. Using
AccessCheck instead of GetEffectiveRightsFromAcl to get the correct
results.

Done-with: Friedemann Kleint <Friedemann.Kleint@qt.io>
Done-with: Edward Welbourne <edward.welbourne@qt.io>
Task-number: QTBUG-30148
Change-Id: I7a3468ac069bf782ca312078e3a84107b6cd468c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2017-12-21 15:45:34 +00:00
Mitch Curtis
83fa66b6d2 Add more code examples to QUrl documentation
Code examples make it much easier to learn how an API behaves.
One area that the patch tries to address is the distinction
between a relative URL and a relative path.

Change-Id: Ife52172816b89afb6cd810b07d3573480e2cd747
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-12-21 12:54:40 +00:00
Mårten Nordheim
2f96813349 Fix typo in QSslKey
Change-Id: I201f4af1dd43a8e74d26652b50f3ad6074952888
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2017-12-21 12:15:04 +00:00
Oliver Wolff
33a72ee6f3 winrt: Register ssl socket upgrade callback in Xaml thread
Task-number: QTBUG-65354
Change-Id: If628c73b05854c13086708c193995062c8b9f9e4
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2017-12-20 11:50:07 +00:00
Allan Sandfeld Jensen
d6473eb186 Fix drawing color fonts with shear and perspective transforms
Fixes the fallback painting used with complex transforms to be able to
handle color bitmap fonts which can't be converted to a path.

Change-Id: Id2851607f673b8fc1aea63f92043d0cdebc0fb9d
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2017-12-20 09:03:37 +00:00
Sergio Martins
17d231039b Don't crash with null receiver/context in new-style connects
old style connects have protection against null sender and null receiver,
but new style only had against null sender.

Change-Id: Ie555ac078412918e60c3b60830fe1f3abfb7f5af
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2017-12-19 23:03:42 +00:00
Gabriel de Dietrich
afb48f21c8 QCocoaNSMenuDelegate: Improve key-equivalent logic
By using NSEvent.characters instead of NSEvent.charactersIgnoringModifiers,
we may miss sending ShortcutOverride events.

For example, when the user presses Cmd-Opt-o, characters will be "ø"
(on a US keyboard layout) and therefore we'll be looking for the wrong
key-equivalent among the menu items. We only fall back on the modified
string when the search on the unmodified string fails.

As and addendum, we also skip any submenu when doing the key search.
This is not necessary since each menu delegate will get called eventually.

Change-Id: Id793315293a02c99e99d793ad812cff7b4a47821
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2017-12-19 21:42:39 +00:00
Gabriel de Dietrich
e996c74164 QCocoaMenu: Derive custom NSMenu class, make delegate a singleton
Out of the box, this saves one delegate instance per NSMenu. It
also weak-couples the NSMenu instance with its owning QCocoaMenu,
making it safer to inspect from the menu delegate.

In the future, this will be helpful for debugging by just overriding
any NSMenu method.

Change-Id: I7eb801009b97f6a8ee2003306c0e152621bbce54
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2017-12-19 21:42:31 +00:00
Gabriel de Dietrich
8686f3a347 Conditionally auto-detect Xlib on Darwin platforms
Task-number: QTBUG-65040
Change-Id: I8112d2fac8acf647fc8a669ae5c7920651f0bf08
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-12-19 19:43:04 +00:00
Alex Trotsenko
7dee74147e Micro-optimize QRingBuffer::chop()
Change the condition to strong equal, as 'bytes' was checked against
wrong value on the start of the function.

Change-Id: Iebd785665ac7bd0941ba4ffd3f315b12efc6ce0b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-12-19 18:07:59 +00:00
Frank Richter
f8b164e1c3 Refactor QXcbKeyboard::updateModifiers()
The current implementation is poorly documented and hides the mapping
between keysyms and modifier bits.
This changeset adds documentation about the inner workings and makes
the keysym/modifier bit mapping reusable. (The latter will be needed for
xkb keymap synthesis if the XKEYBOARD extension is unavailable.)

Change-Id: I70c6d204b2357365db4dafeda680132ab6823ca3
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2017-12-19 16:18:37 +00:00
Renato Araujo Oliveira Filho
7fd5fe17c2 Fix print to a printer instance
Make sure to use the printer original name as 'cupsPrintFile' function
argument

Testing:
- Create a instance of your print with lpoptions
- Try print a document using the new instance of the printer
- Check if the instance properties was respected

Change-Id: I884b641d1871fe04c7b119c82d4edb4aa41db2f5
Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2017-12-19 15:23:44 +00:00
Karim Pinter
3af9d77431 Fix pps and imf support for QNX builds
Change from config to feature in the json and pro files.

Change-Id: I58ddac3c4ad739253bae010f1d5023fc1d481047
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-12-19 11:07:12 +00:00
Milian Wolff
e2c10e99db Cleanup: Use QThread::msleep to sleep instead of select
The old code used select with all-zero parameters and a timeval struct
configured to wait for 50ms. This can be drastically simplified by just
calling QThread::msleep which makes the intention much more clear.

Change-Id: I115b56ae67ae2c2cd03354e16a7bfdf56f8c15b8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2017-12-19 09:36:11 +00:00
Friedemann Kleint
d04187b6a1 Windows QPA: Check validity of device when handling tablet leave
Huion GT-191 has been observed to send spurious leave events.
Amends 127483b5e3.

Task-number: QTBUG-65120
Change-Id: I5dfa003a71be137a7b40cc9c27d7cf2cada6922d
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2017-12-19 09:29:22 +00:00
Ulf Hermann
152033bec0 Make QT_NO_FUTURE a feature
... and make sure we can compile without it. In particular,
Qt Concurrent depends on QFuture, so we specify it as a condition,
and QtConcurrentException should not depend on future but on
concurrent.

Change-Id: I65b158021cecb19f227554cc8b5df7a139fbfe78
Reviewed-by: Martin Smith <martin.smith@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-12-19 09:17:06 +00:00
Jan Grulich
f76e3712f1 Fix support for flatpak FileChooser portal
FileChooser portal expects filter property in a(sa(us)) format but by
default, using enum, we will end up with a(sa(is)), thus we have to
specify format for the enum.

Change-Id: I7de971197a0c77d6dca092edda7d428d90394574
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-12-19 08:32:15 +00:00
Renato Araujo Oliveira Filho
ccc9cd4404 Add i18n support for cups advance options
Used 'ppdLocalize' to translate cups options

Change-Id: I7fea7c26194fd6c6ee62a17d3e35d7c2c5be6d3c
Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2017-12-19 08:08:43 +00:00
Albert Astals Cid
ff67dedaaf QPageSetupWidget::setPrinter: Use printdevice default paper size
This means that actually the paper size set on system settings (or lpoptions) is used instead of A4

Change-Id: I2dd86fd9ba210a335773430328b0ba2d3343395f
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2017-12-19 08:08:23 +00:00
Albert Astals Cid
414a703036 CUPS: Use printer job-hold-until as default instead of the nohold
This also reads the job-hold-until from lpoptions if set there for the particular printer

Change-Id: Ic60fef675ab9f4760cd99ee9ac417b0478459681
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2017-12-19 08:08:13 +00:00
Lorn Potter
23c55cd37c bearermanagment: fix build for --no-feature-bearermanagement
Change-Id: I9e3f44b924e09a8d1a5095dc55d585b3cab33c15
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-12-19 05:58:22 +00:00
Lorn Potter
bcef582b6f Fix scan reply dbus signature in connman bearer backend
Task-number: QTBUG-57844
Change-Id: I1f3035f32d213ec6da95650a946c17c64becf549
Reviewed-by: Sami Nurmenniemi <sami.nurmenniemi@qt.io>
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2017-12-19 05:58:07 +00:00
Albert Astals Cid
2831fa7665 CUPS: Use printer job-billing as default instead of the empty string
This also reads the job-billing from lpoptions if set there for the particular printer

Change-Id: Ia4a6961de504005b8dcd9209da0624e9ae9ef7e4
Reviewed-by: Laurent Montel <laurent.montel@kdab.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2017-12-18 15:24:05 +00:00
Albert Astals Cid
83538a360e CUPS: Use printer job-sheets as default instead of none,none
This also reads the job-sheets from lpoptions if set there for the particular printer

Change-Id: I35aff103261ef58492779071d866e8a15ac78607
Reviewed-by: Laurent Montel <laurent.montel@kdab.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2017-12-18 15:23:43 +00:00
Albert Astals Cid
33f08a68c1 Remove declared but undefined QPageSetupWidget constructor
Change-Id: I54022d00d246c83489ccd171170feec1a1a46673
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2017-12-18 15:23:35 +00:00
Albert Astals Cid
ad77a2447e CUPS: Use default cups job-priority instead of 50
This also reads the job-priority from lpoptions if set there for the particular printer

Change-Id: I75d983c377d2135a0b0d3e028829a7384a5e1897
Reviewed-by: Laurent Montel <laurent.montel@kdab.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2017-12-18 15:23:29 +00:00
Marc Mutz
b0938cb6c1 QGestureManager: fix UB (invalid pointer comparison)
Comparing pointers with op< that do not point into the same array is
UB. Fix, in the usual way, by using std::less.

Change-Id: Id2c957557719887b2016632d683dbab8af07b34c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-12-18 13:06:33 +00:00
Richard Moe Gustavsen
0857db89bf Widgets: check if parent exists before calling parent->locale()
If a top level, parentless widget has Qt::WA_WindowPropagation
set, Qt will crash when trying to resolve the widgets locale.
The reason is that we try to access the QLocale of the
non-existing parent.

This patch will add a check if a parent exists before trying
to access it.

Task-number: QTBUG-61213
Change-Id: I09a6351a12dc1fffab3069b70e3d7b3932317c85
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2017-12-18 12:08:17 +00:00
Andy Shaw
3841a7dd49 Prevent infinite relayout when adding scrollbars
When one scrollbar is added, this may cause the other to be
needed as well. This change does a second calculation
immediately instead of relying on a signal through a
QueuedConnection.

Task-number: QTBUG-62818
Task-number: QTBUG-56280
Change-Id: Iee9a083e3a6cd3765e6bb9206687a8a6e7f99cff
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2017-12-18 11:10:48 +00:00
Albert Astals Cid
c61810b6f5 CUPS: Fix lpoptions file not being taken into account
This is actually two fixes.
 * We need to call cupsMarkOptions
 * CUPS differentiates between the "" and the nullptr instance, so we need
   to change the call to cupsGetNamedDest accordingly

Change-Id: If2692e405b6b71f8ee91362e6e72eabd9202d704
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2017-12-18 10:10:30 +00:00
Marc Mutz
8b8e53f726 QScroller: maintain activeScrollers as a QList, not a QSet
The number of active scrollers is probably very low, so O(N) vs. O(1)
search can be neglected, compared to the higher cost of allocating and
iterating a QSet. The tipping point is that the public API uses QList,
and the QSet needs to be converted toList() on each (external) access.

Just use a QList.

Change-Id: I5f0b37761923dc94d6dbbbf92973da73f5335e4a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2017-12-18 09:21:51 +00:00
Friedemann Kleint
e31c79ece4 QtPrintSupport: Fix build
dialogs/qprintdialog_unix.cpp:1104:21: error: incomplete type 'QTextCodec' used in nested name specifier

Amends b4330bc391.

Task-number: QTBUG-54464
Change-Id: I555431d11a5c3f247d4f055d94255d2708c92374
Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com>
Reviewed-by: David Faure <david.faure@kdab.com>
2017-12-18 09:11:25 +00:00
Christian Ehrlicher
93dabeba9d QTreeView: Make sure QHeaderView is notified on layoutChanged()
QHeaderViewPrivate::_q_layoutChanged() was not called when used in a
QTreeView because it was explicitly disconnected in setModel().
The disconnect was added sometime prio to Qt 4.3, but there the signal
was connected to the doItemsLayout() slot. This was correct since
QTreeView::doItemsLayout() is calling header->doItemsLayout().
In Qt 4.3.0 _q_layoutChanged() was introduced and the disconnect was
adjusted. But since _q_layoutChanged() is doing much more than
doItemsLayout() (e.g. restoring hidden sections), functionality was
lost. The problem was already observed for Qt 4.6 (QTBUG-18196) but
only partially fixed.

Task-number: QTBUG-41124
Task-number: QTBUG-54610
Change-Id: Id13a9930d0163812e12a0287016bab9c3aa02068
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
2017-12-17 12:42:22 +00:00
Allan Sandfeld Jensen
3dd0308634 Mask potentially undefined alpha in blend_transformed_argb
Makes sure the ARGB32PM that is painted on always have a defined alpha.

Task-number: QTBUG-55645
Change-Id: Ifcf5fcc2127d255518eca4763845a197da6c7914
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2017-12-16 09:23:58 +00:00
Jan Grulich
84731fbb2b Add support for FileChooser flatpak portal
Adds support for FileChooser Flatpak portal. To support them we just do
specific DBus calls, which are then caught and forwarded by xdg-desktop-
portal daemon/service. This is needed for Qt applications running in
sandbox.

[ChangeLog][Platform Specific Changes][Linux] Added support for flatpak
portals. Flatpak is a software utility for software deployment and
package management. It provides a sandbox environment in which users
can run applications in isolation from the rest of the system. To
communicate with the system flatpak uses portals, which are designed to
be a bridge between sandboxed applications and desktop/system running on
user's computer. Flatpak runs this service (called xdg-desktop-portal)
automatically. It exports the portals via DBus and they are visible by
default to all applications running under Flatpak.

Change-Id: I4de1402434ba7cbcc805eab51c30f84f8ba0c5c5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-12-16 08:17:05 +00:00
Morten Johan Sørvig
91aa782f01 QDrag: Allow setting cursor for IgnoreAction
This is especially useful on macOS where the default
ignore cursor is the pointer cursor.

Change-Id: I5e14814abd2d59a7f4c4cd1029829ebbed5b3017
Task-number: QTBUG-26724
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2017-12-15 16:18:24 +00:00
Sergio Martins
60d99b6413 Rework the "failed to find or load QPA plugin" message a bit
This is one of the most frequent problems users ask for help with, and they
don't even know if the plugin was found but not loaded or simply not found.

Qt knows what happened, so communicate it to the user.

Change-Id: I6003ed4ab3d147a5d159b2002004e53c251cb512
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-12-15 13:54:37 +00:00
Karim Pinter
9fbd9e066e Derive QPpsObjectPrivate from QObjectPrivate
Fixes 5d4089299a commit,
which was causing a build break if qnx pps is enabled.

Change-Id: I8c29f48bde0187a9db02d6325e8a9a0fae760bcb
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
2017-12-15 13:50:13 +00:00
Albert Astals Cid
b4330bc391 Reintroduce the Advanced tab in the QPrintPropertiesDialog
This is mostly a revert of 69de617761 adapted to the new code.

The commit that removed this code said:
 a) there's duplicate settings in the advanced tabs and in the rest of the ui: this easily
    solved with a blacklist
 b) you can set these options in the system settings: probably true, but it is very cumbersome
    to go to the printer settings every time i print to select from which tray the
    paper should be used

Task Number: QTBUG-54464

Change-Id: I7b1cacf51006dadb10aa6e00fe6dd2ff748fe576
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
2017-12-15 13:25:21 +00:00
Morten Johan Sørvig
c10f2aaeb7 Disable WiFi bearer plugins on macOS and Windows
Scanning for WiFi networks is causing network disruptions
in the form of higher latency, sometimes globally
for all running applications.

In practice, the default configuration selection algorithm
in QNetworkConfigurationManager prefers configurations
from the generic bearer plugin, due to the way the
plugins are ordered. Removing the platform WiFi bearers
should have no effect on default network configuration
selection.

Task-number: QTBUG-40332
Change-Id: I778281c41a1aaec1949c220a9266677bd788a57a
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2017-12-15 12:41:41 +00:00
Morten Johan Sørvig
27f70d7826 macOS: remove existing color-profile handling code
This code is unused/not functional.

Use sRGB everywhere instead. This is not a change
of effective color profile: the backing store has
had the sRGB profile assigned since commit ac899f6d
changed it as a side effect.

Change-Id: Ib45cec3acad90db2a0873b052d6bc4a61c894b18
Task-number: QTBUG-47660
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-12-15 12:41:05 +00:00
Timo Aarnipuro
dffa01a438 Add EGLFS integration plugin for Salvator-X on INTEGRITY Multivisor
This plugin uses the Renesas RISP Window Manager.

Change-Id: If813c46ab8d39e966c0a969610841867885dd473
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2017-12-15 12:27:18 +00:00
Johan Klokkhammer Helsing
034e92b0f4 Android: Set correct input hints when queried through getCursorCapsMode
getCursorCapsMode() now matches the Java implementation in
QtActivityDelegate.showSoftwareKeyboard() which is given to the Android
keyboard on InputConnection creation.

The reason we only saw this bug with some Android keyboards was that many
keyboards never call getCursorCapsMode and just rely on the initial hints.

Task-number: QTBUG-51865
Change-Id: I2aae024d9c77ea14e087e3f51a413d15a684179c
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
2017-12-15 12:23:17 +00:00
Kai Koehne
f2f75c0228 Doc: Fix paths to 3rdparty license files
Fix paths added in 870423f98b. This caused havoc on case sensitive
file systems.

[ChangeLog][Third-Party Code] Fixed glitch in attribution
documentation for Freetype licenses / Qt Gui.

Task-number: QTBUG-65138
Change-Id: Idb20a1ead772337f97a1262da42c62f6aef04a54
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2017-12-15 09:17:41 +00:00
Morten Johan Sørvig
e739e984c3 macOS: Make retina OpenGL work on VMware
Qt requests full resolution OpenGL surfaces by default.
However, when running as a VMware guest it looks like
the OS silently creates low-resolution surfaces.

This is not possible to detect using the standard NSWindow
APIs for converting to backing coordinates or for
reading the backing scale factor. The result of this
is that Qt will incorrectly display one quarter of
the window content only.

Fall back to detecting if the OpenGL renderer is the
Apple software renderer, which it will be on VMware.
Cancel the high-resolution surface request if this
is the case. This needs to be done while we have a
valid OpenGL context.

Task-number: QTBUG-62357
Change-Id: I33bf12b3bb0408249e6d66e0a8ca86b044bea781
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-12-15 08:45:45 +00:00
Thiago Macieira
259acdcb8a qfloat16_f16c.c: inline in qfloat16.cpp if F16C is permitted in there
This is going to be the most common scenario for GCC: all recent
versions allow compiling F16C code in the same source, thus generating
better code.

MSVC is excluded unless AVX is already turned on by the user in the
mkspec file, because it fails to use the VEX-prefixed instructions for
everything else, printing a warning that it knows it should have done
so.

ICC is excluded because it's known to generate invalid code when using
the F16C intrinsics unless F16C is turned explicitly on.

Clang is excluded because it runs into an internal error compiling this
code unless F16C is turned explicitly on.

Change-Id: I57a1bd6e0c194530b732fffd14f58de6a46f0de1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2017-12-15 07:39:54 +00:00
Tor Arne Vestbø
fddc5a27b1 macOS: Enable using CoreGraphics helper functions from C++ sources
Change-Id: If32c96d224bfb90ba22661b6f5ac3c920acb39d2
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2017-12-14 19:35:38 +00:00
Friedemann Kleint
1adb1ef6ba QStyleSheetStyle: Draw menu item also when font is set
Task-number: QTBUG-64055
Change-Id: I0674e7b43bb56aa1834c8df10794714dbcc4e5e3
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2017-12-14 18:23:35 +00:00
Friedemann Kleint
9e1b6b6e53 QFileSystemModel: Enable experimental code path for per-file watching
QFileSystemModel had a #ifdefed out experimental code path for watching
single files to track changes in size, which got outdated over time.

Replace the #ifdef 0 by a check for the environment variable
QT_FILESYSTEMMODEL_WATCH_FILES, fix it up and apply some fixes to
related code to make it work:
- Split file names signaled by QFileSystemWatcher on '/' always.
- Do not instantiate QDirIterator on "", which means "current directory"
  and results in mixed-up directories.
- Check on lastModified() in QExtendedInformation::operator==() so
  that changes trigger an update in _q_fileSystemChanged().
- Fix the #ifdefed out part to compile and not to add directories
  to the watcher.

[ChangeLog][QtWidgets][QFileSystemModel] It is now possible to enable
per-file watching by setting the environment variable
QT_FILESYSTEMMODEL_WATCH_FILES, allowing to track for example
changes in file size.

Task-number: QTBUG-46684
Change-Id: Ia5da9170866416c9529251f889814b23d7a7d069
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2017-12-14 18:23:22 +00:00
Giuseppe D'Angelo
00c09e752f QAbstractItemModel: add more checks in begin{Insert,Remove}{Rows,Columns}
Check that the inserted/removed range is indeed valid.

Change-Id: Ifccbe13f0753252ee1450c8668df782dc699f05b
Reviewed-by: David Faure <david.faure@kdab.com>
2017-12-14 18:15:50 +00:00
Oswald Buddenhagen
0a8a759822 fix namespaced build
Change-Id: Ibd16658ef800afe1dec01311cc4ef1a9a6d83929
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2017-12-14 18:05:59 +00:00
Oswald Buddenhagen
5dd76ba31c update sqldriver docs
- adjusted to new configure system realities
- centralized 'make install' instructions
- fixed 'make' command for mingw
- externalized the license compatibility question
- removed dated information about postgresql client libs
- removed dated claim that freetds is not stable yet
- updated official sybase client link to point to sap support
- removed apparently bogus "demo" include path from oci instructions,
  based on the archive content description
- removed troubleshooting item about static builds - one can use static
  "plugins" with a static build just fine. and building dynamic plugins
  for a static build is plain impossible to start with.
- removed troubleshooting item about build key mismatch, as build keys
  have been removed in qt5
- removed "general info" sub-section titles, as that's bad style
- misc language and minor content fixes

Task-number: QTBUG-62479
Change-Id: Ic4efa9e20a5966b6fc646062aec6d1a8d4ff4158
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-12-14 18:05:12 +00:00
Paul Olav Tvete
af70d4ee85 Allow empty namespace URI
W3C Namespaces Standard states that "The attribute value in a default
namespace declaration MAY be empty" (secion 6.2). Analysis and fix
thanks to Eugenio Rustico.

Task-number: QTBUG-63538
Change-Id: Icd8d4df639b9737d8e0d215bf2bea56fe1e161ac
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2017-12-14 16:53:30 +00:00
Jesus Fernandez
345be58100 Fix assert when emitting a signal from a different thread
If a signal is emitted more than once in a multithreaded application the
QSignalEventGenerator::execute function asserts in the check for a valid
signal index. It happens after abandoning the state and all the
connections are disconnected. If we have pending signal to be
processed the QObject::sender() won't be able to resolve the sender
object.

Task-number: QTBUG-61463
Change-Id: I9d4b7266c6dddc9ff2e7453b05a6989876ccb332
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2017-12-14 16:30:38 +00:00
Martin Smith
c87ed145f1 doc: fix signatures and missing module headers
The update adds the moduleheader variable to the qdocconf
file for qttestlib.qdocconf and qmake.qdocconf. The problem with
qmake is that it doesn't have a module header file, but it does
have qmake_pch.h, which is used here. This update also corrects
several \fn commands in the qttestlib docs.

Change-Id: I2202b9db96390bac1ee491ca8a99ca9010057ce3
Reviewed-by: Martin Smith <martin.smith@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2017-12-14 13:37:51 +00:00
Marc Mutz
5cb54cb5eb QPlatformPrintDevice: use QVector, not QList in the API
QPlaformPrintDevice uses QVector to store, but QList in the getters to
retrieve these data. Port API from QList to QVector to avoid
conversion between the two containers on every access.

Saves almost 4KiB in text size (another 0.9% of QtPrintSupport).

Change-Id: If33df141b87753803c45d9f4dae501a68abe49af
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-12-14 13:35:35 +00:00
Marc Mutz
2356c173b2 QPlatformPrintDevice: store QPageSize/QMimeType/int in QList, not QVector
This commit pains me, because we want Qt to migrate away from QList,
but the QtPrint API stack (all the way to public API, for QPageSize,
and int) is formulated in terms of QList, not QVector, so it makes
zero sense to store data in QVectors just to convert to QList on every
opportunity.

Store QMimeType in QList, too, since that's what QtCore uses.

Saves 3KiB in text size (0.7% of QtPrintSupport).

Change-Id: I71249f60be517cc06973b38d9ccad7a31f348be3
Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-12-14 13:35:32 +00:00
Tor Arne Vestbø
d48c502ce5 Share QWidget update and repaint code for QRect and QRegion
QWidgetBackingStore::markDirty has an optimization for QRect, so we don't
want to unify these two functions by calling update/repaint(QRegion(rect)).

Change-Id: Id2a42f478f71863da45697041e0ab0130c74b9d2
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2017-12-14 13:11:51 +00:00
Tor Arne Vestbø
3d65284b60 QWidget: Remove dead code for handling painting without a backingstore
Change-Id: Iacf852c8620ea06d790cddcf6774b772f754e08a
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2017-12-14 13:11:43 +00:00
Andy Shaw
9832f0ab85 Copy argv[0] to prevent it pointing to invalid memory later
If QCoreApplication is recreated, it is possible the previous argv[0]
pointer has become invalid, so we should not rely on it. So to prevent
that, we copy the original argv[0] to a static QByteArray.

Task-number: QTBUG-58919
Change-Id: Idadd4cb78e4281830165fb681ea7925109f316ff
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2017-12-14 09:39:40 +00:00
Eskil Abrahamsen Blomfeldt
ff2ae36551 Windows: Support application fonts as fallbacks
In order to support the generated EUDC.TTE font for
End-User Defined Characters on Windows, we need to allow
fallback fonts which are not part of the default font
collection. This is the same as change
21c7421d4e, but adapted to
the fallback font code path.

Without this change, the EUDC file would still be loaded,
but it would be loaded through the GDI fallback, and we
would display an error message on the console.

Task-number: QTBUG-44594
Change-Id: Id2404228c7fd345523e4e5c99f31862e256930e3
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2017-12-14 09:01:45 +00:00
Timur Pocheptsov
2086c183c1 Fix/workaround a quirk in SecureTransport
We set anchors from QSslConfiguration::caCertificates. On macOS these
anchors are by default copied from the system store, so I expected
setting 'trust those anchors only' should not break anything.
Somehow, on 10.11 SecTrustEvaluate fails to evaluate a valid
certificate chain (apparently because it has an intermediate
certificate, it's just a guess, since their API/docs are too poor
to explain well what was the real cause) as I can see connecting,
for example, to google.com - we have a chain with a valid root,
say it's GetTrust CA and we have it also in our list of anchors we set
on trust, but evaluation fails with: kSecTrustResultRecoverableTrustFailure:

"This means that you should not trust the chain as-is, but that
the chain could be trusted with some minor change to the evaluation
context, such as ignoring expired certificates or adding an
additional anchor to the set of trusted anchors."

Since none of certs is expired, and the required anchor already set,
this must be some bug in SecureTransport. For macOS (deployment
target) < 10.12 we fallback to the original version of the code
(the one that unfortunately does not allow us to limit the set
of trusted anchors by what client code wants to trust).

Change-Id: Ie42fd77c3eb6ef7469812aa0d7efff88a003c0b8
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2017-12-14 04:54:35 +00:00
Gatis Paeglis
9dc7904556 xcb: update libXi version requirement in the README file
... from 1.7.4 to 1.7.5 (released Sep, 2015).

Some more locking issues were fixed after 1.7.4. Testing
for a prolonged period of time has showed that 1.7.5 does
not cause a system lock-up.

[ChangeLog][Platform Specific Changes][X11 / XCB] Minimal libXi
version requirement has been updated from 1.7.4 to 1.7.5. This
is because XIAllowTouchEvents is known to deadlock with libXi 1.7.4
and earlier. When touch events are never received, this is not
an issue. Plain mouse / keyboard systems are not affected.

Task-number: QTBUG-62224
Change-Id: Ie70264b9af0390df33c417f660350d4bce48c6d3
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
2017-12-13 22:50:33 +00:00
Tor Arne Vestbø
ba44cdae38 Teach QPlatformWindow about safe area margins and implement for iOS
The safe area margins of a window represent the area that is safe to
place content within, without intersecting areas of the screen where
system UI is placed, or where a screen bezel may cover the content.

QWidget will incorporate the safe area margins into its contents margins,
so that they are are never smaller than the safe area margins. This can be
disabled by unsetting the Qt::WA_ContentsMarginsRespectsSafeArea widget
attribute, which is set by default.

QLayouts will automatically use the contents area of a widget for their
layout, unless the Qt::WA_LayoutOnEntireRect attribute has been set. This
can be used, along with a contents margin of 0 on the actual layout,
to allow e.g. a background image to underlay the status bar and other
system areas on an iOS device, while still allowing child widgets of
that background to be inset based on the safe area.

[ChangeLog][iOS/tvOS] Qt will now take the safe area margins of the
device into account when computing layouts for QtWidgets.

Change-Id: Ife3827ab663f0625c1451e75b14fb8eeffb00754
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
2017-12-13 20:47:15 +00:00
Lars Knoll
59febb49e4 Fix a bug in the generation of the Unicode joining property data
The code that was supposed to initialize the joining property of
characters to the correct defaults was actually applied after reading
in the data from the Unicode file, and was in a couple of cases
overwriting explicitly specified data in ArabicShaping.txt

Task-number: QTBUG-63191
Change-Id: Ie35261039b2211a827322ca11afacd9555ccefc7
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2017-12-13 19:14:49 +00:00
Eskil Abrahamsen Blomfeldt
9e99dba4a2 Windows: Add font fallback for EUDC glyphs
EUDC, or "End-User Defined Characters", is a concept in Windows,
where the end-user can create a local fallback font of default
glyphs for the PUA (Private Use Area, a range of Unicode
not reserved to any writing system), and these glyphs will be
used when displaying the character using a font which does not
itself support the code point.

To support this in Qt we look up the default EUDC font in the registry
and add it to the fallback fonts if it is available. We use the
font for code page 1252. This has been tested on a couple of systems,
and appears to always be present. The font is added to the front of
all fallback lists, so that it will override other fallbacks,
such as Segoe UI Symbol, which happens to assign glyphs to the PUA.
If there is no end-user defined fallback, then Segoe UI Symbol will still
be used as before.

Note that this required a small change in the code to get canonical
font names. The EUDC font that Windows generates will only have a
name set for the current locale, and we expected all fonts to have
an English name. Instead, the code has now been changed to prefer
the English name if one is present, but accept any other name if
there is nothing in English.

[ChangeLog][Windows][Text] Added support for End-User Defined Characters
in Qt.

Task-number: QTBUG-44594
Change-Id: I83ae68b6d16e9b50e990dfb3ac3d294b7b2a5113
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-12-13 14:42:50 +00:00
Oliver Wolff
457fe3e8e2 ANGLE: Fix resizing of windows
Use the correct height/width values when calculating
the vector for resizing the window content and the
new size as viewport size.

Task-number: QTBUG-62475
Change-Id: I33a8dc1379a908e991b04bc31dfc6254a6d005c9
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2017-12-13 13:07:52 +00:00
Oliver Wolff
27c840f5d4 Fix typo
Change-Id: If6111c59b958ba03f6ec5966af5cf443cae5cf9b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2017-12-13 13:07:48 +00:00
Marc Mutz
27aacfb61e QString: fix documentation of NUL-termination of unicode(), data(), constData()
(or lack thereof).

* `QString::utf16()` reallocates if `*this` has been constructed using
  `fromRawData()`.

* `QString::data()` ensures a writable string, so will detach from raw
  data.

* `QString::unicode()`, `constData()`, and `data() const` do not. They
  just return `QStringData::data()`, which may point to raw,
  non-NUL-terminated data.

These functions can therefore not possibly have the same behavior, but
were documented the same.

Fix.

Also drop the discussion of operator[](size()), as that, too, was not
correct, and anyone who indexes with op[] beyond size() - 1 should not
rely on proper behavior.

[ChangeLog][QtCore][QString] QString::unicode(), constData() and
`data() const` do not return a NUL-terminated string. This was true
before, but the documentation claimed the opposite.

Change-Id: I1437f57cd02bdf80264e8559608b46aa749c23a8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-12-13 10:55:59 +00:00
Allan Sandfeld Jensen
ae55e75b1b Paint text decoration where the text is
For multi text-item texts we should render the text decoration at the
same position as the text-item part is, and not always from the
beginning of the line.

Task-number: QTBUG-60422
Change-Id: I9aa58fc164122ad1fae9716b8b18bdfbbbd778a9
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2017-12-13 08:43:39 +00:00
Albert Astals Cid
e79efe94e3 Allow access to ppd file and ppdMarkOption via QPpdPrintDevice::property/setProperty
Change-Id: I47b49b52121950fa8e3ea7a056974d9f3033490f
Reviewed-by: Liang Qi <liang.qi@qt.io>
2017-12-13 08:17:50 +00:00
Albert Astals Cid
70f6a35c8f Introduce QPrintDevice::property/setProperty
So we can access QPlatformPrintDevice internals if needed

Change-Id: Ib37c5717713f37262ef12d7b61793d80f05baf4a
Reviewed-by: Liang Qi <liang.qi@qt.io>
2017-12-13 08:17:44 +00:00
Samuli Piippo
98b7ad7682 QNX: fix slog2 for QNX7
Change the include header to sys/slog2.h, which is available
in both QNX 6.6.0 and 7.

Task-number: QTBUG-64033
Change-Id: I26d8c5451376bab33e11f4784ca772f84cd6fc28
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-12-13 06:50:53 +00:00
Laszlo Agocs
782eb1a114 Report modifiers correctly in mouse events with evdev and libinput
Task-number: QTBUG-60694
Change-Id: I7b1625e5f31e49cd2ab18a83bbd0f65f9b58088d
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2017-12-12 20:21:15 +00:00
Laszlo Agocs
7257862fb2 Set sharedPainter correctly for QGraphicsEffect
Autotest is taken from the previously reverted
8b1377fde1.

Task-number: QTBUG-60231
Change-Id: I44dd79cba22b6baefdd6d95c176790bef0b7eafe
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2017-12-12 20:21:07 +00:00
Laszlo Agocs
6a5ca7240a Fix QEGLPbuffer::isValid() with surfaceless contexts
Task-number: QTBUG-65125
Change-Id: Idcd87804ab63031e48ff2f72eb98c986bfa39f25
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2017-12-12 20:21:00 +00:00
Friedemann Kleint
4a4efd5693 qwindowsopengltester.cpp: Fix -Wclazy-strict-iterators
Change-Id: Id22096197aa5bf406ea1f072e8b5ca2a90578eec
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2017-12-12 20:20:32 +00:00
Friedemann Kleint
9b597a09f1 QtGui/Windows: Fix wait cursors remaining active
In QWindowPrivate::applyCursor(), do not apply override cursors
when the platform supports QPlatformCursor::OverrideCursor.

Complements b05d1c2ebf.

Task-number: QTBUG-65001
Change-Id: Ie84cc30ad99b22e037aae829a2ce847ec4bf900f
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2017-12-12 20:20:17 +00:00
Friedemann Kleint
141bca90e1 Windows QPA: Fix handling of override cursors
Override cursors were not restored when nested or in a dual
monitor setups.

The default cursor stored in QWindowsCursor::m_overriddenCursor
was clobbered by subsequent calls to QWindowsCursor::setOverrideCursor().
This caused for example the wait cursor to remain active when
switching to Help Mode in Qt Creator. Add a check preventing that.

Make the variable static so that it is shared between the cursors
of multiple screens.

Amends b05d1c2ebf.

Task-number: QTBUG-65001
Change-Id: Iead5804d317f73dedd78d22c1c85c62b5349ab83
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2017-12-12 20:20:13 +00:00