Additional fields rendering done

Removed lots of unused classes
This commit is contained in:
Geoffroy BONNEVILLE
2020-05-07 16:01:59 +02:00
parent e901afaf29
commit fbcc354809
19 changed files with 122 additions and 211 deletions

View File

@@ -16,17 +16,22 @@
<Color x:Key="TextColorLight">WhiteSmoke</Color> <Color x:Key="TextColorLight">WhiteSmoke</Color>
<Color x:Key="BorderColor">DarkGray</Color> <Color x:Key="BorderColor">DarkGray</Color>
<Color x:Key="FlyoutColor">#FFF0F0F0</Color> <Color x:Key="FlyoutColor">#FFF0F0F0</Color>
<Color x:Key="HubSectionColor">#FF777777</Color>
<SolidColorBrush x:Key="MainColorBrush" Color="{ThemeResource MainColor}" /> <SolidColorBrush x:Key="MainColorBrush" Color="{ThemeResource MainColor}" />
<SolidColorBrush x:Key="MainColorLightBrush" Color="{ThemeResource MainColorLight}" /> <SolidColorBrush x:Key="MainColorLightBrush" Color="{ThemeResource MainColorLight}" />
<SolidColorBrush x:Key="MainColorDarkBrush" Color="{ThemeResource MainColorDark}" /> <SolidColorBrush x:Key="MainColorDarkBrush" Color="{ThemeResource MainColorDark}" />
<SolidColorBrush x:Key="TextColorLightBrush" Color="{ThemeResource TextColorLight}" /> <SolidColorBrush x:Key="TextColorLightBrush" Color="{ThemeResource TextColorLight}" />
<SolidColorBrush x:Key="HubSectionBrush" Color="{ThemeResource HubSectionColor}" />
<Style TargetType="TextBlock" x:Key="TextBlockSettingsHeaderStyle" > <Style TargetType="TextBlock" x:Key="TextBlockSettingsHeaderStyle" >
<Setter Property="FontFamily" Value="Segoe UI" /> <Setter Property="FontFamily" Value="Segoe UI" />
<Setter Property="FontSize" Value="16" /> <Setter Property="FontSize" Value="16" />
<Setter Property="FontWeight" Value="SemiLight" /> <Setter Property="FontWeight" Value="SemiLight" />
</Style> </Style>
<Style TargetType="HyperlinkButton">
<Setter Property="FontWeight" Value="SemiLight" />
</Style>
<SolidColorBrush x:Key="TextBoxBorderThemeBrush" Color="{ThemeResource BorderColor}" /> <SolidColorBrush x:Key="TextBoxBorderThemeBrush" Color="{ThemeResource BorderColor}" />
<SolidColorBrush x:Key="TextSelectionHighlightColorThemeBrush" Color="{ThemeResource MainColor}" /> <SolidColorBrush x:Key="TextSelectionHighlightColorThemeBrush" Color="{ThemeResource MainColor}" />

View File

@@ -525,8 +525,8 @@
<data name="EntryHubMain.Header" xml:space="preserve"> <data name="EntryHubMain.Header" xml:space="preserve">
<value>Main</value> <value>Main</value>
</data> </data>
<data name="EntryHubOther.Header" xml:space="preserve"> <data name="EntryHubPresentation.Header" xml:space="preserve">
<value>Other</value> <value>Presentation</value>
</data> </data>
<data name="EntryIcon.Text" xml:space="preserve"> <data name="EntryIcon.Text" xml:space="preserve">
<value>Icon</value> <value>Icon</value>

View File

@@ -525,8 +525,8 @@
<data name="EntryHubMain.Header" xml:space="preserve"> <data name="EntryHubMain.Header" xml:space="preserve">
<value>Principal</value> <value>Principal</value>
</data> </data>
<data name="EntryHubOther.Header" xml:space="preserve"> <data name="EntryHubPresentation.Header" xml:space="preserve">
<value>Autres</value> <value>Affichage</value>
</data> </data>
<data name="EntryIcon.Text" xml:space="preserve"> <data name="EntryIcon.Text" xml:space="preserve">
<value>Icone</value> <value>Icone</value>

View File

