Skip to content

Commit

Permalink
Squashed commit of the following:
Browse files Browse the repository at this point in the history
commit 727b051
Merge: 37b4b7b 7c4dfff
Author: Mike Griese <migrie@microsoft.com>
Date:   Thu May 2 16:27:09 2024 -0500

    Merge branch 'dev/migrie/f/sui-panes' into dev/migrie/fhl/tasks-pane

commit 7c4dfff
Merge: a0e014f 67ae9f6
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Apr 3 11:03:46 2024 -0500

    Merge remote-tracking branch 'origin/main' into dev/migrie/f/sui-panes

commit a0e014f
Merge: e05b2bb 2bcbe6b
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Apr 3 10:13:40 2024 -0500

    Merge remote-tracking branch 'origin/main' into dev/migrie/f/sui-panes

commit e05b2bb
Merge: ef560bf 75dea24
Author: Mike Griese <migrie@microsoft.com>
Date:   Fri Mar 29 15:13:01 2024 -0500

    Merge branch 'main' into dev/migrie/f/sui-panes

commit ef560bf
Merge: 10e1e46 7243d22
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Mar 26 13:56:21 2024 -0500

    Merge branch 'dev/migrie/fhl/scratchpad-pane' into dev/migrie/f/sui-panes

commit 7243d22
Merge: 1d20599 501522d
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Mar 26 13:55:54 2024 -0500

    Merge remote-tracking branch 'origin/main' into dev/migrie/fhl/scratchpad-pane

commit 10e1e46
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Mar 26 13:55:11 2024 -0500

    ALSO doesn't really need to be projected

commit ddc88c8
Merge: 216cc3f 1d20599
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Mar 26 13:26:16 2024 -0500

    Merge branch 'dev/migrie/fhl/scratchpad-pane' into dev/migrie/f/sui-panes

commit 1d20599
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Mar 26 11:38:47 2024 -0500

    un fix this file

commit b6e4b62
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Mar 26 11:37:35 2024 -0500

    Doesn't really need to be projected

commit 0979cd6
Merge: d417934 61e952c
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Mar 26 11:22:45 2024 -0500

    Merge branch 'dev/migrie/fhl/non-terminal-panes-2023' into dev/migrie/fhl/scratchpad-pane

commit 61e952c
Merge: df73d75 08dc346
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Mar 26 11:22:27 2024 -0500

    Merge remote-tracking branch 'origin/main' into dev/migrie/fhl/non-terminal-panes-2023

commit 37b4b7b
Author: Mike Griese <migrie@microsoft.com>
Date:   Fri Mar 22 06:54:29 2024 -0500

    fix builds

commit 6576f94
Merge: 66878d2 216cc3f
Author: Mike Griese <migrie@microsoft.com>
Date:   Thu Mar 21 14:02:45 2024 -0500

    Merge branch 'dev/migrie/f/sui-panes' into dev/migrie/fhl/tasks-pane

commit 216cc3f
Merge: 77022e9 d417934
Author: Mike Griese <migrie@microsoft.com>
Date:   Thu Mar 21 14:02:24 2024 -0500

    Merge branch 'dev/migrie/fhl/scratchpad-pane' into dev/migrie/f/sui-panes

commit d417934
Merge: f1ab16e df73d75
Author: Mike Griese <migrie@microsoft.com>
Date:   Thu Mar 21 13:51:52 2024 -0500

    Merge branch 'dev/migrie/fhl/non-terminal-panes-2023' into dev/migrie/fhl/scratchpad-pane

commit df73d75
Author: Mike Griese <migrie@microsoft.com>
Date:   Thu Mar 21 13:51:34 2024 -0500

    derp

commit 66878d2
Merge: 7b84041 77022e9
Author: Mike Griese <migrie@microsoft.com>
Date:   Thu Mar 21 13:21:51 2024 -0500

    Merge branch 'dev/migrie/f/sui-panes' into dev/migrie/fhl/tasks-pane

commit 77022e9
Merge: bcceb85 f1ab16e
Author: Mike Griese <migrie@microsoft.com>
Date:   Thu Mar 21 13:17:20 2024 -0500

    Merge branch 'dev/migrie/fhl/scratchpad-pane' into dev/migrie/f/sui-panes

commit f1ab16e
Merge: e0bb840 2083b2f
Author: Mike Griese <migrie@microsoft.com>
Date:   Thu Mar 21 13:16:08 2024 -0500

    Merge branch 'dev/migrie/fhl/non-terminal-panes-2023' into dev/migrie/fhl/scratchpad-pane

commit 2083b2f
Merge: 52970ef b9a0cae
Author: Mike Griese <migrie@microsoft.com>
Date:   Thu Mar 21 13:14:32 2024 -0500

    Merge remote-tracking branch 'origin/main' into dev/migrie/fhl/non-terminal-panes-2023

