Le Tan 1de75a354f Drop the unreachable commentColor back-compat in PdfViewerConfig
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.
2026-08-27 21:09:16 +08:00
2026-08-17 04:41:12 +08:00

VNote

CI-Windows CI-Linux CI-MacOS

简体中文

Project on Gitee

A pleasant note-taking platform.

For more information, please visit VNote's Home Page.

VNote

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.

Main

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

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.

S
Description
A pleasant note-taking platform in native C++.
Readme 101 MiB
Languages
C++ 48.8%
JavaScript 43.2%
Fluent 2.9%
CSS 2.6%
CMake 1.4%
Other 1%