Commit Graph

43 Commits

Author SHA1 Message Date
Marc Mutz
8eb4d52342 Port from qAsConst() to std::as_const()
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: I88edd91395849574436299b8badda21bb93bea39
Reviewed-by: hjk <hjk@qt.io>
2022-10-07 13:47:53 +00:00
Tim Jenssen
964f539e55 Merge remote-tracking branch 'origin/8.0' into 9.0
resolved conflicts:
* doc/qtdesignstudio/src/developers/studio-designer-developer-workflow.qdoc
* src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp
* src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp
* src/plugins/qmldesigner/components/navigator/choosefrompropertylistdialog.cpp

and compile fix in materialbrowserview.cpp

Change-Id: I686e7e93ded8ac1afc792942ded47cd9fe4341ed
2022-10-04 13:44:42 +00:00
Mahmoud Badri
dbbed3dc68 QmlDesigner: Fix property groups missing on new project creation
Fixes: QDS-7469
Change-Id: I97809f1e143e92374c72e9fc58f2440742cbcc71
Reviewed-by: Samuel Ghinet <samuel.ghinet@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Ali Kianian <ali.kianian@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-10-04 11:31:45 +00:00
Mahmoud Badri
395e40b8f3 QmlDesigner: Allow dropping bundle materials to Navigator
Fixes: QDS-7844
Change-Id: If3c58f82797beabe76baf99ea2dddc59032729df
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-09-30 12:08:55 +00:00
Miikka Heikkinen
5da5830fa7 QmlDesigner: Fix dragging material from bundle to camera/light
Added check that target node is actually a model when applying material.

Fixes: QDS-7843
Change-Id: I6e165280c8b79ebbf8316861fe0eb9b947eac3be
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-09-30 11:15:00 +00:00
Miikka Heikkinen
d238c50399 QmlDesigner: Store current value at material property copy
Now we store the current value of copied properties at copy time
instead of just storing a reference to copied property. This ensures
we paste the correct value.
When copying all properties, properties set by base state,
current state, and active timeline are copied.

Fixes: QDS-7804
Change-Id: Id6315dde96b30304fde007a87da578faaab43233
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-09-30 09:03:56 +00:00
Miikka Heikkinen
07ab73fe7f QmlDesigner: Disable paste option for the original material
Fixes: QDS-7526
Change-Id: Ifdc220685a4881dc3a397d9148022b9be7b5032a
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-09-27 08:51:21 +00:00
Eike Ziller
7eaa36e6e5 Merge remote-tracking branch 'origin/8.0' into 9.0
Conflicts:
	src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp
	src/plugins/qmldesigner/designercore/imagecache/meshimagecachecollector.cpp

Change-Id: I38f196e8f42cf11f7b613e7a723745600e35c5e9
2022-09-27 10:03:37 +02:00
Miikka Heikkinen
945e6fce31 QmlDesigner: Fix copying material property default values
When copying specific set of properties, old values need to be cleared
just like in case of copying all properties to ensure also default
values get copied.

Fixes: QDS-7522
Change-Id: I314ff70b6e611bec3f662b86f964d789618c1df7
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-09-26 12:13:23 +00:00
Marco Bubke
1d9c7e071e QmlDesigner: Use new validation approach in material browser
Many validation tests can now be skipped.

Task-number: QDS-7454
Change-Id: I01c37ff9747260940400043d2a0e39bb2700ee5b
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-09-26 08:50:36 +00:00
Marco Bubke
0be4de69d8 QmlDesigner: Remove parent from abstract view
We apply not very often the parent to views. So it can lead to dangling
pointer if the parent is used by other objects and does not handle the
null pointer case. It can lead to double deletion if the parent is
deleted before the object when it is on the stack or handled by smart
pointer.

If you really want to use it there is still setParent.

Change-Id: I1fc6b145a50f037a0e9d415fb36e7970ea7296ed
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2022-09-22 19:08:12 +00:00
Mahmoud Badri
1664a5f4e2 QmlDesigner: Remove "Material" word from the bundle material instances
TO save space and make material names clearer.

Change-Id: I1cea8787ca03a37adca6e4a0f352732d50bc1b40
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-09-22 13:43:45 +00:00
Mahmoud Badri
70c4acae67 QmlDesigner: Avoid duplicate bundle material instance creation
When apply a material from the material bundle directly to a model in
the 3D scene, check frist if there is an existing material that has no
properties set, if so apply it instead of creating a new instance.
Also few tweaks.

Change-Id: I4ddadfd84442164b671645af5e4f5d9e8dcb7cb0
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-09-22 13:31:17 +00:00
Eike Ziller
3011548066 Merge remote-tracking branch 'origin/8.0'
Conflicts:
	src/libs/utils/deviceshell.cpp
	src/plugins/clangcodemodel/clangdclient.cpp
	src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp
	src/plugins/remotelinux/linuxdevice.cpp

