This commit is contained in:
Burak Kaan Köse
2024-09-14 21:17:23 +02:00
15 changed files with 121 additions and 304 deletions

View File

@@ -1,4 +1,5 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
using System.Linq;
@@ -109,11 +110,11 @@ namespace Wino.Mail.ViewModels
private DateTime creationDate;
public ObservableCollection<AccountContact> ToItems { get; set; } = new ObservableCollection<AccountContact>();
public ObservableCollection<AccountContact> CCItemsItems { get; set; } = new ObservableCollection<AccountContact>();
public ObservableCollection<AccountContact> BCCItems { get; set; } = new ObservableCollection<AccountContact>();
public ObservableCollection<MailAttachmentViewModel> Attachments { get; set; } = new ObservableCollection<MailAttachmentViewModel>();
public ObservableCollection<MailOperationMenuItem> MenuItems { get; set; } = new ObservableCollection<MailOperationMenuItem>();
public ObservableCollection<AccountContact> ToItems { get; set; } = [];
public ObservableCollection<AccountContact> CcItems { get; set; } = [];
public ObservableCollection<AccountContact> BccItems { get; set; } = [];
public ObservableCollection<MailAttachmentViewModel> Attachments { get; set; } = [];
public ObservableCollection<MailOperationMenuItem> MenuItems { get; set; } = [];
#endregion
@@ -399,12 +400,24 @@ namespace Wino.Mail.ViewModels
var renderingOptions = PreferencesService.GetRenderingOptions();
await ExecuteUIThread(async () =>
// Prepare account contacts info in advance, to avoid UI shifts after clearing collections.
var toAccountContacts = await GetAccountContacts(message.To);
var ccAccountContacts = await GetAccountContacts(message.Cc);
var bccAccountContacts = await GetAccountContacts(message.Bcc);
await ExecuteUIThread(() =>
{
Attachments.Clear();
ToItems.Clear();
CCItemsItems.Clear();
BCCItems.Clear();
CcItems.Clear();
BccItems.Clear();
foreach (var item in toAccountContacts)
ToItems.Add(item);
foreach (var item in ccAccountContacts)
CcItems.Add(item);
foreach (var item in bccAccountContacts)
BccItems.Add(item);
Subject = message.Subject;
@@ -414,11 +427,6 @@ namespace Wino.Mail.ViewModels
CreationDate = message.Date.DateTime;
ContactPicture = initializedMailItemViewModel.SenderContact?.Base64ContactPicture;
// Extract to,cc and bcc
await LoadAddressInfoAsync(message.To, ToItems);
await LoadAddressInfoAsync(message.Cc, CCItemsItems);
await LoadAddressInfoAsync(message.Bcc, BCCItems);
// Automatically disable images for Junk folder to prevent pixel tracking.
// This can only work for selected mail item rendering, not for EML file rendering.
if (initializedMailItemViewModel != null &&
@@ -448,6 +456,27 @@ namespace Wino.Mail.ViewModels
});
}
private async Task<List<AccountContact>> GetAccountContacts(InternetAddressList internetAddresses)
{
var accounts = new List<AccountContact>();
foreach (var item in internetAddresses)
{
if (item is MailboxAddress mailboxAddress)
{
var foundContact = await _contactService.GetAddressInformationByAddressAsync(mailboxAddress.Address).ConfigureAwait(false)
?? new AccountContact() { Name = mailboxAddress.Name, Address = mailboxAddress.Address };
accounts.Add(foundContact);
}
else if (item is GroupAddress groupAddress)
{
accounts.AddRange(await GetAccountContacts(groupAddress.Members));
}
}
return accounts;
}
public override void OnNavigatedFrom(NavigationMode mode, object parameters)
{
base.OnNavigatedFrom(mode, parameters);
@@ -463,22 +492,6 @@ namespace Wino.Mail.ViewModels
StatePersistenceService.IsReadingMail = false;
}
private async Task LoadAddressInfoAsync(InternetAddressList list, ObservableCollection<AccountContact> collection)
{
foreach (var item in list)
{
if (item is MailboxAddress mailboxAddress)
{
var foundContact = await _contactService.GetAddressInformationByAddressAsync(mailboxAddress.Address).ConfigureAwait(false)
?? new AccountContact() { Name = mailboxAddress.Name, Address = mailboxAddress.Address };
await ExecuteUIThread(() => { collection.Add(foundContact); });
}
else if (item is GroupAddress groupAddress)
await LoadAddressInfoAsync(groupAddress.Members, collection);
}
}
private void ResetProgress()
{
CurrentDownloadPercentage = 0;

View File

@@ -18,7 +18,6 @@
<ResourceDictionary Source="/Styles/Colors.xaml" />
<ResourceDictionary Source="/Styles/ContentPresenters.xaml" />
<ResourceDictionary Source="/Styles/ImagePreviewControl.xaml" />
<ResourceDictionary Source="/Styles/CommandBarItems.xaml" />
<ResourceDictionary Source="/Styles/ItemContainerStyles.xaml" />
<ResourceDictionary Source="/Styles/WinoInfoBar.xaml" />

View File

@@ -190,7 +190,8 @@
IsExpanded="{x:Bind IsExpanded, Mode=TwoWay}"
IsSelected="{x:Bind IsSelected, Mode=TwoWay}"
MenuItemsSource="{x:Bind SubMenuItems, Mode=OneWay}"
SelectsOnInvoked="{x:Bind IsMoveTarget, Mode=OneWay}">
SelectsOnInvoked="{x:Bind IsMoveTarget, Mode=OneWay}"
ToolTipService.ToolTip="{x:Bind FolderName, Mode=OneWay}">
<animations:Implicit.Animations>
<animations:ScaleAnimation Duration="0:0:0.5" />
</animations:Implicit.Animations>
@@ -210,9 +211,6 @@
x:Name="FolderBackgroundGrid"
Padding="2"
VerticalAlignment="Center">
<ToolTipService.ToolTip>
<ToolTip Content="{x:Bind FolderName, Mode=OneWay}" />
</ToolTipService.ToolTip>
<Grid
x:Name="BackgroundColorGrid"
x:Load="{x:Bind HasTextColor, Mode=OneWay}"
@@ -308,7 +306,8 @@
FontWeight="{x:Bind helpers:XamlHelpers.GetFontWeightByChildSelectedState(IsSelected), Mode=OneWay}"
IsExpanded="{x:Bind IsExpanded, Mode=TwoWay}"
IsSelected="{x:Bind IsSelected, Mode=TwoWay}"
SelectsOnInvoked="True">
SelectsOnInvoked="True"
ToolTipService.ToolTip="{x:Bind FolderName, Mode=OneWay}">
<animations:Implicit.Animations>
<animations:ScaleAnimation Duration="0:0:0.5" />
</animations:Implicit.Animations>
@@ -327,9 +326,6 @@
x:Name="FolderBackgroundGrid"
Padding="2"
VerticalAlignment="Center">
<ToolTipService.ToolTip>
<ToolTip Content="{x:Bind FolderName, Mode=OneWay}" />
</ToolTipService.ToolTip>
<TextBlock
x:Name="NormalTitle"
VerticalAlignment="Center"

Binary file not shown.

View File

@@ -11,7 +11,7 @@ namespace Wino.Controls
{ WinoIconGlyph.UnArchive, "\uE06C" },
{ WinoIconGlyph.Reply, "\uF176" },
{ WinoIconGlyph.ReplyAll, "\uF17A" },
{ WinoIconGlyph.Sync, "\uE902" },
{ WinoIconGlyph.Sync, "\uE895" },
{ WinoIconGlyph.Send, "\uEA8E" },
{ WinoIconGlyph.LightEditor, "\uE1F6" },
{ WinoIconGlyph.Delete, "\uEEA6" },
@@ -29,9 +29,8 @@ namespace Wino.Controls
{ WinoIconGlyph.CreateFolder, "\uE645" },
{ WinoIconGlyph.Pin, "\uF5FF" },
{ WinoIconGlyph.UnPin, "\uE985" },
{ WinoIconGlyph.Star, "\uF70D" },
{ WinoIconGlyph.Star, "\uE734" },
{ WinoIconGlyph.Ignore, "\uF5D0" },
{ WinoIconGlyph.Junk, "\uE903" },
{ WinoIconGlyph.Find, "\uEA7D" },
{ WinoIconGlyph.Zoom, "\uEE8E" },
{ WinoIconGlyph.SpecialFolderInbox, "\uF516" },
@@ -41,8 +40,8 @@ namespace Wino.Controls
{ WinoIconGlyph.SpecialFolderDraft, "\uF3BE" },
{ WinoIconGlyph.SpecialFolderArchive, "\uE066" },
{ WinoIconGlyph.SpecialFolderDeleted, "\uEEA6" },
{ WinoIconGlyph.SpecialFolderJunk, "\uE903" },
{ WinoIconGlyph.SpecialFolderChat, "\uE2E3" },
{ WinoIconGlyph.SpecialFolderJunk, "\uF140" },
{ WinoIconGlyph.SpecialFolderChat, "\uE8BD" },
{ WinoIconGlyph.SpecialFolderCategory, "\uF599" },
{ WinoIconGlyph.SpecialFolderUnread, "\uF529" },
{ WinoIconGlyph.SpecialFolderForums, "\uF5B8" },
@@ -52,8 +51,8 @@ namespace Wino.Controls
{ WinoIconGlyph.SpecialFolderSocial, "\uEEEB" },
{ WinoIconGlyph.SpecialFolderOther, "\uE643" },
{ WinoIconGlyph.SpecialFolderMore, "\uF0F4" },
{ WinoIconGlyph.Microsoft, "\uE900" },
{ WinoIconGlyph.Google, "\uE901" },
{ WinoIconGlyph.Microsoft, "\uE904" },
{ WinoIconGlyph.Google, "\uE905" },
{ WinoIconGlyph.NewMail, "\uF107" },
{ WinoIconGlyph.TurnOfNotifications, "\uF11D" },
{ WinoIconGlyph.Rename, "\uF668" },
@@ -63,6 +62,16 @@ namespace Wino.Controls
{ WinoIconGlyph.Mail, "\uF509" },
{ WinoIconGlyph.More, "\uE824" },
{ WinoIconGlyph.CustomServer, "\uF509" },
{ WinoIconGlyph.Attachment, "\uE723" },
{ WinoIconGlyph.SortTextDesc, "\U000F3606" },
{ WinoIconGlyph.SortLinesDesc, "\U000F038A" },
{ WinoIconGlyph.Certificate, "\uEB95" },
{ WinoIconGlyph.OpenInNewWindow, "\uE8A7" },
{ WinoIconGlyph.Message, "\uE8BD" },
{ WinoIconGlyph.New, "\U000F002A" },
{ WinoIconGlyph.Blocked,"\uF140" },
{ WinoIconGlyph.IMAP, "\uE715" }
};
}
}

