PdfViewerConfig::fromJson() seeded all three tools from a legacy shared `commentColor` key when `tools` was absent. That branch cannot run. ConfigMgr2::init() applies the user's document as an RFC 7386 merge patch on top of the default-constructed MainConfig's toJson(), and toJson() always emits `tools`. So by the time fromJson() sees the object, `tools` is present unconditionally and the guard is always false. The branch only ever executed from a direct fromJson() call -- which is exactly what its test did, so the gate asserted the dead path rather than catching it. Nothing is lost by removing it. `commentColor` existed only in the local pdf.js-v6 commit and was never on master, so no config on disk anywhere carries it. And absent-key safety for the replacement keys is now covered better than the removed test covered it: testAbsentKeyKeepsTheCppDefaultForEveryField drops each leaf key of the defaults document in turn and reloads through a real ConfigMgr2::init(), which includes tools.*.color, tools.ink.width and tools.freetext.fontSize. The remaining `tools`-absent fallback is kept and its comment now says what it is actually for: a direct fromJson() call, not a migration. Full suite 216/216.
VNote
A pleasant note-taking platform.
For more information, please visit VNote's Home Page.
Description
VNote is a Qt-based, free and open source note-taking application, focusing on Markdown now. VNote is designed to provide a pleasant note-taking platform with excellent editing experience.
VNote is NOT just a simple editor for Markdown. By providing notes management, VNote makes taking notes in Markdown simpler. In the future, VNote will support more formats besides Markdown.
Utilizing Qt, VNote could run on Linux, Windows, and macOS.
Downloads
Continuous builds on master branch could be found at the Continuous Build release.
Latest stable builds could be found at the latest release or Gitee release
Supports
- GitHub Issues;
- Email:
tamlokx at gmail.com;
Thank users who donated to VNote!
Development
After cloning the repository, run the initialization script to set up your development environment:
Linux/macOS:
bash scripts/init.sh
Windows:
scripts\init.cmd
This script will:
- Initialize and update all git submodules
- Install pre-commit hooks for automatic code formatting with clang-format
- Set up the vtextedit submodule pre-commit hook
For more development guidelines, see AGENTS.md.
License
VNote is licensed under GNU LGPLv3.
Bundled third-party material and the notices its licenses require — the Lucide (ISC/MIT) and IconPark (Apache-2.0) icon sets — are recorded in THIRD-PARTY-NOTICES.md.

