Parcourir la source

Merge branch 'dev' of http://git.kdan.cc:8865/Windows/PDFOffice_Windows_exe into dev

ZhouJieSheng il y a 2 ans
Parent
commit
209c92aaa0

BIN
PDF Office/ComPDFKit.Viewer.dll


+ 2 - 2
PDF Office/ViewModels/BottomToolContentViewModel.cs

@@ -360,10 +360,10 @@ namespace PDF_Office.ViewModels
                 }
                 else
                 {
-                    if (item is ViewModularContent bOTAContent1)
+                    if (item is ViewModularContent viewModular)
                     {
                         var contentRegion = region.Regions[ViewContentViewModel.PropertyRegionName];
-                        contentRegion.Activate(bOTAContent1);
+                        contentRegion.Activate(viewModular);
                     }
                 }
             }

+ 8 - 0
PDF Office/ViewModels/PropertyPanel/AnnotPanel/FreehandAnnotPropertyViewModel.cs

@@ -262,6 +262,14 @@ namespace PDF_Office.ViewModels.PropertyPanel.AnnotPanel
             {
                 PropertyPanel.InvokeToMyTools(AnnotArgsType.AnnotFreehand, CurrenFreeHandAnnot);
                 IsPen = true;;
+                if (CurrenFreeHandAnnot is FreehandAnnotArgs)
+                {
+                    BasicVm.AnnotTypeTitle = "画笔";
+                }
+                else
+                {
+                    BasicVm.AnnotTypeTitle = "橡皮擦";
+                }
             }
         }
 

+ 8 - 0
PDF Office/ViewModels/PropertyPanel/ViewModular/ViewModularContentViewModel.cs

@@ -578,6 +578,13 @@ namespace PDF_Office.ViewModels.PropertyPanel.ViewModular
 
         public void OnNavigatedFrom(NavigationContext navigationContext)
         {
+            if (BottomToolContentViewModel != null)
+            {
+                IsSingleView = BottomToolContentViewModel.IsSingleView;
+                IsTwoPageView = BottomToolContentViewModel.IsDoubleView;
+                IsBookModeView = BottomToolContentViewModel.IsBookMode;
+                IsContinue = BottomToolContentViewModel.IsContinue;
+            }
         }
 
         public void OnNavigatedTo(NavigationContext navigationContext)
@@ -600,6 +607,7 @@ namespace PDF_Office.ViewModels.PropertyPanel.ViewModular
             IsTwoPageView = BottomToolContentViewModel.IsDoubleView;
             IsBookModeView = BottomToolContentViewModel.IsBookMode;
             IsContinue = BottomToolContentViewModel.IsContinue;
+            PDFViewer.InfoChanged -= PDFViewer_InfoChanged;
             PDFViewer.InfoChanged += PDFViewer_InfoChanged;
         }
 

+ 62 - 1
PDF Office/ViewModels/Tools/AnnotToolContentViewModel.Command.cs

@@ -292,6 +292,57 @@ namespace PDF_Office.ViewModels.Tools
             }
         }
 
+        private void SelectedSignature(List<AnnotHandlerEventArgs> annotlist)
+        {
+            if (annotlist == null || annotlist.Count == 0)
+                return;
+
+            var annot = annotlist[0];
+
+            if (annot.EventType != AnnotArgsType.AnnotStamp && annot.EventType != AnnotArgsType.AnnotFreehand)
+                return;
+            if (annot.PageIndex < 0 || annot.AnnotIndex < 0)
+                return;
+
+
+            var signAnnot = AnnotSignatures.FirstOrDefault(temp => temp.Item1 == annot.PageIndex && temp.Item2 == annot.AnnotIndex);
+            if (signAnnot == null)
+            {
+                if (annot.EventType == AnnotArgsType.AnnotStamp)
+                {
+                    StrAnnotToolChecked = "Stamp";
+                }
+                else
+                {
+                    StrAnnotToolChecked = "";
+                }
+            }
+            else
+            {
+                GetSignature();
+                StrAnnotToolChecked = "Signature";
+            }
+
+        }
+
+        private void AddAnnotSignature(AnnotHandlerEventArgs annot)
+        {
+            if ((annot.EventType != AnnotArgsType.AnnotStamp && annot.EventType != AnnotArgsType.AnnotFreehand) ||
+            (annot.PageIndex < 0 || annot.AnnotIndex < 0)) return;
+
+            if (StrAnnotToolChecked == "Signature")
+            {
+                if (AnnotSignatures == null)
+                    AnnotSignatures = new List<Tuple<int, int>>();
+
+                var signAnnot = AnnotSignatures.FirstOrDefault(temp => temp.Item1 == annot.PageIndex && temp.Item2 == annot.AnnotIndex);
+                if (signAnnot == null)
+                {
+                    AnnotSignatures.Add(new Tuple<int, int>(annot.PageIndex, annot.AnnotIndex));
+                }
+            }
+        }
+
         #endregion 与触发事件调用相关的函数
 
         #region PDFViewer事件
