release v3.0.0-beta.9 (#1719)

This commit is contained in:
Le Tan 2021-03-14 10:07:07 +08:00 committed by GitHub
parent 9895207dd4
commit 24131ffa77
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 203 additions and 75 deletions

View File

@ -10,7 +10,7 @@ on:
workflow_dispatch: workflow_dispatch:
env: env:
VNOTE_VER: 3.0.0-beta.8 VNOTE_VER: 3.0.0-beta.9
jobs: jobs:
build-linux: build-linux:

View File

@ -10,7 +10,7 @@ on:
workflow_dispatch: workflow_dispatch:
env: env:
VNOTE_VER: 3.0.0-beta.8 VNOTE_VER: 3.0.0-beta.9
jobs: jobs:
build-linux: build-linux:

View File

@ -10,7 +10,7 @@ on:
workflow_dispatch: workflow_dispatch:
env: env:
VNOTE_VER: 3.0.0-beta.8 VNOTE_VER: 3.0.0-beta.9
jobs: jobs:
build: build:

View File

@ -1,4 +1,9 @@
# Changes # 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 ## v3.0.0-beta.8
* Note explorer supports different view orders * Note explorer supports different view orders
* Fix `Ctrl+V` paste in editor * Fix `Ctrl+V` paste in editor

View File

@ -804,7 +804,7 @@ QString VXNotebookConfigMgr::fetchNodeAttachmentFolder(const QString &p_nodePath
bool VXNotebookConfigMgr::isBuiltInFile(const Node *p_node, const QString &p_name) const bool VXNotebookConfigMgr::isBuiltInFile(const Node *p_node, const QString &p_name) const
{ {
const auto name = p_name.toLower(); const auto name = p_name.toLower();
if (name == c_nodeConfigName) { if (name == c_nodeConfigName || name == "_vnote.json") {
return true; return true;
} }
return BundleNotebookConfigMgr::isBuiltInFile(p_node, p_name); return BundleNotebookConfigMgr::isBuiltInFile(p_node, p_name);

View File

@ -487,8 +487,8 @@
<message> <message>
<location filename="../../../export/exporter.cpp" line="34"/> <location filename="../../../export/exporter.cpp" line="34"/>
<location filename="../../../export/exporter.cpp" line="58"/> <location filename="../../../export/exporter.cpp" line="58"/>
<location filename="../../../export/exporter.cpp" line="114"/> <location filename="../../../export/exporter.cpp" line="117"/>
<location filename="../../../export/exporter.cpp" line="185"/> <location filename="../../../export/exporter.cpp" line="188"/>
<source>Failed to create output folder %1.</source> <source>Failed to create output folder %1.</source>
<translation> %1</translation> <translation> %1</translation>
</message> </message>
@ -498,37 +498,37 @@
<translation> %1 Markdown</translation> <translation> %1 Markdown</translation>
</message> </message>
<message> <message>
<location filename="../../../export/exporter.cpp" line="161"/> <location filename="../../../export/exporter.cpp" line="164"/>
<source>Unknown target format %1.</source> <source>Unknown target format %1.</source>
<translation> %1</translation> <translation> %1</translation>
</message> </message>
<message> <message>
<location filename="../../../export/exporter.cpp" line="166"/> <location filename="../../../export/exporter.cpp" line="169"/>
<source>File (%1) exported to (%2)</source> <source>File (%1) exported to (%2)</source>
<translation> (%1) (%2)</translation> <translation> (%1) (%2)</translation>
</message> </message>
<message> <message>
<location filename="../../../export/exporter.cpp" line="168"/> <location filename="../../../export/exporter.cpp" line="171"/>
<source>Failed to export file (%1)</source> <source>Failed to export file (%1)</source>
<translation> (%1)</translation> <translation> (%1)</translation>
</message> </message>
<message> <message>
<location filename="../../../export/exporter.cpp" line="182"/> <location filename="../../../export/exporter.cpp" line="185"/>
<source>notebook_%1</source> <source>notebook_%1</source>
<translation>_%1</translation> <translation>_%1</translation>
</message> </message>
<message> <message>
<location filename="../../../export/exporter.cpp" line="222"/> <location filename="../../../export/exporter.cpp" line="225"/>
<source>Format %1 is not supported to export as HTML.</source> <source>Format %1 is not supported to export as HTML.</source>
<translation> %1 HTML</translation> <translation> %1 HTML</translation>
</message> </message>
<message> <message>
<location filename="../../../export/exporter.cpp" line="282"/> <location filename="../../../export/exporter.cpp" line="285"/>
<source>Asked to stop. Aborting.</source> <source>Asked to stop. Aborting.</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../../../export/exporter.cpp" line="293"/> <location filename="../../../export/exporter.cpp" line="296"/>
<source>Format %1 is not supported to export as PDF.</source> <source>Format %1 is not supported to export as PDF.</source>
<translation> %1 PDF</translation> <translation> %1 PDF</translation>
</message> </message>
@ -906,6 +906,11 @@
<source>Once imported, the legacy notebook could no longer be recognized by legacy VNote!</source> <source>Once imported, the legacy notebook could no longer be recognized by legacy VNote!</source>
<translation>VNote所识别</translation> <translation>VNote所识别</translation>
</message> </message>
<message>
<location filename="../../../widgets/dialogs/importlegacynotebookdialog.cpp" line="38"/>
<source>This operation is irreversible. Please make sure the new VNote already meets all your needs before continue.</source>
<translation> VNote </translation>
</message>
<message> <message>
<location filename="../../../widgets/dialogs/importlegacynotebookdialog.cpp" line="39"/> <location filename="../../../widgets/dialogs/importlegacynotebookdialog.cpp" line="39"/>
<source>Welcome to VNoteX and the new VNote!</source> <source>Welcome to VNoteX and the new VNote!</source>
@ -1586,23 +1591,23 @@
<translation>Markdown </translation> <translation>Markdown </translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/markdownviewwindow.cpp" line="727"/> <location filename="../../../widgets/markdownviewwindow.cpp" line="729"/>
<source>Clear Obsolete Images</source> <source>Clear Obsolete Images</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/markdownviewwindow.cpp" line="728"/> <location filename="../../../widgets/markdownviewwindow.cpp" line="730"/>
<source>These images seems not in use anymore. Please confirm the deletion of them.</source> <source>These images seems not in use anymore. Please confirm the deletion of them.</source>
<translation>使</translation> <translation>使</translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/markdownviewwindow.cpp" line="729"/> <location filename="../../../widgets/markdownviewwindow.cpp" line="731"/>
<source>Deleted images could be found in the recycle bin of notebook if it is from a bundle notebook.</source> <source>Deleted images could be found in the recycle bin of notebook if it is from a bundle notebook.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/markdownviewwindow.cpp" line="861"/> <location filename="../../../widgets/markdownviewwindow.cpp" line="863"/>
<location filename="../../../widgets/markdownviewwindow.cpp" line="870"/> <location filename="../../../widgets/markdownviewwindow.cpp" line="872"/>
<source>Replace is not supported in read mode</source> <source>Replace is not supported in read mode</source>
<translation></translation> <translation></translation>
</message> </message>
@ -1808,7 +1813,7 @@
<translation>:</translation> <translation>:</translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/dialogs/nodeinfowidget.cpp" line="65"/> <location filename="../../../widgets/dialogs/nodeinfowidget.cpp" line="63"/>
<source>Modified time:</source> <source>Modified time:</source>
<translation>:</translation> <translation>:</translation>
</message> </message>
@ -1857,91 +1862,106 @@
<translation>&lt;br/&gt;</translation> <translation>&lt;br/&gt;</translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebookexplorer.cpp" line="81"/> <location filename="../../../widgets/notebookexplorer.cpp" line="88"/>
<source>Notebook</source> <source>Notebook</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebookexplorer.cpp" line="84"/> <location filename="../../../widgets/notebookexplorer.cpp" line="91"/>
<source>This title bar contains buttons and menu to manage notebooks and notes.</source> <source>This title bar contains buttons and menu to manage notebooks and notes.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebookexplorer.cpp" line="88"/> <location filename="../../../widgets/notebookexplorer.cpp" line="95"/>
<source>View</source> <source>View</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebookexplorer.cpp" line="96"/> <location filename="../../../widgets/notebookexplorer.cpp" line="103"/>
<source>Toggle Recycle Bin Node</source> <source>Toggle Recycle Bin Node</source>
<translation>/</translation> <translation>/</translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebookexplorer.cpp" line="108"/> <location filename="../../../widgets/notebookexplorer.cpp" line="115"/>
<source>&amp;Manage Notebooks</source> <source>&amp;Manage Notebooks</source>
<translation>(&amp;M)</translation> <translation>(&amp;M)</translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebookexplorer.cpp" line="168"/> <location filename="../../../widgets/notebookexplorer.cpp" line="127"/>
<location filename="../../../widgets/notebookexplorer.cpp" line="298"/> <source>External Files</source>
<translation></translation>
</message>
<message>
<location filename="../../../widgets/notebookexplorer.cpp" line="130"/>
<source>Show External Files</source>
<translation></translation>
</message>
<message>
<location filename="../../../widgets/notebookexplorer.cpp" line="141"/>
<source>Import External Files When Activated</source>
<translation></translation>
</message>
<message>
<location filename="../../../widgets/notebookexplorer.cpp" line="202"/>
<location filename="../../../widgets/notebookexplorer.cpp" line="318"/>
<source>Could not create folder within Recycle Bin.</source> <source>Could not create folder within Recycle Bin.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebookexplorer.cpp" line="190"/> <location filename="../../../widgets/notebookexplorer.cpp" line="224"/>
<location filename="../../../widgets/notebookexplorer.cpp" line="257"/> <location filename="../../../widgets/notebookexplorer.cpp" line="277"/>
<source>Could not create note within Recycle Bin.</source> <source>Could not create note within Recycle Bin.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebookexplorer.cpp" line="230"/> <location filename="../../../widgets/notebookexplorer.cpp" line="250"/>
<source>Please first create a notebook to hold your data.</source> <source>Please first create a notebook to hold your data.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebookexplorer.cpp" line="264"/> <location filename="../../../widgets/notebookexplorer.cpp" line="284"/>
<source>Select Files To Import</source> <source>Select Files To Import</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebookexplorer.cpp" line="275"/> <location filename="../../../widgets/notebookexplorer.cpp" line="295"/>
<source>Failed to add file (%1) as node (%2). <source>Failed to add file (%1) as node (%2).
</source> </source>
<translation> (%1) (%2) <translation> (%1) (%2)
</translation> </translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebookexplorer.cpp" line="339"/> <location filename="../../../widgets/notebookexplorer.cpp" line="359"/>
<source>View By Configuration</source> <source>View By Configuration</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebookexplorer.cpp" line="345"/> <location filename="../../../widgets/notebookexplorer.cpp" line="365"/>
<source>View By Name</source> <source>View By Name</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebookexplorer.cpp" line="350"/> <location filename="../../../widgets/notebookexplorer.cpp" line="370"/>
<source>View By Name (Reversed)</source> <source>View By Name (Reversed)</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebookexplorer.cpp" line="355"/> <location filename="../../../widgets/notebookexplorer.cpp" line="375"/>
<source>View By Created Time</source> <source>View By Created Time</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebookexplorer.cpp" line="360"/> <location filename="../../../widgets/notebookexplorer.cpp" line="380"/>
<source>View By Created Time (Reversed)</source> <source>View By Created Time (Reversed)</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebookexplorer.cpp" line="365"/> <location filename="../../../widgets/notebookexplorer.cpp" line="385"/>
<source>View By Modified Time</source> <source>View By Modified Time</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebookexplorer.cpp" line="370"/> <location filename="../../../widgets/notebookexplorer.cpp" line="390"/>
<source>View By Modified Time (Reversed)</source> <source>View By Modified Time (Reversed)</source>
<translation></translation> <translation></translation>
</message> </message>
@ -2080,187 +2100,267 @@
<context> <context>
<name>vnotex::NotebookNodeExplorer</name> <name>vnotex::NotebookNodeExplorer</name>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="309"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="345"/>
<source>Failed to load nodes of notebook (%1) (%2).</source> <source>Failed to load nodes of notebook (%1) (%2).</source>
<translation> (%1) (%2)</translation> <translation> (%1) (%2)</translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="397"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="463"/>
<source>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.</source> <source>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.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="418"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="484"/>
<source>Recycle Bin</source> <source>Recycle Bin</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="778"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="497"/>
<source>[Invalid] %1</source>
<translation>[] %1</translation>
</message>
<message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="505"/>
<source>[External] %1</source>
<translation>[] %1</translation>
</message>
<message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="902"/>
<source>New N&amp;ote</source> <source>New N&amp;ote</source>
<translation>(&amp;O)</translation> <translation>(&amp;O)</translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="788"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="912"/>
<source>New &amp;Folder</source> <source>New &amp;Folder</source>
<translation>(&amp;F)</translation> <translation>(&amp;F)</translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="798"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="922"/>
<source>&amp;Properties</source> <source>&amp;Properties</source>
<translation>(&amp;P)</translation> <translation>(&amp;P)</translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="823"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="947"/>
<source>Open &amp;Location</source> <source>Open &amp;Location</source>
<translation>(&amp;L)</translation> <translation>(&amp;L)</translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="844"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="985"/>
<source>Cop&amp;y Path</source> <source>Cop&amp;y Path</source>
<translation>(&amp;Y)</translation> <translation>(&amp;Y)</translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="851"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1005"/>
<source>Copied path: %1</source> <source>Copied path: %1</source>
<translation>: %1</translation> <translation>: %1</translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="857"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1011"/>
<source>&amp;Copy</source> <source>&amp;Copy</source>
<translation>(&amp;C)</translation> <translation>(&amp;C)</translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="865"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1019"/>
<source>C&amp;ut</source> <source>C&amp;ut</source>
<translation>(&amp;U)</translation> <translation>(&amp;U)</translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="873"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1027"/>
<source>&amp;Paste</source> <source>&amp;Paste</source>
<translation>(&amp;P)</translation> <translation>(&amp;P)</translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="881"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1035"/>
<source>&amp;Empty</source> <source>&amp;Empty</source>
<translation>(&amp;E)</translation> <translation>(&amp;E)</translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="887"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1041"/>
<source>Empty the recycle bin of this notebook?</source> <source>Empty the recycle bin of this notebook?</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="888"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1042"/>
<source>All files in recycle bin will be deleted permanently.</source> <source>All files in recycle bin will be deleted permanently.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="889"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1043"/>
<source>Location of recycle bin: %1</source> <source>Location of recycle bin: %1</source>
<translation>: %1</translation> <translation>: %1</translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="898"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1052"/>
<source>Failed to empty recycle bin (%1) (%2).</source> <source>Failed to empty recycle bin (%1) (%2).</source>
<translation> (%1) (%2)</translation> <translation> (%1) (%2)</translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1089"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1084"/>
<source>&amp;Sort</source>
<translation>(&amp;S)</translation>
</message>
<message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1090"/>
<source>Re&amp;load</source>
<translation>(&amp;L)</translation>
</message>
<message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1103"/>
<source>&amp;Import To Index</source>
<translation>&amp;I</translation>
</message>
<message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1112"/>
<source>&amp;Open</source>
<translation>(&amp;O)</translation>
</message>
<message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1285"/>
<source>Failed to copy source (%1) to destination (%2) (%3).</source> <source>Failed to copy source (%1) to destination (%2) (%3).</source>
<translation> (%1) (%2) (%3)</translation> <translation> (%1) (%2) (%3)</translation>
</message> </message>
<message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1647"/>
<source>Sort Folders</source>
<translation></translation>
</message>
<message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1647"/>
<source>Sort Notes</source>
<translation></translation>
</message>
<message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1648"/>
<source>Sort nodes under %1 (%2) in the configuration file.</source>
<translation>%1 (%2) </translation>
</message>
<message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1649"/>
<source>notebook</source>
<translation></translation>
</message>
<message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1649"/>
<source>folder</source>
<translation></translation>
</message>
<message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1660"/>
<source>Name</source>
<translation></translation>
</message>
<message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1660"/>
<source>Created Time</source>
<translation></translation>
</message>
<message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1660"/>
<source>Modified Time</source>
<translation></translation>
</message>
<message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1790"/>
<source>Invalid node (%1).</source>
<translation> (%1)</translation>
</message>
<message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1791"/>
<source>Please check if the node exists on the disk.</source>
<translation></translation>
</message>
<message> <message>
<source>Failed to delete/remove item %1 (%2) (%3).</source> <source>Failed to delete/remove item %1 (%2) (%3).</source>
<translation type="vanished"> %1 (%2) (%3)</translation> <translation type="vanished"> %1 (%2) (%3)</translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="908"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1061"/>
<source>&amp;Delete</source> <source>&amp;Delete</source>
<translation>(&amp;D)</translation> <translation>(&amp;D)</translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="916"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1070"/>
<source>&amp;Delete From Recycle Bin</source> <source>&amp;Delete From Recycle Bin</source>
<translation>(&amp;D)</translation> <translation>(&amp;D)</translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="924"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1078"/>
<source>&amp;Remove From Index</source> <source>&amp;Remove From Index</source>
<translation>(&amp;R)</translation> <translation>(&amp;R)</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="956"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1146"/>
<source>Copied %n item(s)</source> <source>Copied %n item(s)</source>
<translation> <translation>
<numerusform> %n </numerusform> <numerusform> %n </numerusform>
</translation> </translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1043"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1237"/>
<source>Invalid clipboard data to paste.</source> <source>Invalid clipboard data to paste.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1058"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1252"/>
<source>Destination is detected in sources (%1). Operation is cancelled.</source> <source>Destination is detected in sources (%1). Operation is cancelled.</source>
<translation> (%1) </translation> <translation> (%1) </translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1114"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1310"/>
<source>Pasted %n item(s)</source> <source>Pasted %n item(s)</source>
<translation> <translation>
<numerusform> %n </numerusform> <numerusform> %n </numerusform>
</translation> </translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1143"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1339"/>
<source>Delete these folders and notes permanently?</source> <source>Delete these folders and notes permanently?</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1144"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1340"/>
<source>Files will be deleted permanently and could not be found even in operating system&apos;s recycle bin.</source> <source>Files will be deleted permanently and could not be found even in operating system&apos;s recycle bin.</source>
<translation>使</translation> <translation>使</translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1147"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1343"/>
<source>Delete these folders and notes?</source> <source>Delete these folders and notes?</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1148"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1344"/>
<source>Deleted files could be found in the recycle bin of notebook.</source> <source>Deleted files could be found in the recycle bin of notebook.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1151"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1347"/>
<source>Confirm Deletion</source> <source>Confirm Deletion</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1224"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1420"/>
<source>Failed to delete/remove item (%1) (%2) (%3).</source> <source>Failed to delete/remove item (%1) (%2) (%3).</source>
<translation> (%1) (%2) (%3)</translation> <translation> (%1) (%2) (%3)</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1240"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1436"/>
<source>Deleted/Removed %n item(s)</source> <source>Deleted/Removed %n item(s)</source>
<translation> <translation>
<numerusform> %n </numerusform> <numerusform> %n </numerusform>
</translation> </translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1245"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1441"/>
<source>Confirm Removal</source> <source>Confirm Removal</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1246"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1442"/>
<source>Remove these folders and notes from index?</source> <source>Remove these folders and notes from index?</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../../widgets/notebooknodeexplorer.cpp" line="1247"/> <location filename="../../../widgets/notebooknodeexplorer.cpp" line="1443"/>
<source>Files are not touched but just removed from notebook index.</source> <source>Files are not touched but just removed from notebook index.</source>
<translation></translation> <translation></translation>
</message> </message>
@ -2336,6 +2436,29 @@ Description: %3</source>
<translation type="vanished"></translation> <translation type="vanished"></translation>
</message> </message>
</context> </context>
<context>
<name>vnotex::SortDialog</name>
<message>
<location filename="../../../widgets/dialogs/sortdialog.cpp" line="66"/>
<source>&amp;Top</source>
<translation>(&amp;T)</translation>
</message>
<message>
<location filename="../../../widgets/dialogs/sortdialog.cpp" line="73"/>
<source>&amp;Up</source>
<translation>(&amp;U)</translation>
</message>
<message>
<location filename="../../../widgets/dialogs/sortdialog.cpp" line="80"/>
<source>&amp;Down</source>
<translation>(&amp;D)</translation>
</message>
<message>
<location filename="../../../widgets/dialogs/sortdialog.cpp" line="87"/>
<source>&amp;Bottom</source>
<translation>(&amp;B)</translation>
</message>
</context>
<context> <context>
<name>vnotex::TableInsertDialog</name> <name>vnotex::TableInsertDialog</name>
<message> <message>

View File

@ -3,7 +3,7 @@
"metadata" : { "metadata" : {
"//comment": "When releasing new version, please go through the following configs to check if override is needed.", "//comment": "When releasing new version, please go through the following configs to check if override is needed.",
"//Comment": "markdown_editor#override_viewer_resource", "//Comment": "markdown_editor#override_viewer_resource",
"version" : "3.0.0-beta.8" "version" : "3.0.0-beta.9"
}, },
"core" : { "core" : {
"theme" : "pure", "theme" : "pure",

View File

@ -35,7 +35,7 @@ void ImportLegacyNotebookDialog::acceptedButtonClicked()
// Warn user about the transformation. // Warn user about the transformation.
int ret = MessageBoxHelper::questionOkCancel(MessageBoxHelper::Warning, int ret = MessageBoxHelper::questionOkCancel(MessageBoxHelper::Warning,
tr("Once imported, the legacy notebook could no longer be recognized by legacy VNote!"), 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!"), tr("Welcome to VNoteX and the new VNote!"),
this); this);
if (ret == QMessageBox::Ok && importLegacyNotebook()) { if (ret == QMessageBox::Ok && importLegacyNotebook()) {