Change-Id: Idc2edf428c98e9cbc891f1833b271ce2def9a835
2022-09-21 11:16:29 +02:00
Mahmoud Badri
d9f07e95b5 QmlDesigner: Implement material bundle frontend
Fixes: QDS-7500
Change-Id: I60c512bb7664d13160f8c58ce063e1e87b6875ee
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-09-20 12:30:47 +00:00
Marco Bubke
da36459759 QmlDesigner: Refactor isSubClass
IsSubClass is renamed to isBasedOn and takes now NodeMetaInfo as a
parameter. But for most cases there are is... functions as short cut.
The model is providing shortcut NodeMetaInfos too. This is done in the
sake of caching.

Task-number: QDS-7445
Change-Id: Iff2dea66e253b412105427134bd49cb16ed76193
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2022-08-26 15:02:24 +00:00
Lucie Gérard
a7956df3ca Use SPDX license identifiers
Replace the current license disclaimer in files by
a SPDX-License-Identifier.

Task-number: QTBUG-67283
Change-Id: I708fd1f9f2b73d60f57cc3568646929117825813
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2022-08-26 12:27:18 +00:00
Eike Ziller
c6c92ec096 Merge remote-tracking branch 'origin/8.0'
Conflicts:
	src/libs/qmljs/qmljsmodelmanagerinterface.cpp
	src/plugins/clangcodemodel/clangdclient.cpp
	src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp
	src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp
	src/plugins/qmldesigner/designercore/include/modelnode.h
	src/plugins/qmldesigner/designercore/model/modelnode.cpp
	src/plugins/qmldesigner/designercore/model/rewriterview.cpp

Change-Id: I93c57879b79f27325321bfc045ca618bd835af93
2022-08-26 08:40:23 +02:00
Mahmoud Badri
86d1526564 QmlDesigner: Fix propertyGroups.json warning for 2D projects
Load property groups file only if Quick3D import exists

Change-Id: Idf7b95cb4efa34dde6196964e5e2cbad54341193
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-08-22 13:23:27 +00:00
Eike Ziller
64247bf571 Merge remote-tracking branch 'origin/8.0'
Reverts/comments out parts of 45f93a817a,
which needs to be resolved in a follow-up commit.

 Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri
	share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qt5informationnodeinstanceserver.cpp
	src/plugins/clangcodemodel/clangmodelmanagersupport.cpp
	src/plugins/cmakeprojectmanager/cmakesettingspage.cpp
	src/plugins/python/pythoneditor.cpp
	src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp
	src/plugins/scxmleditor/common/colorsettings.cpp

Change-Id: I7f0f7b7120e75a9fc3a8886bc57c17345cbb501b
2022-08-19 12:48:27 +02:00
Mahmoud Badri
2d86c290ce QmlDesigner: Implement copying specific material properties section
Change-Id: I34bed00c89018e86941c4e5a7ddeae44c06f850d
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-08-18 15:11:18 +00:00
Miikka Heikkinen
326f70c40f QmlDesigner: Add support for component materials
Component materials can now be seen on material browser and their
properties are properly shown on material editor

Fixes: QDS-7390
Change-Id: I3f7edfe655bdb0da1fa71739c825d09d6101c386
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-08-18 11:10:42 +00:00
Miikka Heikkinen
2e8574bd76 QmlDesigner: Add scene root material support to material editor/browser
If the scene root item is Material subclass, material library is not
created for the scene. Material editor and browser functionalities that
relate to having material library are disabled.
Material editor will always show the material that is the scene root.

Fixes: QDS-7374
Change-Id: Icd1c212c17b59e4a2caa6b3b4d7e615e68b21eb9
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-08-18 11:10:04 +00:00
Mahmoud Badri
d4cc3fddc9 QmlDesigner: Implement copy/paste material properties
Fixes: QDS-7014
Change-Id: I2a8b779f97de353836a4d506b715720b490c349f
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-08-18 09:12:10 +00:00
Mahmoud Badri
ec565eea99 QmlDesigner: Allow deleting materials using the delete action
Fixes: QDS-7012
Change-Id: I5eb03971d33a997fc1463ec4ee70eb33a730a897
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2022-08-17 13:11:58 +00:00
Miikka Heikkinen
45f93a817a QmlDesigner: Add environment and model selectors to material preview
The model and the scene environment used to render material previews
can now be selected via buttons next to the preview in material editor.

Task-number: QDS-7347
Change-Id: I03089029e8420f80ed65be1c7b7a1ce4581f2fd4
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-08-11 13:33:59 +00:00
hjk
8a44294821 Merge remote-tracking branch 'origin/8.0'
Change-Id: Iea4fd2949f5d5345802e2e7d9283d72c6c55f69f
2022-08-03 10:52:13 +02:00
Miikka Heikkinen
bd6735621c QmlDesigner: Clear material browser model on model detach
If browser model is not cleared, subsequent project open may crash.

