Repository navigation
Version 1.1.0
KAsset Manager v1.1.0 — Full change report since v1.0.5
User‑visible and technical changes since v1.0.5, focused on drag‑and‑drop, preview UI/behavior, and sequence handling.
Highlights
- External drag‑and‑drop for sequences is now adaptive by target:
- Explorer/Desktop: copies individual frames (not parent folders)
- Nuke/After Effects: imports as a single sequence (by dragging the folder path)
- Internal operations remain unchanged: in‑app drags still use the full expanded frame list for copy/move.
- Consistent DnD behavior across File Manager and Asset Manager, including their preview panes and full‑screen overlay.
- Preview Overlay: improved DnD from overlay, fixed event handling, refined control behavior.
- File Manager preview pane: DnD now correctly exports full sequences (adaptive by target).
- Installer packaging updated for 1.1.0 (NSIS script, build script)—not user‑facing in app but included for release completeness.
User‑facing changes
1) External DnD for sequences (Explorer vs DCCs)
- Windows Explorer/Desktop:
- Dropping a sequence now sends the individual frame files via CF_HDROP, so Explorer performs the file operation on frames, not the parent folder.
- Nuke and After Effects:
- Dropping a sequence now sends the folder path(s), so both apps import a single sequence item.
- Single files:
- Unchanged: Explorer and DCCs receive the single file as expected.
- Internal in‑app operations:
- Still use a custom MIME with the full frame list; copy/move semantics unchanged.
Applies to ALL drag sources:
- File Manager grid (thumbnails) and list (details)
- File Manager right preview pane (image/video)
- Full‑screen Preview Overlay
- Asset Manager grid and list
What you’ll notice:
- Explorer no longer copies parent folders when dragging sequences—only frames.
- Nuke/AE now always import sequences as one item when dragging sequences.
2) File Manager: drop targeting and behavior
- Drops onto specific subfolders/items are honored (both tree and view).
- Drops onto empty space of the same folder are blocked to avoid no‑op moves/copies (per your spec).
- Shift modifies drop action (move vs copy) as before.
- Works in both Grid and List view modes.
3) Preview Overlay (UI/behavior)
- DnD from the Overlay now uses adaptive external DnD (same rules as above).
- Controls/layout polish:
- Lifted bottom controls area to avoid OS/taskbar overlap (keeps controls visible).
- Alpha channel toggle retained for images with alpha.
- Wheel zoom events routed through event filters to prevent parent scroll when zooming images/video.
- Stability/behavior fixes:
- Fixed event/braces issues that could break builds.
- Space toggles overlay close; on close, focus/selection is restored to the source view (FM/AM), so arrow navigation continues smoothly.
4) File Manager preview pane (sequences)
- Dragging from the right preview pane exports sequences properly:
- Explorer gets frame files, DCCs get the folder path.
- When previewing sequence representatives (grouped sequences), the preview overlay opens the entire sequence with an informative “[start‑end]” label.
Technical details
Adaptive DnD implementation
- New native IDataObject (Windows OLE) adapts CF_HDROP payload at request time:
- Explorer/Desktop/self‑drop → returns expanded frame files
- DCC apps (Nuke/AE) → returns folder path(s)
- Target detection logic:
- Checks root window class: CabinetWClass (Explorer), Progman/WorkerW (Desktop)
- Falls back to process name check: explorer.exe/FileExplorer.exe
- Treats our own process as “frames mode” (internal drags copy/move frames)
- Internal drag remains via “application/x-kasset-sequence-urls” with the expanded frame list for reliable in‑app file operations.
Integration points
- Asset Manager grid (custom AssetGridView::startDrag)
- File Manager grid/list (FmGridViewEx/FmListViewEx::startDrag)
- File Manager preview pane drag handler
- Preview Overlay drag handler (image/video)
Event/behavior fixes
- Corrected brace/structure issues in preview overlay and FM preview event filters (resolved build breaks).
- Wheel/drag event filters on QGraphicsView/QVideoWidget to avoid unintended parent scroll while zooming/dragging.
Affected files (key changes)
-
native/qt6/src/virtual_drag.h
- Public API: startAdaptivePathsDrag(framePaths, folderPaths) for adaptive external CF_HDROP drags
-
native/qt6/src/virtual_drag.cpp
- Implemented AdaptivePathsDataObject (IDataObject)
- Explorer/Desktop/self detection (by window class and process image name)
- CF_HDROP and CFSTR_PREFERREDDROPEFFECT wiring
- startAdaptivePathsDrag orchestration
-
native/qt6/src/mainwindow.cpp
- Asset Manager and File Manager drag sources now call VirtualDrag::startAdaptivePathsDrag
- File Manager preview pane drag sends full sequence (adaptive by target)
- File Manager drop handling refined:
- Allow drops onto specific subfolders/items (tree and view)
- Block drops onto empty space of same folder (no‑op)
- Map proxy to source correctly; honor Shift for Move
- Overlay open/close integration ensures playback stops and focus/selection restoration
-
native/qt6/src/preview_overlay.cpp
- Overlay drag handler integrated with VirtualDrag adaptive logic
- Event filter fixes (wheel/drag) and stability fixes
- Controls layout kept visible (margins), alpha toggle behavior maintained
-
Build/packaging (release completeness)
- installer/kassetmanager.nsi — OutFile set to 1.1.0; VIProductVersion/ProductVersion/FileVersion to 1.1.0.0; DisplayVersion registry to 1.1.0
- scripts/build-installer.ps1 — uses Ninja; selects newest installer; writes matching .sha256 filename
-
Docs (release completeness)
- CHANGELOG.md — 1.1.0 notes + packaging bullets
- docs/USER_GUIDE.md / README.md / TECH.md — external DnD behavior and version history updates
Behavior matrix (summary)
- Dragging a sequence to Explorer/Desktop: copies individual frames (not folder)
- Dragging a sequence to Nuke/AE: imports as a single sequence via folder path
- Dragging a single file anywhere: unchanged
- Internal copy/move within KAssetManager: unchanged (full frame lists used)
- File Manager drops: subfolder targeting supported; empty space/same folder blocked
- Preview Overlay:
- Dragging from overlay follows adaptive rules
- Space closes overlay; focus restored to source view
Testing scenarios you can run
- Sequence → Explorer/Desktop
- Expect frames copied individually; folder not copied
- Sequence → Nuke/After Effects
- Expect a single sequence item
- Single file → Explorer/Nuke/AE
- Expect the single file behavior (unchanged)
- FM preview pane drag of a sequence
- Explorer gets frames; Nuke/AE get folder
- Overlay drag of a sequence
- Same adaptive behavior as above
- Drops onto FM:
- Drop onto a subfolder item: accepts
- Drop onto empty space within same folder: blocked (ignore)
- Shift modifies Move/Copy
Known limitations and notes
- Explorer detection covers CabinetWClass, Desktop (Progman/WorkerW), and explorer.exe/FileExplorer.exe. If a third‑party shell replaces Explorer, we can extend detection.
- For in‑app operations, we intentionally preserve full frame lists for correctness and parity with existing copy/move queues.