Sicherungspunkt vor dem Aufraeumen. Buendelt die Arbeit, die seit dem Abschluss der Avalonia-Portierung im Arbeitsverzeichnis lag. Oberflaeche - Entwurf aus Mockup/ umgesetzt: Theme.axaml (Farben je Thema, Barlow als mitgelieferte Schrift), Icons.axaml (Symbolgeometrien), Shell.axaml (eigene ControlThemes statt Fluent umzufaerben). - Neue Steuerelemente StrokeIcon und BlueprintFrame, Seiten fuer Token-Verbrauch und Agenten-Chats, Werkzeug-Einstellungen als Seite statt eigenem Fenster, Texteditor-Fenster. - ThemeManager mit hellem und dunklem Thema; die beiden Pinsel-Konverter entfallen, weil ein fester Farbwert den Themenwechsel nicht ueberlebt. Rocket.Chat - Neues Tool-Projekt (Client, Konfiguration, Workspace-Dateien) nach der Bauform des Telegram-Tools: rocketchat_poll als Tool-Job, geweckt wird nur, wenn wirklich etwas anliegt. - send_file ist freigabepflichtig, send_message bewusst nicht: Der Raum ist Arbeitsraum, der Schutz sitzt an der Raum-Allowlist. - Konzept-Doc um die Messung gegen die echte Instanz 8.7 ergaenzt; drei Annahmen waren falsch und sind korrigiert. Deploymentcenter - DC6 (Update anwenden) und DC7 (Erstinstallation ueber setup.json) erledigt, DC3 fuer win-x64/dev; deploy/publish.py als Release-Strecke. - AppHost.DisposeAsync gegen doppeltes Herunterfahren gesperrt - sonst ueberschreibt eine zweite Abmeldung den Wartungszustand am Watchdog. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
31 lines
1.0 KiB
C#
31 lines
1.0 KiB
C#
using Avalonia.Controls;
|
|
using Avalonia.Input;
|
|
using ClawdDotNet.Desktop.ViewModels;
|
|
|
|
namespace ClawdDotNet.Desktop.Views;
|
|
|
|
public partial class InstancePickerWindow : Window
|
|
{
|
|
public InstancePickerWindow()
|
|
{
|
|
InitializeComponent();
|
|
|
|
// Doppelklick auf eine Zeile bestaetigt — wie in der WinForms-Fassung.
|
|
//
|
|
// Der Behandler haengt an der Liste und nicht mehr am Fenster: Am Fenster loeste
|
|
// auch ein Doppelklick ins Namensfeld die Auswahl aus, was seit dem Umbau
|
|
// deutlich leichter passiert, weil das Feld gross und mittig steht.
|
|
InstanceList.AddHandler(DoubleTappedEvent, OnRowDoubleTapped, handledEventsToo: false);
|
|
}
|
|
|
|
private void OnRowDoubleTapped(object? sender, TappedEventArgs e)
|
|
{
|
|
if (DataContext is not InstancePickerViewModel vm) return;
|
|
|
|
// Getroffen wird irgendein Element in der Zeile; der Datenkontext ist derselbe.
|
|
if ((e.Source as Control)?.DataContext is not InstanceChoiceViewModel choice) return;
|
|
|
|
vm.ActivateCommand.Execute(choice);
|
|
}
|
|
}
|