View File

@@ -37,7 +37,6 @@ namespace Wino.Controls
Ignore,
Star,
CreateFolder,
Junk,
More,
Find,
SpecialFolderInbox,
@@ -61,7 +60,16 @@ namespace Wino.Controls
TurnOfNotifications,
EmptyFolder,
Rename,
DontSync
DontSync,
Attachment,
SortTextDesc,
SortLinesDesc,
Certificate,
OpenInNewWindow,
Blocked,
Message,
New,
IMAP
}
public class WinoFontIcon : FontIcon

View File

@@ -104,71 +104,52 @@ namespace Wino.Helpers
public static WinoIconGlyph GetWinoIconGlyph(FilterOptionType type) => type switch
{
FilterOptionType.All => WinoIconGlyph.SpecialFolderCategory,
FilterOptionType.All => WinoIconGlyph.Mail,
FilterOptionType.Unread => WinoIconGlyph.MarkUnread,
FilterOptionType.Flagged => WinoIconGlyph.Flag,
FilterOptionType.Mentions => WinoIconGlyph.NewMail,
// TODO: Attachments icon should be added to WinoIcons.ttf.
FilterOptionType.Files => WinoIconGlyph.None,
FilterOptionType.Files => WinoIconGlyph.Attachment,
_ => WinoIconGlyph.None,
};
public static WinoIconGlyph GetWinoIconGlyph(SortingOptionType type) => type switch
{
SortingOptionType.Sender => WinoIconGlyph.SortTextDesc,
SortingOptionType.ReceiveDate => WinoIconGlyph.SortLinesDesc,
_ => WinoIconGlyph.None,
};
public static WinoIconGlyph GetWinoIconGlyph(MailOperation operation)
{
switch (operation)
return operation switch
{
case MailOperation.None:
return WinoIconGlyph.None;
case MailOperation.Archive:
return WinoIconGlyph.Archive;
case MailOperation.UnArchive:
return WinoIconGlyph.UnArchive;
case MailOperation.SoftDelete:
case MailOperation.HardDelete:
return WinoIconGlyph.Delete;
case MailOperation.Move:
return WinoIconGlyph.Forward;
case MailOperation.MoveToJunk:
return WinoIconGlyph.Junk;
case MailOperation.MoveToFocused:
break;
case MailOperation.MoveToOther:
break;
case MailOperation.AlwaysMoveToOther:
break;
case MailOperation.AlwaysMoveToFocused:
break;
case MailOperation.SetFlag:
return WinoIconGlyph.Flag;
case MailOperation.ClearFlag:
return WinoIconGlyph.ClearFlag;
case MailOperation.MarkAsRead:
return WinoIconGlyph.MarkRead;
case MailOperation.MarkAsUnread:
return WinoIconGlyph.MarkUnread;
case MailOperation.MarkAsNotJunk:
return WinoIconGlyph.Junk;
case MailOperation.Ignore:
return WinoIconGlyph.Ignore;
case MailOperation.Reply:
return WinoIconGlyph.Reply;
case MailOperation.ReplyAll:
return WinoIconGlyph.ReplyAll;
case MailOperation.Zoom:
return WinoIconGlyph.Zoom;
case MailOperation.SaveAs:
return WinoIconGlyph.Save;
case MailOperation.Find:
return WinoIconGlyph.Find;
case MailOperation.Forward:
return WinoIconGlyph.Forward;
case MailOperation.DarkEditor:
return WinoIconGlyph.DarkEditor;
case MailOperation.LightEditor:
return WinoIconGlyph.LightEditor;
}
return WinoIconGlyph.None;
MailOperation.None => WinoIconGlyph.None,
MailOperation.Archive => WinoIconGlyph.Archive,
MailOperation.UnArchive => WinoIconGlyph.UnArchive,
MailOperation.SoftDelete => WinoIconGlyph.Delete,
MailOperation.HardDelete => WinoIconGlyph.Delete,
MailOperation.Move => WinoIconGlyph.Forward,
MailOperation.MoveToJunk => WinoIconGlyph.Blocked,
MailOperation.MoveToFocused => WinoIconGlyph.None,
MailOperation.MoveToOther => WinoIconGlyph.None,
MailOperation.AlwaysMoveToOther => WinoIconGlyph.None,
MailOperation.AlwaysMoveToFocused => WinoIconGlyph.None,
MailOperation.SetFlag => WinoIconGlyph.Flag,
MailOperation.ClearFlag => WinoIconGlyph.ClearFlag,
MailOperation.MarkAsRead => WinoIconGlyph.MarkRead,
MailOperation.MarkAsUnread => WinoIconGlyph.MarkUnread,
MailOperation.MarkAsNotJunk => WinoIconGlyph.Blocked,
MailOperation.Ignore => WinoIconGlyph.Ignore,
MailOperation.Reply => WinoIconGlyph.Reply,
MailOperation.ReplyAll => WinoIconGlyph.ReplyAll,
MailOperation.Zoom => WinoIconGlyph.Zoom,
MailOperation.SaveAs => WinoIconGlyph.Save,
MailOperation.Find => WinoIconGlyph.Find,
MailOperation.Forward => WinoIconGlyph.Forward,
MailOperation.DarkEditor => WinoIconGlyph.DarkEditor,
MailOperation.LightEditor => WinoIconGlyph.LightEditor,
_ => WinoIconGlyph.None,
};
}
public static WinoIconGlyph GetPathGeometry(FolderOperation operation)
@@ -223,7 +204,7 @@ namespace Wino.Helpers
MailProviderType.Outlook => WinoIconGlyph.Microsoft,
MailProviderType.Gmail => WinoIconGlyph.Google,
MailProviderType.Office365 => WinoIconGlyph.Microsoft,
MailProviderType.IMAP4 => WinoIconGlyph.Mail,
MailProviderType.IMAP4 => WinoIconGlyph.IMAP,
_ => WinoIconGlyph.None,
};
}

