Commit Graph

94 Commits

Author SHA1 Message Date
Tim Jenßen
feabda3aa7 Merge remote-tracking branch 'origin/10.0' into qds/dev
bigger conflicts resolved at:
  src/plugins/qmldesigner/CMakeLists.txt
  src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp

Change-Id: I08e2a109d8e37cbd77225129854e9e633725bfc7
2023-03-26 16:26:18 +02:00
Mahmoud Badri
0e4e82d7aa QmlDesigner: Allow selecting a material at idx via a custom notif
Will be used for opening material editor from a material row in a
Quick3DModel's properties sheet.

Task-number: QDS-9408
Change-Id: Ia23703c2c1ffb6bd4a17db27b415dbabb2a0c642
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2023-03-16 10:22:13 +00:00
Mahmoud Badri
d7c57bef32 QmlDesigner: Organize includes in material browser classes
Change-Id: I4d0630553a4fd61a6d7ca45cc1c0fbe6eb896fa6
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-03-10 14:02:01 +00:00
Mahmoud Badri
27e2823591 QmlDesigner: Automatically determine if CreateTexture needs import
Avoid having to pass to CreateTexture whether the asset needs importing
or not. Instead check if the asset is already inside the porject or
not. Also small relevant tweaks.

Change-Id: I6a449d76a6b70ab34fe81762fc9e3eacf9b64d04
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2023-03-10 10:16:55 +00:00
Mahmoud Badri
a77ae66ace QmlDesigner: Implement dragging an image to a material
Fixes: QDS-9269
Change-Id: Ia71d87773e6acce6659a30985d77d848feea0a89
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2023-03-07 10:16:35 +00:00
Miikka Heikkinen
c78c4817cd QmlDesigner: Fix asset drag to material browser
Drag now correctly accepts only assets that can be used as textures.

"selected_texture_changed" custom notification was used in two
semantically slightly different cases, both to indicate selected
texture had changed and that selection should change, which was little
confusing. Split the two cases to separate custom notifications to
clarify the situation and allow "select_texture" to be handled in
material browser even if it sent it. This fixes the issue of newly
added texture not getting selected after drag, because creation was
done by material browser view.

Similar issue was fixed with "selected_material_changed" as well.

Also fixed a couple of cases of drag not being properly ended.

Change-Id: Ie1cae01ef13b687d9e611ac1c91443688001fe49
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2023-03-07 09:30:08 +00:00
Miikka Heikkinen
47cabc308e QmlDesigner: Allow drag from assets to 3D model in navigator and 3D view
Fixes: QDS-8784
Fixes: QDS-8785
Change-Id: Ib33fe615137c3c29d9071cab01ba26f6b4f751af
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2023-02-28 12:22:27 +00:00
Samuel Ghinet
192ac5db61 QmlDesigner: Allow dragging image Assets to the Material Browser
When dragging an image from the Assets Library to the Textures section
of the Material Browser, now Textures will be created from those
assets.

Task-number: QDS-8783
Change-Id: Ibbfb8697705a7d1af7714f3a32caff24282ee7a9
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2023-02-24 12:45:06 +00:00
Miikka Heikkinen
d39f469e51 QmlDesigner: Fix focus issues in material browser
Fixed focus loss on context menu close.
Fixed an issue with main view also handling cursor and enter keys when
editing material name.
Expanding a section now focuses the expanded section.
Dragging items from content library now focuses correct section.

Fixes: QDS-9215
Change-Id: I2176c7e52d8855c547db426b55ab739ca8f1db06
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2023-02-23 12:38:29 +00:00
Mahmoud Badri
0b8d2c15ca QmlDesigner: Allow dragging bundle textures to Navigator
Fixes: QDS-8338
Change-Id: Id5d02c4e5ed84f3592c19299b1d33dbe9b5cc486
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2023-01-26 12:25:21 +00:00
Thomas Hartmann
8d02bbf075 QmlDesigner: Add display name more feedback popup
Task-number: QDS-8870
Change-Id: Id8d1c98dec71e962b63a144c234642417e1df602
Reviewed-by: Mats Honkamaa <mats.honkamaa@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2023-01-23 15:12:20 +00:00
Kai Köhne
56baf8c058 Remove GPL-3.0+ from license identifiers
Since we also license under GPL-3.0 WITH Qt-GPL-exception-1.0,
this applies only to a hypothetical newer version of GPL, that doesn't
exist yet. If such a version emerges, we can still decide to relicense...