commit 7b84041
Merge: 8f2a129 bcceb85
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Mar 20 09:38:28 2024 -0500

    Merge branch 'dev/migrie/f/sui-panes' into dev/migrie/fhl/tasks-pane

commit bcceb85
Merge: 352e0a2 e0bb840
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Mar 20 09:20:16 2024 -0500

    Merge branch 'dev/migrie/fhl/scratchpad-pane' into dev/migrie/f/sui-panes

commit 352e0a2
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Mar 20 09:14:28 2024 -0500

    fix settings pane for merge

    (cherry picked from commit 0c6a353)

commit e0bb840
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Mar 20 09:13:54 2024 -0500

    Fix scratch pane for merge

    (cherry picked from commit 591080d)

commit 8f2a129
Merge: 5b4747f c8d0c0a
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Mar 20 06:50:28 2024 -0500

    Merge branch 'dev/migrie/f/sui-panes' into dev/migrie/fhl/tasks-pane

commit c8d0c0a
Merge: 863840e 2357653
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Mar 20 06:40:43 2024 -0500

    Merge branch 'dev/migrie/fhl/scratchpad-pane' into dev/migrie/f/sui-panes

commit 2357653
Merge: 1951f30 52970ef
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Mar 20 06:40:04 2024 -0500

    Merge branch 'dev/migrie/fhl/non-terminal-panes-2023' into dev/migrie/fhl/scratchpad-pane

commit 52970ef
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Mar 19 16:30:00 2024 -0500

    RegisterBigTimeEncapsulationViolatingTerminalPaneContentEvents

commit 826fc08
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Mar 19 15:50:58 2024 -0500

    hey there buddy, did you get lost?

commit a7533fa
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Mar 19 15:15:08 2024 -0500

    eh these events are from pane content anyways!

commit 052dc78
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Mar 19 14:54:30 2024 -0500

    more nits

commit fd8b083
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Mar 19 13:55:11 2024 -0500

    get rid of this file

commit 6789ec0
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Mar 19 13:34:35 2024 -0500

    some of the easier nits

commit 863840e
Merge: 978fd6e 1951f30
Author: Mike Griese <migrie@microsoft.com>
Date:   Mon Mar 18 13:20:43 2024 -0500

    Merge branch 'dev/migrie/fhl/scratchpad-pane' into dev/migrie/f/sui-panes

commit 1951f30
Merge: 35651bc 524d658
Author: Mike Griese <migrie@microsoft.com>
Date:   Mon Mar 18 13:20:26 2024 -0500

    Merge branch 'dev/migrie/fhl/non-terminal-panes-2023' into dev/migrie/fhl/scratchpad-pane

commit 524d658
Author: Mike Griese <migrie@microsoft.com>
Date:   Fri Mar 15 12:01:42 2024 -0500

    GREAT-GREAT-GRANDPARENT: Hey when a pane wants to get closed, we should close it

commit ef775a8
Merge: a3fbc64 287422b
Author: Mike Griese <migrie@microsoft.com>
Date:   Mon Mar 18 13:19:26 2024 -0500

    Merge remote-tracking branch 'origin/main' into dev/migrie/fhl/non-terminal-panes-2023

commit 5b4747f
Merge: 14a00c8 978fd6e
Author: Mike Griese <migrie@microsoft.com>
Date:   Thu Mar 14 14:10:21 2024 -0500

    Merge remote-tracking branch 'origin/dev/migrie/f/sui-panes' into dev/migrie/fhl/tasks-pane

commit 978fd6e
Merge: b6254f8 35651bc
Author: Mike Griese <migrie@microsoft.com>
Date:   Fri Mar 8 10:36:17 2024 -0600

    Merge branch 'dev/migrie/fhl/scratchpad-pane' into dev/migrie/f/sui-panes

commit 35651bc
Merge: 25a8851 a3fbc64
Author: Mike Griese <migrie@microsoft.com>
Date:   Fri Mar 8 10:33:31 2024 -0600

    Merge branch 'dev/migrie/fhl/non-terminal-panes-2023' into dev/migrie/fhl/scratchpad-pane

commit a3fbc64
Merge: de5f7af 8a1e8ac
Author: Mike Griese <migrie@microsoft.com>
Date:   Fri Mar 8 10:33:00 2024 -0600

    Merge remote-tracking branch 'origin/main' into dev/migrie/fhl/non-terminal-panes-2023

commit b6254f8
Author: Mike Griese <migrie@microsoft.com>
Date:   Thu Mar 7 09:49:48 2024 -0600

    GREAT-GRANDPARENT: This fixes a crash in parent pane selection

    (cherry picked from commit 91a0d0e)

commit 4d47cd5
Author: Mike Griese <migrie@microsoft.com>
Date:   Mon Mar 4 16:34:36 2024 -0600

    cleanup

commit 0a11643
Author: Mike Griese <migrie@microsoft.com>
Date:   Mon Mar 4 16:30:16 2024 -0600

    sanely pass around a cache instead of... whatever that was.