View File

@@ -93,6 +93,7 @@ namespace Wino.MenuFlyouts
{
Text = option.Title,
Tag = option,
Icon = new WinoFontIcon() { Icon = XamlHelpers.GetWinoIconGlyph(option.Type)},
IsChecked = option == SelectedSortingOption
};

View File

@@ -1,158 +0,0 @@
<ResourceDictionary
x:Class="Wino.Styles.CommandBarItems"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="using:Wino.Controls"
xmlns:domain="using:Wino.Core.Domain">
<!-- TODO: Localize -->
<DataTemplate x:Key="CommandBarItemSeperatorTemplate">
<AppBarSeparator />
</DataTemplate>
<DataTemplate x:Key="CommandBarItemReplyTemplate">
<AppBarButton Label="{x:Bind domain:Translator.MailOperation_Reply}">
<AppBarButton.Icon>
<controls:WinoFontIcon Icon="Reply" />
</AppBarButton.Icon>
</AppBarButton>
</DataTemplate>
<DataTemplate x:Key="CommandBarItemReplyAllTemplate">
<AppBarButton Label="{x:Bind domain:Translator.MailOperation_ReplyAll}">
<AppBarButton.Icon>
<controls:WinoFontIcon Icon="ReplyAll" />
</AppBarButton.Icon>
</AppBarButton>
</DataTemplate>
<DataTemplate x:Key="CommandBarItemLightEditorTemplate">
<AppBarButton LabelPosition="Collapsed">
<AppBarButton.Icon>
<controls:WinoFontIcon Icon="LightEditor" />
</AppBarButton.Icon>
</AppBarButton>
</DataTemplate>
<DataTemplate x:Key="CommandBarItemDarkEditorTemplate">
<AppBarButton LabelPosition="Collapsed">
<AppBarButton.Icon>
<controls:WinoFontIcon Icon="DarkEditor" />
</AppBarButton.Icon>
</AppBarButton>
</DataTemplate>
<DataTemplate x:Key="CommandBarItemForwardTemplate">
<AppBarButton Label="{x:Bind domain:Translator.MailOperation_Forward}">
<AppBarButton.Icon>
<controls:WinoFontIcon Icon="Forward" />
</AppBarButton.Icon>
</AppBarButton>
</DataTemplate>
<DataTemplate x:Key="CommandBarItemSaveTemplate">
<AppBarButton Label="{x:Bind domain:Translator.MailOperation_ExportPDF}">
<AppBarButton.Icon>
<controls:WinoFontIcon Icon="Save" />
</AppBarButton.Icon>
</AppBarButton>
</DataTemplate>
<DataTemplate x:Key="CommandBarItemArchiveTemplate">
<AppBarButton Label="{x:Bind domain:Translator.MailOperation_Archive}">
<AppBarButton.Icon>
<controls:WinoFontIcon Icon="Archive" />
</AppBarButton.Icon>
</AppBarButton>
</DataTemplate>
<DataTemplate x:Key="CommandBarItemUnarchiveTemplate">
<AppBarButton Label="{x:Bind domain:Translator.MailOperation_Unarchive}">
<AppBarButton.Icon>
<controls:WinoFontIcon Icon="UnArchive" />
</AppBarButton.Icon>
</AppBarButton>
</DataTemplate>
<DataTemplate x:Key="CommandBarItemSetFlagTemplate">
<AppBarButton Label="{x:Bind domain:Translator.MailOperation_SetFlag}">
<AppBarButton.Icon>
<controls:WinoFontIcon Icon="Flag" />
</AppBarButton.Icon>
</AppBarButton>
</DataTemplate>
<DataTemplate x:Key="CommandBarItemClearFlagTemplate">
<AppBarButton Label="{x:Bind domain:Translator.MailOperation_ClearFlag}">
<AppBarButton.Icon>
<controls:WinoFontIcon Icon="ClearFlag" />
</AppBarButton.Icon>
</AppBarButton>
</DataTemplate>
<DataTemplate x:Key="CommandBarItemMarkReadTemplate">
<AppBarButton Label="{x:Bind domain:Translator.MailOperation_MarkAsRead}">
<AppBarButton.Icon>
<controls:WinoFontIcon Icon="MarkRead" />
</AppBarButton.Icon>
</AppBarButton>
</DataTemplate>
<DataTemplate x:Key="CommandBarItemMarkUnreadTemplate">
<AppBarButton Label="{x:Bind domain:Translator.MailOperation_MarkAsUnread}">
<AppBarButton.Icon>
<controls:WinoFontIcon Icon="MarkUnread" />
</AppBarButton.Icon>
</AppBarButton>
</DataTemplate>
<DataTemplate x:Key="CommandBarItemDeleteTemplate">
<AppBarButton Label="{x:Bind domain:Translator.MailOperation_Delete}">
<AppBarButton.Icon>
<controls:WinoFontIcon Icon="Delete" />
</AppBarButton.Icon>
</AppBarButton>
</DataTemplate>
<DataTemplate x:Key="CommandBarItemMoveTemplate">
<AppBarButton Label="{x:Bind domain:Translator.MailOperation_Move}">
<AppBarButton.Icon>
<controls:WinoFontIcon Icon="Forward" />
</AppBarButton.Icon>
</AppBarButton>
</DataTemplate>
<DataTemplate x:Key="CommandBarItemMoveToJunkTemplate">
<AppBarButton Label="{x:Bind domain:Translator.MailOperation_MoveJunk}">
<AppBarButton.Icon>
<controls:WinoFontIcon Icon="Junk" />
</AppBarButton.Icon>
</AppBarButton>
</DataTemplate>
<DataTemplate x:Key="CommandBarItemZoomTemplate">
<AppBarButton Label="{x:Bind domain:Translator.MailOperation_Zoom}">
<AppBarButton.Icon>
<controls:WinoFontIcon Icon="Zoom" />
</AppBarButton.Icon>
</AppBarButton>
</DataTemplate>
<DataTemplate x:Key="CommandBarItemPrintTemplate">
<AppBarButton Label="{x:Bind domain:Translator.MailOperation_Print}">
<AppBarButton.Icon>
<SymbolIcon Symbol="Print" />
</AppBarButton.Icon>
</AppBarButton>
</DataTemplate>
<DataTemplate x:Key="CommandBarItemFindTemplate">
<AppBarButton Label="{x:Bind domain:Translator.MailOperation_Find}">
<AppBarButton.Icon>
<controls:WinoFontIcon Icon="Find" />
</AppBarButton.Icon>
</AppBarButton>
</DataTemplate>
</ResourceDictionary>

