The member functions of QStandardPath and
Qt.labs.platform.StandardPath behave the same, so
it's ideal to maintain their documentation in one place.
Task-number: QTBUG-79827
Change-Id: I349dbb85cd9b6a3bedac329c0707fc07057cd64b
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Since commit 059172c6 precompiled headers did not work anymore on
macOS, because the ${QMAKE_PCH_ARCH} string was suddenly appearing in
locations where it was not replaced with the actual architecture, e.g.
the directory where the PCH files are written.
Fix this by replacing the whole file path and not just portions of it.
Fixes: QTBUG-79694
Change-Id: I925d4ee8980a0de3205a0e387a516a5c6f8cfa4b
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Allegedly Apple has fixed the bug that made this necessary, so we
should be able to include these two test-cases once more.
This reverts commit ba9585bd02.
Fixes: QTBUG-69875
Change-Id: I5ac6019c0d647691eda6cdbb2a53e7471859d4a3
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
It's a lot more useful than the include dir. It actually helps debug
problems.
Change-Id: I1496b069cc534f1a838dfffd15ca07fe8ad1c8c6
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
There is a way to select a better pixel ratio when the QPainter has a
valid pointer to a QPaintDevice than simply getting the global app
pixel ratio.
Change-Id: I8f89fd01094bbac7a01a83be89991730b0fa6597
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
When an icon engine is asked to produce a pixmap scaled to a certain
size, it may return one with a different aspect ratio than
requested. In particular, an SVG will use its own aspect ratio, as it
should. QIcon's DPR calculation would break down in this case,
resulting in ugly scaling.
Fixes: QTBUG-79371
Change-Id: Id97049259dcee1a2980474250ef1163be5639085
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Consider this simple example:
QLineEdit edit;
edit.setInputMask( "9-9-9-9-9-9" );
edit.show();
Without any input, m_text will contain: " - - - - - ". text() removes
the input mask's mask characters from that and returns " ". A string
with 6 spaces. Thus currently the End key jumps to position 6, which is
in the middle of the string. Using m_text the End key jumps to the actual
end.
[ChangeLog][QtWidgets][QLineEdit] Fixed End key in combination with
certain input masks.
Task-number: QTBUG-16187
Task-number: QTBUG-20414
Change-Id: Ibb30a1dfa2f78103611b5afc9971dc43e8bdcc4a
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Within QTreeView::setModel() the header might emit columnCountChanged
which then tries to update the geometries based on the old model which
is wrong.
Fix it by setting geometryRecursionBlock to true so
QTreeView::updateGeometries() will not ask the old model for it's data.
Fixes: QTBUG-75982
Change-Id: Ia0dd36cd7c6c5347fbc285deac43da6941accbe7
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Workaround for libpng bug in GCC 8.1.0.
Task-number: QTQAINFRA-3303
Change-Id: Id7668e795cb4ab16de3199fc3727d844aa31bfad
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Android uses its own time-zone naming, which includes a zone called
"Canada/East-Saskatchewan", whose second component is 17 characters
long. This violates a rule in the IANA naming scheme for zones, that
limits components to 14 characters each. So tweak the isValidId()
check to allow Android its long names.
Android has added Outer Mongolian time-zones, which are as borked as
many others in 1970, so blacklist those transitionEachZone() tests.
Fixes: QTBUG-69128
Change-Id: I46f674f095431335b16900860d83b624257ae3bb
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
The reader uses int variables, so use the same in the writer.
Change-Id: I1496b069cc534f1a838dfffd15c94c7cacd3dd93
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Since 65314b6ce8 there is a TextFormat
for MarkdownText, and QWidgetTextControl supports that, but QLabel
does it in its own way and sets plain text or rich text on the text
document itself. Add a code path for MarkdownText there.
[ChangeLog][QtWidgets][QLabel] Markdown is now a supported textFormat
for QLabel.
Fixes: QTBUG-79766
Change-Id: Ib9370ef300089af2c4d6070e545c5470f32833a8
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
With the qrcFiles entry in the deployment JSON for Android, it can now
pass this on to qmlimportscanner for scanning the qrc files for the
available imports. This enables qmake to populate the qrc files it has
referenced in the project, be it generated by qmake or added by the
user.
Task-number: QTBUG-55259
Change-Id: Ic512ce6f24508b3ea09ebdd07ac4446debfd9155
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
With logging enabled, all the output will slow down
execution and fill up your hard disc in about a day.
Task-number: QTBUG-79050
Change-Id: I5dcac2f349f7dbe471a5e6dd7006b89d312aeeaf
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
They were tucked away in the back-end of the isTimeZoneIdAvailable()
test, but a separate isValidId() test had been added more recently,
which made some (arguably all) of them redundant. Reworked this test
in the process, so that the QSKIP() happens in _data() once instead of
in the test that's never run because there are no data rows.
Change-Id: Icaa6227ace9a1aa944d085691cdcfb3adf4a51dc
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
QFontDatabase::systemFont(FixedFont) determines the font for inline code and
code blocks in a markdown document. Now we change the size of that font to the
same size as QTextDocument::defaultFont() so that the user has the ability to
customize the font size in each document instead of only system-wide.
Change-Id: Ief7367336f7613e88695dbb08bcb7e9f50db8961
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
This fixes a bug where app build would fail with AssertionError: SIMD is
used, but not supported in WASM mode yet
This patch was wiped out by the recent freetype update and is exactly
the same as
44b91a619d
Fixes: QTBUG-79938
Change-Id: Iaa8f23c83d0488ddd351454a674a6cad76e7cc8b
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
In file included from ../../include/QtCore/qlist.h:1,
from ../../include/QtCore/../../../qtbase_dev_de_verdad/src/corelib/kernel/qobject.h:49,
from ../../include/QtCore/qobject.h:1,
from ../../include/QtCore/../../../qtbase_dev_de_verdad/src/corelib/kernel/qcoreapplication.h:46,
from ../../include/QtCore/qcoreapplication.h:1,
from /src/widgets/kernel/../../gui/kernel/../../corelib/global/qt_pch.h:66,
from /src/widgets/kernel/../../gui/kernel/qt_gui_pch.h:48,
from /src/widgets/kernel/qt_widgets_pch.h:48:
../../include/QtCore/../../../qtbase_dev_de_verdad/src/corelib/tools/qlist.h: In instantiation of ‘void QList<T>::node_construct(QList<T>::Node*, const T&) [with T = QTableWidgetSelectionRange]’:
../../include/QtCore/../../../qtbase_dev_de_verdad/src/corelib/tools/qlist.h:614:13: required from ‘void QList<T>::append(const T&) [with T = QTableWidgetSelectionRange]’
/src/widgets/itemviews/qtablewidget.cpp:2416:71: required from here
../../include/QtCore/../../../qtbase_dev_de_verdad/src/corelib/tools/qlist.h:471:35: warning: implicitly-declared ‘constexpr QTableWidgetSelectionRange& QTableWidgetSelectionRange::operator=(const QTableWidgetSelectionRange&)’ is deprecated [-Wdeprecated-copy]
471 | else *reinterpret_cast<T*>(n) = t;
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~~
In file included from /src/widgets/itemviews/qtablewidget.cpp:40:
/src/widgets/itemviews/qtablewidget.h:52:24: note: because ‘QTableWidgetSelectionRange’ has user-provided ‘QTableWidgetSelectionRange::QTableWidgetSelectionRange(const QTableWidgetSelectionRange&)’
52 | class Q_WIDGETS_EXPORT QTableWidgetSelectionRange
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
Change-Id: Iad959315ad374ef288f5fffd15d6876cb63bce8e
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit 127ed7e6e0)
I see no reason why this would make sense to look for plugins in the current
directory. And when there are plugins there, it may actually be wrong
Change-Id: I5f5aa168021fedddafce90effde0d5762cd0c4c5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The linker must not throw away the lto.o file. We now instruct the
linker to create a non-temporary lto.o, dependent on the target name.
In order to do that we introduce a new mkspec variable
QMAKE_LFLAGS_LTCG_SEPARATE_DEBUG_INFO. This variable can contain
single-$ variable references that get evaluated when loading ltcg.prf.
Fixes: QTBUG-72846
Change-Id: I0ea882628d63e5406ba0ee68c7435af597364b0f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
When a fixed size the window is moved to another screen
by QPlatformWindow::initialGeometry(), the size constraints
would be incorrectly scaled using the initial screen in the handling of
WM_GETMINMAXINFO.
To fix this, pass the resulting screen out of QPlatformWindow::initialGeometry()
and use it during the window creation phase.
Fixes: QTBUG-77307
Change-Id: I149a2a65e816da841a32abc14a495925bf9cc6f6
Reviewed-by: André de la Rocha <andre.rocha@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Obtain the client area and output frame and position relative to the
parent window.
Task-number: QTBUG-79861
Change-Id: I193dfbcdec7e27d32a70ada08ba271260eedc969
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Static text controls should not return a ValueProvider. Otherwise,
Narrator reads out static texts and announces whether they are
editable or not, which is confusing to users. It should only read
out the text itself.
Fixes: QTBUG-79613
Change-Id: I080cd6a5db10f6f673b50c40ac7d87c3737d9b55
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
If an item was updated while the display was in sleep mode then when the
display came back from sleep it would not be updated. This change detects
when the display returns from sleep and repaints the windows to ensure
the updated items are presented.
Fixes: QTBUG-76307
Change-Id: I5fff5209e8a5c359d06ba1df61944690e9475ea6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
It was converted over ARGB32PM, when it should have been directly
converted to not lose accuracy, instead there was an unnecessary direct
ARGB32->RGB30 conversion, which was converted to the necessary type.
This also improves the selection of conversion over ARGB32PM or RGBA64PM
for ARGB32 and RGBA8888 by using 32-bit conversion when alpha is not
relevant.
Change-Id: I5990d8a23b2909d3910d8c1213fa46477742b052
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Since the test was fatuous for i == 0, iterate from i = 1, instead.
Change-Id: I9b9c1b7b10639aefdd74f48051d592da4f84dc85
Reviewed-by: Jesus Fernandez <jsfdez@gmail.com>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Document QDateTime's methods by reference to QDate and QTime, to avoid repetition.
Use consistent descriptions between toString() and fromString(), in each case.
Document the truth: various things were simply wrong, in at least some copies.
Change-Id: Ie80017250cd470f65733f96d182ed7d043694f0e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
In iOS 13.0 we can handle UITextInteraction as normal, but in lower
versions it is not available to utilize at compile time. So we have to
check for the other types instead and return if it is not one of those.
Change-Id: Icbc5558e677ed40c03f30a174e2d79b87f489f68
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
It's not guaranteed that QPlatformScreen::screen should always return a
valid pointer. Furthermore, you can run into this situation with, for
example, two screens setup.
Task-number: QTBUG-53022
Change-Id: Ic23bb2c30b1245f98a793a44cc5e0b39f9afac4b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
When building an application for Android on Windows it is possible that
the command line will be too long when doing the link step. So the code
for generating a response file is moved to MakefileGenerator so it can
be used by the other generators easily. The same variables used by
MinGW can be used elsewhere then.
Fixes: QTBUG-71940
Change-Id: I6c331d12e9541a90a4a95e0154d0ea1c056489bc
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Rather than tweaking the parser to cover every eventuality with corner
case lines that could cause incorrect header files to be created then
the means to suspend/resume the processing of a file is added.
This enables us to have it skip over the template line that is causing
a QList header to be created as part of the QtGui headers. This patch
includes the fix to solve this in addition.
Fixes: QTBUG-68129
Change-Id: I751646c4b20a4434347c149ae5e6dcb6e7618853
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
The code doesn't convert anything that might be a separator on other
platforms (most notably, '\') to '/', it only replaces platform-native
separators (i.e. '\' if running on Windows) with '/'.
Change-Id: I2e241b88b8bd271dfa5d7db61402fe8ef9a6bb6f
Fixes: QTBUG-79736
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
In single selection mode, the current selection toggled when the user
pressed the left mouse + Ctrl key and then moved the mouse over the
item. This was introduced with 28a21d98ef
which added the possibility to deselect an item in single selection
mode.
Fix it by adding a check if the event was a mouse move event and use the
old codepath for it.
Fixes: QTBUG-77353
Change-Id: Id845ada302c92646885dfd966721b00d940f1260
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Having a platform with Texas Instruments's ADS7846 touch screen controller (NXP
i.MX6 DualLite SoC) and a LOGIC Technologies Inc. LTTD800x480 L2RT 7" (800x480
pixels) TFT LCD panel attached to it (resistive touch) using Linux v5.2.17 and
libinput-1.12.6 a single one finger touch starts with a LIBINPUT_EVENT_TOUCH_
DOWN directly followed by a LIBINPUT_EVENT_TOUCH_MOTION both having the same
touch position.
Now Qt's code for touch input processing compressed both into one touch point
with state Qt::TouchPointStationary which resulted in QGuiApplicationPrivate::
processTouchEvent() seeing no touch points with state Qt::TouchPointPressed
anymore. As a consequence processTouchEvent()'s local container windowsNeeding-
Events stayed empty and the whole touch frame was skipped.
Fix this by still compressing into one touch point, but keeping its state as
Qt::TouchPointPressed.
Fixes: QTBUG-79212
Change-Id: Ia571d79ec5c1d6143e923ed69b378503b53e5992
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
The controls were correctly grayed out when the entire window was not
active, but inactive subwindows showed their controls in color, and only
the titlebar had a slightly paler gradient to indicate that they are not
active. MDI is not a concept on macOS and there is no clear style guide
for how such windows are supposed to behave, but the look of the
inactive titlebar before this change is too similar to the active state
for it to be useful.
This change restores the pre-5.11 state, prior to the removal of HITheme
based styling in 8633e1a7b4.
Change-Id: If009bf085a87fe2610d888636348dc8b13a93ec1
Fixes: QTBUG-79648
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Change-Id: Ia5d208ace5086e8e92f95f859383773894a18768
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
(cherry picked from commit dcbe25bbbb)
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Per earlier discussions we bump the deployment target for LTS releases
and follow up by requiring the latest SDK available for building.
As layer backed views and dark mode is a lot more stable these days in
Qt and on macOS in general we no longer support the option to build with
the 10.13 SDK. A workaround in case this functionality is still needed
is to explicitly set the QMAKE_MAC_SDK_VERSION qmake variable, which
will tell the linker to write that version into the MachO header of
the executable, which will then be read by AppKit when determining
which features to opt in to.
Change-Id: Ied4f6d75b710505a5c440c990b82567bea780db6
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
You can save a "skeletal" document with list items to fill in later,
the same as you can do in HTML or ODF format. Reading them back via
QTextDocument::fromMarkdown() isn't always perfect though.
Fixes: QTBUG-79217
Change-Id: Iacdb3e6792250ebdead05f314c9e3d00546eeb9f
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
The markdown parser generates empty lists in some cases when a character
that can be used as a bullet is found on a line by itself.
cbEnterBlock() and cbLeaveBlock() are called symmetrically in such cases.
QStack::pop() on an empty stack triggers an assert, so push and pop need
to be done symmetrically too. But it's difficult to actually create the
list as soon as the MD_BLOCK_UL or MD_BLOCK_OL callback occurs, without
breaking the case fixed in 7224d0e427 (and
probably other cases). That's because QTextCursor::insertList() creates
a list item at the same time as it creates the list itself, and also
inherits block formatting from the previous block. We now insert empty
lists with empty items whenever the need for that is detected though,
and there's a failsafe to prevent popping in case something still goes
wrong with that logic. We aren't strict about reproducing the original
markdown when regenerating it via toMarkdown(), but it's getting closer.
Fixes: QTBUG-78870
Change-Id: Ided194ce7aec2710c60dbac42761ee4169ed9b78
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
Introduce resources_functions.prf with the test function
qtFlattenResources which ensures that RESOURCES has a flat structure,
e.g. only contains *.qrc entries.
This can be called by other .prf files like qtquickcompiler.prf
without disturbing the ability to extend RESOURCES in other .prf files.
Task-number: QTBUG-79672
Change-Id: I43246e40f5ea52a9d9c917a1bd781aeeb1304acc
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
If a font with only a family set is resolved with one that has been setup
with setFamilies() then the family needs to be prepended to the families
list after resolving. This is so that the font still prefers the one set
as just a family with no famillies set.
This also amends the QFontDialog test to account for this too.
[ChangeLog][QtGui][Text] Resolving a font that just has a family set
with families set will prepend the family to the families so that it
is still the first preference for the font.
Task-number: QTBUG-46322
Change-Id: Icc4005732f95b2b4c684e592b06b31e133270e44
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>