@@ -310,6 +361,7 @@ namespace PDF_Office.ViewModels.Tools
                         if (e.IsAnnotCreateReset == false)
                         {
                             GetSelectedAnnots(e);
+                            SelectedSignature(e.AnnotItemsList);
                             CurrentSelectedAnnot = annot;
                         }
                         else
@@ -808,9 +860,18 @@ namespace PDF_Office.ViewModels.Tools
                                )
                             {
                                 PDFViewer.ClearSelectAnnots();
-                                PDFViewer.SelectAnnotation(annot.PageIndex, annot.AnnotIndex);
+                                if (StrAnnotToolChecked != "Signature")
+                                {
+                                    PDFViewer.SelectAnnotation(annot.PageIndex, annot.AnnotIndex);
+                                }
+                                else
+                                {
+                                    AddAnnotSignature(annot);
+                                    PDFViewer.SelectAnnotation(annot.PageIndex, annot.AnnotIndex);
+                                } 
                             }
 
+                            
                             break;
 
                         case ActionType.Del:

+ 15 - 0
PDF Office/ViewModels/Tools/AnnotToolContentViewModel.Function.cs

@@ -246,6 +246,7 @@ namespace PDF_Office.ViewModels.Tools
                         return;
                     }
                     annotArgs = GetStamp();
+
                     break;
 
                 case "Image":
@@ -634,6 +635,20 @@ namespace PDF_Office.ViewModels.Tools
             return false;
         }
 
+        private void FromFillAndSign(FillAndSigntEventArgs obj)
+        {
+            if (obj != null)
+            {
+                if (string.IsNullOrEmpty(obj.Unicode) == false)
+                {
+                    if (obj.Unicode == "Clear")
+                    {
+                        AnnotSignatures.Clear();
+                    }
+                }
+            }
+        }
+
         /// <summary>
         /// 便签
         /// </summary>

+ 2 - 3
PDF Office/ViewModels/Tools/AnnotToolContentViewModel.Properties.cs

@@ -279,8 +279,9 @@ namespace PDF_Office.ViewModels.Tools
         private AnnotPropertyPanel propertyPanel = new AnnotPropertyPanel();
         private Dictionary<string, AnnotArgsType> ToolExpandDict = new Dictionary<string, AnnotArgsType>();
         private Dictionary<string, string> ToolTipDict = new Dictionary<string, string>();
-       //private List<Tuple<int,int>> AnnotStamp
+        private List<Tuple<int, int>> AnnotSignatures = new List<Tuple<int, int>>();
         private StickyNotePopup customStickyPopup;
+        string Unicode = "";
 
         //private bool isHiddenAnnot = true;
         private bool isAddBookMark = true;
@@ -338,8 +339,6 @@ namespace PDF_Office.ViewModels.Tools
         //图章
         public DelegateCommand<object> StampExportPicture_MenuCommand { get; set; }
 
-        //ESC
-        public DelegateCommand EscCommand { get; set; }
 
         //链接
         public DelegateCommand<object> Link_MenuCommand { get; set; }