commit 17075d6
Merge: 092b355 25a8851
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Feb 28 11:50:29 2024 -0600

    Merge branch 'dev/migrie/fhl/scratchpad-pane' into dev/migrie/f/sui-panes

commit 25a8851
Merge: c244633 de5f7af
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Feb 28 11:36:02 2024 -0600

    Merge branch 'dev/migrie/fhl/non-terminal-panes-2023' into dev/migrie/fhl/scratchpad-pane

commit de5f7af
Merge: 3982358 94e74d2
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Feb 28 11:32:40 2024 -0600

    Merge remote-tracking branch 'origin/main' into dev/migrie/fhl/non-terminal-panes-2023

commit 14a00c8
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Feb 21 12:14:47 2024 -0600

    lots of cleanup

commit 02a5593
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Feb 21 12:07:45 2024 -0600

    this is amazing, I'm amazing, everything is awesome

commit 2960476
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Feb 21 11:39:58 2024 -0600

    holy fuck this is better than I imagined a week ago

commit 9300647
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Feb 21 11:20:33 2024 -0600

    turns out Visibility works exactly like you'd want for a TreeView

commit b706a6d
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Feb 21 11:01:36 2024 -0600

    yes yes subclasses are hard in C

commit 17d70f5
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Feb 21 10:57:05 2024 -0600

    weird but works surprisingly well

commit 69cb545
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Feb 21 10:16:41 2024 -0600

    Blindly, what if TaskViewModel was a FilteredCommand?

commit def6630
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Feb 21 09:32:50 2024 -0600

    I wanted to start adding a filter box, but that got tricky

commit d86bd57
Merge: 01ca03f afa7a24
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Feb 21 09:18:46 2024 -0600

    Merge branch 'dev/migrie/fhl/tasks-pane' of https://github.com/microsoft/terminal into dev/migrie/fhl/tasks-pane

commit 01ca03f
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Feb 21 09:17:44 2024 -0600

    Don't generate names with visualized SPC and BS for the sxnui

    You know, this doesn't really help right now, but it should fix #16577,
    and maybe help with #16578 (but not the command palette part)

commit c94c00b
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Feb 20 16:12:12 2024 -0600

    more better styling

commit afa7a24
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Feb 20 16:12:12 2024 -0600

    more better styling

commit db427f2
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Feb 20 16:11:34 2024 -0600

    better styling

commit 2f3ecf1
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Feb 20 15:41:10 2024 -0600

    plumb the action through to the task pane

commit d7a6b18
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Feb 20 09:28:42 2024 -0600

    re-add the visibility hack; add a play button that does nothing

commit 365c068
Author: Mike Griese <migrie@microsoft.com>
Date:   Mon Feb 19 12:42:24 2024 -0600

    this fixes that random item reuse problem

commit 8418d6a
Author: Mike Griese <migrie@microsoft.com>
Date:   Fri Feb 16 15:54:21 2024 -0600

    omg bind to the IsSelected

commit 0bb13f9
Author: Mike Griese <migrie@microsoft.com>
Date:   Fri Feb 16 09:23:50 2024 -0600

    real xaml

commit e72b1bf
Author: Mike Griese <migrie@microsoft.com>
Date:   Fri Feb 16 08:40:29 2024 -0600

    nested commands are easy guys

commit 81b35ff
Author: Mike Griese <migrie@microsoft.com>
Date:   Fri Feb 16 08:32:30 2024 -0600

    this worked surprisingly quickly

commit 092b355
Merge: 389ba20 c244633
Author: Mike Griese <migrie@microsoft.com>
Date:   Thu Feb 8 09:47:33 2024 -0600

    Merge branch 'dev/migrie/fhl/scratchpad-pane' into dev/migrie/f/sui-panes

commit c244633
Merge: 7bc1457 3982358
Author: Mike Griese <migrie@microsoft.com>
Date:   Thu Feb 8 09:46:46 2024 -0600

    Merge branch 'dev/migrie/fhl/non-terminal-panes-2023' into dev/migrie/fhl/scratchpad-pane

commit 3982358
Merge: 0d528f8 71c35cf
Author: Mike Griese <migrie@microsoft.com>
Date:   Thu Feb 8 09:40:19 2024 -0600

    Merge remote-tracking branch 'origin/main' into dev/migrie/fhl/non-terminal-panes-2023

commit 0d528f8
Merge: 6bc711d 92f9ff9
Author: Mike Griese <migrie@microsoft.com>
Date:   Fri Jan 19 16:25:31 2024 -0600

    Merge remote-tracking branch 'origin/main' into dev/migrie/fhl/non-terminal-panes-2023

commit 6bc711d
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Nov 8 11:10:58 2023 -0600

    maybe I'm not that good at coding