@@ -388,7 +388,7 @@
<Setter Property="TextWrapping" Value="Wrap"/> <Setter Property="TextWrapping" Value="Wrap"/>
</Style> </Style>
</Hub.Resources> </Hub.Resources>
<HubSection x:Uid="EntryHubMain" IsHeaderInteractive="True"> <HubSection x:Uid="EntryHubMain">
<DataTemplate> <DataTemplate>
<ScrollViewer VerticalScrollBarVisibility="Auto"> <ScrollViewer VerticalScrollBarVisibility="Auto">
<StackPanel Margin="20,0,0,20" MinWidth="400"> <StackPanel Margin="20,0,0,20" MinWidth="400">
@@ -440,9 +440,9 @@
<ToolTip x:Uid="EntryExpirationTooltip" /> <ToolTip x:Uid="EntryExpirationTooltip" />
</ToolTipService.ToolTip> </ToolTipService.ToolTip>
</SymbolIcon> </SymbolIcon>
<StackPanel Grid.Column="1" x:Name="ExpirationDatePanel" Orientation="Horizontal" Visibility="{Binding HasExpirationDate, Converter={StaticResource BooleanToVisibilityConverter}}"> <StackPanel Grid.Column="1" x:Name="ExpirationDatePanel" Orientation="Vertical" Visibility="{Binding HasExpirationDate, Converter={StaticResource BooleanToVisibilityConverter}}">
<DatePicker Margin="0,0,20,0" Date="{Binding ExpiryDate, Mode=TwoWay}" /> <DatePicker Margin="0,0,20,0" Date="{Binding ExpiryDate, Mode=TwoWay}" />
<TimePicker Time="{Binding ExpiryTime, Mode=TwoWay}" /> <TimePicker Margin="0,10,0,0" Time="{Binding ExpiryTime, Mode=TwoWay}" />
</StackPanel> </StackPanel>
</Grid> </Grid>
@@ -468,23 +468,7 @@
</ScrollViewer> </ScrollViewer>
</DataTemplate> </DataTemplate>
</HubSection> </HubSection>
<HubSection x:Uid="EntryHubAdditional" IsHeaderInteractive="True"> <HubSection x:Uid="EntryHubPresentation">
<DataTemplate>
<ScrollViewer VerticalScrollBarVisibility="Auto">
<ItemsControl ItemsSource="{Binding AdditionalFields}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Name}" Style="{StaticResource EntryTextBlockStyle}" />
<TextBox HorizontalAlignment="Left" Text="{Binding Value, Mode=TwoWay}" Width="350" IsEnabled="{Binding Source={StaticResource Locator}, Path=Entry.IsCurrentEntry}" />
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
</DataTemplate>
</HubSection>
<HubSection x:Uid="EntryHubOther" IsHeaderInteractive="True">
<DataTemplate> <DataTemplate>
<StackPanel Orientation="Vertical"> <StackPanel Orientation="Vertical">
<TextBlock x:Uid="EntryIcon" Style="{StaticResource EntryTextBlockStyle}" /> <TextBlock x:Uid="EntryIcon" Style="{StaticResource EntryTextBlockStyle}" />
@@ -496,7 +480,34 @@
</StackPanel> </StackPanel>
</DataTemplate> </DataTemplate>
</HubSection> </HubSection>
<HubSection x:Uid="EntryHubAttachments" IsHeaderInteractive="True"> <HubSection x:Uid="EntryHubAdditional">
<DataTemplate>
<local:SelectableTemplateListView
ItemsSource="{Binding AdditionalFields}"
ItemContainerStyle="{StaticResource ListViewLeftIndicatorItemExpanded}">
<local:SelectableTemplateListView.SelectedItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<TextBox Text="{Binding Name, Mode=TwoWay}" Width="350"
IsEnabled="{Binding Path=DataContext.IsCurrentEntry, ElementName=Page}" />
<TextBox HorizontalAlignment="Left" AcceptsReturn="True" Height="100" TextWrapping="Wrap" Width="350"
Text="{Binding Value, Mode=TwoWay}"
IsEnabled="{Binding Path=DataContext.IsCurrentEntry, ElementName=Page}" />
</StackPanel>
</DataTemplate>
</local:SelectableTemplateListView.SelectedItemTemplate>
<local:SelectableTemplateListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Name}" Style="{StaticResource EntryTextBlockStyle}" FontWeight="SemiBold" />
<TextBlock HorizontalAlignment="Left" MaxLines="3" FontSize="12" Margin="2,0,2,5" Text="{Binding Value}" Style="{StaticResource EntryTextBlockStyle}"/>
</StackPanel>
</DataTemplate>
</local:SelectableTemplateListView.ItemTemplate>
</local:SelectableTemplateListView>
</DataTemplate>
</HubSection>
<HubSection x:Uid="EntryHubAttachments" Foreground="{StaticResource HubSectionBrush}">
<DataTemplate> <DataTemplate>
<ScrollViewer VerticalScrollBarVisibility="Auto"> <ScrollViewer VerticalScrollBarVisibility="Auto">
<StackPanel Orientation="Vertical"> <StackPanel Orientation="Vertical">

