Commit Graph

27 Commits

Author SHA1 Message Date
hjk
0ba4338467 Utils: Rename QtcProcess::Result::Finished to FinishedWithSuccess
To make clear that this is not just any finish.

Also change FinishedError to FinishedWithError, to create
symmetry.

Also adapt enum member description to reality.

Change-Id: I13e05391eb86fdb24e2ae660f14dfddb282e1104
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2021-06-02 14:16:36 +00:00
hjk
08040e4e94 Utils: Move QProcess base to QtcProcessPrivate
Change-Id: I4c6811d42e051fadfcf32edb664ff3bc09e692e6
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-06-02 13:21:08 +00:00
hjk
90ad902486 Utils: Remove CommandLine argument from QtcProcess::run{,Blocking}
Makes run() more similar to what start() looks like.

Also add some asserts to make sure run() and related functions are
only called on SyncronousProcesses, as these are currently the only
ones where this works.

Change-Id: Idee6076c3f40a484db5c17f5bb348698cc83d220
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-05-19 13:01:51 +00:00
hjk
55f768e1b0 Utils: Make process results accessible through QtcProcess object
The result is fully stored in the object anyway. Using the extra
SynchronousProcessResponse structure only causes copies of
the data and complicates access on the user side in
a lot of cases.

The result bits are now also accessible individually.

There's obvious room for follow-up changes on the topic, e.g.
ShellCommand::runCommand's parameter list could shrink to
just a SynchronousProcess parameter.

Change-Id: I45aa7eb23832340be06905929280c012e1217263
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
2021-05-14 13:19:01 +00:00
Jarek Kobus
da27ac457f Do QFutureWatcher::setFuture() after connecting to watcher's signals
Otherwise we may have race condition.
Reference: documentation for QFutureWatcher::setFuture()
and the implementation of
QFutureInterfaceBasePrivate::connectOutputInterface(
QFutureCallOutInterface *interface).

Change-Id: I5b483baaf1b844871a162f47ce7683e9ff495acb
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2021-05-12 22:09:03 +00:00
hjk
c23cdd9262 Utils: Merge {synchronous,qtc}process.{h,cpp} file pairs
Mechanical to prepare merging the actual classes.
Adapting #includes.

Change-Id: I77a2c28129287778bc870c30cb890cd26bc2e62b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2021-05-10 09:47:51 +00:00
hjk
5813c7e8c2 Utils: Make SynchronousProcess use Utils::Environment for environments
Makes the interface more similar to QtcProcess.

Change-Id: I58e57d9fdb7c37eb0d2a5c5eef8643d6be97c3cc
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2021-05-05 12:14:31 +00:00
hjk
4c375e31a3 Python: Replace a use of SynchronousProcess
Change-Id: I93ce9a3224c88c69c3b0ef46f1416645ffca1e1e
Reviewed-by: David Schulz <david.schulz@qt.io>
2021-05-04 09:55:47 +00:00
Eike Ziller
9f8a48b245 Python: Be less disrupting with the messages pane
Only pop it open directly after explicit interaction

Task-number: QTCREATORBUG-24430
Change-Id: I55025a901cb3d694994614bae21204ab9da49fc0
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2020-12-17 08:59:24 +00:00
Jarek Kobus
eaba657d90 Fix warnings about possible detach of temporary objects
Calling first() or last() on temporary container may
unnecessarily detach the container. Fix it by calling
constFirst() and constLast().

Change-Id: I2460efd5dbee1534eec8a514d9bff2a947bfddf9
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2020-11-16 22:11:46 +00:00
Leena Miettinen
58bcf2878b Python: Fix UI text capitalization
Change-Id: Ie180d6e8b8af35c7bb79c9f8a371262b219ce65e
Reviewed-by: David Schulz <david.schulz@qt.io>
2020-07-02 09:26:20 +00:00
Eike Ziller
7c5ed6f7d9 Move InfoBar to Utils
The only reason it was required to be in Core plugin, was its use of Id,
which now is available in Utils.

