Usually, when you load a plugin, you don't want to load just any plugin
that fulfills a given interface, but rather a specific one. When loading
dynamic plugins you can differentiate the plugins by file name. This
doesn't work in the static case, and file names are also separate from
the plugin metadata shipped inside the plugin files.
To solve this problem, different hacks have been developed in various
places. QML extension plugins add a special property "uri" via the -M
option of moc, QML debug plugins expect you to add a json file with
an array of "Keys", Qt Creator plugins have a "Name" in their json
files, etc.
By allowing the identifier for the plugin to be specified inline with
the metadata declaration we can make many of the above workarounds
obsolete and provide a clean way for users to find their plugins.
Task-number: QTBUG-74775
Change-Id: Ie2af16c49d4c5aa5a77fab0fae1e0a4449bd7a39
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Skip based on support for window activation instead of platform. Makes it clear
why the tests are skipped, and also enables them automatically if we implement
a shell extension that adds support for it.
Task-number: QTBUG-66849
Change-Id: I322aba5ce5f8db651db7b71f223ffacec037c920
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
When investigating the bug report, it was discovered that the
offscreen window is assigned a default geometry by
QPlatformWindow::initialGeometry(), causing subsequent resize events
and flushing of event queues. Suppress that by making it a popup which
is not subject to window title bar restrictions on Windows and setting
the respective flags.
Task-number: QTBUG-74176
Change-Id: I7f9c1a3bfd57072c8188a98124bde87491dd25eb
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
The release coordinates may be simply initialized to 0 in lower levels of the
tslib. They are then passed through the calibration stage, which applies
offset and multiplication to them, so they may end up even as positive numbers.
Since we can't know if we can trust them or not simply ignore all release
coordinates and just always use the ones from the previous event.
Change-Id: Ib845b5ab1c5b81967cc089d601576893f433fa4a
Reviewed-by: Martin Kepplinger <martink@posteo.de>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
It is not identical to en_US, as we have long claimed.
Fixes: QTBUG-75069
Change-Id: I236adcefdcb4120d2bf5adbcde727c5e3ca13986
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
QCollator was using the default-constructed QLocale() as its default;
this locale's default was the system locale; however, that didn't pay
any attention to system settings for collation such as Unix's
environment variable LC_COLLATE or the MS-Win LOCALE_SSORTLOCALE
configuration option.
Teach the system locale back-ends to look up their relevant settings,
add QLocale::collation() as a channel via which to access that and
change no-parameter construction of QCollator to a separate
implementation (rather than the constructor taking QLocale having a
default) using it.
[ChangeLog][QtCore][QLocale] The system locale now knows what to use
for collation, QLocale::system().collation().
[ChangeLog][QtCore][QCollator] The default QCollator now uses the
system's collation locale, rather than the system locale itself.
Fixes: QTBUG-58621
Change-Id: I90f86621541385330315d1f9d6a4b982bdcea9d5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Create a highdpi pixmap as a source for graphical effects.
Fixes: QTBUG-74963
Change-Id: Ie144df3dbe61421fb28e639e640857aca6e6320f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Up until now, the QShaderGenerator would create temporary variables
for uniform, attributes, const. This change makes it use the global
inputs directly rather than relying on the intermediate properties.
Change-Id: Ia9497367d61e536969fe87536606f309c286dbb2
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
GL2/ES2 expect it to be attribute and not in like later versions of OpenGL.
Task-number: QTBUG-74829
Change-Id: Iddd22386ed315d6e6843d8225e49a4b73b6ad9ba
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Without this change, the target of a symbolic link that points to a UNC
share would include UNC in the target path, and not be correctly made
absolute.
Add a relevant test case, and use the opportunity to factor out the
helper code that creates NTFS symlinks into a function that takes
care of error handling.
The file created with the new test case only gets cleaned up correctly
when passing the file path into QDir::rmdir, which is either way the
right thing to do.
[ChangeLog][QtCore][QFileInfo] Fixed resolving of symbolic links to UNC
shares on NTFS file systems.
Change-Id: I9ba75d627aedf7c4cc289f0cb71088d795d30d8a
Fixes: QTBUG-73688
Task-number: QTBUG-63970
Task-number: QTBUG-30401
Task-number: QTBUG-20791
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Clang-cl couldn't find the header given to it by -FI when it isn't in
any of the included directories.
Additionally clang-cl 8 has a bug with exported templated classes with
inline methods that causes it to have missing symbols at link time. We
work around this.
Fixes: QTBUG-74563
Change-Id: I7becf05fa8edb07bd4cefe12bee3737e5e1dfa14
Reviewed-by: Yuhang Zhao <2546789017@qq.com>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Include many headers that are commonly used now, and avoid listing them
twice.
Change-Id: I679dc24cff2cb3a3c9c18585ec78007ab3550743
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Add Q_FALLTHROUGH, fixing:
qeglconvenience.cpp:267:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
Change-Id: I764a5821f98982bc94ce5dc6a4efa81a431fd369
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Use the PNG format only for transparent images.
Fixes: QTBUG-64322
Change-Id: I5e02132ca446876e20fcf46f2ef8daa599e85e71
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
The logic introduced in 2ea90c56 has an issue: it resets (destroy the
context and co.) upong TLW change even when AA_ShareOpenGLContexts is set,
and that is just wrong and goes against what the docs claim.
Fixes: QTBUG-74307
Change-Id: Ib519045c1d9842664cbe602d4e6425660cf638b5
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
QTableView drew additional grid lines on the top and left side when
the corresponding header was not visible and the ScrollMode was
ScrollPerItem. After 8f2bacea41 they were
also drawn for ScrolPerPixel for consistency. But they are not needed at
all and only create visual artifacts.
Therefore remove the drawing of the additional lines completely.
Fixes: QTBUG-74706
Change-Id: I5c77d53a2eeefab9b9bfe0efea6439f5afede4ac
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
Ctrl+End moves the visual index to the bottom left index. This does not
work correctly when the item in the bottom left is disabled. It should
be fixed with 7863be3115 but does not due
to a typo.
Fix the typo by using the newly calculated visualColumn instead the
initial column.
There are cases where the algorithm still does not work as expected when
there are more disabled items but fixing them would add a lot of
complexity with no (much) gain.
Fixes: QTBUG-72400
Change-Id: Ie90f6b3e41e00f54e826c2b4e7303e85ac1e4115
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
QMetaObject::newInstance returns a QObject, thus it's not possible to
create a new instance of a Q_GADGET using this function. Previously, we
returned a non-null QObject pointer for such scenarios, which then
leads to crashes when one tries to use it. Now, we check whether the
meta object inherits QObject's meta object, and error out early
otherwise.
Change-Id: I7b1fb6c8d48b3e98161894be2f281a491963345e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
The first replacement had missed objective-C++ code some places ourside
the src dir.
In C-files Q_DECL_NOTHROW is replaced with Q_DECL_NOEXCEPT as we still
need to turn it off when compiled in C mode, but can get rid of the old
NOTHROW moniker.
Change-Id: I6370f57066679c5120d0265a69e7e378e09d4759
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Remove the constructors, destructors in favor of member initialization.
Change-Id: I323826328fb783ea2cd931c0e6aad45a98a2ebeb
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Can be used to make smaller binaries, and possibly speed up ARGB32
rendering on some platforms.
Change-Id: I7647b197ba7a6582187cc9736b7e0d752bd5bee5
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Extend the history by a persistent model index list
reflecting the selection.
[ChangeLog][QtWidgets][QFileDialog] The widgets-based dialog now
remembers the selected files when navigating the history
Fixes: QTBUG-71415
Change-Id: I86774439be070c1b922acd0e9a27d029f02f68d3
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
A new 'pointerId' is assigned to the stylus every time it enters
tablet's proximity. But applications expect this ID be constant,
at least during one application run. Therefore, it needs to use
'sourceDevice' instead.
Basically, WinInk doesn't have an ability to distinguich two
different styluses connected to the same tablet. We cannot do
anything about it, it is supported only in WinTab.
Task-number: QTBUG-74700
Change-Id: I8328f1e5102b037b370082e69e965ab68b487882
Reviewed-by: Andre de la Rocha <andre.rocha@qt.io>
The central loop starts by reading five bytes; but
the loop condition only checked that four were available.
Change-Id: I244cecacabeffbac10ad94081f32847f912d95d9
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: hjk <hjk@qt.io>
When installing directories, QINSTALL must not ignore contained hidden
files to be consistent with the old INSTALL_DIR.
Fixes: QTBUG-66835
Change-Id: I3a7c952dcac9732d5b17c5a258f87ca277b388d2
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
/GM at one point apparently was set by default for debug builds. However,
nowaways it's officially deprecated and even generates a warning in
Visual Studio 2019; so we don't have to 'unset' it specifically anymore.
Change-Id: I5b9b93c058c2ee8a5e025da43251d3859acbe061
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
The comment hints that it's fixing an issue in Visual Studio 2013, which
we don't support anymore.
In all supported Visual Studio Versions -Gm is actually deprecated
anyhow, and not set anymore by default. So I guess it's safe
to remove the special handling here.
Change-Id: I2e8ff85350ba651d9a763aabba7b6494ba88d82e
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
qprintengine_win.cpp(1117,14): warning: comparison of two values with different enumeration types in switch statement ('QPrint::DuplexMode' and 'QPrinter::DuplexMode') [-Wenum-compare-switch]
case QPrinter::DuplexShortSide:
Change-Id: Ib5028d80ecf7f6bb9eb0562e5c137acfeb709a14
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
This patch updates the code from the deprecated QRegExp class to
QRegularExpression.
Task-number: QTBUG-25485
Change-Id: I946790f50c6b14787bca31771de5e3a0d5fefe4c
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This reverts commit bcd2fa484a.
There was a report that this caused infinite recursion on some
systems, so we revert it for now and re-add it later when the
issue has been resolved.
Task-number: QTBUG-74983
Change-Id: I747e0437232d72d7a87eb602b10fa09c7130ce8f
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Leads to a huge loss of context for people trying to understand
and maintain that code. Replacing with proper types to ensure
better readability and maintenance.
Change-Id: I9900b743e8b7fe11bcc7db9ce3191c89f8718afc
Reviewed-by: Mike Krus <mike.krus@kdab.com>
to test different h2 modes: "h2c" (clear text with protocol upgrade),
"h2" (encrypted, negotiating via ALPN extension), "h2-direct" (encrypted,
no ALPN), "h2c-direct" (plain text, no protocol upgrade). This patch-set
is an amendment to the recent fix in the protocol handler where we were
crashing in "h2c-direct" mode.
Change-Id: I3ff5ed1396a59b72b59a95f927d404ccd202d0b8
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
We were using low precision dx/dy for calculating the starting point which
meant we could be off when clipping at high scale factors.
Fixes: QTBUG-60782
Change-Id: I883f9aed1346fdffae070b6316ea808b83519701
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
Updated to https://github.com/thiagomacieira/tinycbor commit
ac9369d8ec8511bc7516266ae6b07f7da860c954.
Fabrice Fontaine (1):
fix undefined encode_half in json2cbor
Pedro Oliveira (1):
Fixed minor error in the example code.
Svyatoslav Phirsov (2):
Typo fixed in stdlib fread(...) usage
typo in dumprecursive return type
Thiago Macieira (9):
Install the tinycbor-version.h header.
Update version number for a possible but unlikely 0.5.3 release
Fix#137: off-by-one error in UTF-8 decoding
Update Travis CI to Ubuntu Xenial
Pretty: fix use of uninitialised variable
Validation: fix out-of-bounds access when content ends in a string
Parser: apply the same memory-check update
Tests: remove useless comment
Tests: Catch an earlier QCOMPARE failure in compare()
phirsov (6):
Fix off-by-one causing buffer overflow in open_memstream
Protect macro argument expansion using parentheses
eliminating misleading messages in case .config file not yet created
Run check silently in Travis
Make AppVeyor test suit run silent as in Travis
enhancement #149 implemented: access half-precision floating point data as single float
Change-Id: I9e3d261ad9bf41cfb2b6fffd159088f1cc9b3b02
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
The test changes the current directory to the test directory
in fromUserInputWithCwd(), but did not restore it, causing:
Totals 898 passed, 0 failed, 1 skipped, 0 blacklisted, 368ms
********* Finished testing of tst_QUrl *********
QTemporaryDir Unable to remove "C:\\TEMP\\tst_qurl-ryVxqu" most likely due to the presence of read-only files.
Restore the old directory at the end to fix this.
Change-Id: I62669868f3c6d97dd38ebac76515428c14b7e1e7
Reviewed-by: David Faure <david.faure@kdab.com>
Move the code returning whether a popup should use the full
screen to QStylePrivate and use for QMenu and QComboBox.
Task-number: QTBUG-73231
Change-Id: I1901ecedfa90edf16329ce3b13ef4abea5ab44e8
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>