Sync dev with latest 62 commits – Development branch for testing and community contributions #327
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR brings the
devbranch up to date with 62 recent commits focused on:Development.mddocumenting the dev branch purpose, warning about instability, issue reporting guidelines, and contribution workflow.Development Branch Purpose
The
devbranch is dedicated to:✅ Community testing and development — Improve your C++ skills while contributing to ViewTouch
✅ Experimental features — Test work-in-progress enhancements
✅ Modern C++ refactoring — Ongoing modernization and static analysis fixes
✅ AI-assisted development — Leverage tools like Copilot, ChatGPT, or Claude
Commits (last 62 on dev)
Latest Changes
584e654 Add Development.md for dev branch and remove README.md
e2548f8 Address clang-tidy findings and update changelog
Static Analysis & Clang-tidy Fixes
24424ba refactor: resolve remaining branch-clone warnings
a289806 fix: eliminate narrowing conversions in check.cc
e1b5a1f refactor: consolidate duplicate branch bodies in check.cc
58e0c39 fix: correct rounding in tax calculation
0bd56df fix: add missing default cases in switch statements
d694976 perf: optimize enum sizes to reduce memory footprint
8d123e4 Fix duplicate branch bodies in settings.cc (clang-tidy bugprone-branch-clone)
Enum & Macro Modernization
e7957b4 Enum migration: Complete settings format enums (PriceRounding, MeasureSystem, Date/Number/TimeFormat)
124812c Clean up lingering SERVER_* macro references in debug/locale strings
5d89caf Macro → Enum sweep: DrawerModeType + printer/server/op/window protocols
9de0328 drawer-print: migrate to DrawerPrintType enum; remove legacy arrays; use enum in UI and drawer flow; tests green
93b39d9 settings-ui: switch ReceiptPrint display/cycle to ReceiptPrintType; remove ReceiptPrintName/Value arrays; tests green
04e947e settings: use ReceiptPrintType at call sites (check/payment) via vt::IntToEnum; behavior unchanged; tests green
ea9e3ae receipt: convert RECEIPT_* macros to enums (ReceiptCopy, ReceiptPrintMode); preserve values; tests green
23b2e1f print: convert PRINT_* macros to enum PrintModeFlags; dedupe in report.hh; tests green
26d75d1 zone: convert ZONE_* macros to enum ZoneType for type safety; preserve numeric IDs; all tests green
Modernization & Buffer Safety
e3619e3 Modernize fixed-size buffers to std::array in manager.cc
a435be6 Fix critical bugprone warnings: empty catch blocks and narrowing conversions
82860ea Fix logging system test failure to achieve 40/40 passing tests
Branch-Clone Refactoring
1f5cbc3 docs: note branch-clone cleanups in dialog and credit card modules
4408148 refactor: reduce branch-clone patterns in dialogs and credit card list
ce98a90 docs: extend changelog with button_zone.cc branch-clone cleanup details
8eeb83a refactor: eliminate branch-clone patterns in button_zone.cc
eecc972 docs: changelog for bugprone-branch-clone refactor in manager.cc
18f7528 refactor: remove duplicate branch bodies (bugprone-branch-clone)
Documentation & Changelog
e5780bf docs: add changelog entry for bugprone-switch-missing-default-case fixes
Switch & Narrowing Fixes
c36fb41 fix: add missing default cases to switch statements (bugprone-switch-missing-default-case)
438f98a fix: resolve narrowing conversion warnings (bugprone-narrowing-conversions)
Modernization Initiatives
2df12d7 refactor: modernize C-arrays to std::array in manager.cc
0770382 feat: extend clang-tidy modernizations
f4814a2 feat: apply targeted C++ modernizations
aadefb6 feat: comprehensive nullptr modernization across entire codebase
Logging & Override Specifiers
bcde6b0 logger: flush on info and explicit flush after structured JSON to make tests read logs immediately
342eeed zone(chart): add/remove override specifiers and fix mismatched annotations
ac62d25 zone(creditcard): add override specifiers to CreditCardListZone methods
f5b48fc zone(drawer): add safe override specifiers to DrawerAssignZone and DrawerManageZone
Documentation & Audit
31b5683 docs(changelog): document clang-tidy/override audit and current test status (12-21-2025)
Override Specifier Annotations (Comprehensive Audit)
5cf28ab Annotate CDUZone destructor and overrides in cdu_zone.hh
9ac1084 Add override annotations to AccountZone methods
7600b9a Annotate ListField destructor with override in form_zone.cc
1b4540d Annotate ButtonZone-derived classes with override where appropriate; remove erroneous override on ValidateCommand
b992064 Add missing override specifiers to ButtonZone methods
8e846cf Add override specifiers to DialogZone-derived classes (clang-tidy: modernize-use-override)
982ad02 Add override specifiers to LayoutZone methods (clang-tidy: modernize-use-override)
0904c30 Add override specifiers to PosZone/PosPage (clang-tidy: modernize-use-override)
64ff1ed Add missing override specifiers to inline getters and ReadZone::FileName() (clang-tidy: modernize-use-override)
e8922e6 Add missing override specifiers (report_zone.hh, settings.hh) — clang-tidy: modernize-use-override
cfebfcc Add missing override specifiers to CDU derived classes (clang-tidy: modernize-use-override)
cac2568 Add missing override specifiers to Printer derived classes (clang-tidy: modernize-use-override)
Safety & Analyzer Fixes
14fc5ed docs(changelog): document clang-tidy fixes, nullptr conversions, memset substitution, rounding fixes, and test status (39/40)
c87f727 fix(check.cc): correct floating point rounding with lround()
80db771 fix(clang-analyzer): initialize char arrays in PrintWorkOrder to avoid potential undefined value access
Pointer & Identifier Cleanup
7cccfbf fix(clang-tidy): replace NULL with nullptr and bzero with memset
58781a7 fix(clang-tidy): remove reserved identifier prefixes from header guards
2cb5364 fix(clang-tidy): replace NULL with nullptr and fix reserved identifiers
Compiler Warnings & Reverse SSH Removal
ed4cb93 Fix compiler warnings: use safe string concat in SMTP, silence unused params, fix assignment bug, annotate fallthrough, avoid hidden overloads, bracket empty bodies
4a1df2e docs(changelog): record removal of Reverse SSH subsystem
8c28a0d Remove reverse SSH configuration, settings, init/shutdown, and CMake targets/installs
e0f54c0 Remove Reverse SSH subsystem: sources, daemon, scripts, config, and docs
Key Improvements
Development.mdwith clear contribution guidelines and issue reporting templatesTesting
Notes
Development.mdfor contribution guidelines