Change-Id: I66ce863c24924e6448d339b3422538a7fe167336
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
2020-06-18 06:39:54 +00:00
Alessandro Portale
0be309bcf1 Various places: performance-for-range-copy
Change-Id: I475990d32a5211d31a77782667a2dfedba134137
Reviewed-by: hjk <hjk@qt.io>
2020-06-15 05:58:46 +00:00
David Schulz
8f5109b6ee LSP: Robustify open documents
Use Client::openDocument if you just want to open a document and
activate it if it is not already used in another client.

Use LanguageClientManager::openDocumentWithClient if you want to make
sure a document is opened _and_ activated for a specific client.

Change-Id: I6b790f15e17335ce2dc8981a04d2cd571b22b66b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-05-14 09:51:26 +00:00
Eike Ziller
3b5fc296f2 Python editor: Add buttons & actions for opening REPL
Opens interactive Python, optionally with the current file imported, for
testing and experimentation.

Change-Id: Ieb120e3698bdba77a1445c40fe7fda533773a0cf
Reviewed-by: David Schulz <david.schulz@qt.io>
2020-03-19 13:04:48 +00:00
David Schulz
5a2de2609e Python: detect language server for python asynchron
Change-Id: I775e4cc21dc443b9ec6af81fabef9cf2bfd4e7d2
Fixes: QTCREATORBUG-23599
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-02-20 05:42:17 +00:00
hjk
783967f550 Python: Move PyLSConfigureAssistant connection to the plugin
Change-Id: I2d3aecd10d8da7e7272ebca61c0fbeacbc257bd5
Reviewed-by: David Schulz <david.schulz@qt.io>
2020-02-12 10:09:13 +00:00
David Schulz
dee41be2ab Python: install pyls with [all] tag on windows
Pylint caused some troubles on windows, but since 0.31.0 it is disabled
by default, so we can safely install the complete python language server
on all platforms now.

Change-Id: I2f7047e71308040c41d996679d19868c4e6fe73a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2020-01-13 08:02:16 +00:00
David Schulz
cbdcde0603 Python: Reset editor info bars when closing document
Fixes crash after reopening a python document and configuring the python
language server in the reopend document.

Change-Id: I42eb6c5d3ccb755a836fd9071b3147d65c8c0ab6
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-12-10 11:30:58 +00:00
David Schulz
54f2ebf91d Python: cache the module path for executable
This reduces ui freezes when switching the interpreter for a python
project.

Change-Id: Iaa8ce8ed8d51666f8696eb96f504aaf8c4a11822
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-11-04 05:47:38 +00:00
David Schulz
6664d78ded Python: detect virtual environments for documents and projects
After opening a document or project the directory hierarchy is looked up
for a Scripts/(activate && python.exe) on windows or bin/(activate &&
python) on unix. This is the usual structure of python virtual
environments. If such a folder is found add the python from that folder
to the list of configured interpreters in the settings, set it as the
current interpreter for the project and try to open the corresponding
language server.

Change-Id: I038c309ea2988f9370194330d250d1515beac0a0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-10-30 08:46:12 +00:00
Leena Miettinen
70ce398602 Python: Fix UI text
Change-Id: Ia3fa732d9ed6bb880ea7721712093fbe8faa27bd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
2019-10-29 07:52:51 +00:00
David Schulz
01df962d6a Python: install python language server with --user
Change-Id: Ifd8e19ea7d52d85ec0c497e5cbfe24300571398e
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-10-25 12:50:35 +00:00
David Schulz
10c94994db Python: close all info bars after language server setup
Change-Id: I607f7cb5a31f3db0c7d7d77011860a1ea87eb8d2
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-10-25 12:50:24 +00:00
David Schulz
8b04019270 Python: Fix opening document in wrong pyls
The document was always opened in the first of the configured python
language servers.

Change-Id: If33cb4a08884b93047016be1d8cf5c27ea7950d9
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-10-18 05:23:40 +00:00
David Schulz
28c3f0c31e Python: Add info bar entry to enable pyls
Show an editor info bar entry displaying that the language server for
the current python is disabled and a button to quickly enable the pyls.

Change-Id: I3adb2e7cbfb1a32e35413b0b06dfbe66a0b214af
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-10-18 05:23:29 +00:00
David Schulz
c8ccfea225 Python: Switch pyls on interpreter change
Change-Id: I458b635986a55003a1e7254e27e2df9667704273
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2019-10-18 05:23:10 +00:00