Implement Group sync for KeeShare#11593
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.
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 <ever@brokenmouse.studio> Co-authored-by: Ben Kluwe <ben.kl@go4more.de>
--------- Co-authored-by: ever <ever@brokenmouse.studio> Co-authored-by: Ben Kluwe <ben.kl@go4more.de>
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 <ever@brokenmouse.studio> Co-authored-by: Ben Kluwe <ben.kl@go4more.de>
Originally contributed through #9778, code provided by @evur
Fixes #3045
Screenshots
Testing strategy
Type of change