+ 编辑器允许保存和读取“自动生成书签”功能中的筛选条件

This commit is contained in:
WMJ
2022-03-23 10:38:33 +08:00
parent d1524c1417
commit aa03fe4647
2 changed files with 36 additions and 34 deletions
+34 -34
View File
@@ -54,26 +54,40 @@ namespace PDFPatcher.Functions
_BookmarkConditionBox.IsSimpleDragSource = true;
_BookmarkConditionBox.IsSimpleDropSink = true;
_BookmarkConditionBox.CellClick += (s, args) => {
var ts = args.Model as EditModel.AutoBookmarkStyle;
if (args.ColumnIndex == _ColorColumn.Index) {
var b = ((EditModel.AutoBookmarkStyle)args.Model).Bookmark;
this.ShowCommonDialog<ColorDialog>(
f => f.Color = ts.Bookmark.ForeColor == Color.Transparent ? Color.White : ts.Bookmark.ForeColor,
f => f.Color = b.ForeColor == Color.Transparent ? Color.White : b.ForeColor,
f => {
ts.Bookmark.ForeColor = f.Color == Color.White ? Color.Transparent : f.Color;
b.ForeColor = f.Color == Color.White ? Color.Transparent : f.Color;
_BookmarkConditionBox.RefreshItem(args.Item);
}
);
}
};
_BookmarkConditionBox.RowFormatter = (r) => {
var ts = r.RowObject as EditModel.AutoBookmarkStyle;
var b = ((EditModel.AutoBookmarkStyle)r.RowObject).Bookmark;
r.UseItemStyleForSubItems = false;
r.SubItems[_ColorColumn.Index].ForeColor = ts.Bookmark.ForeColor == Color.Transparent ? _BookmarkConditionBox.ForeColor : ts.Bookmark.ForeColor;
r.SubItems[_ColorColumn.Index].ForeColor = b.ForeColor == Color.Transparent ? _BookmarkConditionBox.ForeColor : b.ForeColor;
};
_LoadListButton.Click += _LoadListButton_Click;
_SaveListButton.Click += _SaveListButton_Click;
}
internal void SetValues(List<EditModel.AutoBookmarkStyle> list) {
_BookmarkConditionBox.Objects = _list = list;
}
void _RemoveButton_Click(object sender, EventArgs e) {
_BookmarkConditionBox.SelectedObjects.ForEach<EditModel.AutoBookmarkStyle>(i => _list.Remove(i));
_BookmarkConditionBox.RemoveObjects(_BookmarkConditionBox.SelectedObjects);
}
void _AutoBookmarkButton_Click(object sender, EventArgs e) {
SyncList();
_controller.AutoBookmark(_list, _MergeAdjacentTitleBox.Checked);
}
void _SaveListButton_Click(object sender, EventArgs e) {
this.ShowCommonDialog<SaveFileDialog>(d => {
d.Title = "请输入需要保存自动书签格式列表的文件名";
@@ -92,35 +106,6 @@ namespace PDFPatcher.Functions
});
}
void _LoadListButton_Click(object sender, EventArgs e) {
this.ShowCommonDialog<OpenFileDialog>(d => {
d.Title = "请选择需要打开的自动书签格式列表";
d.Filter = Constants.FileExtensions.XmlFilter;
d.DefaultExt = Constants.FileExtensions.Xml;
}, d => {
try {
SetValues(Deserialize(d.FileName));
}
catch (Exception ex) {
this.ErrorBox("加载自动书签格式列表时出现错误", ex);
}
});
}
internal void SetValues(List<EditModel.AutoBookmarkStyle> list) {
_BookmarkConditionBox.Objects = _list = list;
}
void _RemoveButton_Click(object sender, EventArgs e) {
_BookmarkConditionBox.SelectedObjects.ForEach<EditModel.AutoBookmarkStyle>(i => _list.Remove(i));
_BookmarkConditionBox.RemoveObjects(_BookmarkConditionBox.SelectedObjects);
}
void _AutoBookmarkButton_Click(object sender, EventArgs e) {
SyncList();
_controller.AutoBookmark(_list, _MergeAdjacentTitleBox.Checked);
}
static void Serialize(List<EditModel.AutoBookmarkStyle> list, System.IO.StreamWriter writer) {
using (var x = System.Xml.XmlWriter.Create(writer)) {
x.WriteStartDocument();
@@ -138,6 +123,21 @@ namespace PDFPatcher.Functions
}
}
void _LoadListButton_Click(object sender, EventArgs e) {
this.ShowCommonDialog<OpenFileDialog>(d => {
d.Title = "请选择需要打开的自动书签格式列表";
d.Filter = Constants.FileExtensions.XmlFilter;
d.DefaultExt = Constants.FileExtensions.Xml;
}, d => {
try {
SetValues(Deserialize(d.FileName));
}
catch (Exception ex) {
this.ErrorBox("加载自动书签格式列表时出现错误", ex);
}
});
}
static List<EditModel.AutoBookmarkStyle> Deserialize(FilePath path) {
var doc = new System.Xml.XmlDocument();
doc.Load(path);
+2
View File
@@ -6,7 +6,9 @@
替换字体功能增加简单修改文本简繁体、全角半角转换的功能(用于处理一些旧的 PDF 文档)。
增加了合并文件功能的合并冗余数据选项(之前版本中,该选项的行为是默认行为,可能导致无法合并源文档的某些数据)。
合并文件功能支持在添加文件后再排序文件列表。
合并文件功能增加输出目标文件由多少个文件共多少页合并而成。
增加在使用过程中不再提示打开文档权限的操作办法。
编辑器允许保存和读取“自动生成书签”功能中的筛选条件。
修改功能:
更新了 JBIG2 解码组件。
优化了 PDF 补丁丁的主程序代码。