While at it, replace (deprecated) GPL-3.0 with more explicit GPL-3.0-only

Change was done by running

  find . -type f -exec perl -pi -e "s/LicenseRef-Qt-Commercial OR GPL-3.0\+ OR GPL-3.0 WITH Qt-GPL-exception-1.0/LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0/g" {} \;

Change-Id: I5097e6ce8d10233993ee30d7e25120e2659eb10b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-01-06 11:15:13 +00:00
Mahmoud Badri
521f220efb QmlDesigner: Add basic texture's info to tool tip
Fixes: QDS-8488
Change-Id: If4672863babef03bdc108109c514837a2587c6a8
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-12-13 09:56:08 +00:00
Miikka Heikkinen
2a0a1181f9 QmlDesigner: Resolve active scene id also at model attach
When coming back to previously loaded document, the sceneId will be
available at model attach time and there will not be separate changed
notification for it.

Fixes: QDS-8585
Change-Id: Ic8fcd4e2ec9123adc39d0c1cdca3bdb86d3a7924
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-12-13 09:51:07 +00:00
Miikka Heikkinen
56e242c9f9 QmlDesigner: Disable 'add to selected model' option when it's not valid
MaterialBrowserTexturesModel's hasSingleModelSelection property value
is now updated at context menu open, as that's the only place using it.
This is similar to how hasSceneEnv is handled.

Fixes: QDS-8582
Change-Id: I63871a5557c90a06633eee52840b267d808bfe27
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-12-12 13:12:23 +00:00
Mahmoud Badri
d0c9bc76cb QmlDesigner: Update textures sources on state change
Also small relevant fixes.

Fixes: QDS-8523
Change-Id: I8125b124024ee18de8c70afbc9f633c3b9265e82
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-12-08 13:49:21 +00:00
Mahmoud Badri
e70f909bcf QmlDesigner: Update texture editor and browser after source reset
Fixes: QDS-8520
Change-Id: I9ceca64d75ef1c41633a89a79748265beecd16ea
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Ali Kianian <ali.kianian@qt.io>
2022-12-08 11:32:08 +00:00
Mahmoud Badri
b530f938ba QmlDesigner: Keep search on when adding a material or texture
Fixes: QDS-8487
Change-Id: Id02d693a5a707e97555450ce860ee4480e7742eb
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-12-08 08:57:26 +00:00
Miikka Heikkinen
a5fb9fc95f QmlDesigner: Add "Apply as light probe" option to material browser
Textures in material browser can now be applied as light probes to
the active SceneEnvironment node.

Also changed the logic for resolving the active SceneEnvironment node
to prefer a currently single-selected SceneEnvironment node over
the SceneEnvironment node associated with currently active 3D scene.

Fixes: QDS-8472
Change-Id: I9a3a7b9c2fad3c8120e85ade507a7ea66de19f1d
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-12-07 09:20:50 +00:00
Miikka Heikkinen
fb24f791b8 QmlDesigner: Fix texture source path for newly created textures
Fixes: QDS-8448
Change-Id: Ibaf51444f2dff8d3de95edd4c8afbc7bc2cd2241
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-12-06 15:49:27 +00:00
Samuel Ghinet
e774aa238b Add "Add Texture" and "Add Light Probe" actions to Assets Library
When the user right-clicks on an image asset, "Add Light probe" now
appears in the context menu. When the user right-clicks one or more
image assets, "Add texture" or "Add textures" becomes available.

Task-number: QDS-8344
Change-Id: Ia8d8379be2a0a285b33e4a230e08527c18756b47
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
2022-12-02 10:45:41 +00:00
Miikka Heikkinen
5544cdc276 QmlDesigner: Don't create duplicate default texture instance
Whenever an operation involving an asset image would result in
creation of a new texture node, it now checks first if
a matching texture node already exists and uses that instead.

Fixes: QDS-8435
Change-Id: I3d091aafcd09afdec897bc4da79789c1d84056e8
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-11-28 10:20:44 +00:00
Mahmoud Badri
ea55e01051 QmlDesigner: Focus material browser's sections separately
Focus is shown by a thicker selection border for material and
texture items. Delete shortcut works on the selected focused item.

