summaryrefslogtreecommitdiff
path: root/src/plugins/qmlprojectmanager/qmlproject.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Utils: Rename qtcprocess.{cpp,h} -> process.{cpp,h}Jarek Kobus2023-05-041-1/+1
| | | | | | | | Follows QtcProcess -> Process rename. Change-Id: I97235a9a40cb7fd52944515b7ab878d96528f919 Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Merge remote-tracking branch 'origin/qds/dev'Tim Jenssen2023-03-301-7/+29
|\ | | | | | | | | | | | | | | | | Conflicts: src/libs/utils/filepath.cpp src/plugins/qmldesigner/qmldesignerexternaldependencies.cpp src/plugins/qmlprojectmanager/cmakegen/generatecmakelists.cpp tests/unit/unittest/CMakeLists.txt Change-Id: I017a6075db41a5233487ac855ffe23de2b2bb0ee
| * Merge remote-tracking branch 'origin/10.0' into qds/devTim Jenßen2023-03-261-39/+41
| |\ | | | | | | | | | | | | | | | | | | | | | bigger conflicts resolved at: src/plugins/qmldesigner/CMakeLists.txt src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp Change-Id: I08e2a109d8e37cbd77225129854e9e633725bfc7
| * | QmlDesigner: Always try to open in design mode if qmlproject is openedThomas Hartmann2023-03-221-5/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If there is no ui.qml file then fallback to .qml. Change to design mode in any case if a file was opened. Task-number: QDS-9460 Change-Id: I619292019105f488ff33e6e5ed4294b36eb2627c Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
| * | QmlDesigner: Fix re-opening project errorHenning Gruendl2023-02-221-2/+12
| | | | | | | | | | | | | | | | | | Task-number: QDS-9242 Change-Id: Iecd0271014d2f3e3ea8b3cb13271c2cf4a612ce8 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
| * | QmlProjectManager: Fix starting .qmlproject on Boot2Qthjk2022-12-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The "qmlscene" is called "qml" nowadays. Also give device settings more priority to cover cases where there is no Qt build setup at all. For this case, also demote the missing Qt build version from "Error" to "Warning". Task-number: QTCREATORBUG-28074 Change-Id: Ic44d2bee1965493925d21317d12d5c1f66ace88b Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* | | ProjectExplorer: Move some not-fully-session related bitshjk2023-03-011-2/+2
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | ... out of SessionManager. The idea is to later move SessionManager into the Core plugin, which both is sensible conceptually and also prerequisite to merge the Bookmark plugin into TextEditor plugin. Currently, only the interface is split, as the load/save implemetations are non-mechanical to disentangle. Change-Id: I31631db3094ea192825a2ccaa6add6188662940b Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* | QmlProjectManager: FilePathify furtherhjk2023-01-311-18/+19
| | | | | | | | | | | | | | Change-Id: I8d83cc93778f8786c30e0aaef459c51005139b19 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io> Reviewed-by: Artem Sokolovskii <artem.sokolovskii@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* | QmlProjectManager: Tr::trAlessandro Portale2023-01-191-7/+8
| | | | | | | | | | Change-Id: I219111bab487ad5f2d7d1cd7ae6f3e3e8a2a8d3f Reviewed-by: hjk <hjk@qt.io>
* | Remove GPL-3.0+ from license identifiersKai Köhne2023-01-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | plugins: Remove foreach usageArtem Sokolovskii2022-12-201-1/+2
| | | | | | | | | | | | | | Change-Id: Idf60caed3b5f4ec4c6e990a9e3188487bcc824f8 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* | QmlProjectManager: Even more FilePath usehjk2022-12-191-11/+10
| | | | | | | | | | | | Change-Id: I4990b9171598d7f277f8e8e5a2b3e0fb1a3375d0 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* | QmlProjectManager: Fix starting .qmlproject on Boot2Qthjk2022-12-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The "qmlscene" is called "qml" nowadays. Also give device settings more priority to cover cases where there is no Qt build setup at all. For this case, also demote the missing Qt build version from "Error" to "Warning". Task-number: QTCREATORBUG-28074 Change-Id: Ic44d2bee1965493925d21317d12d5c1f66ace88b Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* | Utils: Remove FilePath::operator+()hjk2022-11-301-1/+1
|/ | | | | | | | | This was a alias for .stringAppended(), but can be used too easily when .pathAppended() is meant. Change-Id: Ia3b64d39828d4074b43d87c923ce3a6a87038948 Reviewed-by: Christian Stenger <christian.stenger@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* Merge remote-tracking branch 'origin/9.0' into qds/devTim Jenssen2022-11-091-2/+3
|\ | | | | | | Change-Id: I02fd6f492c27d85b88af7ec8bc18ff62f2c6ed14
| * QmlJS: Fix Follow under cursorMarcus Tillmanns2022-11-081-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When trying to jump to a symbol in a qml file the Qml Model may find the location in a generated .qml file in the build folder. QtCreator searches in all generated .qrc files to try and find the source file so it can jump to it instead. Previously not all auto-generated ".rcc" folders would be found as only the folders of targets (executables) were searched. Plugins or Static Libraries were not searched. With this fix, all projects nodes are searched for the ".rcc" folder and therefore also finds them for Dynamic / Static libraries and plugins. Fixes: QTCREATORBUG-27173 Change-Id: Ic51ac8fbc82c15785cbefd76787942a512ecf3db Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: hjk <hjk@qt.io>
* | Merge remote-tracking branch 'origin/9.0' into qds/devTim Jenssen2022-11-031-3/+12
|\ \ | |/ | | | | Change-Id: I5f72661f1fc54ff861e2cbbaa4cb32f867924c3b
| * Merge remote-tracking branch 'origin/8.0' into 9.0Eike Ziller2022-11-011-3/+12
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| | * QmlDesigner: Add option to allow multiple projectsThomas Hartmann2022-10-261-3/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Setting QML/Designer/AllowMultipleProjects to true allows multiple projects. Task-number: QDS-7865 Change-Id: Ib44653e48cfbdb439c18dc2d3c57a4ae2ab0ee43 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* | | QmlDesigner: Improve ownership of QmlProjectItemMarco Bubke2022-11-031-2/+1
| | | | | | | | | | | | | | | Change-Id: Ibfe4b0b5314dada85a601a8f27003af135df78f1 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* | | Automatic qmlls support (experimental)Fawzi Mohamed2022-10-121-13/+10
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Looks for qmlls (the qml language server of Qt) and if available and set in the preferences uses it instead of the embedded code model for the supported features. Its usage is driven by two flags that can be set in the QtQuick > QML/JS Editing preferences: "use qmlls" activates the use of qmlls if available; "use latest qmlls" always uses the qmlls of the latest Qt, instead of the one of the target (with the one used to compile QtCreator as fallback). To support disabling/enabling of qmlls as soon as one changes the preferences the singleton QmllsSettingsManager can emit a signal on changes. It also keeps track of the latest qmlls binary known. QmlJS::ModelmanagerInterface::ProjectInfo is also extended to keep track of the qmlls binary. QmlJSEditorDocument uses the ProjectInfo and QmllsSettingsManager to decide if a LanguageClient::Client should be started for that document. The client uses the QmllsClient subclass to keep track of the path of the qmlls clients and use the same qmlls process or all files that use the same binary. Currently qmlls <6.4.0 are not considered because they might have too many issues. The enabling/disabling of warnings and highlight is a bit cumbersome because they are handled together in the semantic highlighter, but must be handled separately depending on the qmlls capabilities. The disabling is done at the latest moment stopping the visualization of the embedded model warnings/highlights/suggestions. The computation of the semantic info is not suppressed to support the other features (find usages, semantic highlighting if active,...). When qmlls supports more features a complete removal of the semantic info construction could be evaluated. Change-Id: I3487e1680841025cabba6b339fbfe820ef83f858 Reviewed-by: David Schulz <david.schulz@qt.io>
* | Replace QtSupport::QtVersionNumber with QVersionNumberAlessandro Portale2022-09-191-2/+2
| | | | | | | | | | | | | | Task-number: QTCREATORBUG-27786 Change-Id: I71a44709c264829f629c9dfce702076eda297a77 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: hjk <hjk@qt.io>
* | Use SPDX license identifiersLucie Gérard2022-08-261-24/+2
| | | | | | | | | | | | | | | | | | 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>
* | QDS: Fix unused variable warningsMarcus Tillmanns2022-08-181-2/+0
| | | | | | | | | | | | | | Change-Id: I3ea21d5883cb75dd2507ad3d0aa6b3e24ed8354e Reviewed-by: Samuel Ghinet <samuel.ghinet@qt.io> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* | FilePath: Remove ::toDir() and deprecation hintsMarcus Tillmanns2022-08-041-3/+2
| | | | | | | | | | Change-Id: Ib561c019e3fd44cd85504ad4286eb3759ce19516 Reviewed-by: hjk <hjk@qt.io>
* | Merge remote-tracking branch 'origin/8.0'Eike Ziller2022-07-251-0/+4
|\ \ | |/ | | | | | | | | | | | | | | | | Conflicts: cmake/QtCreatorIDEBranding.cmake qbs/modules/qtc/qtc.qbs qtcreator_ide_branding.pri src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp Change-Id: I1ed3dd86fe5b4b87e3015c41652f5d0fa16d7070
| * QmlDesigner: Prefer autodected kits and use replacment kits only as fallbackThomas Hartmann2022-07-221-0/+4
| | | | | | | | | | | | | | | | | | In QDS we want to priotize the kits we provide as part of the installation. Change-Id: I282166bce811b6777088cd0dcde31dd8da785e2b Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* | qmljs: (QString -> Utils::FilePath)++Fawzi Mohamed2022-07-131-5/+17
| | | | | | | | | | | | | | | | | | convert more QString containing paths to Utils::FilePath Change-Id: I1219d7d147993e48cfa641dc9bea72ab38c90f51 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>
* | Merge remote-tracking branch 'origin/8.0'Eike Ziller2022-07-121-0/+5
|\ \ | |/ | | | | Change-Id: I37a1f78caf9ae258c6b052efa3be15b3dbcbe164
| * QmlProject: Allow only one project in QDSThomas Hartmann2022-07-121-0/+5
| | | | | | | | | | | | | | | | | | This keeps project management simple. Having multiple projects open often leads to confusion. Change-Id: If6344732cf2813ea8ccf6a1a790229d1038ec240 Reviewed-by: Brook Cronin <brook.cronin@qt.io> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* | Merge remote-tracking branch 'origin/8.0'Eike Ziller2022-06-271-2/+2
|\ \ | |/ | | | | Change-Id: Ia1c97d5949de607177a5a0632c7e8a37cbfd3475
| * Code cosmeticshjk2022-06-241-2/+2
| | | | | | | | | | | | | | | | | | | | Mostly unused #include's, also sort them or reduce scope. A few namespaces, ... Change-Id: I9ee71e07de7157c9942125672addf87dd41e78f1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: hjk <hjk@qt.io>
* | Merge remote-tracking branch 'origin/qmlprojectstorage'Tim Jenssen2022-06-211-0/+16
|/ | | | | | | | | | | | Conflicts: src/plugins/qmldesigner/qmldesignerprojectmanager.cpp src/plugins/qmlprojectmanager/qmlproject.cpp src/plugins/qmlprojectmanager/qmlproject.h Change-Id: I0c0d59c8e3b8455b6ac575d34fdf49f39388db7a Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
* QMLPlugins: Remove foreach / Q_FOREACH usageArtem Sokolovskii2022-06-011-1/+2
| | | | | | | Task-number: QTCREATORBUG-27464 Change-Id: Ie3e3ec9fdaea856943e5325cabd21e52bf290e70 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Merge remote-tracking branch 'origin/7.0'Eike Ziller2022-05-231-1/+1
|\ | | | | | | Change-Id: I7037b2b400617b0be0e1a010dd293e4f96d77328
| * QmlProject: Fix typoThomas Hartmann2022-05-181-1/+1
| | | | | | | | | | Change-Id: Ie376933f2a83b0d5ceb22ad1b0e335d052c08135 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* | Merge remote-tracking branch 'origin/7.0'Eike Ziller2022-05-181-51/+144
|\ \ | |/ | | | | | | | | | | Conflicts: src/plugins/qmlprojectmanager/qmlprojectplugin.cpp Change-Id: I14030f58303839e706af892dd12a67566e3bed68
| * QmlProject: Allow setting main qml file and main ui.qml fileThomas Hartmann2022-05-171-51/+144
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The .qmlproject file already has the "mainFile" setting which indicates which qml file is run. This patch adds a main ui.qml file that indicates which ui.qml file is opened in the design mode if the .qmlproject is opened. The patch also adds two context menu actions that allow setting the main qml and main.ui.qml files without having to edit the .qmlproject file by hand. Changing the main ui.qml file also checks if the current ui.qml file is used as in the main qml file and if it is, then we switch the component there. For now the actions are only available in QDS. Task-number: QDS-6882 Change-Id: I1c6e19c039036dc635161fa6e06173356dc509aa Reviewed-by: Henning Gründl <henning.gruendl@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* | QmlProjectManager: Integrate QDS landing pageTapani Mattila2022-05-171-19/+1
| | | | | | | | | | | | Task-number: QDS-6564 Change-Id: Ia1a4188ba1bb561bbfeadf5fb29bcba75d05b5ce Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* | Merge remote-tracking branch 'origin/7.0'Eike Ziller2022-04-201-0/+14
|\ \ | |/ | | | | | | | | | | | | Conflicts: src/plugins/webassembly/webassemblyrunconfiguration.cpp src/tools/processlauncher/launchersockethandler.cpp Change-Id: Iab052af98013aa59282c16f22ae6e9ecb32f50c4
| * QmlDesigner: Add configuration for qsb shader generator toolMiikka Heikkinen2022-04-081-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added default ShaderTool configuration block to new project template and use information specified there to generate qsb shaders. The args property specifies command line argument for qsb tool. The files property specifies files for which qsb tool is run for. E.g.: ShaderTool { args: "-s --glsl \"100 es,120,150\" --hlsl 50 --msl 12" files: [ "content/shaders/*" ] } Fixes: QDS-6590 Change-Id: I3bab0db21d20f486f9f25c1437a27ddb7fb47396 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Samuel Ghinet <samuel.ghinet@qt.io>
* | IDevice: Make it possible to forward declare Ptr and ConstPtrJarek Kobus2022-04-141-0/+1
|/ | | | | | | | | | | | | | | | | | | | | | | Most inclusions of idevice.h inside other headers are required just because of IDevice::Ptr or IDevice::ConstPtr was used there. Unfortunately, since these "using" are defined inside a IDevice class, we just can't forward declare IDevice::Ptr nor IDevice::ConstPtr. Instead, create a separate header that defines IDevicePtr and IDeviceConstPtr while having IDevice forward declared. Redefine IDevice::Ptr/ConstPtr inside IDevice to use IDevicePtr/IDeviceConstPtr. Now, instead of forward declaring a IDevice::Ptr it's sufficient to include the idevicefwd.h. This drops the number of files being recompiled after touching idevice.h from ~770 to ~210. Change-Id: Ib6f2982aa0761fb4cd6593badb9c3c0c527ea535 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: hjk <hjk@qt.io>
* Fix more warningsChristian Kandeler2022-02-231-2/+0
| | | | | | | Found by compiling with clang Change-Id: Iec0ed8aa8b6a742a5a3996a6c19c410e209fb048 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* QmlDesigner: Track if QDS was opened from QtCThomas Hartmann2022-02-221-0/+5
| | | | | | Task-number: QDS-6315 Change-Id: I4109e9c98ff5c27b4096b1af32ae945aec10c123 Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
* Do not enter edit mode when opening a .qmlproject as QDSThomas Hartmann2022-02-071-0/+5
| | | | | | | | | | | | If the user opens a .qmlproject in QDS mode we do not want to enter the edit mode by default. We check the startup project after opening and calling openEditMode() will determine if we keep the default of opening the edit mode or not. Change-Id: Ic8a7fbefa007d487ec680099544c07fe007c0b29 Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* QmlProject: Add single isQtDesignStudio methodThomas Hartmann2022-02-041-9/+10
| | | | | Change-Id: Idf9d07e6318af8d6934adcbc0afa3695e262836f Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
* QmlProject: Search in content for .ui.qml files firstThomas Hartmann2022-02-041-21/+38
| | | | | | | Change-Id: I1cf8a0bc83c24a0207e68a12a9a441cc7432a013 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>
* Rename QtSupport::BaseQtVersion to QtVersionhjk2022-01-241-2/+2
| | | | | | | | | | ... and the Utils::QtVersion enum to Utils::QtMajorVersion to avoid conflicts. Change-Id: Ib688c67388272b7204a91444155f60b8c18a56bd Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Merge remote-tracking branch 'origin/6.0'Eike Ziller2022-01-241-0/+7
|\ | | | | | | Change-Id: I55d228482ceda144f903fb85eef048d53602ad18
| * Multilanguage: Add multilanguageSupport option to qmlprojectTuomo Pelkonen2022-01-201-0/+7
| | | | | | | | | | | | | | Change-Id: I1fc1861e17dc62cec91f5fa27f7e01360a42de78 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>