Settings page and manage accounts navigation options.

This commit is contained in:
Burak Kaan Köse
2026-01-06 17:23:58 +01:00
parent 7cc201f423
commit f105c2f8f0
29 changed files with 874 additions and 197 deletions
@@ -0,0 +1,86 @@
<abstract:CalendarAccountSettingsPageAbstract
x:Class="Wino.Mail.WinUI.Views.Calendar.CalendarAccountSettingsPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:abstract="using:Wino.Mail.WinUI.Views.Abstract"
xmlns:controls="using:CommunityToolkit.WinUI.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:domain="using:Wino.Core.Domain"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Style="{StaticResource PageStyle}"
mc:Ignorable="d">
<Grid Padding="20" RowSpacing="20">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<!-- Page Header -->
<StackPanel Grid.Row="0" Spacing="4">
<TextBlock
Style="{StaticResource TitleTextBlockStyle}"
Text="{x:Bind domain:Translator.CalendarAccountSettings_Title, Mode=OneTime}" />
<TextBlock
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
Style="{StaticResource BodyTextBlockStyle}"
Text="{x:Bind ViewModel.Account.Name, Mode=OneWay}"
TextWrapping="Wrap" />
</StackPanel>
<!-- Settings Cards -->
<ScrollViewer Grid.Row="1">
<StackPanel MaxWidth="900" Spacing="4">
<!-- Account Color -->
<controls:SettingsCard
Description="{x:Bind domain:Translator.CalendarAccountSettings_AccountColorDescription, Mode=OneTime}"
Header="{x:Bind domain:Translator.CalendarAccountSettings_AccountColor, Mode=OneTime}">
<controls:SettingsCard.HeaderIcon>
<FontIcon Glyph="&#xE790;" />
</controls:SettingsCard.HeaderIcon>
<Border
Width="40"
Height="40"
Background="{x:Bind ViewModel.AccountColorHex, Mode=OneWay}"
CornerRadius="4" />
</controls:SettingsCard>
<!-- Enable Synchronization -->
<controls:SettingsCard
Description="{x:Bind domain:Translator.CalendarAccountSettings_SyncEnabledDescription, Mode=OneTime}"
Header="{x:Bind domain:Translator.CalendarAccountSettings_SyncEnabled, Mode=OneTime}">
<controls:SettingsCard.HeaderIcon>
<FontIcon Glyph="&#xE895;" />
</controls:SettingsCard.HeaderIcon>
<ToggleSwitch IsOn="{x:Bind ViewModel.IsSyncEnabled, Mode=TwoWay}" />
</controls:SettingsCard>
<!-- Primary Calendar -->
<controls:SettingsCard
Description="{x:Bind domain:Translator.CalendarAccountSettings_PrimaryCalendarDescription, Mode=OneTime}"
Header="{x:Bind domain:Translator.CalendarAccountSettings_PrimaryCalendar, Mode=OneTime}">
<controls:SettingsCard.HeaderIcon>
<FontIcon Glyph="&#xE735;" />
</controls:SettingsCard.HeaderIcon>
<ToggleSwitch IsOn="{x:Bind ViewModel.IsPrimaryCalendar, Mode=TwoWay}" />
</controls:SettingsCard>
<!-- Default Show As Status -->
<controls:SettingsCard
Description="{x:Bind domain:Translator.CalendarAccountSettings_DefaultShowAsDescription, Mode=OneTime}"
Header="{x:Bind domain:Translator.CalendarAccountSettings_DefaultShowAs, Mode=OneTime}">
<controls:SettingsCard.HeaderIcon>
<FontIcon Glyph="&#xE163;" />
</controls:SettingsCard.HeaderIcon>
<ComboBox
MinWidth="150"
DisplayMemberPath="DisplayText"
ItemsSource="{x:Bind ViewModel.ShowAsOptions, Mode=OneWay}"
SelectedItem="{x:Bind ViewModel.SelectedDefaultShowAsOption, Mode=TwoWay}" />
</controls:SettingsCard>
</StackPanel>
</ScrollViewer>
</Grid>
</abstract:CalendarAccountSettingsPageAbstract>
@@ -0,0 +1,11 @@
using Wino.Mail.WinUI.Views.Abstract;
namespace Wino.Mail.WinUI.Views.Calendar;
public sealed partial class CalendarAccountSettingsPage : CalendarAccountSettingsPageAbstract
{
public CalendarAccountSettingsPage()
{
InitializeComponent();
}
}
@@ -7,8 +7,10 @@
xmlns:controls1="using:Microsoft.UI.Xaml.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:domain="using:Wino.Core.Domain"
xmlns:entities="using:Wino.Core.Domain.Entities.Shared"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:toolkitExt="using:CommunityToolkit.WinUI"
x:Name="Root"
mc:Ignorable="d">
<Grid>
@@ -178,7 +180,52 @@
</controls:SettingsCard>
</controls:SettingsExpander.Items>
</controls:SettingsExpander>
<!-- Calendar Accounts -->
<!--<controls:SettingsExpander
Description="Manage calendar settings for each account"
Header="Calendar Accounts"
IsExpanded="True">
<controls:SettingsExpander.HeaderIcon>
<FontIcon Glyph="&#xE77B;" />
</controls:SettingsExpander.HeaderIcon>
<controls:SettingsExpander.Items>
<controls:SettingsCard
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"
ContentAlignment="Vertical">
<ItemsControl ItemsSource="{x:Bind ViewModel.Accounts, Mode=OneWay}">
<ItemsControl.ItemTemplate>
<DataTemplate x:DataType="entities:MailAccount">
<Button
Padding="12,8"
HorizontalAlignment="Stretch"
HorizontalContentAlignment="Left"
Command="{Binding ElementName=Root, Path=ViewModel.NavigateToAccountSettingsCommand}"
CommandParameter="{x:Bind}"
Style="{StaticResource SubtleButtonStyle}">
<StackPanel Orientation="Horizontal" Spacing="12">
<FontIcon FontSize="20" Glyph="&#xE8D8;" />
<StackPanel VerticalAlignment="Center">
<TextBlock Text="{x:Bind Name}" />
<TextBlock
Foreground="{ThemeResource TextFillColorSecondaryBrush}"
Style="{StaticResource CaptionTextBlockStyle}"
Text="{x:Bind Address}" />
</StackPanel>
<FontIcon
Margin="0,0,8,0"
HorizontalAlignment="Right"
FontSize="12"
Glyph="&#xE76C;" />
</StackPanel>
</Button>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</controls:SettingsCard>
</controls:SettingsExpander.Items>
</controls:SettingsExpander>-->
<!-- Default reminder -->
<controls:SettingsCard Description="Set a default reminder for all new calendar events." Header="Default reminder">
<controls:SettingsCard.HeaderIcon>