add media removal

This commit is contained in:
Oleksandr Bezdieniezhnykh
2025-09-06 01:27:49 +03:00
parent 053719c4a8
commit b0e4b467c1
3 changed files with 33 additions and 2 deletions
+1
View File
@@ -177,6 +177,7 @@
<ListView.ContextMenu> <ListView.ContextMenu>
<ContextMenu Name="LvFilesContextMenu"> <ContextMenu Name="LvFilesContextMenu">
<MenuItem Header="Відкрити папку..." Click="OpenContainingFolder" Background="WhiteSmoke" /> <MenuItem Header="Відкрити папку..." Click="OpenContainingFolder" Background="WhiteSmoke" />
<MenuItem Header="Видалити..." Click="DeleteMedia" Background="WhiteSmoke" />
</ContextMenu> </ContextMenu>
</ListView.ContextMenu> </ListView.ContextMenu>
<ListView.View> <ListView.View>
+22
View File
@@ -549,6 +549,28 @@ public partial class Annotator
} }
#endregion #endregion
private void DeleteMedia(object sender, RoutedEventArgs e)
{
var mediaFileInfo = (sender as MenuItem)?.DataContext as MediaFileInfo;
if (mediaFileInfo == null)
return;
DeleteMedia(mediaFileInfo);
}
public void DeleteMedia(MediaFileInfo mediaFileInfo)
{
var obj = mediaFileInfo.MediaType == MediaTypes.Image
? "цю картинку "
: "це відео ";
var result = MessageBox.Show($"Видалити {obj}?",
"Підтвердження видалення", MessageBoxButton.YesNo, MessageBoxImage.Warning);
if (result != MessageBoxResult.Yes)
return;
File.Delete(mediaFileInfo.Path);
AllMediaFiles.Remove(mediaFileInfo);
}
} }
public class GradientStyleSelector : StyleSelector public class GradientStyleSelector : StyleSelector
+10 -2
View File
@@ -1,5 +1,6 @@
using System.IO; using System.IO;
using System.Windows; using System.Windows;
using System.Windows.Controls;
using System.Windows.Input; using System.Windows.Input;
using System.Windows.Media; using System.Windows.Media;
using System.Windows.Media.Imaging; using System.Windows.Media.Imaging;
@@ -174,8 +175,15 @@ public class AnnotatorEventHandler(
await SaveAnnotation(cancellationToken); await SaveAnnotation(cancellationToken);
break; break;
case PlaybackControlEnum.RemoveSelectedAnns: case PlaybackControlEnum.RemoveSelectedAnns:
var focusedElement = FocusManager.GetFocusedElement(mainWindow);
mainWindow.Editor.RemoveSelectedAnns(); if (focusedElement is ListViewItem item)
{
if (item.DataContext is not MediaFileInfo mediaFileInfo)
return;
mainWindow.DeleteMedia(mediaFileInfo);
}
else
mainWindow.Editor.RemoveSelectedAnns();
break; break;
case PlaybackControlEnum.RemoveAllAnns: case PlaybackControlEnum.RemoveAllAnns:
mainWindow.Editor.RemoveAllAnns(); mainWindow.Editor.RemoveAllAnns();