Commit Graph

36 Commits

Author SHA1 Message Date
Alessandro Portale
c1b7d23e56 Terminal: Fix string typo
send -> sent

Change-Id: I7a4658f316023206f716b856027f93414013d6b8
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2023-06-09 06:39:23 +00:00
Marcus Tillmanns
1647968b92 Terminal: Don't always open default terminals
If a "Run in Terminal" app is started, or the user
selects "Open Terminal here" we don't want to
open another terminal when the pane becomes visible.
So we move the check after we added the terminal.

Change-Id: Idd90d6e9dbba513dd020d91ffebb594fd90d688a
Reviewed-by: Artem Sokolovskii <artem.sokolovskii@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
2023-06-09 06:16:43 +00:00
Alessandro Portale
fb724ec38b Terminal: New keyboard lock icon
Change-Id: Ie3964d599fb15def190c51dd33351fa0224cacfc
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2023-06-08 14:15:20 +00:00
Marcus Tillmanns
dd99b83e62 Terminal: Fix tooltip
Fixes: QTCREATORBUG-29260
Change-Id: I6bde92e0caaa62598f25d1af7f7a69548b8fa4d3
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-06-07 10:51:28 +00:00
Marcus Tillmanns
217b03c1ac Terminal: lock/unlock keyboard
We copied QShortCutMap into Qtc to allow us tight control over which shortcuts
are "enabled" while the focus is inside a terminal, and the keyboard is "locked"
to the Terminal. Locked here means that except for a select few, all key presses
are send directly to the terminal and cannot be used to activate other actions.

Change-Id: I96cddf753033c0f4e7d806b20085bb4755853117
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-06-07 10:29:47 +00:00
Marcus Tillmanns
8d02d96127 Terminal: Fix esc button update
Change-Id: I4862de654ab920faa46742b4a4433dff07ed0387
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2023-06-06 04:37:59 +00:00
Jarek Kobus
b51188c9a9 TerminalPane: Fix a warning about an unused arg
Change-Id: I63d19a608c63532e0e83df929da6cb07dc896722
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-06-01 07:40:17 +00:00
Marcus Tillmanns
9f1a2c4f8f Terminal: Rework commands
This rework fixes the way commands are registered in Qt Creator.

Change-Id: I401f3ac7d9194dad8fceb507360ddc3633106eb4
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
2023-05-31 13:17:49 +00:00
hjk
8b29c06372 Terminal: Use PageSettings for settings
The DropSupport is disabled for now, plan is to have a DropArea
LayoutItem later and use that.

Change-Id: I7fd1e55ad0c053f0357bb53a7cc20e9da8a933a7
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2023-05-26 07:18:18 +00:00
Marcus Tillmanns
c7bce14525 Terminal: Axivion warning fixes
Change-Id: Iae048d53c64c2c42fa14e425b5de11e0bf1a59d3
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2023-05-23 11:10:57 +00:00
Marcus Tillmanns
0c8ae843c6 Terminal: Switch Mode to ensure visible
Change-Id: I6d92ac07b7f6e7d5ed3fa4d27531d1cb8ec1a36f
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2023-05-12 06:41:13 +00:00
Marcus Tillmanns
c0f0ccdc78 Terminal: Ensure terminal is visible
When restarting an app, make sure the terminal is visible and focused.

Change-Id: I305eb59ddf2f5e0f2844d47e51500953c3145c38
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2023-05-09 11:20:49 +00:00
Marcus Tillmanns
18045f3fe0 Terminal: Close Pane with last Terminal
Closes the Terminal pane once the last terminal is closed.
Opening the pane again will also open a new Terminal.

Change-Id: I2f822b0058b26506250c784357ba522f29fd4078
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-04-03 07:34:26 +00:00
Marcus Tillmanns
e45ee44ae6 Terminal: Use native shortcut representation
Changes the ESC configure button to display the native representation of
the ESC Key instead of the macOS specific one.

Change-Id: Id3ec69901afb2bcb8b352b9c50a1adb4a074cd74
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: hjk <hjk@qt.io>
2023-03-27 12:24:01 +00:00
Marcus Tillmanns
af5f702f54 Terminal: Make ESC key behavior configurable
Change-Id: I806870c5dd7edbcd3ac2642849cca82f1939ce01
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2023-03-27 09:29:47 +00:00
Marcus Tillmanns
9417f8b99e Terminal: Add search
* Adds new search widget to terminal
* Adds new theme color "TerminalFindMatch"
* Fixes ESC key handling in terminal

Fixes: QTCREATORBUG-28946
Change-Id: I7b6057d13902a94a6bcd41dde6cc8ba8418cd585
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2023-03-24 16:12:01 +00:00
Cristian Adam
1be65dd1ee Terminal: Update on set focus after closing tab
Amends 84155e8354

This change sets the focus also on terminals that get destroyed via exit
or Ctrl+D

Change-Id: I9a96ae5b257f3e8a93db7efb4e7d4468b287c143
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2023-03-24 11:56:10 +00:00
Cristian Adam
3b6e59ab91 Terminal: Update on open/close the Terminal pane registration
Amends f95bd6119a

Change-Id: Ie20d73ad9d87c5b244c768a28f3a7bd71fdd272c
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2023-03-24 11:55:58 +00:00
Alessandro Portale
3526b6a735 Terminal: Introduce Add/Close icons for the pane
Required a new "close" overlay.

