How mg-chao/snow-apps works
Snow Apps is a multi-product repository. The README identifies Snow Shot and Snow Image Viewer; sampled source also exposes reusable Ant Design Qt widgets and a drawing engine, so the graph emphasizes those substantial runtime products rather than release tooling. Snow Shot’s visible workflow includes capture and scrolling capture, OCR and recognition, editing/pinning, export, and persistent settings/history. Source excerpts provide only partial wiring, so uncertain cross-product links are omitted.
Main entry points: applicationcontroller.cpp Application controller · screenshotscrollingpipeline.cpp Scrolling capture · button.cpp Widget library · edit_pipeline_controller.cpp Edit pipeline
Components 21
Snow Shot
- Application controller
snow_shot/src/app/applicationcontroller.cpp - Scrolling capture
snow_shot/src/presentation/capture/screenshotscrollingpipeline.cpp - Save and export
snow_shot/src/presentation/services/screenshotsaveexportpipeline.cpp - Screenshot OCR
snow_shot/include/snow_shot/presentation/screenshotocrcontroller.h - Recognition session
snow_shot/src/presentation/ocr/screenshotrecognitionsessioncontroller.cpp - Pinned editing
snow_shot/src/presentation/pinned/screenshotpinnededitcontroller.cpp - Screen recording
snow_shot/src/presentation/recording/screenrecordingcontroller.cpp - Application storage
snow_shot/src/storage/applicationstorage.cpp - Storage status UI
snow_shot/src/presentation/components/storagestatussettingswidget.cpp
Image Viewer
- Edit pipeline
snow_image_viewer/src/editing/edit_pipeline_controller.cpp - Image processing
snow_image/src/service.cpp
Qt UI
- Icon rendering
ant_design_qt/packages/adqt_icon_core/src/icon_renderer.cpp - Ant Design icons
ant_design_qt/packages/ant_design_icons_qt/src/antd_icons.cpp - Widget library
ant_design_qt/packages/ant_design_qt/src/widgets/button.cpp - Popup controller
ant_design_qt/packages/ant_design_qt/src/widgets/detail/overlay_popup_controller.cpp
Drawing Engine
- Annotation engine
snow_draw_engine_qt/crates/snow-draw-engine/src/engine.rs - Drawing C API
snow_draw_engine_qt/crates/snow-draw-engine-c/include/snow_draw_engine.h
Capture and OCR
- Desktop capture
snow-crates/crates/snow-capture/src/platform/windows/region_pipeline.rs - Visual region detection
snow-crates/crates/visual-region-detector/src/pipeline.rs
Other components
- Desktop user
- Image editor user
Connections 19
- Desktop user → Application controller: uses
README.md - Application controller → Application storage: initializes
- Application controller → Scrolling capture: starts capture
- Scrolling capture → Desktop capture: captures frames
snow_shot/src/presentation/capture/screenshotscrollingpipeline.cpp - Scrolling capture → Save and export: exports result
- Application controller → Screenshot OCR: requests OCR
- Application controller → Recognition session: starts recognition
- Application controller → Pinned editing: opens pinned edit
- Application controller → Screen recording: controls recording
- Storage status UI → Application storage: reads status
snow_shot/src/presentation/components/storagestatussettingswidget.cpp - Desktop capture → Visual region detection: detects regions
- Desktop user → Image editor user: edits images
README.md - Image editor user → Edit pipeline: submits edits
snow_image_viewer/src/editing/edit_pipeline_controller.cpp - Edit pipeline → Image processing: processes raster
- Desktop user → Annotation engine: annotates image
- Drawing C API → Annotation engine: exposes engine
- Widget library → Popup controller: uses popup control
- Widget library → Ant Design icons: uses icons
- Ant Design icons → Icon rendering: renders icons