Skip to content

Commit

Permalink
Merge pull request #335 from bkaankose/code-quality/tabbed-commandbar
Browse files Browse the repository at this point in the history
Code Quality: TabbedCommandBar
  • Loading branch information
bkaankose authored Aug 25, 2024
2 parents 31c7c8b + 10c94ef commit 1b51982
Show file tree
Hide file tree
Showing 13 changed files with 284 additions and 485 deletions.
11 changes: 0 additions & 11 deletions Wino.Core.Domain/Enums/EditorToolbarSectionType.cs

This file was deleted.

8 changes: 0 additions & 8 deletions Wino.Core.Domain/Enums/MenuPaneMode.cs

This file was deleted.

30 changes: 0 additions & 30 deletions Wino.Core.Domain/Models/Reader/EditorToolbarSection.cs

This file was deleted.

1 change: 1 addition & 0 deletions Wino.Core.Domain/Translations/en_US/resources.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
"Buttons_TryAgain": "Try Again",
"Buttons_Yes": "Yes",
"Buttons_Reset": "Reset",
"Buttons_Send": "Send",
"Center": "Center",
"ComingSoon": "Coming soon...",
"ComposerFrom": "From: ",
Expand Down
5 changes: 5 additions & 0 deletions Wino.Core.Domain/Translator.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

48 changes: 0 additions & 48 deletions Wino.Mail.ViewModels/ComposePageViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@
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;
Expand Down Expand Up @@ -89,29 +88,11 @@ public partial class ComposePageViewModel : BaseViewModel
public ObservableCollection<AccountContact> CCItems { get; set; } = [];
public ObservableCollection<AccountContact> BCCItems { get; set; } = [];


public List<EditorToolbarSection> 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;
Expand All @@ -123,7 +104,6 @@ public EditorToolbarSection SelectedToolbarSection

public ComposePageViewModel(IDialogService dialogService,
IMailService mailService,
ILaunchProtocolService launchProtocolService,
IMimeFileService mimeFileService,
INativeAppService nativeAppService,
IFolderService folderService,
Expand All @@ -141,13 +121,10 @@ public ComposePageViewModel(IDialogService dialogService,

_folderService = folderService;
_mailService = mailService;
_launchProtocolService = launchProtocolService;
_mimeFileService = mimeFileService;
_accountService = accountService;
_worker = worker;
_winoServerConnectionManager = winoServerConnectionManager;

SelectedToolbarSection = ToolbarSections[0];
}

[RelayCommand]
Expand Down Expand Up @@ -263,31 +240,6 @@ private void SaveSubject()
}
}

private void ClearCurrentMimeAttachments()
{
var attachments = new List<MimePart>();
var multiparts = new List<Multipart>();
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)
Expand Down
138 changes: 44 additions & 94 deletions Wino.Mail/Helpers/XamlHelpers.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
using Wino.Core.Domain;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Models.MailItem;
using Wino.Core.Domain.Models.Reader;

namespace Wino.Helpers
{
Expand Down Expand Up @@ -284,109 +283,60 @@ public static Geometry GetPathGeometry(string pathMarkup)

#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
Expand Down
Loading

0 comments on commit 1b51982

Please sign in to comment.