Can now edit file info

This commit is contained in:
2026-02-16 15:40:35 +09:00
parent 89ba04e6ea
commit 7f19ad8c15
6 changed files with 101 additions and 46 deletions
+3 -3
View File
@@ -10,9 +10,9 @@
x:DataType="vm:MainWindowViewModel"
Width="800"
MinWidth="400"
Height="600"
MinHeight="400">
<dialogHost:DialogHost CloseOnClickAway="True"
Height="650"
MinHeight="450">
<dialogHost:DialogHost CloseOnClickAway="False"
Identifier="DialogHost">
<dialogHost:DialogHost.DialogContent>
<StackPanel/>
+16 -26
View File
@@ -7,56 +7,46 @@ namespace ReceiptPDFBuilder.Models;
class ReportFile : ChangeNotifier
{
private string _title;
private DateOnly _date;
private DateTime _dateTime;
private DateTimeOffset _dto;
private DateTime _receiptDateTime;
private string _notes;
private string _filePath;
public ReportFile()
{
_title = "";
_date = DateOnly.FromDateTime(DateTime.Now);
_receiptDateTime = DateTime.Now;
_notes = "";
_filePath = "";
}
public ReportFile(ReportFile other)
{
Title = _title = other.Title;
ReceiptDateTime = _receiptDateTime = other.ReceiptDateTime;
Notes = _notes = other.Notes;
FilePath = _filePath = other.FilePath;
}
public string Title
{
get => _title;
set { _title = value; NotifyPropertyChanged(); }
}
public DateOnly Date
public DateTime ReceiptDateTime
{
get => _date;
get => _receiptDateTime;
set
{
_date = value;
DateTime = value.ToDateTime(TimeOnly.MinValue);
DTO = new DateTimeOffset(value.ToDateTime(TimeOnly.MinValue));
_receiptDateTime = value;
NotifyPropertyChanged();
NotifyPropertyChanged(nameof(ReceiptDate));
}
}
public DateTime DateTime
public DateOnly ReceiptDate
{
get => _dateTime;
set
{
_dateTime = value;
NotifyPropertyChanged();
}
}
public DateTimeOffset DTO
{
get => _dto;
set
{
_dto = value;
NotifyPropertyChanged();
}
get => DateOnly.FromDateTime(_receiptDateTime);
}
public string Notes
+24 -2
View File
@@ -22,10 +22,32 @@ namespace ReceiptPDFBuilder.ViewModels;
class EditFileViewModel : BaseViewModel
{
ReportFile _file;
ReportFile _clonedFile;
ReportFile _originalFile;
public EditFileViewModel(ReportFile file, IChangeViewModel viewModelChanger) : base(viewModelChanger)
{
_file = file;
_clonedFile = new ReportFile(file);
_originalFile = file;
}
public ReportFile OriginalFile
{
get => _originalFile;
}
public ReportFile ClonedFile
{
get => _clonedFile;
}
public void Cancel()
{
DialogHost.Close("DialogHost", null);
}
public void Save()
{
DialogHost.Close("DialogHost", ClonedFile);
}
}
+7 -1
View File
@@ -98,7 +98,7 @@ class MainViewModel : BaseViewModel, IFontResolver
ReportFiles.Add(new ReportFile()
{
Title = Path.GetFileName(filePath),
Date = DateOnly.FromDateTime(File.GetCreationTime(filePath)),
ReceiptDateTime = File.GetCreationTime(filePath),
Notes = "TEST NOTES",
FilePath = filePath,
});
@@ -125,6 +125,12 @@ class MainViewModel : BaseViewModel, IFontResolver
public async void EditFileProperties(ReportFile file)
{
var result = await DialogHost.Show(new EditFileViewModel(file, ViewModelChanger));
if (result != null && result is ReportFile updatedData)
{
file.Title = updatedData.Title;
file.ReceiptDateTime = updatedData.ReceiptDateTime;
file.Notes = updatedData.Notes;
}
}
public async void BuildPDF()
+45 -10
View File
@@ -2,19 +2,54 @@
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"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
mc:Ignorable="d"
d:DesignWidth="800"
d:DesignHeight="450"
x:Class="ReceiptPDFBuilder.Views.EditFile"
xmlns:models="clr-namespace:ReceiptPDFBuilder.Models"
xmlns:vm="clr-namespace:ReceiptPDFBuilder.ViewModels"
xmlns:dialogHost="clr-namespace:DialogHostAvalonia;assembly=DialogHost.Avalonia"
x:DataType="vm:EditFileViewModel">
<StackPanel HorizontalAlignment="Stretch"
Margin="6"
Spacing="8">
<Label Content="Edit File"
HorizontalAlignment="Center"
FontSize="16"
FontWeight="Bold"/>
</StackPanel>
<ScrollViewer AllowAutoHide="False">
<StackPanel Orientation="Vertical"
Spacing="4"
Margin="12,4,12,0">
<Label Content="Edit File Details"
HorizontalAlignment="Center"
FontSize="16"
FontWeight="Bold" />
<Label Content="Title" />
<TextBox Watermark="Title"
Text="{Binding ClonedFile.Title}"
VerticalAlignment="Stretch"
TextWrapping="Wrap" />
<Label Content="Notes" />
<TextBox Watermark="Notes"
Text="{Binding ClonedFile.Notes}"
VerticalAlignment="Stretch"
AcceptsReturn="True"
ScrollViewer.AllowAutoHide="False"
Height="75" />
<Label Content="Receipt Date" />
<Calendar SelectionMode="SingleDate"
SelectedDate="{Binding ClonedFile.ReceiptDateTime}"
DisplayDate="{Binding ClonedFile.ReceiptDateTime}" />
<StackPanel Orientation="Horizontal"
Spacing="12"
Margin="0,4,0,0"
HorizontalAlignment="Right">
<Button Command="{Binding Cancel}">
<TextBlock>
<Run Text="&#xf0e2;"
FontFamily="{StaticResource FontAwesomeSolid}" /> Cancel</TextBlock>
</Button>
<Button Command="{Binding Save}"
Classes="accent">
<TextBlock>
<Run Text="&#xf0c7;"
FontFamily="{StaticResource FontAwesomeSolid}" /> Save</TextBlock>
</Button>
</StackPanel>
</StackPanel>
</ScrollViewer>
</UserControl>
+5 -3
View File
@@ -36,8 +36,8 @@
CanUserSortColumns="False"
BorderThickness="1"
VerticalScrollBarVisibility="Visible"
HorizontalScrollBarVisibility="Disabled"
ScrollViewer.AllowAutoHide="False"
HorizontalScrollBarVisibility="Disabled"
HeadersVisibility="All"
BorderBrush="Gray">
<DataGrid.Styles>
@@ -55,7 +55,7 @@
IsReadOnly="False"
Width="*"/>
<DataGridTextColumn Header="Receipt Date"
Binding="{Binding Date}"
Binding="{Binding ReceiptDate}"
IsReadOnly="True"
Width="*"/>
<DataGridTextColumn Header="File Name"
@@ -130,7 +130,9 @@
</StackPanel>
<ScrollViewer Margin="2"
Grid.Row="4"
x:Name="LogScrollView">
x:Name="LogScrollView"
VerticalScrollBarVisibility="Visible"
AllowAutoHide="False">
<SelectableTextBlock Text="{Binding CreatePDFLog}"
Margin="2"
TextWrapping="Wrap"