feat(ui): detach a monitor into its own window
This commit is contained in:
@@ -18,6 +18,8 @@
|
||||
<StackPanel Orientation="Horizontal" Spacing="8">
|
||||
<Button Classes="btn" Content="{loc:Tr missionControl.openInApp}"
|
||||
Command="{Binding OpenInAppCommand}" />
|
||||
<Button Classes="btn" Content="{loc:Tr missionControl.detach}"
|
||||
Command="{Binding DetachCommand}" />
|
||||
<Button Classes="btn" Content="{loc:Tr missionControl.cancel}"
|
||||
Command="{Binding CancelTaskCommand}"
|
||||
IsVisible="{Binding IsRunning}" />
|
||||
|
||||
12
src/ClaudeDo.Ui/Views/MissionControl/TaskMonitorWindow.axaml
Normal file
12
src/ClaudeDo.Ui/Views/MissionControl/TaskMonitorWindow.axaml
Normal file
@@ -0,0 +1,12 @@
|
||||
<Window xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:vm="using:ClaudeDo.Ui.ViewModels.Islands"
|
||||
xmlns:mc="using:ClaudeDo.Ui.Views.MissionControl"
|
||||
x:Class="ClaudeDo.Ui.Views.MissionControl.TaskMonitorWindow"
|
||||
x:DataType="vm:TaskMonitorViewModel"
|
||||
Title="{Binding DisplayTitle}"
|
||||
Width="560" Height="620" MinWidth="360" MinHeight="320"
|
||||
Background="{DynamicResource VoidBrush}"
|
||||
Icon="avares://ClaudeDo.Ui/Assets/ClaudeTask.ico">
|
||||
<mc:MonitorPaneView />
|
||||
</Window>
|
||||
@@ -0,0 +1,8 @@
|
||||
using Avalonia.Controls;
|
||||
|
||||
namespace ClaudeDo.Ui.Views.MissionControl;
|
||||
|
||||
public partial class TaskMonitorWindow : Window
|
||||
{
|
||||
public TaskMonitorWindow() => InitializeComponent();
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using Avalonia;
|
||||
using Avalonia.Controls;
|
||||
@@ -6,6 +7,7 @@ using Avalonia.Media;
|
||||
using ClaudeDo.Ui.Services;
|
||||
using ClaudeDo.Ui.ViewModels;
|
||||
using ClaudeDo.Ui.ViewModels.Conflicts;
|
||||
using ClaudeDo.Ui.ViewModels.Islands;
|
||||
using ClaudeDo.Ui.ViewModels.Modals;
|
||||
using ClaudeDo.Ui.Views.Conflicts;
|
||||
using ClaudeDo.Ui.Views.MissionControl;
|
||||
@@ -121,6 +123,13 @@ public sealed class WindowDialogService : IDialogService
|
||||
_missionControl.Activate(); // bring to front / focus
|
||||
}
|
||||
|
||||
public void ShowDetachedMonitor(TaskMonitorViewModel monitor, Action onClosed)
|
||||
{
|
||||
var win = new TaskMonitorWindow { DataContext = monitor };
|
||||
win.Closed += (_, _) => onClosed(); // closing re-docks into the grid
|
||||
win.Show(); // modeless, independent
|
||||
}
|
||||
|
||||
public Task<bool> ConfirmAsync(string message)
|
||||
{
|
||||
var tcs = new TaskCompletionSource<bool>();
|
||||
|
||||
Reference in New Issue
Block a user