Commit Graph

80529 Commits

Author SHA1 Message Date
Jarek Kobus
e7b1561cc7 CorePlugin: Don't leak actions for options
Amends d86a67e0bc

Change-Id: I45703f4fbc018f1f30375e578aa6c55815db902b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-11-02 14:37:24 +00:00
Jarek Kobus
3bfebea981 LocatorWidget: Don't leak m_centeredPopupAction
Amends d3354d1999

Change-Id: I9cd308c83300928e8dafade291ee4559f885ab5f
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-11-02 14:35:39 +00:00
Sivert Krøvel
8fa0c2c390 McuSupport: Implement support for parsing path type from json
The json kit files have an entry named "type" which is intended to
specify whether a specific path points to a file or a directory (or
something else). Until now, this entry has not been handled and all
lineEdits expect a path, thus appearing red in the UI if supplied with
a file. With this patch, support for the type "file" is added, with the
possibility to support further types in parseLineEditType.

Currently, only File and ExistingDirectory are supported, with the
latter being used by default whenever no "type" entry is specified.

Task-number: UL-6610
Change-Id: I252d4eff76d4a11b92ce55a0c0964446072e48c1
Reviewed-by: Daniele Bortolotti <daniele.bortolotti@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-11-02 14:00:36 +00:00
Thomas Hartmann
73cdb6239d QmlDesigner: Show Effect wizard only in enterprise version
Change-Id: If0c99beec083514ed5c531bb7a67cd7a392c3108
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2022-11-02 12:44:56 +00:00
Jarek Kobus
2c04c644d0 TreeScanner: Pass a copy of filter and factory into async call
Otherwise, m_filter and m_factory may be used from 2 threads
at the same time, what is not thread safe (setFilter() /
setTypeFactory() from caller thread, and copy of m_filter and m_factory
inside async call body).

Change-Id: Ic322870f9c27de10c5c51082cfbb85c729326993
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-11-02 10:40:28 +00:00
Henning Gruendl
118d9d43d2 QmlDesigner: Rename default state group
Rename default state group from "Root" to "Default".

Change-Id: I69527218f38fcfaf0ceb56ce211ffddeca7fae3f
Reviewed-by: Pranta Ghosh Dastider <pranta.dastider@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2022-11-02 10:38:32 +00:00
Ali Kianian
e979579af5 QmlDesigner: Add Edit Component Action to 3d context menu
Edit Component action is added to the context menu of the Edit3DWidget

Task-number: QDS-8063
Change-Id: I99983004c3816b1230169300ccdf2c3c92f07cd0
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-11-02 10:32:12 +00:00
Marcus Tillmanns
c86b86b254 Help: Remove duplicate results
Workaround for QTBUG-108131

Change-Id: If3de18249fe11b753323c5375559d5ffd0ef0673
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-11-02 09:50:23 +00:00
Jarek Kobus
9a79e530c8 GenerateResource: Avoid code repetition
Change-Id: If8c8702abde23607582a37e4b72ac51c162326e4
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2022-11-02 07:10:35 +00:00
Thomas Hartmann
b1c48a27c0 QmlDesigner: Move effect wizard to qmldesigner/studio_templates
This is the folder QDS looks for the wizards.

Change-Id: Id69f50f48eeb4668dff2840a36149408e0709a06
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2022-11-01 19:14:08 +00:00
The Qt Project
648fe3160f Merge "Merge remote-tracking branch 'origin/8.0' into 9.0" into 9.0 2022-11-01 15:48:26 +00:00
Yasser Grimes
71ae73119e McuSupport: Support globbing in default paths
With this change default paths containing globbing characters will be
expanded to an available path.
example:  "sdk-*" will be replaced with "sdk-1.2.3" if the latter is
available.

To test the wildcards and make sure it works with QtCreator macros
a fake_kit was added containing fake packages.

Task-number: QTCREATORBUG-26900
Change-Id: I31440d24e42a6170fc5f1905f884bb3be43c57bc
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-11-01 15:11:14 +00:00
Ali Kianian
3897d917e2 QmlDesigner: Add camera-view align actions to 3d context menu
The following items are added to the context menu of the 3d editor:
    1. Align Camera to View
    2. Align View to Camera

Task-number: QDS-8063
Change-Id: I7b5b966aba2b5e96b7cd4d8a88cf4e7db8cdc0ac
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Samuel Ghinet <samuel.ghinet@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-11-01 15:04:39 +00:00
Thomas Hartmann
0dfd2a2b09 QmlDesigner: Reactivate nodeinstance cache
Reactivates the node instance cache and fixes update issue.
The formeditor relied on instanceInformationsChanged being
emitted after attach. The cache is setting the values already
before the attach, so instanceInformationsChanged was never called
in this case.

