| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
In addition a new entry in QWaylandCompositor::ShmFormat
allows compositors to enable that format at runtime
Pick-to: 6.5
Change-Id: I0f894adb3f688458a65713e343127fbcb26f8b65
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We've been requiring C++17 since Qt 6.0, and our qAsConst use finally
starts to bother us (QTBUG-99313), so time to port away from it
now.
Since qAsConst has exactly the same semantics as std::as_const (down
to rvalue treatment, constexpr'ness and noexcept'ness), there's really
nothing more to it than a global search-and-replace.
Task-number: QTBUG-99313
Change-Id: Ia64c6615ee81f7ad5d0658449b0ee347c3db8c29
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a semantic patch using ClangTidyTransformator as in
qtbase/df9d882d41b741fef7c5beeddb0abe9d904443d8:
auto QtContainerClass = anyOf(
expr(hasType(cxxRecordDecl(isSameOrDerivedFrom(hasAnyName(classes))))).bind(o),
expr(hasType(namedDecl(hasAnyName(<classes>)))).bind(o));
makeRule(cxxMemberCallExpr(on(QtContainerClass),
callee(cxxMethodDecl(hasAnyName({"count", "length"),
parameterCountIs(0))))),
changeTo(cat(access(o, cat("size"), "()"))),
cat("use 'size()' instead of 'count()/length()'"))
a.k.a qt-port-to-std-compatible-api with config Scope: 'Container',
with the extended set of container classes recognized.
Change-Id: I574208abc90a8042b500b3f96e3862b0ff339eb6
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to RFC 2483, which describes text/uri-list, the line delimiter
must be CRLF (instead of the currently used LF). Some applications
strictly expect the CRLF delimiter and fail to properly parse the
uri-list otherwise (e.g., WineX11/XWayland).
https://datatracker.ietf.org/doc/html/rfc2483
5. The text/uri-list Internet Media Type
The format of text/uri-list resources is:
3) As for all text/* formats, lines are terminated with a CRLF pair.
Pick-to: 6.4 6.3 6.2 5.15
Change-Id: I7c062224a9060028ab6293fdf172692ade28cca5
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
|
|
|
|
|
|
|
|
|
| |
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
License files are organized under LICENSES directory.
Pick-to: 6.4
Task-number: QTBUG-67283
Change-Id: I106d3a5d1a7b96250380b6f51a48f3b19d10e4d9
Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
See script in qtbase/util/includeprivate for the rules.
Since these files are being touched anyway, I also ran the
updatecopyright.pl script too.
Change-Id: Ib056b47dde3341ef9a52ffff13ef677e471674b6
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- None mapping to no style.
- Default/Underline mapping to underline.
- Highlight/Selection mapping to background color/text color with highlight/highlight
text with underline.
- Active/Inactive mapping to bold text with underline.
- Incorrect mapping to red wave underline.
Pick-to: 5.15 6.2 6.3
Change-Id: Iab51d671b8f83aece8596f7f7610de19343fcceb
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
|
|
|
|
|
|
|
|
|
| |
Otherwise the cursor would be hidden even if preedit is empty.
Amends 719a55be13bdadfa659a732755f280e276a894bd
Pick-to: 5.15 6.2 6.3
Change-Id: I320733b917779b7b51aa4a28eaea411fdb10a318
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
| |
Pick-to: 6.3 6.2 5.15
Change-Id: I832fbb22d973b36ac4ab51570fc53bc2e4c3ed58
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This feature can be enabled by -feature-wayland-text-input-v4-wip.
It is disabled by default.
TextInputManagerV4 is available in a compositor.
zwp_text_input_v4 is available for QT_WAYLAND_TEXT_INPUT_PROTOCOL in
a client
It supports Hangul(Korean) with a qtvirtualkeyboard patchset
(refs/changes/02/357902/3)
It includes some workarounds for ibus because each ibus module has its own
policy for focus-in/focus-out.
enter/leave will synchronize with enable/disable and they will happen
whenever focus-in/focus-out happen.
Cursor/anchor positions are byte offsets.
Surrounding text will be trimmed when it is over 4000 byte.
For debugging,
uses "qt.waylandcompositor.textinput" in a compositor side
uses "qt.qpa.wayland.textinput" in a client side
Tested on qtvirtualkeyboard and ibus
TODO :
* QTBUG-97248 - event:preedit_commit_mode is not implemented yet. Current
preedit_commit_mode is 'commit'.
* request:set_text_change_cause is not implemented.
Task-number: QTBUG-94327
Change-Id: I72644893f40f30c4b03cd6a7d05483d12bde1070
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The code queries potential image formats by stripping a mimetype of its
'image/' prefix and making the rest of the mimetype capitalised, such as
'image/png' -> 'PNG'. The problem is that this is then searched for in
QImageWriter::supportedImageFormats() by simple equality. The method
returns a list of lowercase byte arrays, not uppercase. As the codepath
can never match due to checking for an uppercase word in an array of
lowercase words, this means that images are effectively always sent as
BMP format, even if they should be sent in other formats, such as PNG
or JPEG.
A simple inspection with GDB (or a qDebug) reveals this:
```
(gdb) p QImageWriter::supportedImageFormats()
$31 = {"bmp" = {...}, "bw" = {...}, "cur" = {...}, "eps" = {...},
"epsf" = {...}, "epsi" = {...}, "icns" = {...},
"ico" = {...}, "jp2" = {...}, "jpeg" = {...}, "jpg" = {...},
"pbm" = {...}, "pcx" = {...}, "pgm" = {...},
"pic" = {...}, "png" = {...}, "ppm" = {...},
"rgb" = {...}, "rgba" = {...}, "sgi" = {...},
"tga" = {...}, "tif" = {...}, "tiff" = {...},
"wbmp" = {...}, "webp" = {...}, "xbm" = {...}, "xpm" = {...}}
```
```
(gdb) p QImageWriter::supportedImageFormats().contains("PNG")
$32 = false
```
```
(gdb) p QImageWriter::supportedImageFormats().contains("png")
$33 = true
```
The fix for this is simple: lowercase the remainder of the mimetype,
instead of uppercasing it, and we can start hitting the codepath that's
supposed to write non-BMP formats.
Change-Id: Id3e9b730b7edcabcb2f1b04d8ef0a4c1fb9c9159
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
| |
In 19f9b0d5f54379151eb71e98555b203ad6756276 in qtbase, the
copy constructors for QEvents were removed, so code using
this has to be updated.
Change-Id: I5798b240d79f78c47374d60947b1bc66598ff3b5
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We would always reported all formats we could convert from
as supported on the wl_shm protocol. This would sometimes
cause clients to pick formats that required internal conversion
when creating OpenGL textures from the images. To avoid
this, we default to only supporting the RGB32 and
ARGB32_Premultiplied formats (which are required and advertised
automatically) and if the user wants to add additional formats,
we now have a additionalShmFormats property for this.
[ChangeLog][QtWaylandCompositor] The compositor will now by
default only advertise support for the required wl_shm formats.
Additional formats can be added to the list by setting the
additionalShmFormats property on the compositor.
Fixes: QTBUG-77531
Change-Id: Ibd5d5be2a37968353c00308abbfff7ca6f8d310d
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-84319
Change-Id: I5dc2f4506c149e5f2793cd7cab083278b93a980e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-84469
Change-Id: I4bc7b2eb2913fc828f09f96e21480b76cabf8656
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|\
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/client/qwaylandinputdevice.cpp
src/client/qwaylandwindow.cpp
Change-Id: Ifd64debc484197829d2fe412afa98c29b382efa5
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/client/qwaylandinputdevice.cpp
src/client/qwaylandintegration.cpp
src/client/qwaylandwindow_p.h
src/shared/qwaylandxkb.cpp
Change-Id: Ibac7998502351e93c71c9b786536298657afe3d0
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When Key_Return is sent from Qt VirtualKeyboard it will send it as \n
and not \r which means it will be interpreted as an unknown key. So since
we know it will be able to map it in this case, we explicitly account
for it so it can be mapped to the right key.
Change-Id: Id5d8d9653e78975203f80790b7a3d332f0e011fa
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previously, QWaylandSharedMemoryFormatHelper::fromWaylandShmFormat(WL_SHM_FORMAT_ARGB8888) would
return Format_ARGB32, i.e. the non-premultiplied version, while, according to the wayland-devel
mailing list (https://lists.freedesktop.org/archives/wayland-devel/2017-August/034791.html), all
Wayland RGB-based pixel formats with alpha should have premultiplied alpha.
This patch makes sure we return the premultiplied variants for ARGB8888, as well as for ABGR8888.
Using a switch instead of the array also allows us more freedom to choose the preferred format in
other cases where multiple QImage formats map to the same wl_shm format.
While being wrapped and exported as QtWaylandClient::QWaylandShm::fromFormat (private API), this
conversion function doesn't seem to be used anywhere, so this patch shouldn't cause any changes in
behavior for projects that only use public API.
Change-Id: Ie09f9a339b4540dd0383a72b3c951eb8c93e3ab4
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In this patch, we port Q_FOREACH loops to C++11 ranged-for loops. All cases are
trivial in the sense that either the argument is already const or is trivially
marked as const, either by qAsConst(), or, in the case of rvalues, by storing
to a const auto temporary first.
In addition, all loop bodies are clear enough to confirm that the container we
iterate over is not changed under iteration. This does not exclude cases where
a loop is prematurely exited just after calling a modifier on the container, as
that is safe, if not especially elegant.
Change-Id: I87a63f07797437d421567d60e52305391a3c4f21
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QtWayland can benefit from sharing code with X11.
This will fix issues that have been reported and fixed on XCB
a long time ago.
Task-number: QTBUG-65503
Fixes: QTBUG-71301
Fixes: QTBUG-66497
Change-Id: I09cbf8e1c9cf29e8d7f46b97bc2f11d6e91b61a5
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|/
|
|
|
|
|
| |
See xkbcommon/xkbcommon-compat.h
Change-Id: I2a70e14481db227fc0be657fbcf4f6550d62e7e8
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
|
|
|
|
| |
The xkbcommon configure logic was refactored in
qtbase/c3a963da1f9e7b1d37e63eedded61da4fbdaaf9a.
For more details see the relevant commit.
Change-Id: Ic1aa26846ab8266c589f6e92dc8b81aba36df58a
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
| |
Change-Id: Ic4a8c64fa0e1b56a8d21316c96e3eeb3f20fb8b1
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
|
|
|
| |
Initialize to nullptr to prevent undefined behavior.
Change-Id: I7753c0be77a886d62ecb1cd7b86fc8c98340b0b8
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
clang-tidy -p compile_commands.json $file \
-checks='-*,modernize-use-default-member-init,readability-redundant-member-init' \
-config='{CheckOptions: [{key: modernize-use-default-member-init.UseAssignment, value: "1"}]}' \
-header-filter='qtwayland' \
-fix
Afterwards I ran search and replace on the diff to clean up some whitespace errors:
- Replaced '(\n\+[^:\n]*)(:\s+\+\s+)' with '$1: '
- Replaced '(\n\+[^,\n]*)(,\s+\+\s+)' with '$1, '
- Replaced '\n\+\s*\n' with '\n'
I also had to do some manual edits, because for some reason, this particular
clang-tidy check doesn't trigger for some files.
Change-Id: I3b3909bac4bf20108bbe8ad1e01bcc54236dae1b
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
| |
Found by GCC 7
qwaylandinputmethodeventbuilder.cpp:110:51: warning: this statement may fall through [-Wimplicit-fallthrough=]
Change-Id: Ia3e896da908f42939148fffd14c47fc6058b0933
Reviewed-by: Jan Arne Petersen <jan.petersen@kdab.com>
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
|
|
|
| |
Change-Id: I0ec7a5aa8300e796b015c0d995e71ebf77727bbd
Task-number: QTBUG-58839
Reviewed-by: Jan Arne Petersen <jan.petersen@kdab.com>
Reviewed-by: Yong Bakos <junk@humanoriented.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
| |
Get rid of almost all DEFINES += ... in the pro files,
instead use the proper QT_CONFIG() macro to determine
whether a feature is available.
Change-Id: I867769be2085c6ba93b6815e223e2b89edcb245d
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|\
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
examples/wayland/minimal-qml/main.qml
Change-Id: Ic34029a6aa77f2b359f40258a05421d82efd5b37
|
| |
| |
| |
| |
| |
| | |
Change-Id: I51a57a32d8263e663a48dac15881d685359bc91d
Reviewed-by: Jan Arne Petersen <jan.petersen@kdab.com>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@hawaiios.org>
|
|/
|
|
|
|
|
|
| |
sharedMemory is much clearer and will increase the readability of the code and
API.
Change-Id: Ibb6d7424fa8d44a94a0f4ddf476a564eb235323f
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@hawaiios.org>
|
|
|
|
|
|
| |
Change-Id: I0f0d1bd8efabc39325eec7dba4166ae0bccbf6ff
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use a proper function instead of left/midRef(index).toUtf8().size().
Makes it more clear what is happening and makes it easier when wayland
text protocol switches from byte-based to unicode character-based indices.
Also rename parameters of existing indexFromWayland() function to be the
same as in the new function.
Change-Id: Ie90abdcb264b74a024e96e041d5daf651920e9e4
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Update text input support to upstream text-input protocol v2 from
wayland-protocols. Remove support for input-method protocol for now.
Map text-input protocol on compositor side to the Qt input method API,
this allows to use any qt platform input method on compositor side
(especially qtvirtualkeyboard). Add support for qtvirtualkeyboard to
pure-qml example.
Implement all missing functions of the text-input protocol.
Change-Id: I597451ff65454a63dff86026b6a8d1ffbe07ce02
Done-with: Zeno Endemann <zeno.endemann@kdab.com>
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a copy of the key mapping in the XCB plugin. The only difference
is the Launch* keys, which will be changed in Qt6 in the XCB plugin.
Here we don't need to wait for that since the mapping is new.
This also change the mapping of the following keys, which was incorrect:
XKB_KEY_XF86AudioRewind: Qt::Key_MediaPrevious -> Qt::Key_AudioRewind
XKB_KEY_XF86AudioForward: Qt::Key_MediaNext -> Qt::Key_AudioForward
XKB_KEY_XF86Phone: Qt::Key_ToggleCallHangup -> Qt::Key_Phone
Change-Id: I30308da8529dba5b139fc599314c9465573b848e
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see
http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/
Updated license headers to use new LGPL header instead of LGPL21 one
(in those files which will be under LGPL v3)
Change-Id: I76ae5d3e64f096eb3163d6163a38d68c7c1ca756
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
|
|
|
|
|
| |
Change-Id: I19fd0bc7a56b4baa5b6d40836d5f0401a3b11c49
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To manage the keyboard state and send key events to clients we use
the xkbcommon library (unless disabled). That means that we currently
have a separation between key events outgoing to clients and key events
being used internally in the compositor, resulting in different keysyms
being produced in the two cases for the same hardware key.
Filter the key events coming from the underlying platform and modify
them according to the xkb state instead.
Change-Id: I4c6678be68e5b214b2b9cd0222dc9f425c580085
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
|
|
|
|
|
|
|
|
|
| |
Qt copyrights are now in The Qt Company, so we could update the source
code headers accordingly. In the same go we should also fix the links to
point to qt.io.
Change-Id: I5a74d32515c3f1fe7aa1916f4241c92832510f8c
Reviewed-by: Antti Kokko <antti.kokko@theqtcompany.com>
|
|
|
|
|
|
|
|
|
| |
This class helps keeing one lookuptable for server and client
It relies on that wayland-(client|server)-protocol.h being included
before the qwaylandshmformathelper.h
Change-Id: I12158126a80c8fef5c52427d35792f33716020f1
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
|
|
|
|
|
|
|
|
|
| |
rule 1: QT_USE_NAMESPACE in qt code itself is a bad idea
rule 2: don't forget to forward-declare your non-qt types
Change-Id: Ifba69328f3451e708c26624f349485e7c61d31f5
Reviewed-by: Jan Arne Petersen <jan.petersen@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently the QtCompositor library and API do not follow the Qt API
naming conventions. This commit intends to fix these inconsistencies.
filenames start with q
headers containing private API's end in _p
public API classes begin with Q
use the qt namespace macros where necessary
Wayland namespace is now QtWayland
wayland_wrapper classes are now private API's
It's important to make these changes not just for stylistic reasons, but
also because when qmake builds the module in checks for these
conventions to determine how to deploy the include files.
Change-Id: I8bfadeceda92a0f52cb73c704551da75540e7587
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
|
|
|
|
|
|
|
|
| |
Change copyrights and license headers from Nokia to Digia
Change-Id: Ie65cbe0c622780d2f0672bce19d267d1167620ff
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
This operation should be a no-op anyway, since at this point in time,
the fromAscii and toAscii functions simply call their fromLatin1 and
toLatin1 counterparts.
Task-number: QTBUG-21872
Change-Id: I70205b0d86451d31e81a4be4a521e454e1eff83f
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
As in the past, to avoid rewriting various autotests that contain
line-number information, an extra blank line has been inserted at the
end of the license text to ensure that this commit does not change the
total number of lines in the license header.
Change-Id: I08d8673382f0230d5c5a22a25efaf5c45cef539a
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
|
|
|
|
|
|
|
|
| |
Replace Nokia contact email address with Qt Project website.
Change-Id: Ib67c393df41c539deae0ef71e0acc13029ceb46d
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
|
|
It is a hack but works beautifully. It allows the compositor to
participate in copy-paste which becomes mandatory when there is UI
running in the compositor process.
Change-Id: I1993d8705a26159eff0c9947244b66e954b9f460
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
|