@@ -712,9 +712,9 @@ private async void Viewer_PreviewMouseDoubleClick(object sender, MouseButtonEven
712712 /// <param name="e"></param>
713713 private void ListBox_PreviewMouseWheel ( object sender , MouseWheelEventArgs e )
714714 {
715- if ( Keyboard . IsKeyDown ( Key . LeftCtrl ) )
715+ if ( Keyboard . IsKeyDown ( Key . LeftCtrl ) )
716716 {
717- if ( CurrentFileView == FileView . Detail || CurrentFileView == FileView . Tree && Configs . TreeSimpleTemplate )
717+ if ( CurrentFileView == FileView . Detail || CurrentFileView == FileView . Tree && Configs . TreeSimpleTemplate )
718718 {
719719 return ;
720720 }
@@ -947,7 +947,7 @@ private void ContextMenu_Opened(object sender, RoutedEventArgs e)
947947
948948 if ( ! IsSingleWindow )
949949 {
950- MenuItem menuDelete = new MenuItem ( ) { Header = "删除文件" , ToolTip = "这不会删除磁盘上的文件,仅仅删除记录" } ;
950+ MenuItem menuDelete = new MenuItem ( ) { Header = "删除文件" } ;
951951 menuDelete . Click += MenuDelete_Click ;
952952 menu . Items . Add ( menuDelete ) ;
953953
@@ -972,7 +972,7 @@ private void ContextMenu_Opened(object sender, RoutedEventArgs e)
972972 menu . Items . Add ( menuShowProperties ) ;
973973 }
974974 var classesMenus = new List < CheckBox > ( ) ;
975- if ( ! IsSingleWindow )
975+ if ( ! IsSingleWindow && Project . Classes != null && Project . Classes . Count > 0 )
976976 {
977977 menu . Items . Add ( new Separator ( ) ) ;
978978
@@ -1051,7 +1051,7 @@ private async void MenuRecover_Click(object sender, RoutedEventArgs e)
10511051 async Task Do ( )
10521052 {
10531053 await Task . Run ( ( ) =>
1054- FileUtility . DeleteFilesRecord ( files . Select ( p => p . File ) ) ) ;
1054+ FileUtility . RecoverFiles ( files . Select ( p => p . File ) ) ) ;
10551055 foreach ( var file in files )
10561056 {
10571057 Files . Remove ( file ) ;
@@ -1066,11 +1066,24 @@ await Task.Run(() =>
10661066 private async void MenuDelete_Click ( object sender , RoutedEventArgs e )
10671067 {
10681068 var files = GetSelectedFiles ( ) ;
1069- await MainWindow . Current . DoProcessAsync ( Do ( ) ) ;
1070- async Task Do ( )
1069+ int mode = Configs . AutoDeleteFiles > 0 ?
1070+ Configs . AutoDeleteFiles :
1071+ await new DeleteFilesDialog ( ) . ShowAsync ( files . Count ) ;
1072+ IReadOnlyCollection < string > faileds = null ;
1073+ if ( mode > 0 )
1074+ {
1075+ await MainWindow . Current . DoProcessAsync ( DeleteRecordsOnly ( ) ) ;
1076+ if ( faileds != null && faileds . Count > 0 )
1077+ {
1078+ await new ErrorDialog ( ) . ShowAsync ( "某一些物理文件可能由于某些原因,无法删除。" ,
1079+ "部分文件删除失败" ,
1080+ string . Join ( Environment . NewLine , faileds ) ) ;
1081+ }
1082+ }
1083+ async Task DeleteRecordsOnly ( )
10711084 {
10721085 await Task . Run ( ( ) =>
1073- FileUtility . DeleteFilesRecord ( files . Select ( p => p . File ) ) ) ;
1086+ FileUtility . DeleteFiles ( files . Select ( p => p . File ) , mode == 2 , out faileds ) ) ;
10741087 foreach ( var file in files )
10751088 {
10761089 Files . Remove ( file ) ;
0 commit comments