View File

@@ -1,12 +0,0 @@
using Windows.UI.Xaml;
namespace Wino.Styles
{
public partial class CommandBarItems : ResourceDictionary
{
public CommandBarItems()
{
InitializeComponent();
}
}
}

View File

@@ -26,7 +26,7 @@
<controls:WinoFontIcon
Margin="2,0,0,0"
Foreground="{StaticResource AttachmentBrush}"
Icon="SpecialFolderCategory" />
Icon="Attachment" />
</Viewbox>
</DataTemplate>
</ResourceDictionary>

View File

@@ -327,14 +327,7 @@
Command="{x:Bind ViewModel.SyncFolderCommand}"
IsEnabled="{x:Bind ViewModel.CanSynchronize, Mode=OneWay}"
ToolTipService.ToolTip="{x:Bind domain:Translator.Buttons_Sync}">
<Button.Content>
<Viewbox Width="14" Height="14">
<PathIcon
HorizontalAlignment="Center"
VerticalAlignment="Center"
Data="F1 M 20 1.875 L 20 6.875 C 20 7.044271 19.93815 7.190756 19.814453 7.314453 C 19.690754 7.438151 19.54427 7.5 19.375 7.5 L 14.375 7.5 C 14.205729 7.5 14.059244 7.438151 13.935547 7.314453 C 13.811849 7.190756 13.75 7.044271 13.75 6.875 C 13.75 6.705729 13.811849 6.559245 13.935547 6.435547 C 14.059244 6.31185 14.205729 6.25 14.375 6.25 L 17.900391 6.25 C 17.542316 5.46875 17.084961 4.768881 16.52832 4.150391 C 15.97168 3.531902 15.345052 3.007812 14.648438 2.578125 C 13.951822 2.148438 13.201497 1.819662 12.397461 1.591797 C 11.593424 1.363934 10.764974 1.25 9.912109 1.25 C 9.189453 1.25 8.478189 1.344402 7.77832 1.533203 C 7.07845 1.722006 6.416016 1.988934 5.791016 2.333984 C 5.166016 2.679037 4.586588 3.095703 4.052734 3.583984 C 3.51888 4.072266 3.053385 4.615886 2.65625 5.214844 C 2.402344 5.598959 2.184245 6.00586 2.001953 6.435547 C 1.95638 6.539714 1.91569 6.647136 1.879883 6.757812 C 1.844075 6.86849 1.80013 6.975912 1.748047 7.080078 C 1.676432 7.210287 1.601562 7.312826 1.523438 7.387695 C 1.445312 7.462565 1.32487 7.5 1.162109 7.5 C 0.992839 7.5 0.846354 7.438151 0.722656 7.314453 C 0.598958 7.190756 0.537109 7.044271 0.537109 6.875 C 0.537109 6.796876 0.546875 6.728517 0.566406 6.669922 C 0.911458 5.69336 1.396484 4.798178 2.021484 3.984375 C 2.646484 3.170574 3.369141 2.467449 4.189453 1.875 C 5.009766 1.282553 5.906575 0.821941 6.879883 0.493164 C 7.85319 0.164389 8.857422 0 9.892578 0 C 10.810547 0 11.705729 0.117188 12.578125 0.351562 C 13.45052 0.585938 14.269205 0.922852 15.03418 1.362305 C 15.799153 1.801758 16.499023 2.342123 17.133789 2.983398 C 17.768555 3.624676 18.307291 4.348959 18.75 5.15625 L 18.75 1.875 C 18.75 1.70573 18.811848 1.559246 18.935547 1.435547 C 19.059244 1.31185 19.205729 1.25 19.375 1.25 C 19.54427 1.25 19.690754 1.31185 19.814453 1.435547 C 19.93815 1.559246 20 1.70573 20 1.875 Z M 19.335938 13.125 C 19.335938 13.235678 19.291992 13.400065 19.204102 13.618164 C 19.116211 13.836264 19.013672 14.0625 18.896484 14.296875 C 18.779297 14.53125 18.66048 14.755859 18.540039 14.970703 C 18.419596 15.185547 18.323566 15.345053 18.251953 15.449219 C 17.789713 16.139324 17.25423 16.764324 16.645508 17.324219 C 16.036783 17.884115 15.377604 18.362631 14.667969 18.759766 C 13.958333 19.1569 13.208008 19.462891 12.416992 19.677734 C 11.625977 19.892578 10.810547 20 9.970703 20 C 9.072266 20 8.198242 19.890951 7.348633 19.672852 C 6.499023 19.454752 5.698242 19.135742 4.946289 18.71582 C 4.194336 18.295898 3.502604 17.779947 2.871094 17.167969 C 2.239583 16.55599 1.699219 15.859375 1.25 15.078125 L 1.25 18.125 C 1.25 18.294271 1.188151 18.440756 1.064453 18.564453 C 0.940755 18.68815 0.794271 18.75 0.625 18.75 C 0.455729 18.75 0.309245 18.68815 0.185547 18.564453 C 0.061849 18.440756 0 18.294271 0 18.125 L 0 13.125 C 0 12.955729 0.061849 12.809245 0.185547 12.685547 C 0.309245 12.56185 0.455729 12.5 0.625 12.5 L 5.625 12.5 C 5.794271 12.5 5.940755 12.56185 6.064453 12.685547 C 6.188151 12.809245 6.25 12.955729 6.25 13.125 C 6.25 13.294271 6.188151 13.440756 6.064453 13.564453 C 5.940755 13.688151 5.794271 13.75 5.625 13.75 L 1.962891 13.75 C 2.320963 14.53125 2.779948 15.23112 3.339844 15.849609 C 3.89974 16.4681 4.526367 16.992188 5.219727 17.421875 C 5.913086 17.851562 6.661784 18.180338 7.46582 18.408203 C 8.269856 18.636068 9.098307 18.75 9.951172 18.75 C 10.673828 18.75 11.383463 18.657227 12.080078 18.47168 C 12.776691 18.286133 13.439127 18.020834 14.067383 17.675781 C 14.695638 17.330729 15.276692 16.914062 15.810547 16.425781 C 16.3444 15.9375 16.809895 15.390625 17.207031 14.785156 C 17.460938 14.401042 17.679035 13.994141 17.861328 13.564453 C 17.9069 13.460287 17.94759 13.352865 17.983398 13.242188 C 18.019205 13.131511 18.06315 13.024089 18.115234 12.919922 C 18.186848 12.789714 18.261719 12.687175 18.339844 12.612305 C 18.417969 12.537436 18.53841 12.5 18.701172 12.5 C 18.876953 12.5 19.026691 12.560222 19.150391 12.680664 C 19.274088 12.801107 19.335938 12.949219 19.335938 13.125 Z " />
</Viewbox>
</Button.Content>
<controls:WinoFontIcon FontSize="14" Icon="Sync" />
</Button>
<ToggleButton
x:Name="SelectionModeToggle"
@@ -346,14 +339,7 @@
IsChecked="{x:Bind ViewModel.IsMultiSelectionModeEnabled, Mode=TwoWay}"
ToolTipService.ToolTip="{x:Bind domain:Translator.Buttons_Multiselect}"
Unchecked="SelectionModeToggleUnchecked">
<ToggleButton.Content>
<Viewbox Width="14" Height="14">
<PathIcon
HorizontalAlignment="Center"
VerticalAlignment="Center"
Data="F1 M 0 4.375 C 0 4.20573 0.061849 4.059246 0.185547 3.935547 C 0.309245 3.81185 0.455729 3.75 0.625 3.75 C 0.794271 3.75 0.940755 3.81185 1.064453 3.935547 L 1.875 4.736328 L 5.185547 1.435547 C 5.309245 1.31185 5.455729 1.25 5.625 1.25 C 5.794271 1.25 5.940755 1.31185 6.064453 1.435547 C 6.188151 1.559246 6.25 1.70573 6.25 1.875 C 6.25 2.044271 6.188151 2.190756 6.064453 2.314453 L 2.314453 6.064453 C 2.190755 6.188151 2.044271 6.25 1.875 6.25 C 1.705729 6.25 1.559245 6.188151 1.435547 6.064453 L 0.185547 4.814453 C 0.061849 4.690756 0 4.544271 0 4.375 Z M 8.125 5 C 7.955729 5.000001 7.809245 4.938152 7.685547 4.814453 C 7.561849 4.690756 7.5 4.544271 7.5 4.375 C 7.5 4.20573 7.561849 4.059246 7.685547 3.935547 C 7.809245 3.81185 7.955729 3.75 8.125 3.75 L 19.375 3.75 C 19.54427 3.75 19.690754 3.81185 19.814453 3.935547 C 19.93815 4.059246 20 4.20573 20 4.375 C 20 4.544271 19.93815 4.690756 19.814453 4.814453 C 19.690754 4.938152 19.54427 5.000001 19.375 5 Z M 8.125 11.25 C 7.955729 11.25 7.809245 11.188151 7.685547 11.064453 C 7.561849 10.940756 7.5 10.794271 7.5 10.625 C 7.5 10.455729 7.561849 10.309245 7.685547 10.185547 C 7.809245 10.06185 7.955729 10 8.125 10 L 19.375 10 C 19.54427 10 19.690754 10.06185 19.814453 10.185547 C 19.93815 10.309245 20 10.455729 20 10.625 C 20 10.794271 19.93815 10.940756 19.814453 11.064453 C 19.690754 11.188151 19.54427 11.25 19.375 11.25 Z M 0 16.875 C 0 16.705729 0.061849 16.559244 0.185547 16.435547 C 0.309245 16.31185 0.455729 16.25 0.625 16.25 C 0.794271 16.25 0.940755 16.31185 1.064453 16.435547 L 1.875 17.236328 L 5.185547 13.935547 C 5.309245 13.81185 5.455729 13.75 5.625 13.75 C 5.794271 13.75 5.940755 13.81185 6.064453 13.935547 C 6.188151 14.059245 6.25 14.205729 6.25 14.375 C 6.25 14.544271 6.188151 14.690756 6.064453 14.814453 L 2.314453 18.564453 C 2.190755 18.68815 2.044271 18.75 1.875 18.75 C 1.705729 18.75 1.559245 18.68815 1.435547 18.564453 L 0.185547 17.314453 C 0.061849 17.190756 0 17.044271 0 16.875 Z M 8.125 17.5 C 7.955729 17.5 7.809245 17.43815 7.685547 17.314453 C 7.561849 17.190756 7.5 17.044271 7.5 16.875 C 7.5 16.705729 7.561849 16.559244 7.685547 16.435547 C 7.809245 16.31185 7.955729 16.25 8.125 16.25 L 19.375 16.25 C 19.54427 16.25 19.690754 16.31185 19.814453 16.435547 C 19.93815 16.559244 20 16.705729 20 16.875 C 20 17.044271 19.93815 17.190756 19.814453 17.314453 C 19.690754 17.43815 19.54427 17.5 19.375 17.5 Z " />
</Viewbox>
</ToggleButton.Content>
<controls:WinoFontIcon FontSize="16" Icon="MultiSelect" />
</ToggleButton>
<muxc:DropDownButton
Height="36"

