cad-editor/crates/dwg-thumbnailer-win/Cargo.toml

32 lines
1 KiB
TOML
Raw Normal View History

feat(thumbnails): embed DWG previews and wire cross-platform file thumbnails Round-trip a raster preview through the DWG's embedded preview slot and surface it to the OS file managers, so drawings show their contents in Explorer / Finder / Nautilus instead of a generic document icon. OCS: * io::thumbnail — rasterize the scene to a BMP DIB on save (embedded via acadrust's new Preview type) and read it back on open for the Start page recent list; `--dwg-thumbnail IN OUT SIZE` CLI extracts a badged PNG for external thumbnailers. * io::file_association::install_thumbnailer — self-install the OS integration on startup: Linux writes a .thumbnailer + hicolor mimetype icons; Windows registers the IThumbnailProvider DLL under HKCU. Shared core: * crates/dwg-thumbnailer — lean (image-only) preview extractor + the `badge_dwg` full-width "DWG" band, used by every platform so the ribbon is single-sourced. Ships an rlib+staticlib. * crates/dwg-thumbnailer-win — IThumbnailProvider COM in-proc server (cfg(windows), CI-built as a workspace member). * macos/ — QuickLook thumbnail extension (Swift + C-ABI bridge to the core staticlib), assembled into a .appex. Icons & packaging (single SVG source -> per-platform assets in CI): * assets/mimetypes/image-vnd.{dwg,dxf}.svg — themed file icons. * packaging: WiX ships dwg/dxf.ico + the thumbnail DLL and points the ProgIds at them; Info.plist gets CFBundleTypeIconFile + the QuickLook extension in Contents/PlugIns. * release.yml — generate .ico (Windows) and .icns (macOS) from the SVGs, build the QuickLook .appex, and bundle everything. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 01:27:17 +03:00
[package]
name = "dwg-thumbnailer-win"
version = "0.1.0"
edition = "2021"
description = "Windows Explorer thumbnail handler (IThumbnailProvider) for DWG files"
license = "MIT OR Apache-2.0"
# A COM in-proc server DLL. Off Windows this compiles to an empty cdylib so the
# workspace still builds on Linux/macOS; the real handler is cfg(windows) only.
[lib]
crate-type = ["cdylib"]
[dependencies]
dwg_thumbnailer = { package = "dwg-thumbnailer", path = "../dwg-thumbnailer" }
[target.'cfg(windows)'.dependencies]
# `#[implement]` expands to `windows_core::` paths, so the core crate must be
# nameable in the crate root (kept in lockstep with the `windows` version).
windows-core = "0.58"
feat(thumbnails): embed DWG previews and wire cross-platform file thumbnails Round-trip a raster preview through the DWG's embedded preview slot and surface it to the OS file managers, so drawings show their contents in Explorer / Finder / Nautilus instead of a generic document icon. OCS: * io::thumbnail — rasterize the scene to a BMP DIB on save (embedded via acadrust's new Preview type) and read it back on open for the Start page recent list; `--dwg-thumbnail IN OUT SIZE` CLI extracts a badged PNG for external thumbnailers. * io::file_association::install_thumbnailer — self-install the OS integration on startup: Linux writes a .thumbnailer + hicolor mimetype icons; Windows registers the IThumbnailProvider DLL under HKCU. Shared core: * crates/dwg-thumbnailer — lean (image-only) preview extractor + the `badge_dwg` full-width "DWG" band, used by every platform so the ribbon is single-sourced. Ships an rlib+staticlib. * crates/dwg-thumbnailer-win — IThumbnailProvider COM in-proc server (cfg(windows), CI-built as a workspace member). * macos/ — QuickLook thumbnail extension (Swift + C-ABI bridge to the core staticlib), assembled into a .appex. Icons & packaging (single SVG source -> per-platform assets in CI): * assets/mimetypes/image-vnd.{dwg,dxf}.svg — themed file icons. * packaging: WiX ships dwg/dxf.ico + the thumbnail DLL and points the ProgIds at them; Info.plist gets CFBundleTypeIconFile + the QuickLook extension in Contents/PlugIns. * release.yml — generate .ico (Windows) and .icns (macOS) from the SVGs, build the QuickLook .appex, and bundle everything. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 01:27:17 +03:00
windows = { version = "0.58", features = [
"implement",
"Win32_Foundation",
"Win32_Security",
feat(thumbnails): embed DWG previews and wire cross-platform file thumbnails Round-trip a raster preview through the DWG's embedded preview slot and surface it to the OS file managers, so drawings show their contents in Explorer / Finder / Nautilus instead of a generic document icon. OCS: * io::thumbnail — rasterize the scene to a BMP DIB on save (embedded via acadrust's new Preview type) and read it back on open for the Start page recent list; `--dwg-thumbnail IN OUT SIZE` CLI extracts a badged PNG for external thumbnailers. * io::file_association::install_thumbnailer — self-install the OS integration on startup: Linux writes a .thumbnailer + hicolor mimetype icons; Windows registers the IThumbnailProvider DLL under HKCU. Shared core: * crates/dwg-thumbnailer — lean (image-only) preview extractor + the `badge_dwg` full-width "DWG" band, used by every platform so the ribbon is single-sourced. Ships an rlib+staticlib. * crates/dwg-thumbnailer-win — IThumbnailProvider COM in-proc server (cfg(windows), CI-built as a workspace member). * macos/ — QuickLook thumbnail extension (Swift + C-ABI bridge to the core staticlib), assembled into a .appex. Icons & packaging (single SVG source -> per-platform assets in CI): * assets/mimetypes/image-vnd.{dwg,dxf}.svg — themed file icons. * packaging: WiX ships dwg/dxf.ico + the thumbnail DLL and points the ProgIds at them; Info.plist gets CFBundleTypeIconFile + the QuickLook extension in Contents/PlugIns. * release.yml — generate .ico (Windows) and .icns (macOS) from the SVGs, build the QuickLook .appex, and bundle everything. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 01:27:17 +03:00
"Win32_System_Com",
"Win32_System_Com_StructuredStorage",
"Win32_System_LibraryLoader",
feat(thumbnails): embed DWG previews and wire cross-platform file thumbnails Round-trip a raster preview through the DWG's embedded preview slot and surface it to the OS file managers, so drawings show their contents in Explorer / Finder / Nautilus instead of a generic document icon. OCS: * io::thumbnail — rasterize the scene to a BMP DIB on save (embedded via acadrust's new Preview type) and read it back on open for the Start page recent list; `--dwg-thumbnail IN OUT SIZE` CLI extracts a badged PNG for external thumbnailers. * io::file_association::install_thumbnailer — self-install the OS integration on startup: Linux writes a .thumbnailer + hicolor mimetype icons; Windows registers the IThumbnailProvider DLL under HKCU. Shared core: * crates/dwg-thumbnailer — lean (image-only) preview extractor + the `badge_dwg` full-width "DWG" band, used by every platform so the ribbon is single-sourced. Ships an rlib+staticlib. * crates/dwg-thumbnailer-win — IThumbnailProvider COM in-proc server (cfg(windows), CI-built as a workspace member). * macos/ — QuickLook thumbnail extension (Swift + C-ABI bridge to the core staticlib), assembled into a .appex. Icons & packaging (single SVG source -> per-platform assets in CI): * assets/mimetypes/image-vnd.{dwg,dxf}.svg — themed file icons. * packaging: WiX ships dwg/dxf.ico + the thumbnail DLL and points the ProgIds at them; Info.plist gets CFBundleTypeIconFile + the QuickLook extension in Contents/PlugIns. * release.yml — generate .ico (Windows) and .icns (macOS) from the SVGs, build the QuickLook .appex, and bundle everything. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 01:27:17 +03:00
"Win32_System_Registry",
"Win32_System_SystemServices",
feat(thumbnails): embed DWG previews and wire cross-platform file thumbnails Round-trip a raster preview through the DWG's embedded preview slot and surface it to the OS file managers, so drawings show their contents in Explorer / Finder / Nautilus instead of a generic document icon. OCS: * io::thumbnail — rasterize the scene to a BMP DIB on save (embedded via acadrust's new Preview type) and read it back on open for the Start page recent list; `--dwg-thumbnail IN OUT SIZE` CLI extracts a badged PNG for external thumbnailers. * io::file_association::install_thumbnailer — self-install the OS integration on startup: Linux writes a .thumbnailer + hicolor mimetype icons; Windows registers the IThumbnailProvider DLL under HKCU. Shared core: * crates/dwg-thumbnailer — lean (image-only) preview extractor + the `badge_dwg` full-width "DWG" band, used by every platform so the ribbon is single-sourced. Ships an rlib+staticlib. * crates/dwg-thumbnailer-win — IThumbnailProvider COM in-proc server (cfg(windows), CI-built as a workspace member). * macos/ — QuickLook thumbnail extension (Swift + C-ABI bridge to the core staticlib), assembled into a .appex. Icons & packaging (single SVG source -> per-platform assets in CI): * assets/mimetypes/image-vnd.{dwg,dxf}.svg — themed file icons. * packaging: WiX ships dwg/dxf.ico + the thumbnail DLL and points the ProgIds at them; Info.plist gets CFBundleTypeIconFile + the QuickLook extension in Contents/PlugIns. * release.yml — generate .ico (Windows) and .icns (macOS) from the SVGs, build the QuickLook .appex, and bundle everything. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 01:27:17 +03:00
"Win32_UI_Shell",
"Win32_UI_Shell_PropertiesSystem",
"Win32_Graphics_Gdi",
] }