Skip to content

Implement feature "custom entry sort order" #4357

Merged
droidmonkey merged 1 commit intokeepassxreboot:developfrom
hmb:feature/native-sortorder
May 22, 2020
Merged

Implement feature "custom entry sort order" #4357
droidmonkey merged 1 commit intokeepassxreboot:developfrom
hmb:feature/native-sortorder

Conversation

@hmb
Copy link

@hmb hmb commented Feb 21, 2020

Type of change

  • ✅ New feature (non-breaking change which adds functionality)

Description and Context

This implements the "Enable custom entry sort order within a group" feature request #2295 with the following parts:

  • Extend the password entry header buttons to a tristate logic:
    • sort ascending
    • sort descending
    • unsorted in the native DB custom order
  • Add a menu to move entries up and down
  • Add keyboard shortcuts to move entries up and down

Fixes #2295

Screenshots

Sort Ascending:
grafik

Sort Descending:
grafik

Unsorted:
grafik

Testing strategy

GUI functionality tested manually and via debugger.
Unit tests for the Entry, Group and EntryModel classes

Checklist:

  • ✅ I have read the CONTRIBUTING document. [REQUIRED]
  • ✅ My code follows the code style of this project. [REQUIRED]
  • ✅ All new and existing tests passed. [REQUIRED]
  • ✅ I have compiled and verified my code with -DWITH_ASAN=ON. [REQUIRED]
  • ✅ I have added tests to cover my changes.

@hmb hmb changed the title Implement the "Enable custom entry sort order within a group" feature request https://github.com/keepassxreboot/keepassxc/issues/2295 Implement the "Enable custom entry sort order within a group" feature request Feb 21, 2020
@hmb hmb changed the title Implement the "Enable custom entry sort order within a group" feature request Implement the "custom entry sort order" feature request Feb 21, 2020
@hmb hmb changed the title Implement the "custom entry sort order" feature request Implement feature request "custom entry sort order" Feb 21, 2020
@hmb hmb changed the title Implement feature request "custom entry sort order" Implement feature "custom entry sort order" Feb 21, 2020
@hmb
Copy link
Author

hmb commented Feb 22, 2020

I now did "make format" on a buster host. Apparently that generates a little different results to the xenial image in TeamCity.

@droidmonkey
Copy link
Member

You need cmake-format >= 8.0

@droidmonkey
Copy link
Member

I rebased, but this PR needs work. I do not want to add anymore toolbar buttons. The context menu entries should only show when the list is natural order. Moving an entry up/down in order should be considered a "non-destructive change" similar to expanding and collapsing a group, this prevents auto-save from triggering.

@hmb hmb force-pushed the feature/native-sortorder branch from 2568f7c to f995b98 Compare March 14, 2020 00:17
@hmb
Copy link
Author

hmb commented Mar 14, 2020

I'll take care of it theese days. Just removed some double changes I did in parallel to commit
b188385 by @Sigmaupsilon

Introduce a third unsorted status that shows entries in the order they occur in the KDBX file.

* Add keyboard shortcut Ctrl+Alt+Up/Down to move entries up and down in sort order
* Add entry context menu icons to achieve movement up/down
* Only show menu icons when in natural sort order
* Add Material Design icons for moving up/down

* Add feature to track non-data changes and force a save on exit to ensure they are not lost when locking a database. This allows users to make entry movements and group expand/collapse operations and not lose that state.

Remove saveas
@droidmonkey droidmonkey force-pushed the feature/native-sortorder branch from f995b98 to 765670a Compare May 22, 2020 01:56
@hmb
Copy link
Author

hmb commented May 22, 2020

@droidmonkey Tnx for the approval. Due to the Corona hype I got focused on other things and did not yet push my recent changes that fixed your requests in comment #4357 (comment).
I removed the toolbar buttons and the menu shows only when in native sort order. Would it be OK to still push them?
Then I still have a problem fixing the "non-destructive change" behaviour. While it's easy to avoid the auto-save, that kills the possibility to save altogether. I did not yet figure out how to set a "changed" status without triggering autosave and simultaneously let the user still save the changes at will. Maybe you could point me into the right direction on this.

@droidmonkey
Copy link
Member

No do not push anything, I made all the changes.

@hmb
Copy link
Author

hmb commented May 22, 2020

Ok thanks.

@droidmonkey droidmonkey merged commit eb19827 into keepassxreboot:develop May 22, 2020
droidmonkey added a commit that referenced this pull request Jul 7, 2020
Added

