Allow locating file that was moved/renamed
This commit is contained in:
@@ -286,6 +286,41 @@ class MainViewModel : BaseViewModel, IFontResolver
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void LocateFile(object f) => LocateFileImpl((ReportFile) f);
|
||||||
|
public async void LocateFileImpl(ReportFile reportFile)
|
||||||
|
{
|
||||||
|
var topLevel = TopLevelGrabber?.GetTopLevel();
|
||||||
|
if (topLevel is not null)
|
||||||
|
{
|
||||||
|
var files = await topLevel.StorageProvider.OpenFilePickerAsync(new FilePickerOpenOptions()
|
||||||
|
{
|
||||||
|
Title = "Choose image or PDF file...",
|
||||||
|
AllowMultiple = false,
|
||||||
|
FileTypeFilter = [
|
||||||
|
new FilePickerFileType("All Types")
|
||||||
|
{
|
||||||
|
Patterns = GetAllowedFileExtensionPatterns(),
|
||||||
|
AppleUniformTypeIdentifiers = [ "public.image", "com.adobe.pdf", "public.heic" ],
|
||||||
|
MimeTypes = [ "image/*", "application/pdf", "image/heic" ]
|
||||||
|
},
|
||||||
|
FilePickerFileTypes.ImageAll,
|
||||||
|
new FilePickerFileType("HEIC Images")
|
||||||
|
{
|
||||||
|
Patterns = [ "*.heic" ],
|
||||||
|
AppleUniformTypeIdentifiers = [ "public.heic" ],
|
||||||
|
MimeTypes = [ "image/heic" ]
|
||||||
|
},
|
||||||
|
FilePickerFileTypes.Pdf,
|
||||||
|
],
|
||||||
|
});
|
||||||
|
if (files.Count > 0)
|
||||||
|
{
|
||||||
|
var file = files[0];
|
||||||
|
reportFile.FilePath = file.Path.LocalPath;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// https://github.com/AvaloniaUI/Avalonia/issues/10075
|
// https://github.com/AvaloniaUI/Avalonia/issues/10075
|
||||||
public void OpenFile(object f) => OpenFileImpl((ReportFile)f);
|
public void OpenFile(object f) => OpenFileImpl((ReportFile)f);
|
||||||
public void OpenFileImpl(ReportFile file)
|
public void OpenFileImpl(ReportFile file)
|
||||||
|
|||||||
+21
-4
@@ -75,9 +75,25 @@
|
|||||||
Width="*">
|
Width="*">
|
||||||
<DataGridTemplateColumn.CellTemplate>
|
<DataGridTemplateColumn.CellTemplate>
|
||||||
<DataTemplate>
|
<DataTemplate>
|
||||||
<Label Content="{Binding Title}"
|
<Grid ColumnDefinitions="Auto, *">
|
||||||
VerticalAlignment="Center"
|
<Button Command="{Binding $parent[DataGrid].((vm:MainViewModel)DataContext).LocateFile}"
|
||||||
HorizontalAlignment="Left"/>
|
CommandParameter="{Binding}"
|
||||||
|
IsVisible="{Binding !IsFileFoundOnDisk}"
|
||||||
|
Margin="2"
|
||||||
|
Content=""
|
||||||
|
VerticalContentAlignment="Center"
|
||||||
|
Background="Transparent"
|
||||||
|
Grid.Column="0"
|
||||||
|
FontFamily="{StaticResource FontAwesomeSolid}"
|
||||||
|
ToolTip.Tip="File not found; click to locate..."
|
||||||
|
IsEnabled="{Binding !$parent[DataGrid].((vm:MainViewModel)DataContext).IsCreatingPDF}"/>
|
||||||
|
<TextBlock Text="{Binding Title}"
|
||||||
|
TextTrimming="CharacterEllipsis"
|
||||||
|
TextWrapping="NoWrap"
|
||||||
|
Grid.Column="1"
|
||||||
|
Margin="8,0,4,0"
|
||||||
|
VerticalAlignment="Center"/>
|
||||||
|
</Grid>
|
||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
</DataGridTemplateColumn.CellTemplate>
|
</DataGridTemplateColumn.CellTemplate>
|
||||||
<DataGridTemplateColumn.CellEditingTemplate>
|
<DataGridTemplateColumn.CellEditingTemplate>
|
||||||
@@ -99,7 +115,8 @@
|
|||||||
<DataTemplate>
|
<DataTemplate>
|
||||||
<Label Content="{Binding ReceiptDate}"
|
<Label Content="{Binding ReceiptDate}"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
HorizontalAlignment="Center"/>
|
Margin="8,0,8,0"
|
||||||
|
HorizontalAlignment="Left"/>
|
||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
</DataGridTemplateColumn.CellTemplate>
|
</DataGridTemplateColumn.CellTemplate>
|
||||||
<DataGridTemplateColumn.CellEditingTemplate>
|
<DataGridTemplateColumn.CellEditingTemplate>
|
||||||
|
|||||||
Reference in New Issue
Block a user