Fixes: QDS-7194
Change-Id: Ic897086c8da1f774ff035af9e2bcaa378bff3af5
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-08-01 11:41:18 +00:00
Marco Bubke
9faf6d0826 QmlDesigner: Adapt to C++ 17 [[maybe_unused]]
It has the advantage to to move the attribute to the declaration instead
of using a workaround.

Change-Id: I08b712f146a0625d0367657c31d6c1e5f7caec41
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2022-07-11 09:29:52 +00:00
Tim Jenssen
56bcad81ad Merge remote-tracking branch 'origin/7.0' into 8.0
Change-Id: I7cd5d3808007ef739212f4347ba9b16e7b298943
2022-07-01 09:22:10 +00:00
Miikka Heikkinen
73af75fe68 QmlDesigner: Fix crash in material browser
Task-number: QDS-7191
Change-Id: I9542a227aeb3f462ff3572e9a07a7473f98bfa61
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2022-06-28 09:55:39 +00:00
Miikka Heikkinen
a627d43d39 QmlDesigner: Fix crash on mode change
Added model pointer validity checks into a few places.

Fixes: QDS-7191
Change-Id: I94beb134f4d9a0b1c7fc9dc87da1d02ad255beaa
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2022-06-27 08:20:21 +00:00
Miikka Heikkinen
62f34622df QmlDesigner: Improve puppet reset handling in material browser
Ensure just one reset call for cases where multiple materials are added
at once, and detect reset completion from root instance completion
notification instead of reset trigger notification, as it comes later
and catches all puppet reset cases.

Fixes: QDS-7119
Change-Id: I99baa718bd1c85b4581f07ce75193213110e8e96
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-06-22 08:49:21 +00:00
Miikka Heikkinen
604342c3af QmlDesigner: Add some delays to material browser refreshing
Import change causes puppet to reset, so bit of delay is needed there
before triggering material browser refresh.
Also added similar delay to refresh done at model attach as it seems
puppet reset can sometimes be triggered after attach as well.

Fixes: QDS-7172
Change-Id: I47f7af54e55af074fb2b9e8cdb9e78fb051a16cc
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-06-22 08:48:54 +00:00
Miikka Heikkinen
221376aa38 QmlDesigner: Reset puppet when material is added
This is workaround for material rendering issues in quick3d when a
material is shared by multiple windows.

Fixes: QDS-7096
Fixes: QDS-7118
Change-Id: I64fe2e51c5dda8e238502e5d926b6938b7b0731a
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2022-06-16 13:54:41 +00:00
Eike Ziller
84ff5eb169 Merge remote-tracking branch 'origin/7.0' into 8.0
Change-Id: Ib669e2e993c4675a7382f721ccb7d6ecff11fc20
2022-06-07 10:28:37 +02:00
Mahmoud Badri
e1bb5d058d QmlDesigner: Mark unused params in material editor and browser
Change-Id: I5d1e2dcd340e766f829fe78edb63dfa8beacfa78
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-06-02 08:50:26 +00:00
hjk
a33594fa76 QmlDesigner: Sprinkle code with Q_UNUSED
Less noise when compiling.

Change-Id: I7cac44912d5d5165f25ce411db6c6de486688c45
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-05-30 14:50:42 +00:00
Eike Ziller
09efabaf89 Merge remote-tracking branch 'origin/7.0' into 8.0
Change-Id: I3780a56c1e02c2e98028aaf02b54733c6f222498
2022-05-30 14:14:04 +02:00
Mahmoud Badri
0b51afe21d QmlDesigner: Implement "duplicate material" feature
Fixes: QDS-7013
Change-Id: I28a11dbd9d6586631c0edcf8003e551917eaac98
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Samuel Ghinet <samuel.ghinet@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2022-05-27 11:20:48 +00:00
Eike Ziller
82ee8baad8 Merge remote-tracking branch 'origin/7.0'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri

Change-Id: I254066f8be63cb5b15650ef2a470206db56de026
2022-05-25 11:42:13 +02:00
Mahmoud Badri
71e553f497 QmlDesigner: Disable apply material to selected when no selection exist
When there is no valid model selected, disable the "apply to selected"
actions in the material editor and browser.

Change-Id: Id8e771c64e69c0ba2f42dff01d19ffbf4afafb77
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2022-05-24 13:01:20 +00:00
Mahmoud Badri
f09d4538e7 QmlDesigner: Implement Material Editor
Task-number: QDS-6438
Task-number: QDS-6439
Change-Id: I04e899a68aea665f0df8b65e21523632174ec76b
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Samuel Ghinet <samuel.ghinet@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2022-05-23 16:44:02 +00:00