Fixes: QDS-8401
Change-Id: I1ddbbd595a0da3f0e2b7cf2bb9e611532770bc3c
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-11-28 09:32:58 +00:00
Miikka Heikkinen
ddecd338a8 QmlDesigner: Unify texture image providers
Texture editor, material browser, and UrlChooser all had separate
texture providers that served nearly identical purpose.
Unified all use cases to use same PropertyEditorImageProvider.
This provider is asynchronous, which combined with enabling caching on
Image elements, significantly improves responsiveness of the material
browser UI when there are many textures shown in the browser.

Fixes: QDS-8387
Change-Id: I2888aee2f4320dba9456fa046c9ede319673a3d9
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-11-25 15:31:04 +00:00
Mahmoud Badri
34b236e7fb QmlDesigner: Disable assigning a texture to a model with no materials
Disable apply texture to selected model option from texture editor's
toolbar when the selected model has no material. Also relevant fixes
to make sure texture assigning happens in the current state.

Fixes: QDS-8395
Change-Id: Iab2e8fce4696c6bd5d50636b4077362ba04cb8a0
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-11-24 10:45:57 +00:00
Miikka Heikkinen
ac1af9a582 Implement texture context menu
Apply to selected model/material, delete, duplicate, and
create new options are available in the menu.

Fixes: QDS-8342
Change-Id: Ib9bdc1738500a87361000bcd3e89403e3b8ccef8
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-11-22 10:44:36 +00:00
Miikka Heikkinen
e3a817ec77 QmlDesigner: Hide or disable material browser and editor if no library
If material library is missing, material browser and editor UI should
be disabled, except for material editor main pane in case of root
material node.

Change-Id: I3d2bd545de0649fb90d3fe1f751d46b7c7054bbf
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-11-22 10:05:55 +00:00
Mahmoud Badri
a04f1590de QmlDesigner: Update texture preview when source change
Fixes: QDS-8386
Change-Id: Ifaa6effc040398452b022080257bbacbfb14efdf
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-11-21 15:12:52 +00:00
Mahmoud Badri
88ce27736f QmlDesigner: Add separate + buttons for material browser sections
Fixes: QDS-8343
Change-Id: Id986820c857df241cf25e55416832f189c28bfe0
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-11-21 13:32:45 +00:00
Mahmoud Badri
815dd39e47 QmlDesigner: Implement Texture Editor view
Fixes: QDS-8209
Change-Id: Ief0c9f56da79841c745595024dbcd9219072b681
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-11-21 10:16:33 +00:00
Miikka Heikkinen
889e999f32 QmlDesigner: Clear material preview cache on detach
The previews are cached based on modelnode internal id, which can
overlap between documents, resulting in briefly showing incorrect
preview when new document is opened. Also, never clearing the cache
leads to leaking memory.

Fixed the issue by clearing the preview cache whenever all materials
are removed from browser (model detach and material library deletion).

Change-Id: Idad39fef62871c4e94f35604e643c7195ae9ec81
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2022-11-14 13:22:11 +00:00
Mahmoud Badri
d5a7f25e60 QmlDesigner: Implement content library view
Fixes: QDS-8058
Fixes: QDS-8059
Change-Id: I1adfdc7ac15141e010467813ec6e673060269241
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-11-08 10:04:43 +00:00
Miikka Heikkinen
9febccb2d7 QmlDesigner: Update material browser materials on state change
More generally, materials previews are now updated whenever the
instance values on them change.

Fixes: QDS-8096
Change-Id: I07dab4c9cefa241ca5f22e32e6a53e85c31aa252
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-11-07 11:56:18 +00:00
Tim Jenssen
40072fb5c7 Merge remote-tracking branch 'origin/9.0' into qds/dev
Change-Id: I5f72661f1fc54ff861e2cbbaa4cb32f867924c3b
2022-11-03 15:32:29 +01: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
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
Tim Jenssen
564298bba5 qmldesigner: fix crash while switching modes
Task-number: QDS-7984
Change-Id: Ia1803ce062c3956390c12f0da5b86577593fd721
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-10-28 08:02:55 +00:00
Miikka Heikkinen
bc370aecfd QmlDesigner: Hide material bundle if QtQuick3D version too low
Most materials in the material bundle require at least QtQuick3D 6.3,
so we hide the bundle materials from material browser when the detected
module version is less than 6.3.