Change-Id: I5268ec280992124ebcee78a73ab58b18e7c9309b
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2023-03-24 10:39:00 +00:00
Cristian Adam
f95bd6119a Terminal: Register the command to open/close the Terminal pane
This way Alt+5 (Ctrl+5) would open / close the Terminal pane.

Change-Id: I91003987c1b8109abc302a79a895fab1557fefea
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2023-03-24 07:47:03 +00:00
Marcus Tillmanns
8064496f4e Terminal: Always show tabs
Fixes: QTCREATORBUG-28944
Change-Id: I59242eb08999ca9bd25363c144c05f29f36cbc54
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-03-24 07:16:33 +00:00
Marcus Tillmanns
84155e8354 Terminal: Set focus after closing tab
Change-Id: I1c13d0e59000ca3d1a88a3fe543ccd1aa6db7462
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2023-03-23 13:52:05 +00:00
Cristian Adam
6e0a50c660 Terminal: Use terminal icon for the shells dropdown button
The + icon is confusing with the zoom in.

Change-Id: Ibafa538a7ef3c1f58c940780caca4c24bfc23ef3
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2023-03-23 13:30:10 +00:00
Marcus Tillmanns
af809b3a52 Terminal: Add context menu & Settings button
Fixes: QTCREATORBUG-28937
Change-Id: I9dab5da0adccb8cff4d4e824ead0eba3e27eef5c
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2023-03-23 12:32:07 +00:00
Marcus Tillmanns
a485f18a94 Terminal: Make shortcuts configurable
Fixes: QTCREATORBUG-28940
Change-Id: I1afe114c357243a8fa4f101b5eac80a766dc87b9
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2023-03-23 12:31:53 +00:00
Marcus Tillmanns
44074accc7 Terminal: Use QtcProcess to start terminal window
Previously DesktopDevice::openTerminal used custom code to open a
terminal window. This patch changes it to use QtcProcess with
TerminalMode::On.

This also removes the need for "openTerminal.py" on macOS.

Change-Id: Iec978bdd19487ff8e59dcd88c35c2d01b0681022
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2023-03-21 15:09:15 +00:00
Marcus Tillmanns
0870f2583b Terminal: Enable TerminalProcessInterface
Adds a new helper app "process_stub" that replaces the previous.
"process_stub_unix/win". The purpose was and is to allow processes
to be "injected" into other hosts apps like terminals while still
being able to control and debug them.

A new base class called "TerminalInterface" is used for both the new
Terminal plugin and the legacy TerminalProcess implementation.

Fixes: QTCREATORBUG-16364
Change-Id: If21273fe53ad545d1a768c17c83db4bf2fd85395
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2023-03-20 10:03:23 +00:00
Marcus Tillmanns
bd52e53dbf Terminal: Add shell integration
Change-Id: Ic1e226b56f0103e5a6e7764073ab7ab241b67baa
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2023-03-16 06:08:09 +00:00
Cristian Adam
ce091cbcca Terminal: add minMax terminal panel keyboard shortcut
On Windows the terminal (both cmd and Terminal) have Alt+Return as
fullscreen.

For Qt Creator this will map to the minMax Terminal panel action.

Change-Id: I04594850a0fafa8f620dc81d0b5b49937c12a0cd
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2023-03-09 20:39:33 +00:00
Marcus Tillmanns
66094398fb Terminal: New Terminal opens project folder
Change-Id: I974a3c73363a810a18f9327d8682c2a56a42fee2
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
2023-03-06 22:55:59 +00:00
Cristian Adam
9673dc7cd4 Terminal: New terminal and switch between terminals shortcuts
On macOS:
  * new terminal Ctrl+T
  * next terminal Ctrl+Shift+]
  * prev terminal Ctrl+Shift+[

On Windows / Linux
  * new terminal Ctrl+Shift+T
  * next terminal Ctrl+PgUp
  * prev terminal Ctrl+PgDown

Change-Id: I5626816cd18fd7a6d2b1cea5eea835a40b0c1029
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2023-03-03 07:44:01 +00:00
Cristian Adam
d387802a3e Terminal: use shell name as terminal tab name
This way cmd, bash, powershell are more descriptive than "Terminal"

Change-Id: I19310f423cd4188ecc48580a30ed414833a15aee
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
2023-03-02 16:54:59 +00:00
Marcus Tillmanns
3e73fe302e Terminal: Coverity warning fixes
Change-Id: If96291ff6df97f7e85840eb0951cc3f4abfab0f6
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-02-27 10:41:05 +00:00
Marcus Tillmanns
d4ac8aeaa6 Terminal: Add remote devices to shell selection
Change-Id: Id28471aaf3e91ef493f48ab28207230f3fb513c2
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2023-02-27 10:21:24 +00:00
Marcus Tillmanns
c6dc54b343 Terminal: Add Shell option menu
Change-Id: I08ea3c52ed28ab65f2dc902051bab9e6975e6a7e
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2023-02-24 13:37:14 +00:00
Marcus Tillmanns
682ef157d8 Terminal: Add Terminal plugin
Adds a new Terminal plugin that provides a Terminal pane inside
Qt Creator.

Fixes: QTCREATORBUG-8511
Change-Id: I7eacb3efa2463d7df9f383ae3fc33254fb9019a9
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: hjk <hjk@qt.io>
2023-02-24 10:19:33 +00:00