-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Add Show Entries of Subgroups feature #12429
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
base: develop
Are you sure you want to change the base?
Add Show Entries of Subgroups feature #12429
Conversation
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 implements a new "Show subgroup entries in entry list view" feature that displays entries from nested subgroups in a flattened list, similar to functionality in the original KeePass application. This provides users with the convenience of viewing all related entries without navigating through multiple subgroups.
- Added a new configuration option
GUI_ShowSubgroupEntrieswith UI integration in General settings - Enhanced EntryModel to conditionally use recursive entry fetching when the feature is enabled
- Implemented intelligent Group column visibility management that auto-shows the column when subgroup entries are displayed while respecting user preferences
Reviewed Changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/gui/entry/EntryView.h | Added config change handler and user preference tracking for Group column visibility |
| src/gui/entry/EntryView.cpp | Implemented intelligent Group column management and config change handling |
| src/gui/entry/EntryModel.cpp | Enhanced setGroup() to conditionally use entriesRecursive() when feature is enabled |
| src/gui/ApplicationSettingsWidgetGeneral.ui | Added checkbox UI element for the new setting |
| src/gui/ApplicationSettingsWidget.cpp | Integrated setting persistence in load/save settings methods |
| src/core/Config.h | Added GUI_ShowSubgroupEntries configuration key |
| src/core/Config.cpp | Added configuration directive with default value false |
| share/translations/keepassxc_en.ts | Added translation entry for the new UI text |
bc23373 to
1b46c1c
Compare
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
Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.
|
I think we should move this to the View menu since you may want to toggle this type of view on/off. We also need to think about cleaning up the EntryView/EntryModel ... this has gone through a lot of iterations over the years and can be much cleaner. |
|
Agree, that would be more logical place for the option. |
Co-authored-by: juzu-o <[email protected]> Fix drag-and-drop entry refresh to use subgroup entries setting Co-authored-by: juzu-o <[email protected]> Fix EntryModel connections for subgroup entries to receive all group signals Co-authored-by: juzu-o <[email protected]> Fix EntryModel to handle new subgroup entries immediately when Show Subgroup Entries is enabled Co-authored-by: juzu-o <[email protected]> Fix EntryModel to always connect to current group when Show Subgroup Entries is enabled Co-authored-by: juzu-o <[email protected]> Fix memory crash by using QPointer for group references in EntryModel Co-authored-by: juzu-o <[email protected]> Fix compilation errors by changing QSet<QPointer<const Group>> to QList<QPointer<const Group>> Co-authored-by: juzu-o <[email protected]> Update src/gui/entry/EntryModel.cpp Co-authored-by: Copilot <[email protected]> Update src/gui/entry/EntryModel.cpp Co-authored-by: Copilot <[email protected]>
|
There are a few fringe case issues with this change.
Recommend combining the view menu entry in the same partition as the "Show Group Panel" and "Show Preview Panel" |
8575cc6 to
bbeaf94
Compare
Add Show Subgroup Entries feature with intelligent Group column management
This PR implements "Show subgroup entries in entry list view" setting that allows users to view entries from nested subgroups with intelligent Group column display management.
This feature brings KeePassXC closer to feature parity with the original KeePass application, which has long supported the ability to view entries from subgroups in a flattened list. This functionality is particularly valuable for users who organize their passwords in hierarchical structures but want the convenience of seeing all related entries at once without navigating through multiple subgroups or resorting to use search functionality for viewing subgroup entries.
Technical Implementation
Modified Components
setGroup()to conditionally useentriesRecursive()instead ofentries()when feature is enabledKey Changes
EntryModel::setGroup()for conditional recursive entry fetchingAI Disclosure
This pull request was created with the assistance of GitHub Copilot AI using the Claude Sonnet 4 model.
Features Added
Configuration Setting
GUI_ShowSubgroupEntriesconfiguration option (default:false)Core Functionality
When enabled, the entry list view displays all entries from the current group and all its subgroups recursively, providing a flattened view of the hierarchical structure.
For example, with this group structure:
Selecting the "Work" group with the feature enabled shows all 10 entries (2 + 5 + 3) in a single list.
Intelligent Group Column Management
Screenshots
Testing strategy
Type of change