+ 13 - 34
PDF Office/ViewModels/Tools/AnnotToolContentViewModel.cs

@@ -55,6 +55,14 @@ namespace PDF_Office.ViewModels.Tools
             InitToolDict();
             InitToolTipDict();
             InitPopMenu();
+            SubscribeEvent();
+        }
+
+        //事件聚合器
+        private void SubscribeEvent()
+        {
+            Unicode = App.mainWindowViewModel.SelectedItem.Unicode;
+            events.GetEvent<FillAndSignEvent>().Subscribe(FromFillAndSign, e => e.AppUnicode == Unicode);
         }
 
         private void InitPopMenu()
@@ -76,8 +84,6 @@ namespace PDF_Office.ViewModels.Tools
             AddBookMarkCommand = new DelegateCommand(AddBookMark_Click);
             PropertyRegionName = Guid.NewGuid().ToString();
             HandCommand = new DelegateCommand<object>(Hand_Click);
-            //ESC
-            EscCommand = new DelegateCommand(Esc_KeyDown);
 
             #region 注释 - 右键菜单
 
@@ -105,37 +111,12 @@ namespace PDF_Office.ViewModels.Tools
             #endregion 注释 - 右键菜单
         }
 
-        private void Esc_KeyDown()
-        {
-            //PDFViewer.SetMouseMode(MouseModes.None);
-        }
-
         private void Hand_Click(object obj)
         {
-            if (obj is WrapPanel wrapPanel)
+            HandToolIsCheckedEvent(BtnHandIsChecked);
+            if (BtnHandIsChecked)
             {
-                foreach (var item in wrapPanel.Children)
-                {
-                    if (item is CustomIconToggleBtn customIconToggle)
-                    {
-                        if (customIconToggle.Name == "BtnHand")
-                        {
-                            HandToolIsCheckedEvent((bool)customIconToggle.IsChecked);
-                        }
-                        //if (customIconToggle.Name == "BtnHand")
-                        //{
-                        //    BtnHandIsChecked = (bool)customIconToggle.IsChecked;
-                        //}
-                        if (BtnHandIsChecked)
-                        {
-                            if (customIconToggle.Name != "BtnShowAnnot" && customIconToggle.Name != "BtnHand")
-                            {
-                                customIconToggle.IsChecked = false;
-                            }
-                        }
-                    }
-                }
-
+                StrAnnotToolChecked = "";
                 viewContentViewModel.SelectedPrpoertyPanel("PropertyPanelContent", null);
             }
         }
@@ -473,15 +454,13 @@ namespace PDF_Office.ViewModels.Tools
                 switch (menuItem.Tag.ToString())
                 {
                     case "default":
-                        PDFViewer.SetMouseMode(MouseModes.PanTool);
-                        //viewContentViewModel.SelectedPrpoertyPanel("PropertyPanelContent", null);
+                        HandToolIsCheckedEvent(false);
                         BtnHandIsChecked = false;
                         ShowPropertyPanel(false);
                         break;
 
                     case "roll":
-                        PDFViewer.SetMouseMode(MouseModes.Scroll);
-                        //viewContentViewModel.SelectedPrpoertyPanel("PropertyPanelContent", null);
+                        HandToolIsCheckedEvent(true);
                         BtnHandIsChecked = true;
                         ShowPropertyPanel(false);
                         break;

+ 0 - 5
PDF Office/Views/PropertyPanel/ViewModular/ReadViewContent.xaml

@@ -62,9 +62,4 @@
             MouseEnter="RectangleReadMode_MouseEnter"
             Visibility="{Binding RectangleReadModeVisibility}" />
     </Grid>
-    <!--<i:Interaction.Triggers>
-    <i:EventTrigger EventName="Loaded">
-    <prism:InvokeCommandAction Command="{Binding Load}" />
-    </i:EventTrigger>
-    </i:Interaction.Triggers>-->
 </UserControl>

Fichier diff supprimé car celui-ci est trop grand
+ 26 - 63
PDF Office/Views/Tools/AnnotToolContent.xaml