Task-number: QDS-7642
Change-Id: Ibeb687c7483905e7df97e4342a6c8542b66b7ab0
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
2022-11-01 14:58:40 +00:00
Miikka Heikkinen
9c3df49ca8 QmlDesigner: Fix memory leak in 3D view context menu handling
Change-Id: Id0521945a8c29019000d41ffee7724336029c96e
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-11-01 14:49:20 +00:00
Eike Ziller
b402f35481 Merge remote-tracking branch 'origin/8.0' into 9.0
Conflicts:
	doc/qtcreator/src/qtquick/qt-design-viewer.qdoc
	src/plugins/qmldesigner/components/assetslibrary/assetslibrarywidget.cpp
	src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp
	src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp
	src/plugins/qmldesigner/components/navigator/choosefrompropertylistdialog.cpp
	src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp
	src/plugins/qmldesigner/designercore/model/abstractview.cpp
	src/plugins/qmldesigner/designercore/model/import.cpp
	src/plugins/qmldesigner/designercore/model/model_p.h
	src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp
	src/plugins/qmlprojectmanager/qmlproject.cpp

Change-Id: I4236bf0da9306abf201f4679259e72dd7c1eddbe
2022-11-01 15:38:49 +01:00
Daniele Bortolotti
e16a5c8d0e McuSupport: Update test json headers for TraveoII board
Reflect changes in QUL repo that allow for correct SDK and GHS compiler
version detection.

Change-Id: Ibc54f45ef214227db5681c33b3278dc52f5bdde6
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Sivert Krøvel <sivert.krovel@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-11-01 13:56:48 +00:00
Daniele Bortolotti
7fa756663c McuSupport: update default MCU project template (qmlproject)
The QmlProject example template is too small for high-resolution
displays, so remove hardcoded width, height and increase font size.

See: QTCREATORBUG-28159

Change-Id: I67a02c2ffe8d6e54f633f1061062459ecaac0e56
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Rainer Keller <Rainer.Keller@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-11-01 13:56:12 +00:00
Tomi Korpipaa
02f7c9c3eb Import QQEM effects via drag or add button
Be able to add effects using file system drag&drop or using the add resource button

Task-number: QTBUG-100626
Change-Id: I33c3ebe29797325a2ed1819bd867e97ae3f8b61c
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-11-01 12:55:28 +00:00
Eike Ziller
de88d1c437 QML: Use qtcEnvironmentVariable* instead of qEnvironmentVariable*
And instead of qgetenv.
Takes Qt Creator's setting at "Environment > System > Environment" into
account, which makes it easier on some platforms to set them (e.g.
macOS), can be configured differently in different settings paths, and
potentially can be changed at runtime (depending on usage).

Change-Id: I46378cc1aab44211cdc326afc5fabc78bf4b36a3
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-11-01 11:57:27 +00:00
Sivert Krøvel
f06958f908 McuSupport: Add more missing detection paths to test jsons
Sync test jsons with board jsons from qul repo. Add detection path to
JLink package creation test case.

Change-Id: I0a19e53c16fd83ec3cf4bf414c7027bf9eab6eb9
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Daniele Bortolotti <daniele.bortolotti@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-11-01 10:52:18 +00:00
Miikka Heikkinen
b6e8fd3e91 QmlDesigner: Remove bundle import after last component is unimported
Fixes: QDS-8120
Change-Id: Ia544b041347108dbdbe609333c51cc318ba8852c
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-11-01 09:32:46 +00:00
Daniele Bortolotti
75a53bf2b4 McuSupport: Improve wizard descriptions
Change-Id: I964c58e519beb3f9816e5b95c052acc22d73f4b7
Reviewed-by: Rainer Keller <Rainer.Keller@qt.io>
Reviewed-by: Sivert Krøvel <sivert.krovel@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-11-01 09:31:37 +00:00
Rainer Keller
2da68d4108 McuSupport: Only expand variables from the same target
There are multiple packages in different targets that share the same
variable name (eg. QUL_BOARD_SDK_DIR). Registering all packages into the
same macro expander will make these packages overwrite the variables from
other packages.
The macro expander should only use packages included in a specific target
to expand values from (plus the global ones).

