- ModuleView liefert jetzt ein Form (CreateForm statt CreateControl); die 4 Views (Terminal, Settings, Jobs, Dashboard) von UserControl auf Form umgestellt (im Designer als Fenster bearbeitbar). ViewHostForm entfernt. - ShellUiHost verwaltet offene Forms: Einzelinstanz, bereits offenes Fenster wird in den Vordergrund geholt, OpenStateChanged-Event. - LauncherForm: Fenster-Buttons an View-IDs gebunden; offene Fenster werden am Button markiert (Checked), erneuter Klick holt das Fenster nach vorn. - Build 0 Fehler. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
62 lines
2.0 KiB
C#
62 lines
2.0 KiB
C#
using System;
|
|
using System.Windows.Forms;
|
|
using PolyTraderSharp.Models;
|
|
using PolyTraderSharp.Services;
|
|
|
|
namespace PolyTraderSharp.Ui.Views
|
|
{
|
|
/// <summary>
|
|
/// Core-Settings-Ansicht: bearbeitet die ServerSettings über ein PropertyGrid.
|
|
/// Designbar (siehe SettingsView.Designer.cs); Laufzeit-Abhängigkeiten via Initialize.
|
|
/// Verhalten entspricht dem bisherigen Settings-Tab (Speichern -> XML + Services neu laden).
|
|
/// </summary>
|
|
public partial class SettingsView : Form
|
|
{
|
|
private const string SettingsPath = "server_settings.xml";
|
|
|
|
private ServerSettings _settings = new();
|
|
private ThreemaService? _threema;
|
|
private MullvadVpnService? _vpn;
|
|
private TerminalLogger? _logger;
|
|
|
|
public SettingsView()
|
|
{
|
|
InitializeComponent();
|
|
btnSave.Click += (_, _) => Save();
|
|
btnReload.Click += (_, _) => Reload();
|
|
}
|
|
|
|
public void Initialize(ThreemaService threema, MullvadVpnService vpn, TerminalLogger logger)
|
|
{
|
|
_threema = threema;
|
|
_vpn = vpn;
|
|
_logger = logger;
|
|
Reload();
|
|
}
|
|
|
|
private void Reload()
|
|
{
|
|
_settings = ServerSettings.Load(SettingsPath);
|
|
propertyGrid.SelectedObject = _settings;
|
|
}
|
|
|
|
private void Save()
|
|
{
|
|
try
|
|
{
|
|
_settings.Save(SettingsPath);
|
|
_threema?.ReloadSettings();
|
|
_vpn?.ReloadSettings();
|
|
_logger?.Info("Server-Einstellungen gespeichert und Services neu geladen.");
|
|
MessageBox.Show("Server-Einstellungen gespeichert.", "Erfolg",
|
|
MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show($"Fehler beim Speichern: {ex.Message}", "Fehler",
|
|
MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
}
|
|
}
|
|
}
|