View File

@@ -53,7 +53,7 @@
</Button> </Button>
<TextBlock x:Name="TitleTextBox" Text="{Binding Name}" Grid.Column="1" FontSize="24" HorizontalAlignment="Center" VerticalAlignment="Center" /> <TextBlock x:Name="TitleTextBox" Text="{Binding Name}" Grid.Column="1" FontSize="24" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid> </Grid>
<controls:ListViewWithDisable <controls:DisableListView
Grid.Column="0" Grid.Column="0"
Grid.Row="1" Grid.Row="1"
x:Name="MenuListView" x:Name="MenuListView"
@@ -62,15 +62,15 @@
ItemsSource="{Binding Source={StaticResource MenuItemsSource}}" ItemsSource="{Binding Source={StaticResource MenuItemsSource}}"
SelectedItem="{Binding SelectedItem, Mode=TwoWay}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}"
ItemContainerStyle="{StaticResource ListViewLeftIndicatorItemExpanded}"> ItemContainerStyle="{StaticResource ListViewLeftIndicatorItemExpanded}">
<controls:ListViewWithDisable.ItemTemplate> <controls:DisableListView.ItemTemplate>
<DataTemplate> <DataTemplate>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<SymbolIcon Symbol="{Binding SymbolIcon}" /> <SymbolIcon Symbol="{Binding SymbolIcon}" />
<TextBlock Text="{Binding Title}" Margin="10,5,0,0" /> <TextBlock Text="{Binding Title}" Margin="10,5,0,0" />
</StackPanel> </StackPanel>
</DataTemplate> </DataTemplate>
</controls:ListViewWithDisable.ItemTemplate> </controls:DisableListView.ItemTemplate>
<controls:ListViewWithDisable.GroupStyle> <controls:DisableListView.GroupStyle>
<GroupStyle HidesIfEmpty="True"> <GroupStyle HidesIfEmpty="True">
<GroupStyle.HeaderTemplate> <GroupStyle.HeaderTemplate>
<DataTemplate> <DataTemplate>
@@ -80,8 +80,8 @@
</DataTemplate> </DataTemplate>
</GroupStyle.HeaderTemplate> </GroupStyle.HeaderTemplate>
</GroupStyle> </GroupStyle>
</controls:ListViewWithDisable.GroupStyle> </controls:DisableListView.GroupStyle>
</controls:ListViewWithDisable> </controls:DisableListView>
<TextBlock x:Name="PageTitleTextBlock" Grid.Column="1" Grid.Row="0" FontSize="24" VerticalAlignment="Center" Margin="10,0,0,0" > <TextBlock x:Name="PageTitleTextBlock" Grid.Column="1" Grid.Row="0" FontSize="24" VerticalAlignment="Center" Margin="10,0,0,0" >
<Run Text="{Binding SelectedItem}" /> <Run Text="{Binding SelectedItem}" />
</TextBlock> </TextBlock>

View File