commit f622d80
Merge: 4cec7e9 077d63e
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Nov 8 05:55:27 2023 -0600

    Merge remote-tracking branch 'origin/main' into dev/migrie/fhl/non-terminal-panes-2023

commit 4cec7e9
Author: Mike Griese <migrie@microsoft.com>
Date:   Mon Nov 6 06:01:55 2023 -0600

    try to remove a few of these but ultimately, eh

commit cf920e7
Merge: 58e8f3c 0289cb0
Author: Mike Griese <migrie@microsoft.com>
Date:   Thu Nov 2 06:13:22 2023 -0500

    Merge remote-tracking branch 'origin/main' into dev/migrie/fhl/non-terminal-panes-2023

commit 389ba20
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Oct 25 14:41:57 2023 -0500

    spel

commit dd8606f
Merge: fb74fc8 7bc1457
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Oct 25 11:04:43 2023 -0500

    Merge branch 'dev/migrie/fhl/scratchpad-pane' into dev/migrie/f/sui-panes

commit 7bc1457
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Oct 25 11:03:41 2023 -0500

    nits and such

commit e9e04d4
Merge: b49997b 58e8f3c
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Oct 25 09:37:37 2023 -0500

    Merge branch 'dev/migrie/fhl/non-terminal-panes-2023' into dev/migrie/fhl/scratchpad-pane

commit 58e8f3c
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Oct 25 09:37:23 2023 -0500

    mostly nits

commit 8df9523
Merge: fd06409 d0d3039
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Oct 25 09:04:35 2023 -0500

    Merge remote-tracking branch 'origin/main' into dev/migrie/fhl/non-terminal-panes-2023

commit fd06409
Author: Mike Griese <migrie@microsoft.com>
Date:   Fri Oct 13 15:17:38 2023 -0500

    annoying build break

commit fb74fc8
Author: Mike Griese <migrie@microsoft.com>
Date:   Fri Oct 13 14:58:19 2023 -0500

    dead code

commit 5f4087f
Author: Mike Griese <migrie@microsoft.com>
Date:   Fri Oct 13 14:56:50 2023 -0500

    finish exorcising SettingsTab

commit 81889a6
Author: Mike Griese <migrie@microsoft.com>
Date:   Fri Oct 13 14:08:49 2023 -0500

    derp

commit e82c627
Author: Mike Griese <migrie@microsoft.com>
Date:   Fri Oct 13 12:09:08 2023 -0500

    dead code removal

commit d726165
Author: Mike Griese <migrie@microsoft.com>
Date:   Fri Oct 13 12:06:59 2023 -0500

    terrible, but it works

commit 57e1f26
Merge: 6107c3e b49997b
Author: Mike Griese <migrie@microsoft.com>
Date:   Fri Oct 13 11:36:27 2023 -0500

    Merge branch 'dev/migrie/fhl/scratchpad-pane' into dev/migrie/f/sui-panes

commit b49997b
Merge: 46469aa 2086e0f
Author: Mike Griese <migrie@microsoft.com>
Date:   Fri Oct 13 11:12:24 2023 -0500

    Merge branch 'dev/migrie/fhl/non-terminal-panes-2023' into dev/migrie/fhl/scratchpad-pane

commit 2086e0f
Merge: c869b47 544cdd7
Author: Mike Griese <migrie@microsoft.com>
Date:   Fri Oct 13 10:39:02 2023 -0500

    Merge remote-tracking branch 'origin/main' into dev/migrie/fhl/non-terminal-panes-2023

commit 6107c3e
Merge: 9531069 46469aa
Author: Mike Griese <migrie@microsoft.com>
Date:   Mon Sep 11 05:43:06 2023 -0500

    Merge branch 'dev/migrie/fhl/scratchpad-pane' into dev/migrie/f/sui-panes

commit 46469aa
Merge: 1cc9835 c869b47
Author: Mike Griese <migrie@microsoft.com>
Date:   Mon Sep 11 05:24:30 2023 -0500

    Merge branch 'dev/migrie/fhl/non-terminal-panes-2023' into dev/migrie/fhl/scratchpad-pane

commit c869b47
Merge: e0b003a 4ddfc3e
Author: Mike Griese <migrie@microsoft.com>
Date:   Mon Sep 11 05:22:43 2023 -0500

    Merge remote-tracking branch 'origin/main' into dev/migrie/fhl/non-terminal-panes-2023

commit 9531069
Author: Mike Griese <migrie@microsoft.com>
Date:   Mon Aug 7 15:17:09 2023 -0500

    background brush, done

commit 521e301
Author: Mike Griese <migrie@microsoft.com>
Date:   Thu Aug 3 13:50:11 2023 -0500

    update settings should work now

commit 842326d
Author: Mike Griese <migrie@microsoft.com>
Date:   Thu Aug 3 11:31:57 2023 -0500

    icons for non-terminal pane content

commit fb7c809
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Aug 1 11:37:10 2023 -0500

    derp

