The logic used in the FreeType font engine can be generalized
and move to the QFontEngine baseclass. This allows the CoreText
font engine to correctly report the minimum left/right bearings,
which decreases the chance that an optimization in QTextLayout's
line breaking algorithm will produce wrong results.
The calculation of left and right bearing has been moved to the
glyph_metrics_t type to reduce code duplication. This allows us
to use the with and height of the bounding box to determine if
the glyph has any contours.
Change-Id: I864697d3f31ed56f22f04666199b6c5023c5e585
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Make the fallback to creating an unshared context
actually work by using correct [initWithFormat: ]
code.
Warn and return early on context creation failure
instead of continuing and crashing.
Change-Id: Ic88f419eaa717436aefc9c1da36c47e0ccb3e956
Task-number: QTBUG-47825
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Otherwise errorString() might not match error() in a
statusChanged handler.
Change-Id: If1250b4552412eabe88457dee031e4ef3f533838
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Introduce convenience function for obtaining the format
name and use that.
Add debug operator for struct FORMATETC including format name.
Replace all code enclosed in #ifdef QMIME_DEBUG by qCDebug().
Task-number: QTBUG-47656
Change-Id: Ibb3c860c57edee4a31e8f5f37e3245feebed52a1
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
- Remove unneeded member variables.
- Set window sizes depending on screen geometry for High DPI screens.
- Flesh out code for saving the image, setting the supported
mime types on the file dialog.
- Streamline constructor code, remove create...() functions.
- Use new connection syntax in createActions(),
- Obtain the screen from the widget.
- Adapt documentation. Remove note saying that widgets do not need
the parent parameter (since creating parentless widgets can
result in flicker in some cases), explain that QScreen pointers
should be checked.
Change-Id: I0332bbf10eafe861fe3fd5573522694ab5c0183a
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
- Port it to new connection syntax.
- Replace module include by class includes.
Change-Id: I1b8d682bb7bb2e05b6b2b77a9c0d01730ea09cf2
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
- Introduce Qt 5 signals & slot syntax.
- Use mime types in the file dialogs.
- Streamline the code creating the actions.
- Introduce QCommandLineParser.
- Query the available size when determining
the initial size instead of using hard-coded values
for High-DPI screens.
Change-Id: Ifc84a41ed55a4a674b6eafdb6120ac42441405b6
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
- Minimized and Hidden: hide the status bar and collapse winrt native ui element.
- Windowed and Maximized: show the status bar and re-size the window.
- FullScreen and AutomaticVisibility: hide the status bar and re-size the window.
Showing & hiding the status bar and re-sizing the window affect only the
windows phone build.
Change-Id: Iaa412382bffc14e470720f2213bb3f6851f57a6b
Task-Id: QTBUG-47811
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
On windows phone native dialog interaction is handled from
XMAL thread. Declare and register dialog helpers StandardButton
and ButtonRole for cross-thread usage.
Change-Id: Ic1842a5af8a1122fdffb766b4f723d272bdbcac2
Task-Id: QTBUG-47941
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
Expose on orientation change clears bad frames caused by race between
Qt and ANGLE.
Change-Id: I8970c6be36133d861c718a946d9e9b7a5e88cc2c
Task-Id: QTBUG-44333
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
Make handleWindowSystemEvent() support being called
from secondary threads in synchronousWindowSystemEvent
mode.
This is implemented by posting the event to the Gui
event queue (which will wake the Qt Gui thread), and
then calling flushWindowSystemEvents which will block
the calling thread until the event has been processed.
Change-Id: I7e8e68c1e0290c17105563268e316b0f8205b3ce
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
flushWindowSystemEvents() now returns whether the
most recent event added to the queue was accepted
by Qt or not.
Use QAtomicInt to store the accepted state in order
to avoid a data race on it between the Gui thread
and the event poster thread.
Change-Id: I6c111fdaecda5c514307ca0749a54075fe8e872f
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
After the removal of direct access through type punning,
the direct color setters can be better optimized.
Change-Id: Icaa5b1f8c8fe90863dd42fa4dfb5a2998c273465
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
qtbase/src/widgets/kernel/qaction.cpp:1257: warning: Can't link to 'QApplication::setAttribute()'
qtbase/src/widgets/kernel/qapplication.cpp:519: warning: Can't link to 'arguments()'
qtbase/src/widgets/kernel/qapplication.cpp:1939: warning: Can't link to 'quit()'
qtbase/src/widgets/kernel/qapplication.cpp:2946: warning: Can't link to 'quit()'
qtbase/src/widgets/kernel/qapplication.cpp:2946: warning: Can't link to 'exit()'
qtbase/src/widgets/kernel/qapplication.cpp:2946: warning: Can't link to 'processEvents()'
qtbase/src/widgets/widgets/qmenu.cpp:1354: warning: Can't link to 'Recent Files Example'
qtbase/examples/widgets/doc/src/tetrix.qdoc:28: warning: Can't link to 'QApplication::quit()'
qtbase/src/testlib/qtestcase.cpp:268: warning: Undocumented parameter 'timeout' in QTRY_VERIFY2_WITH_TIMEOUT()
qtbase/src/corelib/global/qnamespace.qdoc:2427: warning: Can't link to 'QApplication::setLayoutDirection()'
qtbase/src/corelib/global/qnamespace.qdoc:751: warning: Can't link to 'QApplication::setDesktopSettingsAware()'
Change-Id: Ic8170a40fb1cd84e3fb4dd75d9429f4b485f8bd9
Reviewed-by: Martin Smith <martin.smith@digia.com>
RCS files (text/plain) have the glob pattern "*,v", which caused
the regular expression match to fail.
Task-number: QTBUG-47923
Change-Id: I7d8682ef51306cb4da58a2b3880842bd99892ea3
Reviewed-by: David Faure <david.faure@kdab.com>
Run native dialog show on XAML thread.
Change-Id: I6273340e87d70aae21c838d9d7646a233c1f48be
Task-Id: QTBUG-47938
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
Plasma 5 uses the same config files structure, but follows XDG spec
instead of storing them in custom locations.
Added '5' to supported KDE session version, and passing it to other
methods because 'kdeglobals' is located directly under XDG config
dirs and not deeper inside.
[ChangeLog][QtPlatformSupport][QKdeTheme] adding plasma5 support
Change-Id: I5f1d8d8f8d02449328db3ffc391ad23506cd67c7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: David Faure <david.faure@kdab.com>
There are a few functions using a C-style function declaration:
void foo(void);
meaning that foo() takes no parameters. This change allows this
for QDoc, making it successfully match documented \fn blocks
with the correct declaration, and not print out warnings.
Change-Id: I8191c55094371431b0e9c2ad22d19cadcb7facfb
Reviewed-by: Martin Smith <martin.smith@digia.com>
The module names are used as keys in the map that defines the
forest of module trees. A physical module name (lowercase) is
used as the primary tree name, but modules read from index
were using a name written to the index file (project name,
typically CamelCase) as-is.
This caused issues for resolving link commands that have a
module name in the square bracket parameters. To ensure that
such links work, convert module names read from index to
lowercase, too.
Change-Id: I698e01fd1df888e4a78c06a76ad72b5eb1a70892
Reviewed-by: Martin Smith <martin.smith@digia.com>
- Use \a commands when listing the arguments for OpenGL methods
- Document functions taking a single argument of type 'void'
verbatim. Otherwise, QDoc refuses to generate their docs
- Add constructor docs for QOpenGLExtraFunctions (copied from
QOpenGLFunctions).
Change-Id: I64a436365572a80319ba0a8eaba2f5d9b751e84d
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Update the online documentation template with following fixes:
- Improve responsivess for narrow screens: TOC and sidebar
now collapse into drop-down menus
- React to hashchange events: When the user edits the anchor
tag in URL and presses enter, the page is scrolled
correctly to bring the selected section title into view.
- Handle Ctrl and Meta keys correctly
- Improve colors for target section highlighting
- Minor CSS fixes
Task-number: QTWEBSITE-634
Task-number: QTWEBSITE-657
Change-Id: I7221f38cf4988497f0f24ee66e62b7b7d770a121
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Newer test functions don't have those. Removing those comments makes
the code consistent.
Change-Id: I542b89e797ef061395ce1fc87d848195e6f81f35
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
There is a qFatal in qmetatype.cpp that checks that the flags are the same.
There is a binary compatibility break because if any cause build with Qt 5.5
is loaded, this qFatal will quit the application, due to the change in
commit 54a09a4188:
Type flags for type 'QtMetaTypePrivate::QPairVariantInterfaceImpl' [1034]
don't match. Previously registered TypeFlags(0x103), now registering
TypeFlags(0x107). This is an ODR break, which means that your application
depends on a C++ undefined behavior.
This is a false positive since it is an internal type, the MovableType in
QMetaType is only being used for performance reason, it is perfectly fine
to change it.
This commit changes the qFatal to complain only about flags that could
only be caused by a binary incompatible change.
Change-Id: I87b9bf8cf54b6c7f4b1277d411ce5107642435ab
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
ibus keycode is qt scancode - 8 and needs to be returned to app windows
as the right value.
Use QWindowSystemInterface::handleExtendedKeyEvent() instead of
QCoreApplication::sendEvent() in qtbase 5.6 to follow
QXcbKeyboard::handleKeyEvent().
Also qApp->focusObject() returns QMdiChild which is a QWidget and
that is not a QWindow.
Task-number: QTBUG-47833
Change-Id: Ie634a86d7790d8093cfca2dc8666f726844ae654
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Add configure time option to enable boot2qt platform using DISTRO_OPTS.
On embedded, the QtWebEngine is supported only on boot2qt platforms.
To have QtWebEngine CI tested on embedded, we need a way to to enable
boot2qt platform for existing mkspecs.
Change-Id: I218da5b8071041ca1c95eb218b2d552fcc9980d2
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
Commit 916dfcb8 introduced a regression where QNSView
would hold a copy if the backing store QImage, which
would cause a detach and deep copy if/when the image
was painted on while the copy was held.
Revert back to the previous share-by-pointer scheme.
Make sure the following bugs stays fixed:
QTBUG-38377
QTBUG-42206
QTBUG-44313
Change-Id: Ib8049051d51947113f23b66ee61dc34c22388914
Task-number: QTBUG-46959
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Get a couple of fixes for important bugs (1667, 1672).
The WinCE build patch has also been merged upstream,
so remove it from our tree.
Change-Id: I933c2d824612a70d7bc52648df5f5c481ae066d7
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
Release drop target after CoLockObjectExternal() to prevent
a potential access violation.
Change-Id: I2c3bde9f8008b1d567544596f56ebfd61fe6ad86
Task-number: QTBUG-47737
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Amend change b55f88caba by splitting
out the enabling into a separate function and call that when
QWindowsInputContext::update() is triggered to reflect updates
of the microfocus in QGraphicsView or item view widgets.
Task-number: QTBUG-47679
Task-number: QTBUG-47705
Task-number: QTBUG-40691
Change-Id: I84a6647944f1aaedcd72d7060cc90e29a177f577
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
Depending on the orientation, UIKit might shrink either the width or the height
of the view to fit the status bar. Since we anyway want the view to fill the whole
window, we simply ignore this, and use the bounds of the whole window directly.
Task-number: QTBUG-47506
Change-Id: I73294e5792f8d98fb0c0b0a42198207baca08e3c
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Caught being detached a few thousand times per second.
Change-Id: I6dd5fd69d7d4f32048cdb7e4ac707f24df6c15f8
(cherry picked from commit 2a81516835)
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
The limitation is already mentioned in the class documentation, but
IMO is severe enough to be highlighted in the documentation of the
respective methods, too.
Change-Id: I16c68eb41ab9d3a7698d7ef06f747cfd98a8aaff
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Effectively revert 9150563940 for
QTBUG-11463 (offering only CF_DIB5 for images of format ARGB32) and
4018cd3529 for QTBUG-46848 adding support
for "PNG".
The changes broke pasting images into MS Office since it can only handle
plain CF_DIB and gets confused if "PNG" is returned as available format.
Task-number: QTBUG-47656
Task-number: QTBUG-11463
Task-number: QTBUG-46848
Change-Id: I9b641b4b912b7b16a2f58bc84fa09c28a64e91c8
Reviewed-by: aavit <eirik.aavitsland@theqtcompany.com>
Input context selection works differently across platforms. On some
platforms it is not possible to request a specific context at all
(e.g. Wayland). This will be unified, depending on the environment
variable "QT_IM_MODULE", you will get:
- null: default (platform) context, if defined (otherwise no context)
- empty: no context
- set: set one, if it exists and is valid (otherwise no context)
[ChangeLog][Platform Specific Changes] Haromnized input context selection.
QT_IM_MODULE environment variable will be taken into account.
Change-Id: Ic8f826fbc6ace25941cd19b9b086943e848fbe01
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Nedim Hadzic <nedim.hadzic@pelagicore.com>
The old kms plugin has been replaced by EGLFS's KMS backend. The EGLFS
backend is smaller and has more features.
The kms plugin cannot be built automatically since Qt 5.5 and is
therefore also not tested for changes in QPA API by the CI. Therefore
removing the plugin from the tree should not be a regression from the
previous release.
Change-Id: Icb9ea8c4a5d6421397a2e3f2e2195fb6bfad2293
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
This fixes a number of qdoc warnings due to e.g. missing documentation
for setter argument.
Change-Id: If9ae43f70f0e42fe8b8a4f04f49d522cd7d69099
Reviewed-by: Kevin Funk <kevin.funk@kdab.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>