diff --git a/Wino.Core.Domain/Enums/EditorToolbarSectionType.cs b/Wino.Core.Domain/Enums/EditorToolbarSectionType.cs deleted file mode 100644 index 187c8cb2..00000000 --- a/Wino.Core.Domain/Enums/EditorToolbarSectionType.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace Wino.Core.Domain.Enums -{ - public enum EditorToolbarSectionType - { - None, - Format, - Insert, - Draw, - Options - } -} diff --git a/Wino.Core.Domain/Enums/MenuPaneMode.cs b/Wino.Core.Domain/Enums/MenuPaneMode.cs deleted file mode 100644 index 3d6e77b8..00000000 --- a/Wino.Core.Domain/Enums/MenuPaneMode.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Wino.Core.Domain.Enums -{ - public enum MenuPaneMode - { - Visible, - Hidden - } -} diff --git a/Wino.Core.Domain/Models/Reader/EditorToolbarSection.cs b/Wino.Core.Domain/Models/Reader/EditorToolbarSection.cs deleted file mode 100644 index e52fdea1..00000000 --- a/Wino.Core.Domain/Models/Reader/EditorToolbarSection.cs +++ /dev/null @@ -1,30 +0,0 @@ -using Wino.Core.Domain.Enums; - -namespace Wino.Core.Domain.Models.Reader -{ - public class EditorToolbarSection - { - public EditorToolbarSectionType SectionType { get; set; } - public string Title - { - get - { - switch (SectionType) - { - case EditorToolbarSectionType.None: - return Translator.EditorToolbarOption_None; - case EditorToolbarSectionType.Format: - return Translator.EditorToolbarOption_Format; - case EditorToolbarSectionType.Insert: - return Translator.EditorToolbarOption_Insert; - case EditorToolbarSectionType.Draw: - return Translator.EditorToolbarOption_Draw; - case EditorToolbarSectionType.Options: - return Translator.EditorToolbarOption_Options; - default: - return "Unknown Editor Option"; - } - } - } - } -} diff --git a/Wino.Core.Domain/Translations/en_US/resources.json b/Wino.Core.Domain/Translations/en_US/resources.json index a439fc5a..c0739152 100644 --- a/Wino.Core.Domain/Translations/en_US/resources.json +++ b/Wino.Core.Domain/Translations/en_US/resources.json @@ -53,6 +53,7 @@ "Buttons_TryAgain": "Try Again", "Buttons_Yes": "Yes", "Buttons_Reset": "Reset", + "Buttons_Send": "Send", "Center": "Center", "ComingSoon": "Coming soon...", "ComposerFrom": "From: ", diff --git a/Wino.Core.Domain/Translator.Designer.cs b/Wino.Core.Domain/Translator.Designer.cs index 72056b31..4f086782 100644 --- a/Wino.Core.Domain/Translator.Designer.cs +++ b/Wino.Core.Domain/Translator.Designer.cs @@ -288,6 +288,11 @@ namespace Wino.Core.Domain /// public static string Buttons_Reset => Resources.GetTranslatedString(@"Buttons_Reset"); + /// + /// Send + /// + public static string Buttons_Send => Resources.GetTranslatedString(@"Buttons_Send"); + /// /// Center /// diff --git a/Wino.Mail.ViewModels/ComposePageViewModel.cs b/Wino.Mail.ViewModels/ComposePageViewModel.cs index 32028448..be2e5428 100644 --- a/Wino.Mail.ViewModels/ComposePageViewModel.cs +++ b/Wino.Mail.ViewModels/ComposePageViewModel.cs @@ -15,7 +15,6 @@ using Wino.Core.Domain.Exceptions; using Wino.Core.Domain.Interfaces; using Wino.Core.Domain.Models.MailItem; using Wino.Core.Domain.Models.Navigation; -using Wino.Core.Domain.Models.Reader; using Wino.Core.Extensions; using Wino.Core.Services; using Wino.Mail.ViewModels.Data; @@ -89,29 +88,11 @@ namespace Wino.Mail.ViewModels public ObservableCollection CCItems { get; set; } = []; public ObservableCollection BCCItems { get; set; } = []; - - public List ToolbarSections { get; set; } = - [ - new EditorToolbarSection(){ SectionType = EditorToolbarSectionType.Format }, - new EditorToolbarSection(){ SectionType = EditorToolbarSectionType.Insert }, - new EditorToolbarSection(){ SectionType = EditorToolbarSectionType.Draw }, - new EditorToolbarSection(){ SectionType = EditorToolbarSectionType.Options } - ]; - - private EditorToolbarSection selectedToolbarSection; - - public EditorToolbarSection SelectedToolbarSection - { - get => selectedToolbarSection; - set => SetProperty(ref selectedToolbarSection, value); - } - #endregion public INativeAppService NativeAppService { get; } private readonly IMailService _mailService; - private readonly ILaunchProtocolService _launchProtocolService; private readonly IMimeFileService _mimeFileService; private readonly IFolderService _folderService; private readonly IAccountService _accountService; @@ -123,7 +104,6 @@ namespace Wino.Mail.ViewModels public ComposePageViewModel(IDialogService dialogService, IMailService mailService, - ILaunchProtocolService launchProtocolService, IMimeFileService mimeFileService, INativeAppService nativeAppService, IFolderService folderService, @@ -141,13 +121,10 @@ namespace Wino.Mail.ViewModels _folderService = folderService; _mailService = mailService; - _launchProtocolService = launchProtocolService; _mimeFileService = mimeFileService; _accountService = accountService; _worker = worker; _winoServerConnectionManager = winoServerConnectionManager; - - SelectedToolbarSection = ToolbarSections[0]; } [RelayCommand] @@ -263,31 +240,6 @@ namespace Wino.Mail.ViewModels } } - private void ClearCurrentMimeAttachments() - { - var attachments = new List(); - var multiparts = new List(); - var iter = new MimeIterator(CurrentMimeMessage); - - // collect our list of attachments and their parent multiparts - while (iter.MoveNext()) - { - var multipart = iter.Parent as Multipart; - var part = iter.Current as MimePart; - - if (multipart != null && part != null && part.IsAttachment) - { - // keep track of each attachment's parent multipart - multiparts.Add(multipart); - attachments.Add(part); - } - } - - // now remove each attachment from its parent multipart... - for (int i = 0; i < attachments.Count; i++) - multiparts[i].Remove(attachments[i]); - } - private async Task SaveBodyAsync() { if (GetHTMLBodyFunction != null) diff --git a/Wino.Mail/Helpers/XamlHelpers.cs b/Wino.Mail/Helpers/XamlHelpers.cs index 13ab0752..4157b2ae 100644 --- a/Wino.Mail/Helpers/XamlHelpers.cs +++ b/Wino.Mail/Helpers/XamlHelpers.cs @@ -12,7 +12,6 @@ using Wino.Controls; using Wino.Core.Domain; using Wino.Core.Domain.Enums; using Wino.Core.Domain.Models.MailItem; -using Wino.Core.Domain.Models.Reader; namespace Wino.Helpers { @@ -284,109 +283,60 @@ namespace Wino.Helpers #endregion - #region Toolbar Section Initialization - - public static Visibility IsFormatSection(EditorToolbarSection section) => section?.SectionType == EditorToolbarSectionType.Format ? Visibility.Visible : Visibility.Collapsed; - public static Visibility IsInsertSection(EditorToolbarSection section) => section?.SectionType == EditorToolbarSectionType.Insert ? Visibility.Visible : Visibility.Collapsed; - public static Visibility IsDrawSection(EditorToolbarSection section) => section?.SectionType == EditorToolbarSectionType.Draw ? Visibility.Visible : Visibility.Collapsed; - public static Visibility IsOptionsSection(EditorToolbarSection section) => section?.SectionType == EditorToolbarSectionType.Options ? Visibility.Visible : Visibility.Collapsed; - - #endregion - #region Internationalization public static string GetOperationString(MailOperation operation) { - switch (operation) + return operation switch { - case MailOperation.None: - return "unknown"; - case MailOperation.Archive: - return Translator.MailOperation_Archive; - case MailOperation.UnArchive: - return Translator.MailOperation_Unarchive; - case MailOperation.SoftDelete: - return Translator.MailOperation_Delete; - case MailOperation.HardDelete: - return Translator.MailOperation_Delete; - case MailOperation.Move: - return Translator.MailOperation_Move; - case MailOperation.MoveToJunk: - return Translator.MailOperation_MoveJunk; - case MailOperation.MoveToFocused: - return Translator.MailOperation_MoveFocused; - case MailOperation.MoveToOther: - return Translator.MailOperation_MoveOther; - case MailOperation.AlwaysMoveToOther: - return Translator.MailOperation_AlwaysMoveOther; - case MailOperation.AlwaysMoveToFocused: - return Translator.MailOperation_AlwaysMoveFocused; - case MailOperation.SetFlag: - return Translator.MailOperation_SetFlag; - case MailOperation.ClearFlag: - return Translator.MailOperation_ClearFlag; - case MailOperation.MarkAsRead: - return Translator.MailOperation_MarkAsRead; - case MailOperation.MarkAsUnread: - return Translator.MailOperation_MarkAsUnread; - case MailOperation.MarkAsNotJunk: - return Translator.MailOperation_MarkNotJunk; - case MailOperation.Seperator: - return string.Empty; - case MailOperation.Ignore: - return Translator.MailOperation_Ignore; - case MailOperation.Reply: - return Translator.MailOperation_Reply; - case MailOperation.ReplyAll: - return Translator.MailOperation_ReplyAll; - case MailOperation.Zoom: - return Translator.MailOperation_Zoom; - case MailOperation.SaveAs: - return Translator.MailOperation_SaveAs; - case MailOperation.Find: - return Translator.MailOperation_Find; - case MailOperation.Forward: - return Translator.MailOperation_Forward; - case MailOperation.DarkEditor: - return string.Empty; - case MailOperation.LightEditor: - return string.Empty; - case MailOperation.Print: - return Translator.MailOperation_Print; - case MailOperation.Navigate: - return Translator.MailOperation_Navigate; - default: - return "unknown"; - } + MailOperation.None => "unknown", + MailOperation.Archive => Translator.MailOperation_Archive, + MailOperation.UnArchive => Translator.MailOperation_Unarchive, + MailOperation.SoftDelete => Translator.MailOperation_Delete, + MailOperation.HardDelete => Translator.MailOperation_Delete, + MailOperation.Move => Translator.MailOperation_Move, + MailOperation.MoveToJunk => Translator.MailOperation_MoveJunk, + MailOperation.MoveToFocused => Translator.MailOperation_MoveFocused, + MailOperation.MoveToOther => Translator.MailOperation_MoveOther, + MailOperation.AlwaysMoveToOther => Translator.MailOperation_AlwaysMoveOther, + MailOperation.AlwaysMoveToFocused => Translator.MailOperation_AlwaysMoveFocused, + MailOperation.SetFlag => Translator.MailOperation_SetFlag, + MailOperation.ClearFlag => Translator.MailOperation_ClearFlag, + MailOperation.MarkAsRead => Translator.MailOperation_MarkAsRead, + MailOperation.MarkAsUnread => Translator.MailOperation_MarkAsUnread, + MailOperation.MarkAsNotJunk => Translator.MailOperation_MarkNotJunk, + MailOperation.Seperator => string.Empty, + MailOperation.Ignore => Translator.MailOperation_Ignore, + MailOperation.Reply => Translator.MailOperation_Reply, + MailOperation.ReplyAll => Translator.MailOperation_ReplyAll, + MailOperation.Zoom => Translator.MailOperation_Zoom, + MailOperation.SaveAs => Translator.MailOperation_SaveAs, + MailOperation.Find => Translator.MailOperation_Find, + MailOperation.Forward => Translator.MailOperation_Forward, + MailOperation.DarkEditor => string.Empty, + MailOperation.LightEditor => string.Empty, + MailOperation.Print => Translator.MailOperation_Print, + MailOperation.Navigate => Translator.MailOperation_Navigate, + _ => "unknown", + }; } public static string GetOperationString(FolderOperation operation) { - switch (operation) + return operation switch { - case FolderOperation.None: - break; - case FolderOperation.Pin: - return Translator.FolderOperation_Pin; - case FolderOperation.Unpin: - return Translator.FolderOperation_Unpin; - case FolderOperation.MarkAllAsRead: - return Translator.FolderOperation_MarkAllAsRead; - case FolderOperation.DontSync: - return Translator.FolderOperation_DontSync; - case FolderOperation.Empty: - return Translator.FolderOperation_Empty; - case FolderOperation.Rename: - return Translator.FolderOperation_Rename; - case FolderOperation.Delete: - return Translator.FolderOperation_Delete; - case FolderOperation.Move: - return Translator.FolderOperation_Move; - case FolderOperation.CreateSubFolder: - return Translator.FolderOperation_CreateSubFolder; - } - - return string.Empty; + FolderOperation.None => string.Empty, + FolderOperation.Pin => Translator.FolderOperation_Pin, + FolderOperation.Unpin => Translator.FolderOperation_Unpin, + FolderOperation.MarkAllAsRead => Translator.FolderOperation_MarkAllAsRead, + FolderOperation.DontSync => Translator.FolderOperation_DontSync, + FolderOperation.Empty => Translator.FolderOperation_Empty, + FolderOperation.Rename => Translator.FolderOperation_Rename, + FolderOperation.Delete => Translator.FolderOperation_Delete, + FolderOperation.Move => Translator.FolderOperation_Move, + FolderOperation.CreateSubFolder => Translator.FolderOperation_CreateSubFolder, + _ => string.Empty, + }; } #endregion diff --git a/Wino.Mail/Views/ComposePage.xaml b/Wino.Mail/Views/ComposePage.xaml index 9f6121c7..9fb6ac6c 100644 --- a/Wino.Mail/Views/ComposePage.xaml +++ b/Wino.Mail/Views/ComposePage.xaml @@ -4,7 +4,6 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:abstract="using:Wino.Views.Abstract" xmlns:controls="using:Wino.Controls" - xmlns:controls1="using:CommunityToolkit.WinUI.Controls" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:data="using:Wino.Mail.ViewModels.Data" xmlns:domain="using:Wino.Core.Domain" @@ -14,6 +13,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:muxc="using:Microsoft.UI.Xaml.Controls" xmlns:reader="using:Wino.Core.Domain.Models.Reader" + xmlns:toolkit="using:CommunityToolkit.WinUI.Controls" x:Name="root" d:Background="White" Loaded="ComposerLoaded" @@ -144,26 +144,22 @@ - - - - - - - - + + + + + + 0 + + + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + - - - - - + + + + + - - - - - + - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + + + + - - - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - + + + + + + + + + + - - - - - - - - - - + - + + + + + + - - - - - - + + + + + + + - - - - - - - + + + + + - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + @@ -478,7 +451,7 @@ - - - - + @@ -595,7 +568,7 @@ , IRecipient, IRecipient { @@ -170,6 +168,7 @@ namespace Wino.Views ViewModel.IsDraggingOverFilesDropZone = false; } } + private void OnImageDropGridDragEnter(object sender, DragEventArgs e) { bool isValid = false; @@ -557,27 +556,11 @@ namespace Wino.Views private void DOMLoaded(CoreWebView2 sender, CoreWebView2DOMContentLoadedEventArgs args) => DOMLoadedTask.TrySetResult(true); - void IRecipient.Receive(NavigationPaneModeChanged message) - { - if (message.NewMode == MenuPaneMode.Hidden) - TopPanelGrid.Padding = new Thickness(48, 6, 6, 6); - else - TopPanelGrid.Padding = new Thickness(16, 6, 6, 6); - } - async void IRecipient.Receive(CreateNewComposeMailRequested message) { await RenderInternalAsync(message.RenderModel.RenderHtml); } - private void BarDynamicOverflowChanging(CommandBar sender, DynamicOverflowItemsChangingEventArgs args) - { - if (args.Action == CommandBarDynamicOverflowAction.AddingToOverflow) - sender.OverflowButtonVisibility = CommandBarOverflowButtonVisibility.Visible; - else - sender.OverflowButtonVisibility = CommandBarOverflowButtonVisibility.Collapsed; - } - private void ShowCCBCCClicked(object sender, RoutedEventArgs e) { ViewModel.IsCCBCCVisible = true; @@ -641,7 +624,7 @@ namespace Wino.Views var selectedImportance = (MessageImportance)senderButton.Tag; ViewModel.SelectedMessageImportance = selectedImportance; - (ImportanceSplitButton.Content as SymbolIcon).Symbol = (senderButton.Content as SymbolIcon).Symbol; + (ImportanceSplitButton.Content as FontIcon).Glyph = (senderButton.Content as FontIcon).Glyph; } } diff --git a/Wino.Mail/Views/MailListPage.xaml.cs b/Wino.Mail/Views/MailListPage.xaml.cs index f1f4f515..af2a0da7 100644 --- a/Wino.Mail/Views/MailListPage.xaml.cs +++ b/Wino.Mail/Views/MailListPage.xaml.cs @@ -39,7 +39,7 @@ namespace Wino.Views IRecipient, IRecipient { - private const double RENDERING_COLUMN_MIN_WIDTH = 300; + private const double RENDERING_COLUMN_MIN_WIDTH = 375; private IStatePersistanceService StatePersistenceService { get; } = App.Current.Services.GetService(); private IKeyPressService KeyPressService { get; } = App.Current.Services.GetService(); diff --git a/Wino.Mail/Views/MailRenderingPage.xaml.cs b/Wino.Mail/Views/MailRenderingPage.xaml.cs index 3c1826d9..7f929711 100644 --- a/Wino.Mail/Views/MailRenderingPage.xaml.cs +++ b/Wino.Mail/Views/MailRenderingPage.xaml.cs @@ -25,7 +25,6 @@ namespace Wino.Views public sealed partial class MailRenderingPage : MailRenderingPageAbstract, IRecipient, IRecipient, - IRecipient, IRecipient, IRecipient { @@ -208,14 +207,6 @@ namespace Wino.Views } } - void IRecipient.Receive(NavigationPaneModeChanged message) - { - if (message.NewMode == MenuPaneMode.Hidden) - RendererBar.Margin = new Thickness(48, 6, 6, 6); - else - RendererBar.Margin = new Thickness(16, 6, 6, 6); - } - private async void WebViewNavigationStarting(WebView2 sender, CoreWebView2NavigationStartingEventArgs args) { // This is our reader. diff --git a/Wino.Mail/Wino.Mail.csproj b/Wino.Mail/Wino.Mail.csproj index b8b23cce..9dac881f 100644 --- a/Wino.Mail/Wino.Mail.csproj +++ b/Wino.Mail/Wino.Mail.csproj @@ -147,6 +147,9 @@ 8.0.240109 + + 8.1.240821 + 8.0.240109 diff --git a/Wino.Messages/Client/Shell/NavigationPaneModeChanged.cs b/Wino.Messages/Client/Shell/NavigationPaneModeChanged.cs deleted file mode 100644 index 5f20208c..00000000 --- a/Wino.Messages/Client/Shell/NavigationPaneModeChanged.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Wino.Core.Domain.Enums; - -namespace Wino.Messaging.Client.Shell -{ - /// - /// When navigation pane mode is changed. - /// - /// New navigation mode. - public record NavigationPaneModeChanged(MenuPaneMode NewMode); -}