@@ -3,14 +3,11 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:converters="using:ModernKeePass.Converters"
xmlns:userControls="using:ModernKeePass.Views.UserControls" xmlns:userControls="using:ModernKeePass.Views.UserControls"
xmlns:controls="using:ModernKeePass.Controls"
x:Class="ModernKeePass.Views.RecentDatabasesPage" x:Class="ModernKeePass.Views.RecentDatabasesPage"
mc:Ignorable="d" mc:Ignorable="d"
DataContext="{Binding Source={StaticResource Locator}, Path=Recent}"> DataContext="{Binding Source={StaticResource Locator}, Path=Recent}">
<Page.Resources>
<converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
</Page.Resources>
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"> <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="40" /> <RowDefinition Height="40" />
@@ -22,11 +19,10 @@
<TextBlock x:Uid="RecentClear" VerticalAlignment="Center" Margin="10,0,0,0" /> <TextBlock x:Uid="RecentClear" VerticalAlignment="Center" Margin="10,0,0,0" />
</StackPanel> </StackPanel>
</HyperlinkButton> </HyperlinkButton>
<ListView Grid.Row="1" <controls:SelectableTemplateListView Grid.Row="1"
ItemsSource="{Binding RecentItems}" ItemsSource="{Binding RecentItems}"
SelectedItem="{Binding SelectedItem, Mode=TwoWay}"
ItemContainerStyle="{StaticResource ListViewLeftIndicatorItemExpanded}"> ItemContainerStyle="{StaticResource ListViewLeftIndicatorItemExpanded}">
<ListView.ItemTemplate> <controls:SelectableTemplateListView.SelectedItemTemplate>
<DataTemplate> <DataTemplate>
<Grid Margin="10,0,10,0"> <Grid Margin="10,0,10,0">
<Grid.RowDefinitions> <Grid.RowDefinitions>
@@ -35,17 +31,24 @@
<RowDefinition /> <RowDefinition />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/> <ColumnDefinition Width="*" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" Text="{Binding Name}" Padding="5,0,0,0" /> <TextBlock Grid.Row="0" Text="{Binding Name}" Padding="5,0,0,0" />
<TextBlock Grid.Row="1" Text="{Binding Path}" Padding="5,0,0,0" FontSize="10" /> <TextBlock Grid.Row="1" Text="{Binding Path}" Padding="5,0,0,0" FontSize="10" />
<userControls:OpenDatabaseUserControl Grid.Row="2" <userControls:OpenDatabaseUserControl Grid.Row="2"
HorizontalAlignment="Stretch" MinWidth="400" Margin="0,10,0,0" HorizontalAlignment="Stretch" MinWidth="400" Margin="0,10,0,0"
Visibility="{Binding IsSelected, Converter={StaticResource BooleanToVisibilityConverter}}"
DatabaseFilePath="{Binding Token}" /> DatabaseFilePath="{Binding Token}" />
</Grid> </Grid>
</DataTemplate> </DataTemplate>
</ListView.ItemTemplate> </controls:SelectableTemplateListView.SelectedItemTemplate>
</ListView> <controls:SelectableTemplateListView.ItemTemplate>
<DataTemplate>
<StackPanel Margin="10,0,10,0" Orientation="Vertical">
<TextBlock Text="{Binding Name}" Padding="5,0,0,0" />
<TextBlock Text="{Binding Path}" Padding="5,0,0,0" FontSize="10" />
</StackPanel>
</DataTemplate>
</controls:SelectableTemplateListView.ItemTemplate>
</controls:SelectableTemplateListView>
</Grid> </Grid>
</Page> </Page>

View File

