Improve mailto links handling (#310)

* Refactor draft creation

* try scoped namespace

* Refactor mailto protocol and revert namespaces

* Remove useless account query

* Fix typo and CC/BCC in replies

* Replace convert with existing extension

* Small fixes

* Fix CC/Bcc in replies to automatically show if needed.

* Fixed body parameter position from mailto parameters

* Fixed issue with ReplyAll self not removed
This commit is contained in:
Tiktack
2024-08-10 14:33:02 +02:00
committed by GitHub
parent 8763bf11ab
commit f408f59beb
20 changed files with 360 additions and 377 deletions

View File

@@ -493,7 +493,7 @@
VerticalAlignment="Center"
Click="ShowCCBCCClicked"
GotFocus="CCBBCGotFocus"
Visibility="{x:Bind ViewModel.IsCCBCCVisible, Mode=OneWay}">
Visibility="{x:Bind helpers:XamlHelpers.ReverseBoolToVisibilityConverter(ViewModel.IsCCBCCVisible), Mode=OneWay}">
<StackPanel Orientation="Horizontal" Spacing="6">
<PathIcon
HorizontalAlignment="Center"
@@ -512,13 +512,14 @@
HorizontalAlignment="Right"
VerticalAlignment="Center"
Text="Cc: "
Visibility="{x:Bind helpers:XamlHelpers.ReverseVisibilityConverter(CCBCCShowButton.Visibility), Mode=OneWay}" />
Visibility="{x:Bind ViewModel.IsCCBCCVisible, Mode=OneWay}" />
<controls1:TokenizingTextBox
x:Name="CCBox"
Grid.Row="2"
Grid.Column="1"
VerticalAlignment="Center"
ItemsSource="{x:Bind ViewModel.CCItems, Mode=OneTime}"
LostFocus="AddressBoxLostFocus"
PlaceholderText="{x:Bind domain:Translator.ComposerToPlaceholder}"
SuggestedItemTemplate="{StaticResource SuggestionBoxTemplate}"
@@ -526,7 +527,7 @@
TokenDelimiter=";"
TokenItemAdding="TokenItemAdding"
TokenItemTemplate="{StaticResource TokenBoxTemplate}"
Visibility="{x:Bind helpers:XamlHelpers.ReverseVisibilityConverter(CCBCCShowButton.Visibility), Mode=OneWay}" />
Visibility="{x:Bind ViewModel.IsCCBCCVisible, Mode=OneWay}" />
<TextBlock
x:Name="BccTextBlock"
@@ -534,13 +535,14 @@
HorizontalAlignment="Right"
VerticalAlignment="Center"
Text="Bcc: "
Visibility="{x:Bind helpers:XamlHelpers.ReverseVisibilityConverter(CCBCCShowButton.Visibility), Mode=OneWay}" />
Visibility="{x:Bind ViewModel.IsCCBCCVisible, Mode=OneWay}" />
<controls1:TokenizingTextBox
x:Name="BccBox"
Grid.Row="3"
Grid.Column="1"
VerticalAlignment="Center"
ItemsSource="{x:Bind ViewModel.BCCItems, Mode=OneTime}"
LostFocus="AddressBoxLostFocus"
PlaceholderText="{x:Bind domain:Translator.ComposerToPlaceholder}"
SuggestedItemTemplate="{StaticResource SuggestionBoxTemplate}"
@@ -548,7 +550,7 @@
TokenDelimiter=";"
TokenItemAdding="TokenItemAdding"
TokenItemTemplate="{StaticResource TokenBoxTemplate}"
Visibility="{x:Bind helpers:XamlHelpers.ReverseVisibilityConverter(CCBCCShowButton.Visibility), Mode=OneWay}" />
Visibility="{x:Bind ViewModel.IsCCBCCVisible, Mode=OneWay}" />
<!-- Subject -->
<TextBlock

View File

@@ -562,12 +562,7 @@ namespace Wino.Views
private void ShowCCBCCClicked(object sender, RoutedEventArgs e)
{
CCBCCShowButton.Visibility = Visibility.Collapsed;
CCTextBlock.Visibility = Visibility.Visible;
CCBox.Visibility = Visibility.Visible;
BccTextBlock.Visibility = Visibility.Visible;
BccBox.Visibility = Visibility.Visible;
ViewModel.IsCCBCCVisible = true;
}
private async void TokenItemAdding(TokenizingTextBox sender, TokenItemAddingEventArgs args)
@@ -591,7 +586,7 @@ namespace Wino.Views
if (boxTag == "ToBox")
addedItem = await ViewModel.GetAddressInformationAsync(args.TokenText, ViewModel.ToItems);
else if (boxTag == "CCBox")
addedItem = await ViewModel.GetAddressInformationAsync(args.TokenText, ViewModel.CCItemsItems);
addedItem = await ViewModel.GetAddressInformationAsync(args.TokenText, ViewModel.CCItems);
else if (boxTag == "BCCBox")
addedItem = await ViewModel.GetAddressInformationAsync(args.TokenText, ViewModel.BCCItems);
@@ -660,7 +655,7 @@ namespace Wino.Views
if (boxTag == "ToBox")
addressCollection = ViewModel.ToItems;
else if (boxTag == "CCBox")
addressCollection = ViewModel.CCItemsItems;
addressCollection = ViewModel.CCItems;
else if (boxTag == "BCCBox")
addressCollection = ViewModel.BCCItems;

View File

@@ -174,7 +174,7 @@ namespace Wino.Views
// We don't have shell initialized here. It's only standalone EML viewing.
// Shift command bar from top to adjust the design.
if (ViewModel.StatePersistanceService.ShouldShiftMailRenderingDesign)
if (ViewModel.StatePersistenceService.ShouldShiftMailRenderingDesign)
RendererGridFrame.Margin = new Thickness(0, 24, 0, 0);
else
RendererGridFrame.Margin = new Thickness(0, 0, 0, 0);