How sceace/mac-screenshot works
Mark Shot is a Qt desktop screenshot, annotation, and capture utility. Its main workflow is to capture a screen or selected region, open an interactive annotation overlay, then save, copy, upload, or pin the resulting image. Separate workflows provide scrolling capture, screen recording, code scanning, and OCR-backed pinned-image translation. Provider plugins supply optional OCR, barcode scanning, and translation implementations. The README documents these capabilities; sampled source confirms selected recording, configuration, pinned-window, and shortcut details, but does not establish every runtime connection.
Main entry points: shot_window.cpp Annotation Overlay · screen_capture.cpp Capture API · provider_plugin_registry.cpp Plugin Registry · export_image_effect.cpp Image Export
Components 24
Screen Capture
- Capture API
src/screen_capture.cpp - Platform Capture
src/screen_capture_platform_api.cpp
Image Workflow
- Annotation Overlay
src/shot_window.cpp - Image Export
src/export_image_effect.cpp - Clipboard Image
src/clipboard_image.cpp - Pinned Image
src/pinned_window/pinned_image_window.cpp
Capture Modes
- Scroll Capture
src/scroll/scroll_session_window.cpp - Image Stitcher
src/scroll/stitcher.cpp - Recording Sessions
src/recording/recording_session_manager.cpp - Recording Controller
src/recording/recording_controller.cpp - Recording Writers
src/recording/video_recording_writer.cpp - Recording Files
src/recording/recording_storage_config.cpp
Provider Services
- Code Scanning
src/providers/code_scan/code_scan_provider_factory.cpp - OCR Providers
src/providers/ocr/ocr_provider_factory.cpp - Translation Providers
src/providers/translate/translate_provider_factory.cpp - Plugin Registry
src/providers/provider_plugin_registry.cpp - Plugin Marketplace
src/marketplace/plugin_marketplace_client.cpp
App Services
- Settings UI
src/settings/settings_dialog.cpp - App Configuration
src/app_config_store.cpp - Global Shortcuts
src/shortcuts/global_shortcut_manager.cpp
Other components
- User
- Desktop Capture Services
- Translation APIs
- Image Host
Connections 27
- User → Capture API: requests capture
- Capture API → Platform Capture: dispatches capture
- Platform Capture → Desktop Capture Services: captures frames
- Capture API → Annotation Overlay: opens overlay
- User → Annotation Overlay: selects and annotates
- Annotation Overlay → Image Export: exports image
- Image Export → Clipboard Image: publishes image
- Annotation Overlay → Pinned Image: pins image
- User → Scroll Capture: starts scroll capture
- Scroll Capture → Capture API: requests frames
- Scroll Capture → Image Stitcher: combines frames
- User → Recording Sessions: starts recording
- Recording Sessions → Recording Controller: starts session
- Recording Controller → Recording Writers: writes frames
- Recording Controller → Recording Files: selects output path
- Recording Writers → Recording Files: saves recording
- Annotation Overlay → Code Scanning: requests scan
- Pinned Image → OCR Providers: recognizes text
- Pinned Image → Translation Providers: requests translation
- Translation Providers → Translation APIs: sends translation request
- Plugin Registry → OCR Providers: provides plugins
- Plugin Registry → Translation Providers: provides plugins
- Plugin Registry → Code Scanning: provides plugins
- Plugin Marketplace → Plugin Registry: installs plugins
- Settings UI → App Configuration: updates configuration
- Global Shortcuts → Capture API: triggers capture
- Image Export → Image Host: uploads image