View File

@@ -263,12 +263,12 @@
VerticalAlignment="Center"
FontWeight="SemiBold"
Text="Cc:"
Visibility="{x:Bind helpers:XamlHelpers.CountToVisibilityConverter(ViewModel.CCItemsItems.Count), Mode=OneWay}" />
Visibility="{x:Bind helpers:XamlHelpers.CountToVisibilityConverter(ViewModel.CcItems.Count), Mode=OneWay}" />
<ItemsControl
Grid.Column="1"
ItemTemplate="{StaticResource InternetAddressTemplate}"
ItemsSource="{x:Bind ViewModel.CCItemsItems, Mode=OneWay}"
Visibility="{x:Bind helpers:XamlHelpers.CountToVisibilityConverter(ViewModel.CCItemsItems.Count), Mode=OneWay}">
ItemsSource="{x:Bind ViewModel.CcItems, Mode=OneWay}"
Visibility="{x:Bind helpers:XamlHelpers.CountToVisibilityConverter(ViewModel.CcItems.Count), Mode=OneWay}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<toolkit:WrapPanel Orientation="Horizontal" />
@@ -286,13 +286,13 @@
VerticalAlignment="Center"
FontWeight="SemiBold"
Text="Bcc:"
Visibility="{x:Bind helpers:XamlHelpers.CountToVisibilityConverter(ViewModel.BCCItems.Count), Mode=OneWay}" />
Visibility="{x:Bind helpers:XamlHelpers.CountToVisibilityConverter(ViewModel.BccItems.Count), Mode=OneWay}" />
<ItemsControl
Grid.Column="1"
ItemTemplate="{StaticResource InternetAddressTemplate}"
ItemsSource="{x:Bind ViewModel.BCCItems, Mode=OneWay}"
Visibility="{x:Bind helpers:XamlHelpers.CountToVisibilityConverter(ViewModel.BCCItems.Count), Mode=OneWay}">
ItemsSource="{x:Bind ViewModel.BccItems, Mode=OneWay}"
Visibility="{x:Bind helpers:XamlHelpers.CountToVisibilityConverter(ViewModel.BccItems.Count), Mode=OneWay}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<toolkit:WrapPanel Orientation="Horizontal" />

View File

@@ -303,9 +303,6 @@
<Compile Include="Services\ApplicationResourceManager.cs" />
<Compile Include="Services\DialogService.cs" />
<Compile Include="Services\WinoNavigationService.cs" />
<Compile Include="Styles\CommandBarItems.xaml.cs">
<DependentUpon>CommandBarItems.xaml</DependentUpon>
</Compile>
<Compile Include="Styles\CustomMessageDialogStyles.xaml.cs">
<DependentUpon>CustomMessageDialogStyles.xaml</DependentUpon>
</Compile>
@@ -536,10 +533,6 @@
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Styles\CommandBarItems.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Styles\Colors.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>

1
WinoFontIcomoon.json Normal file

File diff suppressed because one or more lines are too long