Skip to content

Comments

Add IFileOperation code and related file management functionality#19

Merged
sven-seyfert merged 15 commits intomainfrom
shell-dodragdrop
Feb 23, 2026
Merged

Add IFileOperation code and related file management functionality#19
sven-seyfert merged 15 commits intomainfrom
shell-dodragdrop

Conversation

@WildByDesign
Copy link
Member

Important

Thanks for your effort and interest 💛 in improving the project. It's very appreciated.

Description

  • IFileOperation code has been implemented to handle all file operations.

  • This adds the ability to Copy, Paste, Delete, Rename and Undo file operations. All of this works directly within the TreeView and ListView.

  • This also adds the related menu entries and associated hotkeys.

  • Context menu entries (TreeView/ListView) will be added in a later PR.

🔗 Linked GitHub Issues

Not applicable.

📋 What is the current behavior?

Current behavior has no file management functionality.

🚀 What is the new behavior?

All common file management functionality as been added.


Type of changes

  • 🪲 Bugfix (change which fixes an issue)
  • ⭐ New Feature (change which adds functionality)
  • 🔒 Security fix (change which improves security)
  • 🔮 Code style update (formatting, renaming)
  • 🔨 Refactoring (code optimization without functional change)
  • 📚 Documentation (updates to README or docs)
  • ⚙️ Build or CI related changes
  • 🧿 Other type

Breaking changes 🔥

  • Yes
  • No

How and where was this tested?

🖥️ Describe where you tested your changes

System:

  • Windows 11 (x64)
  • Windows 10 (x64)
  • Windows 10 (x86)
  • other Windows version
  • other operating system

Context:

  • in Browser <name and version>
  • with Go <version>
  • with Node.js <version>
  • with AutoIt \v3.3.18.0
  • with .NET (C#) <version>
  • with ...

🔬 Describe how you tested your changes

  • Manually tested in system and context shown above
  • Ran automatic tests (unit tests, integration tests, etc.)
  • Other ways

Checklist

  • I have read and understood the available contributing guidelines.
  • I have ensured my code follows the available code conventions.
  • I have reviewed my changes.
  • I have made corresponding changes to the documentation (if applicable).
  • I have added/updated necessary tests to cover the changes (if applicable).
  • I have checked for potential security implications.

Additional context

Screenshots

Note to reviewers

- using SHDoDragDrop
- drag and drop to external programs is working
- drag and drop to (or within) Files Au3 is not working yet
- only using DROPEFFECT_COPY and DROPEFFECT_LINK right now
- DROPEFFECT_MOVE works well, but is removed right now for purpose of testing
- add drop target functionality
- show DROPHILITE on folders only
- tidy up some of the new drag and drop code
- remove old (unused) drag and drop code
- adds CopyItems and MoveItems
- future possibilities for DeleteItem(s), RenameItem(s), etc.
- add Rename and Delete functionality to TreeView and ListView
- TreeView can delete single item at a time while ListView can delete single or multiple selections
- Context menu for Rename, Delete, etc. can be done later
- Block illegal path characters from Rename of file names or folders.
- Show balloon tip regarding illegal characters if illegal character pressed
- Adds menu entries for Delete, Rename, Copy, Paste, and Undo.
- Also adds the related hotkeys for those same functions.
- Allows Undo for the most recent drag and drop, delete, rename, copy, move, etc.
- Return drop result from SHDoDragDrop to determine whether drop was successful or not.
- Allow Undo on successful drag and drop
- Clean up unneeded drag and drop code
Single item Properties was failing to show correctly for ListView.
- add Show Hidden Files to menu
- add Hide Protected System Files to menu
- add related callback filter for those options to function
Copy link
Member

@sven-seyfert sven-seyfert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I approve the PRs to resolve the merge conflicts.
I will review the code onces again after it's merged.
Please double check the final main branch state @WildByDesign.
Thanks 🤝 .

@sven-seyfert sven-seyfert merged commit df9b336 into main Feb 23, 2026
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.

2 participants