commit 29d0d57
Author: Mike Griese <migrie@microsoft.com>
Date:   Thu Jul 27 16:29:26 2023 -0500

    this works better than it has any right to

commit cbd61b0
Author: Mike Griese <migrie@microsoft.com>
Date:   Thu Jul 27 15:55:05 2023 -0500

    POC: yea, this works

commit 1cc9835
Author: Mike Griese <migrie@microsoft.com>
Date:   Thu Jul 27 13:58:44 2023 -0500

    feature flags too

commit 86914bd
Merge: a23c1a2 e0b003a
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Jul 25 13:28:25 2023 -0500

    Merge branch 'dev/migrie/fhl/non-terminal-panes-2023' into dev/migrie/fhl/scratchpad-pane

commit e0b003a
Merge: f89368c 5daf498
Author: Mike Griese <migrie@microsoft.com>
Date:   Mon Jul 24 14:10:40 2023 -0500

    Merge branch 'main' into dev/migrie/fhl/non-terminal-panes-2023

commit f89368c
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Jul 18 13:47:38 2023 -0500

    [PARENT] try to use GetActiveTerminalControl less in TerminalTab

    (cherry picked from commit 262d95a)

commit 5582e1b
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Jul 18 13:21:18 2023 -0500

    [PARENT] You know what, I just went for it.

    (cherry picked from commit 63ba8e1)

commit a23c1a2
Author: Mike Griese <migrie@microsoft.com>
Date:   Thu Jul 20 07:39:02 2023 -0500

    keybindings too

commit 5f9add4
Merge: 2d40306 11126f9
Author: Mike Griese <migrie@microsoft.com>
Date:   Thu Jul 20 07:04:10 2023 -0500

    Merge branch 'dev/migrie/fhl/non-terminal-panes-2023' into dev/migrie/fhl/scratchpad-pane

commit 11126f9
Merge: e31202b 7010626
Author: Mike Griese <migrie@microsoft.com>
Date:   Thu Jul 20 07:02:16 2023 -0500

    Merge remote-tracking branch 'origin/main' into dev/migrie/fhl/non-terminal-panes-2023

commit e31202b
Merge: e6dc314 6a10ea5
Author: Mike Griese <migrie@microsoft.com>
Date:   Thu Jul 20 07:02:04 2023 -0500

    Merge commit '6a10ea5' into dev/migrie/fhl/non-terminal-panes-2023

commit e6dc314
Merge: 049c043 b4042ea
Author: Mike Griese <migrie@microsoft.com>
Date:   Wed Jul 19 16:22:03 2023 -0500

    Merge commit 'b4042ea' into dev/migrie/fhl/non-terminal-panes-2023

commit 2d40306
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Jul 18 13:47:58 2023 -0500

    Let's just make it experimental

commit 262d95a
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Jul 18 13:47:38 2023 -0500

    [PARENT] try to use GetActiveTerminalControl less in TerminalTab

commit 63ba8e1
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Jul 18 13:21:18 2023 -0500

    [PARENT] You know what, I just went for it.

commit 1b39db7
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Jul 18 12:58:55 2023 -0500

    Single commit that adds the whole scratchpad and action

commit 2dd8f40
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Jul 18 11:48:33 2023 -0500

    [TO PARENT] dead code

commit 049c043
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Jul 18 10:26:32 2023 -0500

    some last cleanups

commit a1da6c1
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Jul 18 10:13:44 2023 -0500

    huge shuffling so that pane content can raise events instead of relying on termcontrol

commit 7c9ffb0
Author: Mike Griese <migrie@microsoft.com>
Date:   Tue Jul 18 06:06:07 2023 -0500

    snapping now uses an interface, so that it's not TermControl-specific

commit 84df819
Author: Mike Griese <migrie@microsoft.com>
Date:   Mon Jul 17 14:22:12 2023 -0500

    close event

commit 5b3aa54
Author: Mike Griese <migrie@microsoft.com>
Date:   Mon Jul 17 12:42:43 2023 -0500

    move GetNewTerminalArgs into IPaneContent

commit ef6bb8a
Author: Mike Griese <migrie@microsoft.com>
Date:   Mon Jul 17 12:35:27 2023 -0500

    hey look, it builds now

commit 4e14442
Merge: f353323 f4bcbfb
Author: Mike Griese <migrie@microsoft.com>
Date:   Mon Jul 17 10:53:56 2023 -0500

    Merge remote-tracking branch 'origin/main' into dev/migrie/fhl/non-terminal-panes-2023

commit f353323
Author: Mike Griese <migrie@microsoft.com>
Date:   Fri May 12 13:32:12 2023 -0500

    I wanted to do this in one shot but _zelda_
  • Loading branch information
zadjii-msft committed May 2, 2024
1 parent c52dca4 commit 0ec5aef
Show file tree
Hide file tree
Showing 19 changed files with 548 additions and 15 deletions.
22 changes: 22 additions & 0 deletions src/cascadia/TerminalApp/AppActionHandlers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

