Browse Source

其他- 调整逻辑:使用工具前,如果文件被占用,且在保存弹窗里选了取消按钮,则不进行后续操作

ZhouJieSheng 1 year ago
parent
commit
873e1b8753

+ 4 - 1
PDF Office/ViewModels/Tools/ConverterBarContentViewModel.cs

@@ -72,7 +72,10 @@ namespace PDF_Master.ViewModels.Tools
             }
 
             //转档前 如果需要 自动保存
-            await viewContentViewModel.SaveBeforeOption();
+            if(!await viewContentViewModel.SaveBeforeOption())
+            {
+                return;
+            }
 
             var args = sender as Button;
             if (args != null)

+ 19 - 14
PDF Office/ViewModels/Tools/ToolsBarContentViewModel.cs

@@ -194,15 +194,17 @@ namespace PDF_Master.ViewModels.Tools
             {
                 return;
             }
-            await  viewContentViewModel.SaveBeforeOption();
-            DialogParameters value = new DialogParameters();
-            value.Add(ParameterNames.PDFViewer, PDFViewer);
-            dialogs.ShowDialog(DialogNames.CompressDialog, value, e =>
+            if (await viewContentViewModel.SaveBeforeOption())
             {
-                CompressDialogModel compressDialogModel = new CompressDialogModel();
-                compressDialogModel.OnOpened((Prism.Services.Dialogs.DialogResult)e);
-                // OnOpened((Prism.Services.Dialogs.DialogResult)e);
-            });
+                DialogParameters value = new DialogParameters();
+                value.Add(ParameterNames.PDFViewer, PDFViewer);
+                dialogs.ShowDialog(DialogNames.CompressDialog, value, e =>
+                {
+                    CompressDialogModel compressDialogModel = new CompressDialogModel();
+                    compressDialogModel.OnOpened((Prism.Services.Dialogs.DialogResult)e);
+                    // OnOpened((Prism.Services.Dialogs.DialogResult)e);
+                });
+            }
         }
 
         //private int GetIndex(int pageindex)
@@ -250,12 +252,15 @@ namespace PDF_Master.ViewModels.Tools
             {
                 return;
             }
-            await viewContentViewModel.SaveBeforeOption();
-            DialogParameters value = new DialogParameters();
-            value.Add(ParameterNames.PDFViewer, PDFViewer);
-            value.Add(ParameterNames.FilePath, PDFViewer.Document.FilePath);
-            value.Add(ParameterNames.Unicode, unicode);
-            dialogs.ShowDialog(DialogNames.MergeDialog, value, e => { });
+            if (await viewContentViewModel.SaveBeforeOption())
+            {
+                DialogParameters value = new DialogParameters();
+                value.Add(ParameterNames.PDFViewer, PDFViewer);
+                value.Add(ParameterNames.FilePath, PDFViewer.Document.FilePath);
+                value.Add(ParameterNames.Unicode, unicode);
+                dialogs.ShowDialog(DialogNames.MergeDialog, value, e => { });
+
+            }
         }
 
         private void OpenSetPasswordDialog()

+ 3 - 2
PDF Office/ViewModels/ViewContentViewModel.cs

@@ -2798,6 +2798,7 @@ namespace PDF_Master.ViewModels
         /// </summary>
         public async Task<bool> SaveBeforeOption()
         {
+            bool result = true;
             if (PDFViewer.UndoManager.CanSave)
             {
                 string title = "Saving File";
@@ -2805,11 +2806,11 @@ namespace PDF_Master.ViewModels
                 //让保存的效果更明显
                 await Task.Delay(200);
                 //合并前自动保存一次
-                saveFile(true);
+                result =  saveFile(true);
                 App.mainWindowViewModel.SetProcessValue(title, 100, 100, false);
             }
             //方便其他调用的地方可以异步 await调用,增加显示保存过程的效果
-            return true;
+            return result;
         }
 
         /// <summary>