Change-Id: Ia2568696a54e48e4e77f81a9bb1a844f2910bb8d
Reviewed-by: Yasser Grimes <yasser.grimes@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-11-01 08:58:43 +00:00
Rainer Keller
e558fc4d1f McuSupport: CMake expects programmer path to include the bin folder
Change-Id: I193dc5d30abfa50830ca93c61af8eeb985fe9c4f
Reviewed-by: Daniele Bortolotti <daniele.bortolotti@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-11-01 08:58:02 +00:00
Rainer Keller
b23d066f9d McuSupport: Remove ASM_MASM from CMake project languages
This was never required and was added to the list by accident.

Task-number: UL-5875
Change-Id: I7957d49e9c87da91a81a363185f11e8331c650c3
Reviewed-by: Daniele Bortolotti <daniele.bortolotti@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-11-01 07:46:41 +00:00
Eike Ziller
6e8087a1b1 macOS: Fix missing "Search" item in help menu
Define the menu as the help menu directly in the the NSApplication,
since the OS built-in heuristics based on the menu name easily fails.

Fixes: QTCREATORBUG-24751
Change-Id: I9aa50a46099e295ec0c38ee8a9e88d75d41c74ad
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-11-01 07:28:26 +00:00
Marcus Tillmanns
c1a247e7c1 ProjectExplorer: Sort ABI selector boxes
Fixes: QTCREATORBUG-28332
Change-Id: I9e322340d5f01c03f33535e10b042009ae1687bc
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-11-01 05:29:03 +00:00
Miikka Heikkinen
33602af185 QmlDesigner: Fix crashes on mode change
Fixes: QDS-8129
Change-Id: Iea76157c58f663244e8fd8de8ea26392d2b49b43
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2022-10-31 15:36:07 +00:00
Eike Ziller
d9503cdf89 Fix lupdate error
GenericTransferImpl doesn't have a translation context and RemoteLinux
was changed to Tr::tr anyway.

Amends b323303518

Change-Id: I048cae28684e223ab1547a5e07d1aaf9bb46c73e
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2022-10-31 15:11:12 +00:00
Daniele Bortolotti
eb0649ba05 McuSupport: Enable os-specific executable version detection
Currently version detection fails in either Linux or Windows based on
the content of versionDetection.filePattern in the json kit file.

This change enables os-specific filePattern fields:

"versionDetection": {
    "filePattern": {
        "windows": "bin/arm-none-eabi-g++.exe",
        "linux": "bin/arm-none-eabi-g++"
    }
    "executableArgs": "--version",
    "regex": "\\b(\\d+\\.\\d+\\.\\d+)\\b"
}

Simply appending the binary extension with withExecutableSuffix()
is less portable and does not reflect the validationPath field.

For McuPackageDirectoryEntriesVersionDetector and
McuPackageXmlVersionDetector to work correctly, they rely on
filePattern not having os-specific fields.

Also make getOsSpecificValue and parseVersionDetection static.

Change-Id: Ieacf376126043d732eeb5d5a2f4125963022ae76
Reviewed-by: Sivert Krøvel <sivert.krovel@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-10-31 15:10:31 +00:00
Ali Kianian
af9ec8d20a QmlDesigner: Add Copy to 3d Context Menu
Copy action is added to the context menu of the Edit3DWidget.

Task-number: QDS-8063
Change-Id: I8d5c9eeadfeac827012b175fa12c05ef7f31c9f4
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-10-31 13:59:23 +00:00
Orgad Shaneh
3533392d95 ProjectExplorer: Remove redundant return in CustomToolChain
Amends c15e09e0fe.

Change-Id: Ic1aabcada892413f454c3800c925aa7527a09965
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2022-10-31 13:46:04 +00:00
Orgad Shaneh
73113519cf QbsPM: Simplify toolchainList
Change-Id: I0b683e72130a0a9fdfb09ce9257f315b9d25a734
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2022-10-31 13:46:00 +00:00
Miikka Heikkinen
c55ac53f3c QmlDesigner: Hide bundle materials from components view
Fixes: QDS-8121
Change-Id: I1a6d316f5f48b7f57bbe48742728d14a3c90dca9
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-10-31 12:57:42 +00:00
Marco Bubke
885268a3af QmlDesigner: Optimize ModelPointer size
https://www.nextptr.com/question/qa1366990479/unique_ptr-with-custom-deleter
shows how we can provide an std::unique_ptr without any overhead.

Change-Id: I8b32799f421351659a245e2e3775b901afb09b3e
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Aleksei German <aleksei.german@qt.io>
2022-10-31 12:45:05 +00:00
Alessandro Portale
ce89ee59c5 Translations: Remove duplicates
Amends: 698583dc01

Change-Id: Ia3dfa1743b9959c85cd09b59c3ca08b82c18fa0e
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-10-31 10:32:20 +00:00
Jarek Kobus
9d8106e54a TerminalProcess: Fix stopping the terminal
Fixes 30 seconds freeze when stopping the terminal
during debugging (when being interrupted on some
breakpoint).