#include "TerminalPage.h"
#include "ScratchpadContent.h"
#include "TasksPaneContent.h"
#include "../WinRTUtils/inc/WtExeUtils.h"
#include "../../types/inc/utils.hpp"
#include "Utils.h"
Expand Down Expand Up @@ -1473,4 +1474,25 @@ namespace winrt::TerminalApp::implementation
_ShowAboutDialog();
args.Handled(true);
}

void TerminalPage::_HandleOpenTasksPane(const IInspectable& sender,
const ActionEventArgs& args)
{
if (Feature_ScratchpadPane::IsEnabled())
{
const auto& scratchPane{ winrt::make_self<TasksPaneContent>() };
scratchPane->UpdateSettings(_settings);
// This is maybe a little wacky - add our key event handler to the pane
// we made. So that we can get actions for keys that the content didn't
// handle.
scratchPane->GetRoot().KeyDown({ this, &TerminalPage::_KeyDownHandler });

scratchPane->DispatchCommandRequested({ this, &TerminalPage::_OnDispatchCommandRequested });

const auto resultPane = std::make_shared<Pane>(*scratchPane);
_SplitPane(_senderOrFocusedTab(sender), SplitDirection::Automatic, 0.5f, resultPane);
args.Handled(true);
}
}

}
19 changes: 15 additions & 4 deletions src/cascadia/TerminalApp/FilteredCommand.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,22 @@ namespace winrt::TerminalApp::implementation
{
// This class is a wrapper of PaletteItem, that is used as an item of a filterable list in CommandPalette.
// It manages a highlighted text that is computed by matching search filter characters to item name
FilteredCommand::FilteredCommand(const winrt::TerminalApp::PaletteItem& item) :
_Item(item),
_Filter(L""),
_Weight(0)
FilteredCommand::FilteredCommand(const winrt::TerminalApp::PaletteItem& item)
{
// Actually implement the ctor in _constructFilteredCommand
_constructFilteredCommand(item);
}

// We need to actually implement the ctor in a separate helper. This is
// because we have a FilteredTask class which derives from FilteredCommand.
// HOWEVER, for cppwinrt ~ r e a s o n s ~, it doesn't actually derive from
// FilteredCommand directly, so we can't just use the FilteredCommand ctor
// directly in the base class.
void FilteredCommand::_constructFilteredCommand(const winrt::TerminalApp::PaletteItem& item)
{
_Item = item;
_Filter = L"";
_Weight = 0;
_HighlightedName = _computeHighlightedName();

// Recompute the highlighted name if the item name changes
Expand Down
5 changes: 4 additions & 1 deletion src/cascadia/TerminalApp/FilteredCommand.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ namespace winrt::TerminalApp::implementation
FilteredCommand() = default;
FilteredCommand(const winrt::TerminalApp::PaletteItem& item);

void UpdateFilter(const winrt::hstring& filter);
virtual void UpdateFilter(const winrt::hstring& filter);

static int Compare(const winrt::TerminalApp::FilteredCommand& first, const winrt::TerminalApp::FilteredCommand& second);

Expand All @@ -29,6 +29,9 @@ namespace winrt::TerminalApp::implementation
WINRT_OBSERVABLE_PROPERTY(winrt::TerminalApp::HighlightedText, HighlightedName, PropertyChanged.raise);
WINRT_OBSERVABLE_PROPERTY(int, Weight, PropertyChanged.raise);

protected:
void _constructFilteredCommand(const winrt::TerminalApp::PaletteItem& item);

private:
winrt::TerminalApp::HighlightedText _computeHighlightedName();
int _computeWeight();
Expand Down
2 changes: 1 addition & 1 deletion src/cascadia/TerminalApp/FilteredCommand.idl
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import "HighlightedTextControl.idl";

namespace TerminalApp
{
[default_interface] runtimeclass FilteredCommand : Windows.UI.Xaml.Data.INotifyPropertyChanged
[default_interface] unsealed runtimeclass FilteredCommand : Windows.UI.Xaml.Data.INotifyPropertyChanged
{
FilteredCommand();
FilteredCommand(PaletteItem item);
Expand Down
10 changes: 10 additions & 0 deletions src/cascadia/TerminalApp/TabManagement.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,16 @@ namespace winrt::TerminalApp::implementation
// for it. The Title change will be propagated upwards through the tab's
// PropertyChanged event handler.
newTabImpl->ActivePaneChanged([weakTab, weakThis{ get_weak() }]() {
// TODO!
//
// * Make this a method on TerminalPage.
// * Convert ActivePaneChanged to a typed event, so it sends the sender (so we don't need to make all these lambdas)
// * Stash the task pane as a member on the Terminal? if one was opened.
// * If the tab does have a taskpane, then tell the taskpane the active pane changed
//
// wait don't do any of that. just do that in TerminalTab directly
// before we even raise the event you donkey

auto page{ weakThis.get() };
auto tab{ weakTab.get() };

Expand Down
125 changes: 125 additions & 0 deletions src/cascadia/TerminalApp/TasksPaneContent.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.

#include "pch.h"
#include "TasksPaneContent.h"
#include "TasksPaneContent.g.cpp"
#include "FilteredTask.g.cpp"

using namespace winrt::Windows::Foundation;
using namespace winrt::Microsoft::Terminal::Settings;
using namespace winrt::Microsoft::Terminal::Settings::Model;

namespace winrt
{
namespace WUX = Windows::UI::Xaml;
namespace MUX = Microsoft::UI::Xaml;
using IInspectable = Windows::Foundation::IInspectable;
}

namespace winrt::TerminalApp::implementation
{
TasksPaneContent::TasksPaneContent()
{
InitializeComponent();

auto res = Windows::UI::Xaml::Application::Current().Resources();
auto bg = res.Lookup(winrt::box_value(L"UnfocusedBorderBrush"));
Background(bg.try_as<WUX::Media::Brush>());
}

void TasksPaneContent::_updateFilteredCommands()
{
const auto& queryString = _filterBox().Text();

// DON'T replace the itemSource here. If you do, it'll un-expand all the
// nested items the user has expanded. Instead, just update the filter.
// That'll also trigger a PropertyChanged for the Visibility property.
for (const auto& t : _allTasks)
{
t.UpdateFilter(queryString);
}
}

void TasksPaneContent::UpdateSettings(const CascadiaSettings& settings)
{
_settings = settings;

// You'd think that `FilterToSendInput(queryString)` would work. It
// doesn't! That uses the queryString as the current command the user
// has typed, then relies on the sxnui to _also_ filter with that
// string.

const auto tasks = _settings.GlobalSettings().ActionMap().FilterToSendInput(L""); // IVector<Model::Command>
_allTasks = winrt::single_threaded_observable_vector<TerminalApp::FilteredTask>();
for (const auto& t : tasks)
{
const auto& filtered{ winrt::make<FilteredTask>(t) };
_allTasks.Append(filtered);
}
_treeView().ItemsSource(_allTasks);

_updateFilteredCommands();
}

void TasksPaneContent::_filterTextChanged(const IInspectable& /*sender*/,
const Windows::UI::Xaml::RoutedEventArgs& /*args*/)
{
_updateFilteredCommands();
}

winrt::Windows::UI::Xaml::FrameworkElement TasksPaneContent::GetRoot()
{
return *this;
}
winrt::Windows::Foundation::Size TasksPaneContent::MinimumSize()
{
return { 1, 1 };
}
void TasksPaneContent::Focus(winrt::Windows::UI::Xaml::FocusState reason)
{
reason;
// _box.Focus(reason);
}
void TasksPaneContent::Close()
{
CloseRequested.raise(*this, nullptr);
}

NewTerminalArgs TasksPaneContent::GetNewTerminalArgs(const bool /* asContent */) const
{
return nullptr;
}

winrt::hstring TasksPaneContent::Icon() const
{
static constexpr std::wstring_view glyph{ L"\xe70b" }; // QuickNote
return winrt::hstring{ glyph };
}

winrt::Windows::UI::Xaml::Media::Brush TasksPaneContent::BackgroundBrush()
{
return Background();
}

void TasksPaneContent::SetLastActiveControl(const Microsoft::Terminal::Control::TermControl& control)
{
_control = control;
}

void TasksPaneContent::_runCommandButtonClicked(const Windows::Foundation::IInspectable& sender,
const Windows::UI::Xaml::RoutedEventArgs&)
{
if (const auto& taskVM{ sender.try_as<WUX::Controls::Button>().DataContext().try_as<FilteredTask>() })
{
if (const auto& strongControl{ _control.get() })
{
// By using the last active control as the sender here, the
// actiopn dispatch will send this to the active control,
// thinking that it is the control that requested this event.
DispatchCommandRequested.raise(strongControl, taskVM->Command());
}
}
}

}
140 changes: 140 additions & 0 deletions src/cascadia/TerminalApp/TasksPaneContent.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.

#pragma once
#include "TasksPaneContent.g.h"
#include "FilteredTask.g.h"
#include "FilteredCommand.h"
#include "ActionPaletteItem.h"

namespace winrt::TerminalApp::implementation
{
struct TasksPaneContent : TasksPaneContentT<TasksPaneContent>
{
TasksPaneContent();

winrt::Windows::UI::Xaml::FrameworkElement GetRoot();

void UpdateSettings(const winrt::Microsoft::Terminal::Settings::Model::CascadiaSettings& settings);

winrt::Windows::Foundation::Size MinimumSize();
void Focus(winrt::Windows::UI::Xaml::FocusState reason = winrt::Windows::UI::Xaml::FocusState::Programmatic);
void Close();
winrt::Microsoft::Terminal::Settings::Model::NewTerminalArgs GetNewTerminalArgs(const bool asContent) const;

// TODO! lots of strings here and in XAML that need RS_-ifying
winrt::hstring Title() { return L"Tasks"; }
uint64_t TaskbarState() { return 0; }
uint64_t TaskbarProgress() { return 0; }
bool ReadOnly() { return false; }
winrt::hstring Icon() const;
Windows::Foundation::IReference<winrt::Windows::UI::Color> TabColor() const noexcept { return nullptr; }
winrt::Windows::UI::Xaml::Media::Brush BackgroundBrush();

void SetLastActiveControl(const Microsoft::Terminal::Control::TermControl& control);

til::typed_event<> CloseRequested;
til::typed_event<winrt::Windows::Foundation::IInspectable, winrt::TerminalApp::BellEventArgs> BellRequested;
til::typed_event<> TitleChanged;
til::typed_event<> TabColorChanged;
til::typed_event<> TaskbarProgressChanged;
til::typed_event<> ConnectionStateChanged;
til::typed_event<> ReadOnlyChanged;
til::typed_event<> FocusRequested;

til::typed_event<winrt::Windows::Foundation::IInspectable, Microsoft::Terminal::Settings::Model::Command> DispatchCommandRequested;

private:
friend struct TasksPaneContentT<TasksPaneContent>; // for Xaml to bind events

winrt::weak_ref<Microsoft::Terminal::Control::TermControl> _control{ nullptr };
winrt::Microsoft::Terminal::Settings::Model::CascadiaSettings _settings{ nullptr };

winrt::Windows::Foundation::Collections::IObservableVector<TerminalApp::FilteredTask> _allTasks{ nullptr };

void _runCommandButtonClicked(const Windows::Foundation::IInspectable& sender, const Windows::UI::Xaml::RoutedEventArgs&);
void _filterTextChanged(const Windows::Foundation::IInspectable& sender, const Windows::UI::Xaml::RoutedEventArgs& args);

void _updateFilteredCommands();
};

struct FilteredTask : FilteredTaskT<FilteredTask, TerminalApp::implementation::FilteredCommand>
{
FilteredTask() = default;

FilteredTask(const winrt::Microsoft::Terminal::Settings::Model::Command& command)
{
_constructFilteredCommand(winrt::make<winrt::TerminalApp::implementation::ActionPaletteItem>(command));
_command = command;

// The Children() method must always return a non-null vector
_children = winrt::single_threaded_observable_vector<TerminalApp::FilteredTask>();
if (_command.HasNestedCommands())
{
for (const auto& [_, child] : _command.NestedCommands())
{
auto vm{ winrt::make<FilteredTask>(child) };
_children.Append(vm);
}
}
}

void UpdateFilter(const winrt::hstring& filter) override
{
TerminalApp::implementation::FilteredCommand::UpdateFilter(filter);
for (const auto& c : _children)
{
c.UpdateFilter(filter);
}

PropertyChanged.raise(*this, Windows::UI::Xaml::Data::PropertyChangedEventArgs{ L"Visibility" });
}

winrt::hstring Input()
{
if (const auto& actionItem{ _Item.try_as<winrt::TerminalApp::ActionPaletteItem>() })
{
if (const auto& command{ actionItem.Command() })
{
if (const auto& sendInput{ command.ActionAndArgs().Args().try_as<winrt::Microsoft::Terminal::Settings::Model::SendInputArgs>() })
{
return sendInput.Input();
}
}
}
return L"";
};

winrt::Windows::Foundation::Collections::IObservableVector<TerminalApp::FilteredTask> Children() { return _children; }
winrt::Microsoft::Terminal::Settings::Model::Command Command() { return _command; }

// Used to control if this item is visible in the TreeView. Turns out,
// TreeView is in fact sane enough to remove items entirely if they're
// Collapsed.
winrt::Windows::UI::Xaml::Visibility Visibility()
{
// Is there no filter, or do we match it?
if (_Filter.empty() || _Weight > 0)
{
return winrt::Windows::UI::Xaml::Visibility::Visible;
}
// If we don't match, maybe one of our children does
auto totalWeight = _Weight;
for (const auto& c : _children)
{
totalWeight += c.Weight();
}

return totalWeight > 0 ? winrt::Windows::UI::Xaml::Visibility::Visible : winrt::Windows::UI::Xaml::Visibility::Collapsed;
};

private:
winrt::Microsoft::Terminal::Settings::Model::Command _command{ nullptr };
winrt::Windows::Foundation::Collections::IObservableVector<TerminalApp::FilteredTask> _children{ nullptr };
};
}

namespace winrt::TerminalApp::factory_implementation
{
BASIC_FACTORY(TasksPaneContent);
}
Loading

0 comments on commit 0ec5aef

Please sign in to comment.