|
@@ -282,7 +282,7 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
/// <summary>
|
|
|
/// 记录多选项中最后一项的索引
|
|
|
/// </summary>
|
|
|
- private int maxSelectedIndex = -1;
|
|
|
+ public int maxSelectedIndex = -1;
|
|
|
|
|
|
private Visibility showTip = Visibility.Collapsed;
|
|
|
|
|
@@ -331,7 +331,22 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ /// <summary>
|
|
|
+ ///右键不会选中页面, 不要跳转
|
|
|
+ /// </summary>
|
|
|
+ /// 判断是否是右键选择
|
|
|
+ public bool IsMouseRightButtonDown = false;
|
|
|
+ /// <summary>
|
|
|
+ /// 右键选择索引
|
|
|
+ /// </summary>
|
|
|
+ public int RightSelectedIndex = 0;
|
|
|
+ /// <summary>
|
|
|
+ /// 右键选择 集合
|
|
|
+ /// </summary>
|
|
|
+ public List<int> RightSelectedIndexs = new List<int>();
|
|
|
+ /// <summary>
|
|
|
+ /// 多选
|
|
|
+ /// </summary>
|
|
|
private bool isMultiSelected;
|
|
|
|
|
|
/// <summary>
|
|
@@ -734,13 +749,13 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
}
|
|
|
}
|
|
|
indexList.Sort();
|
|
|
- //全选页面 提示不能全选
|
|
|
- if (indexList.Count > 0 && indexList.Count == PDFViewer.Document.PageCount)
|
|
|
- {
|
|
|
- AlertsMessage alertsMessage = new AlertsMessage();
|
|
|
- alertsMessage.ShowDialog("", App.MainPageLoader.GetString("PageEdit_DeleteAllPage"), App.ServiceLoader.GetString("Text_ok"));
|
|
|
- return;
|
|
|
- }
|
|
|
+ //全选页面 提示不能全选,230711不要提示
|
|
|
+ //if (indexList.Count > 0 && indexList.Count == PDFViewer.Document.PageCount)
|
|
|
+ //{
|
|
|
+ // AlertsMessage alertsMessage = new AlertsMessage();
|
|
|
+ // alertsMessage.ShowDialog("", App.MainPageLoader.GetString("PageEdit_DeleteAllPage"), App.ServiceLoader.GetString("Text_ok"));
|
|
|
+ // return;
|
|
|
+ //}
|
|
|
if ((bool)dialog.ShowDialog())
|
|
|
{
|
|
|
//付费锁
|
|
@@ -773,7 +788,18 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
|
|
|
//先记录索引(第一个选定页面)
|
|
|
int index = ListSelectedIndex;
|
|
|
-
|
|
|
+ if (IsMouseRightButtonDown)
|
|
|
+ {
|
|
|
+ index = RightSelectedIndex;
|
|
|
+ if (IsMultiSelected)
|
|
|
+ {
|
|
|
+ indexList = RightSelectedIndexs;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ indexList = new List<int> { index };
|
|
|
+ }
|
|
|
+ }
|
|
|
//替换页面 先看文件是否加密,如果加密,先解密后,再替换
|
|
|
bool isDiscryptied = GetDocumentIsDiscryptied(fileName, null, out CPDFDocument doc, out string password);
|
|
|
|
|
@@ -856,15 +882,24 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
+ int pageIndex = 0;
|
|
|
+ if (IsMouseRightButtonDown)
|
|
|
+ {
|
|
|
+ pageIndex = RightSelectedIndex;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ pageIndex = ListSelectedIndex;
|
|
|
+ }
|
|
|
//获取插入位置
|
|
|
int insertIndex = 0;
|
|
|
- if (listSelecedIndex < 0)
|
|
|
+ if (pageIndex < 0)
|
|
|
{
|
|
|
insertIndex = PageEditItems.Count;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- insertIndex = listSelecedIndex + 1;
|
|
|
+ insertIndex = pageIndex + 1;
|
|
|
if (isMultiSelected)
|
|
|
{
|
|
|
insertIndex = maxSelectedIndex + 1;
|
|
@@ -964,7 +999,7 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
size.Width = CommonHelper.GetUnitsFromPageSize(PDFViewer.Document.GetPageSize(listSelecedIndex).Width);
|
|
|
size.Height = CommonHelper.GetUnitsFromPageSize(PDFViewer.Document.GetPageSize(listSelecedIndex).Height);
|
|
|
keyValuePairs.Add(ParameterNames.CurrentPageSize, size);
|
|
|
- keyValuePairs.Add(ParameterNames.PageEditSelectedIndex, ListSelectedIndex);
|
|
|
+ keyValuePairs.Add(ParameterNames.PageEditSelectedIndex, pageIndex);
|
|
|
//int o = ListSelectedIndex;
|
|
|
//插入自定义页面
|
|
|
dialogs.ShowDialog(DialogNames.InsertDialog, keyValuePairs, e =>
|
|
@@ -1161,10 +1196,28 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
{
|
|
|
IsLoading = Visibility.Visible;
|
|
|
await Task.Delay(3);
|
|
|
- int index = DoRemoveSelectedPages();
|
|
|
+ int pageIndex = 0;
|
|
|
+ int index = 0;
|
|
|
+ if (IsMouseRightButtonDown)
|
|
|
+ {
|
|
|
+ if (IsMultiSelected)
|
|
|
+ {
|
|
|
+ DoRemoveSelectedPages(RightSelectedIndexs);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ DoRemoveSelectedPages(new List<int> { pageIndex });
|
|
|
+ }
|
|
|
+ pageIndex = RightSelectedIndex;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ index = DoRemoveSelectedPages();
|
|
|
+ }
|
|
|
+
|
|
|
ReloadAfterOption(true, true, Tuple.Create(0, PDFViewer.Document.PageCount));
|
|
|
//删除后 选中项
|
|
|
- if (index != -1)
|
|
|
+ if (index != -1 && IsMouseRightButtonDown == false)
|
|
|
{
|
|
|
if (index == PDFViewer.Document.PageCount)
|
|
|
{
|
|
@@ -1188,7 +1241,23 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
/// </summary>
|
|
|
private void LeftRotateCommandEvent()
|
|
|
{
|
|
|
- RotateSelectedPages(false);
|
|
|
+ List<int> pageitems = new List<int>();
|
|
|
+ if (IsMouseRightButtonDown)
|
|
|
+ {
|
|
|
+ if (IsMultiSelected)
|
|
|
+ {
|
|
|
+ pageitems.AddRange(RightSelectedIndexs);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ pageitems.Add(RightSelectedIndex);
|
|
|
+ }
|
|
|
+ RotateSelectedPages(false, pageitems);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ RotateSelectedPages(false);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -1196,7 +1265,23 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
/// </summary>
|
|
|
private void RightRotateCommandEvent()
|
|
|
{
|
|
|
- RotateSelectedPages();
|
|
|
+ List<int> pageitems = new List<int>();
|
|
|
+ if (IsMouseRightButtonDown)
|
|
|
+ {
|
|
|
+ if (IsMultiSelected)
|
|
|
+ {
|
|
|
+ pageitems.AddRange(RightSelectedIndexs);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ pageitems.Add(RightSelectedIndex);
|
|
|
+ }
|
|
|
+ RotateSelectedPages(true, pageitems);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ RotateSelectedPages();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -1319,25 +1404,54 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
{
|
|
|
//增加是否有选中多页的判断
|
|
|
//修复问题:全选页面后,ctrl取消第一页的选中时,其余操作会因为ListSelectedIndex为-1被禁用的问题
|
|
|
- if (ListSelectedIndex < 0 && !IsMultiSelected)
|
|
|
+
|
|
|
+ if (IsMouseRightButtonDown)
|
|
|
{
|
|
|
- return false;
|
|
|
+ if (RightSelectedIndex < 0 && !IsMultiSelected)
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- return true;
|
|
|
+ if (ListSelectedIndex < 0 && !IsMultiSelected)
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
private bool CanReverseFileCommandExcute()
|
|
|
{
|
|
|
- if (ListSelectedIndex >= 0 && IsMultiSelected)
|
|
|
+ if (IsMouseRightButtonDown)
|
|
|
{
|
|
|
- return true;
|
|
|
+ if (RightSelectedIndex >= 0 && IsMultiSelected)
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- return false;
|
|
|
+ if (ListSelectedIndex >= 0 && IsMultiSelected)
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -1383,6 +1497,15 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
{
|
|
|
PageEditItems[i].ItemSize = newsize;
|
|
|
}
|
|
|
+
|
|
|
+ RefreshPageNum();
|
|
|
+ List<int> indexList = GetSelectedItemPageNumbers();
|
|
|
+ if (indexList.Count > 0)
|
|
|
+ {
|
|
|
+ //选中项集合 也需要 同步更新
|
|
|
+ selectedPageList.Clear();
|
|
|
+ selectedPageList.AddRange(indexList);
|
|
|
+ }
|
|
|
if (selectedPageList.Count > 0)
|
|
|
{
|
|
|
//缩略图模式 调整item大小的时候,更新选中项
|
|
@@ -1696,8 +1819,23 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
ShowToast();
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
- DoRemoveSelectedPages();
|
|
|
+ List<int> pageitems = new List<int>();
|
|
|
+ if (IsMouseRightButtonDown)
|
|
|
+ {
|
|
|
+ if (IsMultiSelected)
|
|
|
+ {
|
|
|
+ pageitems.AddRange(RightSelectedIndexs);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ pageitems.Add(RightSelectedIndex);
|
|
|
+ }
|
|
|
+ DoRemoveSelectedPages(pageitems);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ DoRemoveSelectedPages();
|
|
|
+ }
|
|
|
ReloadAfterOption(true, true, Tuple.Create(0, PDFViewer.Document.PageCount));
|
|
|
}
|
|
|
|
|
@@ -1713,6 +1851,15 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
|
|
|
if (viewContentViewModel.CheckPermissionBeforeOption())
|
|
|
{
|
|
|
+ int pageIndex = 0;
|
|
|
+ if (IsMouseRightButtonDown)
|
|
|
+ {
|
|
|
+ pageIndex = RightSelectedIndex;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ pageIndex = ListSelectedIndex;
|
|
|
+ }
|
|
|
CacheFilePath.Instance.CopyDoc?.Release();
|
|
|
CacheFilePath.Instance.CopyDoc = CPDFDocument.CreateDocument();
|
|
|
List<int> pages = new List<int>();
|
|
@@ -1730,7 +1877,7 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
else
|
|
|
{
|
|
|
//没有多选时,根据listbox的选中索引获取选中页面
|
|
|
- pages.Add(ListSelectedIndex + 1);
|
|
|
+ pages.Add(pageIndex + 1);
|
|
|
}
|
|
|
|
|
|
bool result = CacheFilePath.Instance.CopyDoc.ImportPages(PDFViewer.Document, String.Join(",", pages));
|
|
@@ -1760,16 +1907,24 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
{
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
+ int pageIndex = 0;
|
|
|
+ if (IsMouseRightButtonDown)
|
|
|
+ {
|
|
|
+ pageIndex = RightSelectedIndex;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ pageIndex = ListSelectedIndex;
|
|
|
+ }
|
|
|
IsLoading = Visibility.Visible;
|
|
|
- int insertindex = maxSelectedIndex > listSelecedIndex ? maxSelectedIndex : listSelecedIndex;
|
|
|
+ int insertindex = maxSelectedIndex > pageIndex ? maxSelectedIndex : pageIndex;
|
|
|
insertindex++;
|
|
|
|
|
|
if (Index >= 0)
|
|
|
{
|
|
|
insertindex = Index;
|
|
|
}
|
|
|
- else if (listSelecedIndex == -1)
|
|
|
+ else if (pageIndex == -1)
|
|
|
{
|
|
|
insertindex = PageEditItems.Count;
|
|
|
}
|
|
@@ -2116,7 +2271,21 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
pagenums.Add(PageEditItems[i].PageNumber);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ if (IsMouseRightButtonDown)
|
|
|
+ {
|
|
|
+ if (IsMultiSelected)
|
|
|
+ {
|
|
|
+ for (int i = 0; i < RightSelectedIndexs.Count; i++)
|
|
|
+ {
|
|
|
+ RightSelectedIndexs[i] = RightSelectedIndexs[i] + 1;
|
|
|
+ }
|
|
|
+ pagenums = RightSelectedIndexs;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ pagenums = new List<int>() { RightSelectedIndex + 1 };
|
|
|
+ }
|
|
|
+ }
|
|
|
if (isEveryPageToFile)
|
|
|
{
|
|
|
//每页生成的单独的文件
|