Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add drag & drop untracked cross-db move #10564

Open
wants to merge 16 commits into
base: develop
Choose a base branch
from

Conversation

vuurvli3g
Copy link

@vuurvli3g vuurvli3g commented Apr 8, 2024

The current drag & drop cross-database move implementation is designed for the use-case where 2 or more systems have the same databases in continuous (direct) sync with each other.
A serious disadvantage of the implementation is that the item directly loses the ability to merge with other versions of the item.

This PR adds an alternative "untracked" move implementation.
The exact item is moved to the target database as if it had always been created there and never existed in the source database.
Ideal for use-cases that do not use the database in direct-sync or for users that needs to retain the item's ability to merge with other versions.
If the database is used in a direct-sync setup, the user would have to temporary disable the sync, maintain the database, manually distribute the new database to the other systems, and resume the sync. Otherwise the item would reappear shortly after being moved.

An "untracked" cross-db move is done by holding a keyboard's Alt key while dragging & dropping an item in an other database.

Testing strategy

Manual testing by dragging different entries & groups between different databases.

Type of change

  • ✅ New feature (change that adds functionality)

Remarks

This PR is based of changes made in PR: #10481
Actual changes of this PR (Relative to the other) start at 86c6f68

vuurvlieg added 16 commits March 19, 2024 13:13
- Preserve the LastModificationTime for a group/entry cloned with the CloneResetTimeInfo flag
- Retain UUID's and timeInfo when moving group(s)/entry(s) between db's
- Prevent the Recycle Bin group from being moved to another db
- Cross-db moves that might require merge logic are not (yet) supported and show an error message instead

Fixes keepassxreboot#6202
Fixes keepassxreboot#8170
…ationTime

Cases:
- Entry is added to a Group
- Entry is removed from a Group
- The Group list is sorted
- The user is presented with an in error message if it is the case.
- The recycler is prevented from being moved away.
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.

None yet

1 participant