Fixes also the freeze on closing the preferences
dialog after opening the remote shell via
"Open Remote Shell" and keeping it open.

Fixes: QTCREATORBUG-28365
Change-Id: I15dfd9cba02d03e0ba65878c5285ea8cc96d8aad
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-10-31 10:29:09 +00:00
Orgad Shaneh
c9f39972cd More change log
Change-Id: I248425c35d1a2aed46dc637aaf3dc18a36c560c1
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-10-31 08:56:40 +00:00
Leena Miettinen
d173f532c7 Doc: Describe conditions for automatically finding ccache on macOS
Task-number: QTCREATORBUG-27876
Change-Id: I01f671c3f2b36e97c56ce3649ef5ab38d1a067c3
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-10-31 08:47:05 +00:00
Eike Ziller
da364bd4df Translations: Add targets that update translations without the cruft
Without obsolete and vanished translations, and files and line numbers.
Which is what we would in the end submit into the repository.

run with `cmake --build . --target ts_<lang>_cleaned`

Change-Id: If5b73f19d8fc7b49bcf95fbeb0b0ff7793056cca
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-10-31 08:46:43 +00:00
Leena Miettinen
18553f051c Doc: Remove \if defined statements from files not used in QDS
Change-Id: Ib6c3bf5a89faab97fd28b47e033925c2f4f30f55
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
2022-10-31 07:38:50 +00:00
Thiago Macieira
836d964a9d Utils: fix build with implicit QPrivateSignal
Commit fcd294a9ec2a17b3512d03e84ae3560d7fcd3f74 in qtbase made
QPrivateSignal constructors explicit. You have to spell it out.

locatorfilter.cpp:71:25: error: converting to ‘LanguageClient::DocumentLocatorFilter::QPrivateSignal’ from initializer list would use explicit constructor ‘constexpr LanguageClient::DocumentLocatorFilter::QPrivateSignal::QPrivateSignal()’

Change-Id: I07ec23f3cb174fb197c3fffd1721f899ae46f8cb
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2022-10-28 23:46:26 +00:00
Robert Loehning
d063e21c2e SquishTests: Update and stabilize tst_HELP06
Change-Id: I1d97a550c9b63b8b04f0bd32d23c5bf249b6ccc5
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-10-28 13:50:07 +00:00
Christian Kandeler
3c61470cb8 CppEditor: Consider project part language
... when creating compiler command line for header files.
In particular, make sure we do not use "objective-c++-header" for
Objective-C headers in a C project part.

Fixes: QTCREATORBUG-28368
Change-Id: I1e5067a939e037df53a318af2b15dec7295fcd46
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-10-28 13:23:37 +00:00
Christian Stenger
267bfdb0f9 Adapt to upstream change
Change-Id: I486cae994d432acafb7a882688933e7e85b51a2e
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2022-10-28 13:07:28 +00:00
Daniele Bortolotti
4bf8031944 McuSupport: Update test json files
Match recent changes in QUL repository.

Change-Id: Ib00f829a5a866dfc1a76c581c71e1338b29c214d
Reviewed-by: Sivert Krøvel <sivert.krovel@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Yasser Grimes <yasser.grimes@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-10-28 12:29:32 +00:00
Yasser Grimes
7938a8a80f McuSupport: Store macros as part of McuSdkRepository
To support extending the macros and calling the
McuTargetFactory::expandVariables function statically, the macros are
added as part of the SdkRepository.

This commit also adds helper functions to extend macros other than the
ones created from the packages.

Change-Id: Ie7d2a9ad626782eec18738bdd3472ffd202e7a36
Reviewed-by: Rainer Keller <Rainer.Keller@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-10-28 11:57:37 +00:00
Sivert Krøvel
a08c49b321 McuSupport: Fix version warnings
Packages without version detection should not get a version warning,
even if the json contains a version list. With this change, a package
without version detection will not get a status with invalid version.

Additionally, in the case of failed version detection, it would be
helpful for the user to list the acceptable versions. The status text
was updated to list these.

Change-Id: I814a86c741d573732072206ef1e969790f175e6a
Reviewed-by: Yasser Grimes <yasser.grimes@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2022-10-28 11:50:46 +00:00
Christian Kandeler
eabf13b478 Update qbs submodule to HEAD of 1.24 branch
Change-Id: I3a991428981c95abd92a7e95f70aac5d3f008b7a
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Ivan Komissarov <ABBAPOH@gmail.com>
2022-10-28 10:11:47 +00:00