diff --git a/.github/workflows/ci-linux.yml b/.github/workflows/ci-linux.yml
index a0554dd3..1b603567 100644
--- a/.github/workflows/ci-linux.yml
+++ b/.github/workflows/ci-linux.yml
@@ -10,7 +10,7 @@ on:
workflow_dispatch:
env:
- VNOTE_VER: 3.0.0-beta.8
+ VNOTE_VER: 3.0.0-beta.9
jobs:
build-linux:
diff --git a/.github/workflows/ci-macos.yml b/.github/workflows/ci-macos.yml
index 60e8d847..60764819 100644
--- a/.github/workflows/ci-macos.yml
+++ b/.github/workflows/ci-macos.yml
@@ -10,7 +10,7 @@ on:
workflow_dispatch:
env:
- VNOTE_VER: 3.0.0-beta.8
+ VNOTE_VER: 3.0.0-beta.9
jobs:
build-linux:
diff --git a/.github/workflows/ci-win.yml b/.github/workflows/ci-win.yml
index cea262de..30229f8f 100644
--- a/.github/workflows/ci-win.yml
+++ b/.github/workflows/ci-win.yml
@@ -10,7 +10,7 @@ on:
workflow_dispatch:
env:
- VNOTE_VER: 3.0.0-beta.8
+ VNOTE_VER: 3.0.0-beta.9
jobs:
build:
diff --git a/changes.md b/changes.md
index beca5ccc..4e89fe6b 100644
--- a/changes.md
+++ b/changes.md
@@ -1,4 +1,9 @@
# Changes
+## v3.0.0-beta.9
+* Fix crash when exporting external files
+* Support manual sorting folders and notes
+* Support showing external files in notebook
+
## v3.0.0-beta.8
* Note explorer supports different view orders
* Fix `Ctrl+V` paste in editor
diff --git a/src/core/notebookconfigmgr/vxnotebookconfigmgr.cpp b/src/core/notebookconfigmgr/vxnotebookconfigmgr.cpp
index 22b88707..e3a0eb99 100644
--- a/src/core/notebookconfigmgr/vxnotebookconfigmgr.cpp
+++ b/src/core/notebookconfigmgr/vxnotebookconfigmgr.cpp
@@ -804,7 +804,7 @@ QString VXNotebookConfigMgr::fetchNodeAttachmentFolder(const QString &p_nodePath
bool VXNotebookConfigMgr::isBuiltInFile(const Node *p_node, const QString &p_name) const
{
const auto name = p_name.toLower();
- if (name == c_nodeConfigName) {
+ if (name == c_nodeConfigName || name == "_vnote.json") {
return true;
}
return BundleNotebookConfigMgr::isBuiltInFile(p_node, p_name);
diff --git a/src/data/core/translations/vnote_zh_CN.qm b/src/data/core/translations/vnote_zh_CN.qm
index f742545d..89db9032 100644
Binary files a/src/data/core/translations/vnote_zh_CN.qm and b/src/data/core/translations/vnote_zh_CN.qm differ
diff --git a/src/data/core/translations/vnote_zh_CN.ts b/src/data/core/translations/vnote_zh_CN.ts
index 9ab93e9c..d3b7d3fa 100644
--- a/src/data/core/translations/vnote_zh_CN.ts
+++ b/src/data/core/translations/vnote_zh_CN.ts
@@ -487,8 +487,8 @@
-
-
+
+
Failed to create output folder %1.
无法创建输出文件夹 %1。
@@ -498,37 +498,37 @@
格式 %1 不支持导出为 Markdown。
-
+
Unknown target format %1.
未知的目标格式 %1。
-
+
File (%1) exported to (%2)
文件 (%1) 已导出为 (%2)
-
+
Failed to export file (%1)
无法导出文件 (%1)
-
+
notebook_%1
笔记本_%1
-
+
Format %1 is not supported to export as HTML.
格式 %1 不支持导出为 HTML。
-
+
Asked to stop. Aborting.
用户取消。 正在终止。
-
+
Format %1 is not supported to export as PDF.
格式 %1 不支持导出为 PDF。
@@ -906,6 +906,11 @@
Once imported, the legacy notebook could no longer be recognized by legacy VNote!
一旦导入,该遗留笔记本将无法被旧版本的VNote所识别!
+
+
+ This operation is irreversible. Please make sure the new VNote already meets all your needs before continue.
+ 该操作是不可逆的。继续之前,请确保新的 VNote 满足个人所有的需求。
+
Welcome to VNoteX and the new VNote!
@@ -1586,23 +1591,23 @@
Markdown 查看器
-
+
Clear Obsolete Images
清空无用图片
-
+
These images seems not in use anymore. Please confirm the deletion of them.
这些图片似乎已经不再使用。请确认并删除。
-
+
Deleted images could be found in the recycle bin of notebook if it is from a bundle notebook.
如果这是一个自包含笔记本,已删除的图片可以在笔记本回收站中找回。
-
-
+
+
Replace is not supported in read mode
阅读模式不支持替换
@@ -1808,7 +1813,7 @@
创建时间:
-
+
Modified time:
修改时间:
@@ -1857,91 +1862,106 @@
从全部笔记本中选择一个作为当前笔记本。<br/>移动鼠标到某个项目上查看详情。
-
+
Notebook
笔记本
-
+
This title bar contains buttons and menu to manage notebooks and notes.
该标题栏包含管理笔记本和笔记的按钮和菜单。
-
+
View
查看
-
+
Toggle Recycle Bin Node
显示/隐藏回收站节点
-
+
&Manage Notebooks
管理笔记本(&M)
-
-
+
+ External Files
+ 外部文件
+
+
+
+ Show External Files
+ 显示外部文件
+
+
+
+ Import External Files When Activated
+ 激活时自动导入外部文件
+
+
+
+
Could not create folder within Recycle Bin.
无法在回收站内创建文件夹。
-
-
+
+
Could not create note within Recycle Bin.
无法在回收站内创建笔记。
-
+
Please first create a notebook to hold your data.
请先创建一个笔记本来保存数据。
-
+
Select Files To Import
选择文件导入
-
+
Failed to add file (%1) as node (%2).
无法添加文件 (%1) 为节点 (%2)。
-
+
View By Configuration
按配置查看
-
+
View By Name
按名字查看
-
+
View By Name (Reversed)
按名字倒序查看
-
+
View By Created Time
按创建时间查看
-
+
View By Created Time (Reversed)
按创建时间倒序查看
-
+
View By Modified Time
按修改时间查看
-
+
View By Modified Time (Reversed)
按修改时间倒序查看
@@ -2080,187 +2100,267 @@
vnotex::NotebookNodeExplorer
-
+
Failed to load nodes of notebook (%1) (%2).
无法加载笔记本 (%1) 节点 (%2)。
-
+
Recycle bin of this notebook. Deleted files could be found here. It is organized in folders named by date. Nodes could be moved to other folders by Cut and Paste.
笔记本回收站。被删除的文件可以在此找回。按以日期命名的文件夹进行组织。节点可以通过剪切粘贴移动到其他文件夹。
-
+
Recycle Bin
回收站
-
+
+ [Invalid] %1
+ [无效] %1
+
+
+
+ [External] %1
+ [外部] %1
+
+
+
New N&ote
新建笔记(&O)
-
+
New &Folder
新建文件夹(&F)
-
+
&Properties
属性(&P)
-
+
Open &Location
打开路径(&L)
-
+
Cop&y Path
复制路径(&Y)
-
+
Copied path: %1
已复制路径: %1
-
+
&Copy
复制(&C)
-
+
C&ut
剪切(&U)
-
+
&Paste
粘贴(&P)
-
+
&Empty
清空(&E)
-
+
Empty the recycle bin of this notebook?
清空该笔记本的回收站?
-
+
All files in recycle bin will be deleted permanently.
回收站中的全部文件都会被永久删除。
-
+
Location of recycle bin: %1
回收站路径: %1
-
+
Failed to empty recycle bin (%1) (%2).
无法清空回收站 (%1) (%2)。
-
+
+ &Sort
+ 排序(&S)
+
+
+
+ Re&load
+ 重新加载(&L)
+
+
+
+ &Import To Index
+ 导入到索引(&I)
+
+
+
+ &Open
+ 打开(&O)
+
+
+
Failed to copy source (%1) to destination (%2) (%3).
无法复制源 (%1) 至 目标 (%2) (%3)。
+
+
+ Sort Folders
+ 排序文件夹
+
+
+
+ Sort Notes
+ 排序笔记
+
+
+
+ Sort nodes under %1 (%2) in the configuration file.
+ 在配置文件中对%1 (%2) 下的节点进行排序。
+
+
+
+ notebook
+ 笔记本
+
+
+
+ folder
+ 文件夹
+
+
+
+ Name
+ 名字
+
+
+
+ Created Time
+ 创建时间
+
+
+
+ Modified Time
+ 修改时间
+
+
+
+ Invalid node (%1).
+ 无效的节点 (%1)。
+
+
+
+ Please check if the node exists on the disk.
+ 请检查该节点在磁盘上是否存在。
+
Failed to delete/remove item %1 (%2) (%3).
无法删除或移除项目 %1 (%2) (%3)。
-
+
&Delete
删除(&D)
-
+
&Delete From Recycle Bin
从回收站中删除(&D)
-
+
&Remove From Index
从索引中移除(&R)
-
+
Copied %n item(s)
已复制 %n 项
-
+
Invalid clipboard data to paste.
无效的剪切板数据用于粘贴。
-
+
Destination is detected in sources (%1). Operation is cancelled.
目标包含在源 (%1) 中。操作取消。
-
+
Pasted %n item(s)
已粘贴 %n 项
-
+
Delete these folders and notes permanently?
永久删除这些文件夹和笔记?
-
+
Files will be deleted permanently and could not be found even in operating system's recycle bin.
文件将会被永久删除,即使在操作系统的回收站中也无法找回。
-
+
Delete these folders and notes?
删除这些文件夹和笔记?
-
+
Deleted files could be found in the recycle bin of notebook.
被删除的文件可以在笔记本回收站中找回。
-
+
Confirm Deletion
确认删除
-
+
Failed to delete/remove item (%1) (%2) (%3).
无法删除或移除项目 (%1) (%2) (%3)。
-
+
Deleted/Removed %n item(s)
删除或移除 %n 项
-
+
Confirm Removal
确认移除
-
+
Remove these folders and notes from index?
从索引中移除这些文件夹和笔记?
-
+
Files are not touched but just removed from notebook index.
文件不会被改动,仅仅是从笔记本索引中移除。
@@ -2336,6 +2436,29 @@ Description: %3
输入以开始查找
+
+ vnotex::SortDialog
+
+
+ &Top
+ 置顶(&T)
+
+
+
+ &Up
+ 上移(&U)
+
+
+
+ &Down
+ 下移(&D)
+
+
+
+ &Bottom
+ 置底(&B)
+
+
vnotex::TableInsertDialog
diff --git a/src/data/core/vnotex.json b/src/data/core/vnotex.json
index 7ced0529..cbca4456 100644
--- a/src/data/core/vnotex.json
+++ b/src/data/core/vnotex.json
@@ -3,7 +3,7 @@
"metadata" : {
"//comment": "When releasing new version, please go through the following configs to check if override is needed.",
"//Comment": "markdown_editor#override_viewer_resource",
- "version" : "3.0.0-beta.8"
+ "version" : "3.0.0-beta.9"
},
"core" : {
"theme" : "pure",
diff --git a/src/widgets/dialogs/importlegacynotebookdialog.cpp b/src/widgets/dialogs/importlegacynotebookdialog.cpp
index 6bccf91d..1e6d5f4d 100644
--- a/src/widgets/dialogs/importlegacynotebookdialog.cpp
+++ b/src/widgets/dialogs/importlegacynotebookdialog.cpp
@@ -35,7 +35,7 @@ void ImportLegacyNotebookDialog::acceptedButtonClicked()
// Warn user about the transformation.
int ret = MessageBoxHelper::questionOkCancel(MessageBoxHelper::Warning,
tr("Once imported, the legacy notebook could no longer be recognized by legacy VNote!"),
- QString(),
+ tr("This operation is irreversible. Please make sure the new VNote already meets all your needs before continue."),
tr("Welcome to VNoteX and the new VNote!"),
this);
if (ret == QMessageBox::Ok && importLegacyNotebook()) {