Fixes: QDS-8100
Change-Id: I9f50b507c3c3c50f821fa6a902995b999da24464
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-10-27 14:35:07 +00:00
Tim Jenssen
aa33927651 Merge remote-tracking branch 'origin/9.0'
Conflicts:
	src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp
	src/plugins/qmldesigner/components/stateseditornew/propertychangesmodel.cpp
	src/plugins/qmldesigner/components/stateseditornew/propertymodel.cpp
	src/plugins/qmldesigner/qmldesignerprojectmanager.cpp
	src/plugins/qmldesigner/qmldesignerprojectmanager.h

Change-Id: Ib029a830ee99190bc4ea2ad75d9300bfa86b42d9
2022-10-25 19:02:15 +02:00
Ali Kianian
f2f6f6e6cc Reload material property groups when model changes
The property groups would be unloaded when a model is detached,
and it would be loaded when the model is attached.
The problem was that the unload function was missing for the
MaterialBrowserModel.

Task-number: QDS-7515
Change-Id: I89064a78552c10228c0b18e42c1e0df4a92fb4a6
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-10-25 09:18:51 +00:00
Miikka Heikkinen
f496970002 QmlDesigner: Don't copy/remove data property when copying all
'data' property contains node's children, so it should be ignored
during the 'copy all properties' operation.

Change-Id: Ib056409c9ad0a42ebc40f751173b7a3455d912c6
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
2022-10-21 10:58:50 +00:00
Eike Ziller
57a3afbb70 Merge remote-tracking branch 'origin/8.0' into 9.0
Conflicts:
	src/plugins/qmldesigner/components/timelineeditor/easingcurvedialog.cpp

Change-Id: I435b955899fcc70faaec6332de55283cf16b694f
2022-10-20 15:28:23 +02:00
Mahmoud Badri
0ac1920ed2 QmlDesigner: Clear search upon adding a bundle material
Fixes: QDS-8025
Change-Id: Iaa1f7d9f94b602e60171a00d0cc51d5b19d71468
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-10-20 08:09:53 +00:00
Eike Ziller
3bdb1a3edf Merge remote-tracking branch 'origin/9.0'
Conflicts:
	cmake/QtCreatorIDEBranding.cmake
	qbs/modules/qtc/qtc.qbs
	qtcreator_ide_branding.pri
	src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp
	src/plugins/vcsbase/vcscommand.cpp

Change-Id: I2d33113bfb2ea7134550cda1de4e2c21e6711778
2022-10-18 16:51:36 +02:00
Eike Ziller
ea5a050c5c Merge remote-tracking branch 'origin/8.0' into 9.0
Conflicts:
	src/plugins/mcusupport/mcusupportsdk.cpp
	src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp
	src/plugins/qmldesigner/components/materialbrowser/bundleimporter.cpp
	src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp

Change-Id: I9317da0fc1243b9ce6d87f577aa843c51f132ad7
2022-10-18 10:48:46 +02:00
Mahmoud Badri
fdffb6c7d9 QmlDesigner: Fix crash when bundImporter is nullptr
Change-Id: I54436b0199babe53dcaec61c74b34ed72e80ea7b
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-10-17 09:17:53 +00:00
Mahmoud Badri
b983b8aa52 QmlDesigner: Implement unimporting bundle materials
Fixes: QDS-7904
Change-Id: I08642c25a2844547d0104a7b3d9fda6afe47cd38
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
2022-10-17 08:05:50 +00:00
Miikka Heikkinen
b8f4cd97d1 Fix copying dynamic properties on materials
Fixes: QDS-7803
Change-Id: I24c8cd269965552a62fbbbc521efbff00811fa43
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2022-10-10 13:53:03 +00:00
Mahmoud Badri
fcc7edc135 QmlDesigner: Fix applying a bundle material to a multi-selection
Fixes: QDS-7830
Change-Id: Ic939b1e3b86e6931c369b1b06887284d0b23fa79
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-10-10 11:27:11 +00:00
Eike Ziller
7efb0a0625 Merge remote-tracking branch 'origin/9.0'
Conflicts:
	src/plugins/qmldesigner/CMakeLists.txt

Change-Id: I500420df35519e6903abc570d1283185f01bf900
2022-10-10 11:47:45 +02:00