@@ -48,7 +48,7 @@
</Button> </Button>
<TextBlock x:Name="TitleTextBox" x:Uid="SettingsTitle" Grid.Column="1" FontSize="24" HorizontalAlignment="Center" VerticalAlignment="Center" /> <TextBlock x:Name="TitleTextBox" x:Uid="SettingsTitle" Grid.Column="1" FontSize="24" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid> </Grid>
<controls:ListViewWithDisable <controls:DisableListView
Grid.Column="0" Grid.Column="0"
Grid.Row="1" Grid.Row="1"
x:Name="MenuListView" x:Name="MenuListView"
@@ -58,15 +58,15 @@
SelectedItem="{Binding SelectedItem, Mode=TwoWay}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}"
IsSynchronizedWithCurrentItem="False" IsSynchronizedWithCurrentItem="False"
ItemContainerStyle="{StaticResource ListViewLeftIndicatorItemExpanded}"> ItemContainerStyle="{StaticResource ListViewLeftIndicatorItemExpanded}">
<controls:ListViewWithDisable.ItemTemplate> <controls:DisableListView.ItemTemplate>
<DataTemplate> <DataTemplate>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<SymbolIcon Symbol="{Binding SymbolIcon}" /> <SymbolIcon Symbol="{Binding SymbolIcon}" />
<TextBlock Text="{Binding Title}" Margin="10,5,0,0" /> <TextBlock Text="{Binding Title}" Margin="10,5,0,0" />
</StackPanel> </StackPanel>
</DataTemplate> </DataTemplate>
</controls:ListViewWithDisable.ItemTemplate> </controls:DisableListView.ItemTemplate>
<controls:ListViewWithDisable.GroupStyle> <controls:DisableListView.GroupStyle>
<GroupStyle HidesIfEmpty="True"> <GroupStyle HidesIfEmpty="True">
<GroupStyle.HeaderTemplate> <GroupStyle.HeaderTemplate>
<DataTemplate> <DataTemplate>
@@ -79,8 +79,8 @@
</DataTemplate> </DataTemplate>
</GroupStyle.HeaderTemplate> </GroupStyle.HeaderTemplate>
</GroupStyle> </GroupStyle>
</controls:ListViewWithDisable.GroupStyle> </controls:DisableListView.GroupStyle>
</controls:ListViewWithDisable> </controls:DisableListView>
<TextBlock x:Name="PageTitleTextBlock" Grid.Column="1" Grid.Row="0" FontSize="24" VerticalAlignment="Center" Margin="10,0,0,0" > <TextBlock x:Name="PageTitleTextBlock" Grid.Column="1" Grid.Row="0" FontSize="24" VerticalAlignment="Center" Margin="10,0,0,0" >
<Run Text="{Binding SelectedItem}" /> <Run Text="{Binding SelectedItem}" />
</TextBlock> </TextBlock>

View File

@@ -1,46 +0,0 @@
<UserControl x:Name="UserControl"
x:Class="ModernKeePass.Views.UserControls.BreadCrumbUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:interactivity="using:Microsoft.Xaml.Interactivity"
xmlns:core="using:Microsoft.Xaml.Interactions.Core"
xmlns:templateSelectors="using:ModernKeePass.TemplateSelectors"
mc:Ignorable="d">
<ItemsControl ItemsSource="{Binding ItemsSource, ElementName=UserControl}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.Resources>
<DataTemplate x:Name="FirstItemTemplate">
<HyperlinkButton FontWeight="Light" FontSize="12" Padding="0" Content="{Binding Title}">
<interactivity:Interaction.Behaviors>
<core:EventTriggerBehavior EventName="Click">
<core:NavigateToPageAction Parameter="{Binding Id}" TargetPage="ModernKeePass.Views.GroupDetailPage" />
</core:EventTriggerBehavior>
</interactivity:Interaction.Behaviors>
</HyperlinkButton>
</DataTemplate>
<DataTemplate x:Name="OtherItemsTemplate">
<StackPanel Orientation="Horizontal">
<Viewbox MaxHeight="10" Margin="0,2,0,0">
<SymbolIcon Symbol="Forward" />
</Viewbox>
<HyperlinkButton Content="{Binding Title}" FontWeight="Light" FontSize="12" Padding="0">
<interactivity:Interaction.Behaviors>
<core:EventTriggerBehavior EventName="Click">
<core:NavigateToPageAction Parameter="{Binding Id}" TargetPage="ModernKeePass.Views.GroupDetailPage" />
</core:EventTriggerBehavior>
</interactivity:Interaction.Behaviors>
</HyperlinkButton>
</StackPanel>
</DataTemplate>
</ItemsControl.Resources>
<ItemsControl.ItemTemplateSelector>
<templateSelectors:FirstItemDataTemplateSelector FirstItem="{StaticResource FirstItemTemplate}" OtherItem="{StaticResource OtherItemsTemplate}"/>
</ItemsControl.ItemTemplateSelector>
</ItemsControl>
</UserControl>

View File

