Refactor quick action output handling and extend case note support

This commit is contained in:
Meik
2026-07-17 18:34:59 +02:00
parent 1db0da9a40
commit 0fef3ad49c
32 changed files with 755 additions and 805 deletions

View File

@@ -42,21 +42,7 @@ namespace FasdDesktopUi.Basics.UserControls
#region DataProvider
private cSupportCaseDataProvider DataProvider;
/*
{
get { return (cDataProviderBase)GetValue(DataProviderProperty); }
set {
SetValue(DataProviderProperty, value);
}
}
*/
/*
private static readonly DependencyProperty DataProviderProperty =
DependencyProperty.Register("DataProvider", typeof(cDataProviderBase), typeof(Notepad), new PropertyMetadata(null));
*/
private readonly cSupportCaseDataProvider _dataProvider;
#endregion
@@ -102,24 +88,18 @@ namespace FasdDesktopUi.Basics.UserControls
private static void HandleLockedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
try
{
if (!(d is Notepad _me))
{
if (!(d is Notepad notepad))
return;
}
_me.LockNotepadIcon.SelectedInternIcon = _me.IsLocked ? F4SD_AdaptableIcon.Enums.enumInternIcons.lock_closed : F4SD_AdaptableIcon.Enums.enumInternIcons.lock_open;
_me.CloseNotepadIcon.IsEnabled = _me.IsLocked ? false : true;
notepad.LockNotepadIcon.SelectedInternIcon = notepad.IsLocked ? enumInternIcons.lock_closed : enumInternIcons.lock_open;
notepad.CloseNotepadIcon.IsEnabled = !notepad.IsLocked;
}
catch (Exception E)
{
LogException(E);
}
}
#endregion
@@ -165,7 +145,7 @@ namespace FasdDesktopUi.Basics.UserControls
public Notepad(cSupportCaseDataProvider dataProvider)
{
DataProvider = dataProvider;
_dataProvider = dataProvider;
InitializeComponent();
saveTimer = new DispatcherTimer(TimeSpan.FromSeconds(0.75), DispatcherPriority.Render, SaveNotes, Dispatcher.CurrentDispatcher);
IsLocked = cFasdCockpitConfig.Instance.IsNotepadVisibleDocked;
@@ -180,16 +160,16 @@ namespace FasdDesktopUi.Basics.UserControls
{
try
{
if (DataProvider is null)
if (_dataProvider is null)
return;
if (DataProvider?.CaseNotes?.Parent is RichTextBox parentBox)
if (_dataProvider?.CaseNotes?.Parent is RichTextBox parentBox)
parentBox.Document = new FlowDocument();
if (!(sender is RichTextBox senderElement))
return;
senderElement.Document = DataProvider.CaseNotes;
senderElement.Document = _dataProvider.CaseNotes;
senderElement.CaretPosition = senderElement.CaretPosition.DocumentEnd;
}
catch (Exception E)
@@ -221,7 +201,7 @@ namespace FasdDesktopUi.Basics.UserControls
#region CopyIcon Click
private async void CopyIcon_Click(object sender)
private async void CopyIcon_Click(object sender, InputEventArgs e)
{
try
{
@@ -254,16 +234,6 @@ namespace FasdDesktopUi.Basics.UserControls
}
}
private void CopyIcon_TouchDown(object sender, TouchEventArgs e)
{
CopyIcon_Click(sender);
}
private void CopyIcon_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
CopyIcon_Click(sender);
}
#endregion
#region Popout
@@ -308,13 +278,13 @@ namespace FasdDesktopUi.Basics.UserControls
{
saveTimer?.Stop();
if (DataProvider is null)
if (_dataProvider is null)
return;
Dispatcher.Invoke(() =>
{
SetLanguageOfDocument();
DataProvider.SaveCaseNotes();
_dataProvider.SaveCaseNotes();
});
}
catch (Exception E)
@@ -642,7 +612,7 @@ namespace FasdDesktopUi.Basics.UserControls
{
ToggleDockButton.Visibility = IsUndocked ? Visibility.Collapsed : Visibility.Visible;
LockNotepadIcon.Visibility = IsUndocked ? Visibility.Collapsed : Visibility.Visible;
CloseNotepadIcon.IsEnabled = IsUndocked ? true : !IsLocked;
CloseNotepadIcon.IsEnabled = IsUndocked || !IsLocked;
}
catch (Exception E)
@@ -680,23 +650,12 @@ namespace FasdDesktopUi.Basics.UserControls
}
}
private void CloseNotepadIcon_MouseUp(object sender, MouseButtonEventArgs e)
{
if (e.ChangedButton == MouseButton.Left)
CloseNotepad();
}
private void CloseNotepadIcon_TouchDown(object sender, TouchEventArgs e)
{
CloseNotepad();
}
private void CloseNotepadIcon_Click(object sender, InputEventArgs e) => CloseNotepad();
private void LockNotepad()
{
try
{
if (IsLocked)
{
LockNotepadIcon.SetResourceReference(AdaptableIcon.AdaptableIcon.PrimaryIconColorProperty, "Color.SoftContrast");
@@ -717,19 +676,9 @@ namespace FasdDesktopUi.Basics.UserControls
{
LogException(E);
}
}
private void LockNotepadIcon_MouseUp(object sender, MouseButtonEventArgs e)
{
if (e.ChangedButton == MouseButton.Left)
LockNotepad();
}
private void LockNotepadIcon_TouchDown(object sender, TouchEventArgs e)
{
LockNotepad();
}
private void LockNotepadIcon_Click(object sender, InputEventArgs e) => LockNotepad();
private void LockNotepadIcon_MouseLeave(object sender, MouseEventArgs e)
{