aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/python/pythonplugin.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Python: Use TaskTree for checkForPySide()Jarek Kobus2025-08-221-2/+0
| | | | | | | | Don't blocking run Process in separate thread. Instead, run Process asynchronously from the main thread. Change-Id: I181464b1fc4bfd6946daa76cdab509b9cc565074 Reviewed-by: David Schulz <david.schulz@qt.io>
* Add pyproject.toml project testsJaime Resano2025-03-191-0/+7
| | | | | | | | This patch adds unit tests for the new pyproject.toml project support. Task-number: QTCREATORBUG-22492 Change-Id: I9127d7c1b4a30b9a8279a73787a7ea75a3e0966b Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Add pyproject.toml support for Python projectsJaime Resano2025-03-111-3/+5
| | | | | | | | | | | This patch adds support for the standard Python project configuration file: pyproject.toml. It is intended to replace *.pyproject files. Task-number: QTCREATORBUG-22492 Task-number: PYSIDE-2714 Change-Id: I783ee7b49be23c61b0a501ef9bbd722cc652ad14 Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Jaime Resano <Jaime.RESANO-AISA@qt.io>
* Debugger: Remove unneeded debugger includesJarek Kobus2025-03-031-3/+0
| | | | | Change-Id: If3b4803932080e8ea19cdee841287a33e07ca179 Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Allow to retrieve project-specific kit issuesChristian Kandeler2025-02-171-2/+11
| | | | | | | | | | ... without a Project object. Otherwise, we cannot show these issues in the wizard's target setup page, which is an annoying inconsistency. Task-number: QTCREATORBUG-32490 Change-Id: I1b654961ad92c44f7219af5c06fab773834b2667 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Utils: Add a way to (shutdown-)guard pre-created objectshjk2025-01-141-1/+1
| | | | | | | | | | | | | | | | | | | | Some classes use private c'tors and a friend function for creation. Since friendship is not transitive this cannot (nicely) be extended to the GuardedObject implementation. In the quest to achieve a uniform 'void setupFoo()' signature to the outside, keep the creation of the guarded object were it is, but allow it to be taken over bey a GuardedObject. This setup still requires the _d_'tor to be public, but less "dangerous" then a public c'tor - assuming there is some danger in having that at all. Use it for the PythoSettings and LanguageClientManager setup. Change-Id: Ica114a0bb901d33d79c847910a2383ac1bc9e49a Reviewed-by: David Schulz <david.schulz@qt.io>
* Core: Provide settings categories centrallyChristian Kandeler2024-11-151-0/+5
| | | | | | | | | It was conceptually wrong that an options page was supposed to set its category's display name and icon. Instead, categories are now explicitly registered with name and icon. Change-Id: Ic10b3791c8068176f55470e6845ab4832160b8e7 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Python: Register highlighterMarcus Tillmanns2024-10-151-0/+48
| | | | | Change-Id: Id3fcfbea25c1dcaafaf40b9852d921eb329c8bfa Reviewed-by: David Schulz <david.schulz@qt.io>
* Python: Remove pluginInstance() and convert usershjk2024-02-051-21/+3
| | | | | | Change-Id: I43179961cdee855b710fc082568a7d0d9a0f0719 Reviewed-by: David Schulz <david.schulz@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* Python: Use setup function for remaining plugin itemshjk2024-02-051-12/+3
| | | | | | | ... and remove the now-empty plugin pimpl. Change-Id: I0db27757e832a0e3ac52b938a4d6ad820adfc195 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* Python: Use setup functions for run related itemshjk2024-02-011-3/+3
| | | | | Change-Id: Iefbeda433b0f7eaaf3c429dbc853e0c8578ceb3a Reviewed-by: David Schulz <david.schulz@qt.io>
* Python: Use setup function for build related factorieshjk2024-02-011-2/+3
| | | | | Change-Id: I3b1faad8a5f3ead1332941d31509c3efd3806f78 Reviewed-by: David Schulz <david.schulz@qt.io>
* ProjectExplorer: Remove OutputFormatterFactory hierarchyhjk2024-02-011-1/+2
| | | | | | | | | | | It never gained traction, was only used in thee places, and the class(-hierarchy) is not really needed and only complicates the code when the formatter creation is handled in free functions. Also adapt the users. Change-Id: Ieef7199f5a36f244b2f38cffef71a5fe0606065c Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Create RunConfiguration specific DebugWorkerFactoriesDominik Holland2024-01-171-1/+5
| | | | | | | | | | | | Instead of relying on the DebuggerRunWorkerFactory to match for all RunConfiguration, every plugin needs to create a WorkerFactory for its own RunConfiguration. Similar to the SimpleTargetRunnerFactory there is now a SimpleDebugRunnerFactory which makes the setup easy. Change-Id: I25aaabcd70f7ac649baeab4eb4c7e88d53dac91e Reviewed-by: hjk <hjk@qt.io>
* Python: Use new plugin items setup pattern for PythonEditorhjk2024-01-161-1/+2
| | | | | Change-Id: Ie8516960a106ddeff415b6412d9af66f7d2f0f36 Reviewed-by: David Schulz <david.schulz@qt.io>
* Python: Move plugin class definition to .cpphjk2024-01-161-38/+52
| | | | | | | | | The plugin classes partially changed there purpose, they are no more meant to provide internal utility functionality. Change-Id: I9b9200995eaa95dcd924c94dcedb28e6d5db0be9 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: David Schulz <david.schulz@qt.io>
* Python: use kits page in python wizardsDavid Schulz2023-11-281-4/+5
| | | | | Change-Id: I1f7aaf145443481546abb868c8c167186600b848 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Python: generate Python kits for new interpreterDavid Schulz2023-11-021-0/+5
| | | | | Change-Id: Ie4b23aae296f66900fba85a9e243bbf656e49ed4 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Self-register JsonWizardPage related factorieshjk2023-08-181-1/+1
| | | | | | | Moves the using code closer to the common factory setup pattern. Change-Id: I2ee85b911d43b63730ff994a4b07568b23b14f00 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Tasks: Show tool tips with information about the categoriesEike Ziller2023-07-131-1/+5
| | | | | | | | When hovering an entry in the filter menu in the Issues view. Also remove some categories that shouldn't be there. Change-Id: Ifb367d69b9396c2fdc45b83ec5ffd88ac2f0eda7 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Tasks: Create a container class for category dataEike Ziller2023-07-121-1/+1
| | | | | | | | Reduce the number of arguments that need to be passed around. Change-Id: I9fbfdcdf7b20f8f26e35f435bf8d65ba483e4114 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Merge LocalEnvironmentAspect into EnvironmentAspecthjk2023-05-251-1/+0
| | | | | | | | | | This still has some not quite orthogonal features in one blob function, but at least it's not a separate class anymore. A step forward to remote support in places where it could make sense. Change-Id: Ia02003e4340eb2b5ee92bd48c00006a487527828 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* All Plugins: Use global future synchronizerJarek Kobus2023-04-251-8/+0
| | | | | | | | | | Instead of using plugin's own synchronizers. The global synchronizer does the synchronization just before all the plugins' destructors run (in sync), so this should be the right equivalent. Change-Id: I8d09c9ea4a11b7a703684ad5319191ce310d992e Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Merge remote-tracking branch 'origin/10.0'Eike Ziller2023-04-131-3/+12
|\ | | | | | | | | | | | | | | | | | | Conflicts: src/plugins/python/pipsupport.cpp src/plugins/qtsupport/exampleslistmodel.cpp src/plugins/qtsupport/examplesparser.cpp tests/auto/examples/tst_examples.cpp Change-Id: I00273622423fa99d41621969f6ecbbdaa0e18664
| * Python: Don't leak running futures on shutdownJarek Kobus2023-04-041-3/+12
| | | | | | | | | | | | | | | | | | This patch fixes the following assert on shutdown: "Shutting down while process /testenv/bin/python is running\"\n". Change-Id: I4c32ead5e4952b69ffc6037739fd417a632eda1a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: David Schulz <david.schulz@qt.io>
* | Python: Tweak handling of python project filesChristian Stenger2023-03-221-0/+1
| | | | | | | | | | | | | | | | Improves the handling of the preferred python project file (*.pyproject) and makes use of the json support. Change-Id: I24d6e2c1d10899efacec0fc9b03660bb8f25dfe7 Reviewed-by: David Schulz <david.schulz@qt.io>
* | Python: add interpreter selector to the python project wizardDavid Schulz2023-03-141-1/+4
|/ | | | | Change-Id: I7ea1df34fa0096a84a0d611b401f991508c826c1 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Use simpler Plugin::initialize() when feasiblehjk2023-01-201-6/+1
| | | | | Change-Id: I567965d266f20526bda9f823e31a04b354d53fb1 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* ProjectExplorer: Introduce and use convenience factory classhjk2023-01-101-11/+3
| | | | | | | ... to create SimpleTargetRunner runners for a single run config. Change-Id: I8af3d7cdcaf54f0584af948aa6e0fa015d1a3077 Reviewed-by: Christian Stenger <christian.stenger@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>
* Python: Initialize settings in the pimplhjk2022-11-181-2/+2
| | | | | Change-Id: I172136851c3002bf785d9b8f378c0cccc408e0e2 Reviewed-by: David Schulz <david.schulz@qt.io>
* Get rid of unneeded includes of RunControlJarek Kobus2022-10-251-1/+0
| | | | | | | | | | Removed also some other includes that were marked with yellow triangles. In some cases includes of runcontrol.h were substituted with other includes, like qtcassert.h. Change-Id: Ica40f68198c7f8f70e6047acb2eddc8ef017e43d Reviewed-by: Christian Kandeler <christian.kandeler@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>
* filesystem: Add QFSEngine for filepathsMarcus Tillmanns2022-07-211-3/+2
| | | | | Change-Id: Ibd0c88c69863c0877138d8cc45541530c359bd9c Reviewed-by: hjk <hjk@qt.io>
* Python: Convert to Tr::trhjk2022-07-211-6/+0
| | | | | | Change-Id: I0241053b0d51dbb1a60c43351cbff543fd52573d Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
* Code cosmeticshjk2022-06-241-2/+1
| | | | | | | | | | 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>
* Python: remove python specific language client settingsDavid Schulz2022-06-101-4/+0
| | | | | Change-Id: Ic993d525f29c1925f7e64dfc6f5e053234fb4904 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Python: add pyside build configurationDavid Schulz2022-05-031-0/+3
| | | | | | Task-number: QTCREATORBUG-27219 Change-Id: I19340c57789933c7104ec5d6fec628ed810c5f3e Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Python: Use specialized document to check for pylspDavid Schulz2022-03-281-3/+0
| | | | | Change-Id: I9ea13df7fc04a4fe35d901da179b9c0ebaf57bb6 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Python: add python specific language client settingsDavid Schulz2022-01-181-1/+6
| | | | | | Change-Id: I1b9a194f32f3f13381954539229b02e03e3af058 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Python: move language client functionality out of utilsDavid Schulz2022-01-181-1/+1
| | | | | | | | There will be more lsp specific functionality so moving it into its own space is reasonable. Change-Id: Ic87d437182d68673b53f662c804707138fef5b6c Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* ProjectExplorer: Consolidate RunConfigurationFactory::idshjk2020-06-151-1/+1
| | | | | | | | | | | | | | | | | | | | It was already only one id string with two names. Since it is not an id for the factory but the id of the created run configuration, settle of runConfigurationId() as accessor. The factory and id fields in RunConfigurationCreationInfo were redundant. factory always implies (runconfiguration)id (but not necessarily the other way round, in theory different factories are possible for the same runconfiguration type for different devices). So drop the id field here. In one case now factory pointers instead of ids are compared, but this is neutral there as this happens in a context of a fixed Target, device and project are fixed there, so id and factory are equally unique. Change-Id: I859aa91486a2dd4abfc7369540a3322d6ec6260d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Python: Move PyLSConfigureAssistant connection to the pluginhjk2020-02-121-0/+4
| | | | | Change-Id: I2d3aecd10d8da7e7272ebca61c0fbeacbc257bd5 Reviewed-by: David Schulz <david.schulz@qt.io>
* Python: close all info bars after language server setupDavid Schulz2019-10-251-0/+13
| | | | | Change-Id: I607f7cb5a31f3db0c7d7d77011860a1ea87eb8d2 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Python: extract PythonRunConfiguration and PythonProjectDavid Schulz2019-09-171-779/+8
| | | | | Change-Id: I4ff0f43fdb8beb9a7f2f7816197de0c796da8d89 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Python: Simplify code based on Project::projectFileIsDirty signalTobias Hunger2019-08-161-2/+4
| | | | | Change-Id: Ife19edf47b903080c073ffef844074be48b65b23 Reviewed-by: hjk <hjk@qt.io>
* Utils/all: Create an OutputFormatterFactoryhjk2019-08-131-2/+16
| | | | | | | | | | | Essentially following the scheme used for the various project configurations. This makes it possible to construct OutputFormatters by Id only, potentially reducing hard plugin dependencies and opening the road to have several output formatters per RunConfiguration/Outputpane/... Change-Id: I4b5fb6fb6be8b0d9a0859f178bb0effc3398b09e Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: De-virtualize some more virtual methodsTobias Hunger2019-08-131-1/+2
| | | | | | | | | Use setters/getters for the bool flags in Project::needsBuildConfigurations() and Project::hasMakeInstallEquivalent. Change-Id: I5ce937c3a5e8e0db627cda02a9007f8c28ccda0c Reviewed-by: hjk <hjk@qt.io>
* ProjectExplorer: Use RAII pattern for parsing start/stop signallingTobias Hunger2019-08-091-2/+2
| | | | | Change-Id: I13de537140f265db3e3d0ab1cd924d6897cd90c8 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* ProjectExplorer: Re-work setup runworker factorieshjk2019-08-091-1/+5
| | | | | | | | | | | | | | | This combines two of the previous three paths to create run workers, and refers to RunConfigurations by id, not by type where possible to decrease coupling between the classes. Only allow "type of run configuration" and "type of device" as the only possible kind of restriction and require a uniform RunWorker constructor signature. Adapt user code to fit that pattern. Change-Id: I5a6d49c9a144785fd0235d7586f244b56f67b366 Reviewed-by: Christian Stenger <christian.stenger@qt.io>