@@ -1,29 +0,0 @@
using System.Collections.Generic;
using Windows.UI.Xaml;
using ModernKeePass.Application.Common.Interfaces;
// The User Control item template is documented at http://go.microsoft.com/fwlink/?LinkId=234236
namespace ModernKeePass.Views.UserControls
{
public sealed partial class BreadCrumbUserControl
{
public BreadCrumbUserControl()
{
InitializeComponent();
}
public IEnumerable<IEntityVm> ItemsSource
{
get { return (IEnumerable<IEntityVm>)GetValue(ItemsSourceProperty); }
set { SetValue(ItemsSourceProperty, value); }
}
public static readonly DependencyProperty ItemsSourceProperty =
DependencyProperty.Register(
nameof(ItemsSource),
typeof(IEnumerable<IEntityVm>),
typeof(BreadCrumbUserControl),
new PropertyMetadata(new Stack<IEntityVm>(), (o, args) => { }));
}
}

View File

@@ -4,7 +4,6 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:templateSelectors="using:ModernKeePass.TemplateSelectors"
xmlns:interactivity="using:Microsoft.Xaml.Interactivity" xmlns:interactivity="using:Microsoft.Xaml.Interactivity"
xmlns:core="using:Microsoft.Xaml.Interactions.Core" xmlns:core="using:Microsoft.Xaml.Interactions.Core"
xmlns:converters="using:ModernKeePass.Converters" xmlns:converters="using:ModernKeePass.Converters"
@@ -88,17 +87,7 @@
IsSynchronizedWithCurrentItem="False" IsSynchronizedWithCurrentItem="False"
Background="{ThemeResource AppBarBackgroundThemeBrush}" Background="{ThemeResource AppBarBackgroundThemeBrush}"
ItemContainerStyle="{StaticResource ListViewLeftIndicatorItemExpanded}"> ItemContainerStyle="{StaticResource ListViewLeftIndicatorItemExpanded}">
<ListView.Resources> <ListView.ItemTemplate>
<DataTemplate x:Name="IsSpecial">
<StackPanel Orientation="Horizontal">
<SymbolIcon Symbol="{Binding Icon, Converter={StaticResource IconToSymbolConverter}, ConverterParameter=48}" Margin="7,15,0,15">
<ToolTipService.ToolTip>
<ToolTip Content="{Binding Path={Binding DisplayMemberPath, ElementName=UserControl}}" />
</ToolTipService.ToolTip>
</SymbolIcon>
<TextBlock Text="{Binding Path={Binding DisplayMemberPath, ElementName=UserControl}}" x:Name="GroupTextBlock" TextWrapping="NoWrap" VerticalAlignment="Center" Margin="30,0,20,0" FontStyle="Italic" />
</StackPanel>
</DataTemplate>
<DataTemplate x:Name="IsNormal"> <DataTemplate x:Name="IsNormal">
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<SymbolIcon Symbol="{Binding Icon, Converter={StaticResource IconToSymbolConverter}, ConverterParameter=48}" Margin="7,15,0,15"> <SymbolIcon Symbol="{Binding Icon, Converter={StaticResource IconToSymbolConverter}, ConverterParameter=48}" Margin="7,15,0,15">
@@ -109,10 +98,7 @@
<TextBlock Text="{Binding Path={Binding DisplayMemberPath, ElementName=UserControl}}" x:Name="GroupTextBlock" TextWrapping="NoWrap" VerticalAlignment="Center" Margin="30,0,20,0" /> <TextBlock Text="{Binding Path={Binding DisplayMemberPath, ElementName=UserControl}}" x:Name="GroupTextBlock" TextWrapping="NoWrap" VerticalAlignment="Center" Margin="30,0,20,0" />
</StackPanel> </StackPanel>
</DataTemplate> </DataTemplate>
</ListView.Resources> </ListView.ItemTemplate>
<ListView.ItemTemplateSelector>
<templateSelectors:SelectableDataTemplateSelector FalseItem="{StaticResource IsNormal}" TrueItem="{StaticResource IsSpecial}" />
</ListView.ItemTemplateSelector>
<ListView.HeaderTemplate> <ListView.HeaderTemplate>
<DataTemplate> <DataTemplate>
<StackPanel Orientation="Vertical" Visibility="{Binding IsButtonVisible, ElementName=UserControl}"> <StackPanel Orientation="Vertical" Visibility="{Binding IsButtonVisible, ElementName=UserControl}">

View File

