Skip to content

feat(calculator): standalone Calculator app launched via QProcess#16

Merged
Charliechen114514 merged 1 commit into
mainfrom
feat/calculator-app
Jun 30, 2026
Merged

feat(calculator): standalone Calculator app launched via QProcess#16
Charliechen114514 merged 1 commit into
mainfrom
feat/calculator-app

Conversation

@Charliechen114514

Copy link
Copy Markdown
Member

Establishes the "tool app -> standalone executable + QProcess launch" pattern for Phase 13 apps, complementing the builtin child-panel pattern used by About. The Calculator runs in its own process, isolated from the desktop shell.

  • apps/calculator: ported CCIMXDesktop Caculator. Parser (recursive-descent AST + ExpressionEvaluator) kept QString-based as the cfdesktop_calculator_parser static lib; UI rewritten with cfui MD3 (Button grid + Label display); main.cpp runs it as a top-level window.
  • AppLaunchService: resolve a bare program name against applicationDirPath() first (so "calculator" finds /calculator), then fall back to PATH for external commands (xdg-open, xterm).
  • defaultApps: calculator entry with exec_command "calculator".
  • Top-level CMakeLists adds apps/; calculator binary placed next to CFDesktop so the launch resolution finds it.
  • Tests: parser_test ports 53 upstream cases to GoogleTest (15 grouped).

Establishes the "tool app -> standalone executable + QProcess launch"
pattern for Phase 13 apps, complementing the builtin child-panel pattern
used by About. The Calculator runs in its own process, isolated from the
desktop shell.

- apps/calculator: ported CCIMXDesktop Caculator. Parser (recursive-descent
  AST + ExpressionEvaluator) kept QString-based as the
  cfdesktop_calculator_parser static lib; UI rewritten with cfui MD3
  (Button grid + Label display); main.cpp runs it as a top-level window.
- AppLaunchService: resolve a bare program name against
  applicationDirPath() first (so "calculator" finds <bin>/calculator),
  then fall back to PATH for external commands (xdg-open, xterm).
- defaultApps: calculator entry with exec_command "calculator".
- Top-level CMakeLists adds apps/; calculator binary placed next to
  CFDesktop so the launch resolution finds it.
- Tests: parser_test ports 53 upstream cases to GoogleTest (15 grouped).
@Charliechen114514 Charliechen114514 merged commit e541a69 into main Jun 30, 2026
6 checks passed
@Charliechen114514 Charliechen114514 deleted the feat/calculator-app branch June 30, 2026 14:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant