-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Implement Group sync for KeeShare #11593
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
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## develop #11593 +/- ##
===========================================
- Coverage 64.39% 64.34% -0.05%
===========================================
Files 378 378
Lines 39782 39813 +31
===========================================
+ Hits 25615 25616 +1
- Misses 14167 14197 +30 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
e1fa1b8 to
64feaa8
Compare
|
I fixed up the code, but this does break existing behavior since recursing is off by default. Need to think about whether to send this out with 2.7.10 or not. |
|
This needs to be adjusted so the current behavior is retained as the default behavior. |
|
Deferring this to 2.8.0 |
06f9ab6 to
27a50d8
Compare
|
This is ready to go, greatly improves experience with KeeShare without completely overhauling it. @phoerious |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds a "Keep Group Structure" checkbox to the KeeShare export functionality, allowing users to optionally preserve the hierarchical group structure when exporting shared databases. Previously, all entries from a shared group were flattened into the root of the export database.
- Adds a new
keepGroupsboolean field to theReferencestruct (defaults totruefor new references) - Implements serialization/deserialization of the new field with backward compatibility
- Adds UI checkbox in the KeeShare group edit dialog to control this setting
Reviewed Changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/keeshare/group/EditGroupWidgetKeeShare.ui | Adds a checkbox UI element at row 3 with layout adjustments for existing elements |
| src/keeshare/group/EditGroupWidgetKeeShare.h | Declares the slot handler for the new checkbox toggle event |
| src/keeshare/group/EditGroupWidgetKeeShare.cpp | Implements signal connection, checkbox state initialization, and toggle handler |
| src/keeshare/ShareExport.cpp | Refactors export logic to conditionally clone child groups based on keepGroups setting |
| src/keeshare/KeeShareSettings.h | Adds keepGroups field to Reference struct with default value true |
| src/keeshare/KeeShareSettings.cpp | Implements serialization/deserialization logic with backward compatibility and changes log level from warning to debug |
| share/translations/keepassxc_en.ts | Adds translation entries for the new checkbox label and tooltip |
Comments suppressed due to low confidence (1)
src/keeshare/group/EditGroupWidgetKeeShare.ui:224
- The tab order does not include the newly added
keepGroupsCheckboxwidget. Add<tabstop>keepGroupsCheckbox</tabstop>afterpasswordEditto ensure proper keyboard navigation through all form fields.
<tabstops>
<tabstop>typeComboBox</tabstop>
<tabstop>pathEdit</tabstop>
<tabstop>pathSelectionButton</tabstop>
<tabstop>passwordEdit</tabstop>
<tabstop>clearButton</tabstop>
</tabstops>
this can´t go to 2.7.11 i guess? Thanks for your work, happy to see this on the way! :-) |
droidmonkey modified the milestones: v2.8.0, v2.7.11 2 weeks ago Preview builds https://snapshot.keepassxc.org/ |
these are all 2.8 and the win11 latest crashes when unlocking my DB. |
|
Crashes? You should open an issue for that. |
--------- Co-authored-by: ever <[email protected]> Co-authored-by: Ben Kluwe <[email protected]>
--------- Co-authored-by: ever <[email protected]> Co-authored-by: Ben Kluwe <[email protected]>
Release 2.7.11 (2025-11-23) - Add image, HTML, Markdown preview, and text editing support to inline attachment viewer [keepassxreboot#12085, keepassxreboot#12244, keepassxreboot#12654] - Add database merge confirmation dialog [keepassxreboot#10173] - Add option to auto-generate a password for new entries [keepassxreboot#12593] - Add support for group sync in KeeShare [keepassxreboot#11593] - Add {UUID} placeholder for use in references [keepassxreboot#12511] - Add “Wait for Enter” search option [keepassxreboot#12263] - Add keyboard shortcut to “Jump to Group” from search results [keepassxreboot#12225] - Add predefined search for TOTP entries [keepassxreboot#12199] - Add confirmation when closing database via ESC key [keepassxreboot#11963] - Add support for escaping placeholder expressions [keepassxreboot#11904] - Reduce tab indentation width in notes fields [keepassxreboot#11919] - Cap default Argon2 parallelism when creating a new database [keepassxreboot#11853] - Database lock after inactivity now enabled by default and set to 900 seconds [keepassxreboot#12689, keepassxreboot#12609] - Copying TOTP now opens setup dialog if none is configured for entry [keepassxreboot#12584] - Make double click action configurable [keepassxreboot#12322] - Remove unused “Last Accessed” from GUI [keepassxreboot#12602] - Auto-Type: Add more granular confirmation settings [keepassxreboot#12370] - Auto-Type: Add URL typing preset and add copy options to menu [keepassxreboot#12341] - Browser: Do not allow sites automatically if entry added from browser extension [keepassxreboot#12413] - Browser: Add options to restrict exposed groups [keepassxreboot#9852, keepassxreboot#12119] - Bitwarden Import: Add support for timestamps and password history [keepassxreboot#12588] - macOS: Add Liquid Glass icon [keepassxreboot#12642] - macOS: Remove theme-based menubar icon toggle [keepassxreboot#12685] - macOS: Add Window and Help menus [keepassxreboot#12357] - Windows: Add option to add KeePassXC to PATH during installation [keepassxreboot#12171] - Fix window geometry not being restored properly when KeePassXC starts in tray [keepassxreboot#12683] - Fix potential database truncation when using direct write save method with YubiKeys [keepassxreboot#11841] - Fix issue with database backup saving [keepassxreboot#11874] - Fix UI lockups during startup with multiple tabs [keepassxreboot#12053] - Fix keyboard shortcuts when menubar is hidden [keepassxreboot#12431] - Fix clipboard being cleared on exit even if no password was copied [keepassxreboot#12603] - Fix single-instance detection when username contains invalid filename characters [keepassxreboot#12559] - Fix “Search Wait for Enter” setting not being save [keepassxreboot#12614] - Fix hotkey accelerators not being escaped properly on database tabs [keepassxreboot#12630] - Fix confusing error if user cancels out of key file edit dialog [keepassxreboot#12639] - Fix issues with saved searches and “Press Enter to Search” option [keepassxreboot#12314] - Fix URL wildcard matching [keepassxreboot#12257] - Fix TOTP visibility on unlock and settings change [keepassxreboot#12220] - Fix KeeShare entries with reference attributes not updating [keepassxreboot#11809] - Fix sort order not being maintained when toggling filters in database reports [keepassxreboot#11849] - Fix several UI font and layout issues [keepassxreboot#11967, keepassxreboot#12102] - Prevent mouse wheel scroll on edit username field [keepassxreboot#12398] - Improve base translation consistency [keepassxreboot#12432] - Improve inactivity timer [keepassxreboot#12246] - Documentation improvements [keepassxreboot#12373, keepassxreboot#12506] - Browser: Fix ordering of clientDataJSON in Passkey response object [keepassxreboot#12120] - Browser: Fix URL matching for additional URLs [keepassxreboot#12196] - Browser: Fix group settings inheritance [keepassxreboot#12368] - Browser: Allow read-only native messaging config files [keepassxreboot#12236] - Browser: Optimise entry iteration in browser access control dialog [keepassxreboot#11817] - Browser: Fix “Do not ask permission for HTTP Basic Auth” option [keepassxreboot#11871] - Browser: Fix native messaging path for Tor Browser launcher on Linux [keepassxreboot#12005] - Auto-Type: Fix empty window behaviour [keepassxreboot#12622] - Auto-Type: Take delays into account when typing TOTP [keepassxreboot#12691] - SSH Agent: Fix out-of-memory crash with malformed SSH keys [keepassxreboot#12606] - CSV Import: Fix modified and creation time import [keepassxreboot#12379] - CSV Import: Fix duplication of root groups on import [keepassxreboot#12240] - Proton Pass Import: Fix email addresses not being imported when no username set [keepassxreboot#11888] - macOS: Fix secure input getting stuck [keepassxreboot#11928] - Windows: Prevent launch as SYSTEM user from MSI installer [keepassxreboot#12705] - Windows: Remove broken check for MSVC Redistributable from MSI installer [keepassxreboot#11950] - Linux: Fix startup delay due to StartupNotify setting in desktop file [keepassxreboot#12306] - Linux: Fix memory initialisation when --pw-stdin is used with a pipe [keepassxreboot#12050]
|
Please ensure that the manual is updated to reflect this change and clarify the backward compatibility aspect. I was surprised to find that my databases were not synchronized after update to v2.7.11 and that only "root" items appeared in the shared file. |
--------- Co-authored-by: ever <[email protected]> Co-authored-by: Ben Kluwe <[email protected]>
Originally contributed through #9778, code provided by @evur
Fixes #3045
Screenshots
Testing strategy
Type of change