@@ -117,9 +117,6 @@
<Compile Include="Views\SettingsPageFrames\SettingsWelcomePage.xaml.cs"> <Compile Include="Views\SettingsPageFrames\SettingsWelcomePage.xaml.cs">
<DependentUpon>SettingsWelcomePage.xaml</DependentUpon> <DependentUpon>SettingsWelcomePage.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="Views\UserControls\BreadCrumbUserControl.xaml.cs">
<DependentUpon>BreadCrumbUserControl.xaml</DependentUpon>
</Compile>
<Compile Include="Views\UserControls\ColorPickerUserControl.xaml.cs"> <Compile Include="Views\UserControls\ColorPickerUserControl.xaml.cs">
<DependentUpon>ColorPickerUserControl.xaml</DependentUpon> <DependentUpon>ColorPickerUserControl.xaml</DependentUpon>
</Compile> </Compile>
@@ -208,10 +205,6 @@
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>
</Page> </Page>
<Page Include="Views\UserControls\BreadCrumbUserControl.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
<Page Include="Views\UserControls\ColorPickerUserControl.xaml"> <Page Include="Views\UserControls\ColorPickerUserControl.xaml">
<SubType>Designer</SubType> <SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator> <Generator>MSBuild:Compile</Generator>

View File

@@ -0,0 +1,2 @@
Support for additional fields
Support for attachments

View File

@@ -0,0 +1,2 @@
Ajout des champs additionnels
Ajout des pi<70>ces-jointes

View File