- Custom Light and Dark themes [#4110, #4769, #4791, #4796, #4892, #4915]
- Compact mode to use classic Group and Entry line height [#4910]
- View menu to quickly switch themes, compact mode, and toggle UI elements [#4910]
- Search for groups and scope search to matched groups [#4705]
- Save Database Backup feature [#4550]
- Sort entries by "natural order" and move lines up/down [#4357]
- Option to launch KeePassXC on system startup/login [#4675]
- Caps Lock warning on password input fields [#3646]
- Add "Size" column to entry view [#4588]
- Browser-like tab experience using Ctrl+[Num] (Alt+[Num] on Linux) [#4063, #4305]
- Password Generator: Define additional characters to choose from [#3876]
- Reports: Database password health check (offline) [#3993]
- Reports: HIBP online service to check for breached passwords [#4438]
- Auto-Type: DateTime placeholders [#4409]
- Browser: Show group name in results sent to browser extension [#4111]
- Browser: Ability to define a custom browser location (macOS and Linux only) [#4148]
- Browser: Ability to change root group UUID and inline edit connection ID [#4315, #4591]
- CLI: `db-info` command [#4231]
- CLI: Use wl-clipboard if xclip is not available (Linux) [#4323]
- CLI: Incorporate xclip into snap builds [#4697]
- SSH Agent: Key file path env substitution, SSH_AUTH_SOCK override, and connection test [#3769, #3801, #4545]
- SSH Agent: Context menu actions to add/remove keys [#4290]

Changed

- Complete replacement of default database icons [#4699]
- Complete replacement of application icons [#4066, #4161, #4203, #4411]
- Complete rewrite of documentation and manpages using Asciidoctor [#4937]
- Complete refactor of config files; separate between local and roaming [#4665]
- Complete refactor of browser integration and proxy code [#4680]
- Complete refactor of hardware key integration (YubiKey and OnlyKey) [#4584, #4843]
- Significantly improve performance when saving and opening databases [#4309, #4833]
- Remove read-only detection for database files [#4508]
- Overhaul of password fields and password generator [#4367]
- Replace instances of "Master Key" with "Database Credentials" [#4929]
- Change settings checkboxes to positive phrasing for consistency [#4715]
- Improve UX of using entry actions (focus fix) [#3893]
- Set expiration time to Now when enabling entry expiration [#4406]
- Always show "New Entry" in context menu [#4617]
- Issue warning before adding large attachments [#4651]
- Improve importing OPVault [#4630]
- Improve AutoOpen capability [#3901, #4752]
- Check for updates every 7 days even while still running [#4752]
- Improve Windows installer UI/UX [#4675]
- Improve config file handling of portable distribution [#4131, #4752]
- macOS: Hide dock icon when application is hidden to tray [#4782]
- Browser: Use unlock dialog to improve UX of opening a locked database [#3698]
- Browser: Improve database and entry settings experience [#4392, #4591]
- Browser: Improve confirm access dialog [#2143, #4660]
- KeeShare: Improve monitoring file changes of shares [#4720]
- CLI: Rename `create` command to `db-create` [#4231]
- CLI: Cleanup `db-create` options (`--set-key-file` and `--set-password`) [#4313]
- CLI: Use stderr for help text and password prompts [#4086, #4623]
- FdoSecrets: Display existing secret service process [#4128]

Fixed

- Fix changing focus around the main window using tab key [#4641]
- Fix search field clearing while still using the application [#4368]
- Improve search help widget displaying on macOS and Linux [#4236]
- Return keyboard focus after editing an entry [#4287]
- Reset database path after failed "Save As" [#4526]
- Use SHA256 Digest for Windows code signing [#4129]
- Improve handling of ccache when building [#4104, #4335]
- macOS: Properly re-hide application window after browser integration and Auto-Type usage [#4909]
- Auto-Type: Fix crash when performing on new entry [#4132]
- Browser: Send legacy HTTP settings to recycle bin [#4589]
- Browser: Fix merging browser keys [#4685]
- CLI: Fix encoding when exporting database [#3921]
- SSH Agent: Improve reliability and underlying code [#3833, #4256, #4549, #4595]
- FdoSecrets: Fix crash when editing settings before service is enabled [#4332]
@phoerious phoerious added pr: new feature Pull request adds a new feature and removed new feature labels Nov 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr: new feature Pull request adds a new feature ux

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Enable custom entry sort order within a group

3 participants

Comments