Add constant rich text placeholders
CI / build-and-test (push) Canceled after 0s

This commit is contained in:
2026-08-30 23:23:48 +02:00
parent 28469bf547
commit 527c186090
15 changed files with 529 additions and 15 deletions
@@ -39,6 +39,23 @@ public partial class MainWindow : Window
_viewModel.MetadataItems.Remove(selected); _viewModel.SelectedMetadata = null; _viewModel.CanExport = false;
}
private void OnRemovePlaceholder(object? sender, RoutedEventArgs e) => _viewModel.RemoveSelectedPlaceholder();
private void OnBoldSelection(object? sender, RoutedEventArgs e) => WrapPlaceholderSelection("[b]", "[/b]");
private void OnItalicSelection(object? sender, RoutedEventArgs e) => WrapPlaceholderSelection("[i]", "[/i]");
private void OnUnderlineSelection(object? sender, RoutedEventArgs e) => WrapPlaceholderSelection("[u]", "[/u]");
private void WrapPlaceholderSelection(string opening, string closing)
{
if (_viewModel.SelectedPlaceholder is not { SupportsRichText: true } placeholder
|| this.FindControl<TextBox>("PlaceholderValueTextBox") is not { } editor) return;
var source = editor.Text ?? "";
var start = Math.Min(editor.SelectionStart, editor.SelectionEnd);
var end = Math.Max(editor.SelectionStart, editor.SelectionEnd);
var updated = source[..start] + opening + source[start..end] + closing + source[end..];
placeholder.Sample = updated; editor.Text = updated;
editor.SelectionStart = start + opening.Length;
editor.SelectionEnd = end + opening.Length;
editor.Focus(); _viewModel.CanExport = false;
}
private void OnAddElement(object? sender, RoutedEventArgs e)
{ try { _viewModel.AddElement(); } catch (Exception ex) { _viewModel.SetStatus(ex.Message, true); } }
private void OnMeasureOverlayMode(object? sender, RoutedEventArgs e)