@@ -4,7 +4,7 @@ using ModernKeePass.Domain.Interfaces;
namespace ModernKeePass.Controls namespace ModernKeePass.Controls
{ {
public class ListViewWithDisable: ListView public class DisableListView: ListView
{ {
protected override void PrepareContainerForItemOverride(DependencyObject element, object item) protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
{ {

View File

@@ -0,0 +1,43 @@
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace ModernKeePass.Controls
{
public class SelectableTemplateListView: ListView
{
public DataTemplate SelectedItemTemplate
{
get { return (DataTemplate)GetValue(SelectedItemTemplateProperty); }
set { SetValue(SelectedItemTemplateProperty, value); }
}
public static readonly DependencyProperty SelectedItemTemplateProperty =
DependencyProperty.Register(
nameof(SelectedItemTemplate),
typeof(DataTemplate),
typeof(PasswordBoxWithButton),
new PropertyMetadata(null, (o, args) => { }));
public SelectableTemplateListView()
{
SelectionChanged += SelectableTemplateListView_SelectionChanged;
}
private void SelectableTemplateListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var listView = sender as ListView;
if (listView == null) return;
foreach (var item in e.AddedItems)
{
var listViewItem = listView.ContainerFromItem(item) as ListViewItem;
if (listViewItem != null) listViewItem.ContentTemplate = SelectedItemTemplate;
}
//Remove DataTemplate for unselected items
foreach (var item in e.RemovedItems)
{
var listViewItem = listView.ContainerFromItem(item) as ListViewItem;
if (listViewItem != null) listViewItem.ContentTemplate = ItemTemplate;
}
}
}
}

View File

@@ -1,18 +0,0 @@
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace ModernKeePass.TemplateSelectors
{
public class FirstItemDataTemplateSelector: DataTemplateSelector
{
public DataTemplate FirstItem { get; set; }
public DataTemplate OtherItem { get; set; }
protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
{
var itemsControl = ItemsControl.ItemsControlFromItemContainer(container);
var returnTemplate = itemsControl?.IndexFromContainer(container) == 0 ? FirstItem : OtherItem;
return returnTemplate;
}
}
}

View File

@@ -1,18 +0,0 @@
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using ModernKeePass.Domain.Interfaces;
namespace ModernKeePass.TemplateSelectors
{
public class SelectableDataTemplateSelector: DataTemplateSelector
{
public DataTemplate TrueItem { get; set; }
public DataTemplate FalseItem { get; set; }
protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
{
var isSelectableItem = item as ISelectableModel;
return isSelectableItem != null && isSelectableItem.IsSelected ? TrueItem : FalseItem;
}
}
}

View File

@@ -5,15 +5,13 @@ using GalaSoft.MvvmLight;
using GalaSoft.MvvmLight.Command; using GalaSoft.MvvmLight.Command;
using Messages; using Messages;
using ModernKeePass.Application.Common.Interfaces; using ModernKeePass.Application.Common.Interfaces;
using ModernKeePass.Domain.Interfaces;
using ModernKeePass.ViewModels.ListItems; using ModernKeePass.ViewModels.ListItems;
namespace ModernKeePass.ViewModels namespace ModernKeePass.ViewModels
{ {
public class RecentVm : ViewModelBase, IHasSelectableObject public class RecentVm : ViewModelBase
{ {
private readonly IRecentProxy _recent; private readonly IRecentProxy _recent;
private ISelectableModel _selectedItem;
private ObservableCollection<RecentItemVm> _recentItems; private ObservableCollection<RecentItemVm> _recentItems;
public ObservableCollection<RecentItemVm> RecentItems public ObservableCollection<RecentItemVm> RecentItems
@@ -21,24 +19,6 @@ namespace ModernKeePass.ViewModels
get { return _recentItems; } get { return _recentItems; }
set { Set(() => RecentItems, ref _recentItems, value); } set { Set(() => RecentItems, ref _recentItems, value); }
} }
public ISelectableModel SelectedItem
{
get { return _selectedItem; }
set
{
if (_selectedItem == value) return;
if (_selectedItem != null)
{
_selectedItem.IsSelected = false;
}
Set(() => SelectedItem, ref _selectedItem, value);
if (_selectedItem == null) return;
_selectedItem.IsSelected = true;
}
}
public ICommand ClearAllCommand { get; } public ICommand ClearAllCommand { get; }
@@ -54,8 +34,6 @@ namespace ModernKeePass.ViewModels
{ {
var recentItems = _recent.GetAll().Select(r => new RecentItemVm(r)); var recentItems = _recent.GetAll().Select(r => new RecentItemVm(r));
RecentItems = new ObservableCollection<RecentItemVm>(recentItems); RecentItems = new ObservableCollection<RecentItemVm>(recentItems);
if (RecentItems.Count > 0)
SelectedItem = RecentItems[0];
} }
private void ClearAll() private void ClearAll()

View File

@@ -16,8 +16,9 @@
<Compile Include="$(MSBuildThisFileDirectory)Common\Constants.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Common\Constants.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Common\NavigationHelper.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Common\NavigationHelper.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Common\SuspensionManager.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Common\SuspensionManager.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Controls\ListViewWithDisable.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Controls\DisableListView.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Controls\PasswordBoxWithButton.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Controls\PasswordBoxWithButton.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Controls\SelectableTemplateListView.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Controls\TextBoxWithButton.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Controls\TextBoxWithButton.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Converters\BooleanToVisibilityConverter.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Converters\BooleanToVisibilityConverter.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Converters\ColorToBrushConverter.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Converters\ColorToBrushConverter.cs" />
@@ -40,8 +41,6 @@
<Compile Include="$(MSBuildThisFileDirectory)Messages\FileNotFoundMessage.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Messages\FileNotFoundMessage.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Messages\NavigateToPageMessage.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Messages\NavigateToPageMessage.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Messages\SaveErrorMessage.cs" /> <Compile Include="$(MSBuildThisFileDirectory)Messages\SaveErrorMessage.cs" />
<Compile Include="$(MSBuildThisFileDirectory)TemplateSelectors\FirstItemDataTemplateSelector.cs" />
<Compile Include="$(MSBuildThisFileDirectory)TemplateSelectors\SelectableDataTemplateSelector.cs" />
<Compile Include="$(MSBuildThisFileDirectory)ViewModels\AboutVm.cs" /> <Compile Include="$(MSBuildThisFileDirectory)ViewModels\AboutVm.cs" />
<Compile Include="$(MSBuildThisFileDirectory)ViewModels\ViewModelLocatorCommon.cs" /> <Compile Include="$(MSBuildThisFileDirectory)ViewModels\ViewModelLocatorCommon.cs" />
<Compile Include="$(MSBuildThisFileDirectory)ViewModels\Items\ListMenuItemVm.cs" /> <Compile Include="$(MSBuildThisFileDirectory)ViewModels\Items\ListMenuItemVm.cs" />