Skip to content

Major upgrade to password fields and generator#4367

Merged
droidmonkey merged 3 commits intodevelopfrom
feature/toggle-pass-kbd
Mar 9, 2020
Merged

Major upgrade to password fields and generator#4367
droidmonkey merged 3 commits intodevelopfrom
feature/toggle-pass-kbd

Conversation

@droidmonkey
Copy link
Copy Markdown
Member

@droidmonkey droidmonkey commented Feb 24, 2020

Type of change

  • ✅ Refactor (significant modification to existing code)
  • ✅ New feature (non-breaking change which adds functionality)

Description and Context

Major upgrades to the password edit widget and password generator. Placed major change to use popup password generator in separate commit for easy revert in case not desired.

Move theme detection into Application class

  • Add function to Application to quickly determine if in light or dark theme
  • Add kpxcApp symbol

Enhance password edit fields & Password Generator

  • Remove repeat password on entry edit
  • Move show/hide password and password generator buttons into the field as actions.
    • Register keyboard shortcut Ctrl+H to toggle password visibility
    • Register keyboard shortcut Ctrl+G to open the password generator
  • Cleanup code and improve interactions between elements
  • Simplify Password Generator button layout; convert advanced mode button to toggle button
    • Register keyboard shortcut Ctrl+R to refresh generated password
    • Register keyboard shortcut Ctrl+C to copy generated password to clipboard
  • Fixes Add keyboard shortcut to toggle password visibility #4120

Remove inline password generator when editing entries

  • Always use a pop-up generator to avoid cluttering the user interface and making it clear that a password is being created

Screenshots

image

image

image

image

Testing strategy

Tested extensively manually. Updated unit tests.

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]
  • ✅ My change requires a change to the documentation, and I have updated it accordingly.
  • ✅ I have added tests to cover my changes.

@droidmonkey droidmonkey added user interface pr: refactoring Pull request refactors code labels Feb 24, 2020
@droidmonkey droidmonkey added this to the v2.6.0 milestone Feb 24, 2020
@droidmonkey droidmonkey changed the title Feature/toggle pass kbd Major upgrade to password fields and generator Feb 24, 2020
@droidmonkey droidmonkey force-pushed the feature/toggle-pass-kbd branch from 52d72af to 7a79e14 Compare February 25, 2020 23:18
@droidmonkey droidmonkey marked this pull request as ready for review February 25, 2020 23:20
@droidmonkey droidmonkey force-pushed the feature/toggle-pass-kbd branch from 7a79e14 to cde473e Compare February 28, 2020 04:36
@phoerious phoerious linked an issue Mar 2, 2020 that may be closed by this pull request
@droidmonkey droidmonkey force-pushed the feature/toggle-pass-kbd branch from cde473e to 503e4b1 Compare March 7, 2020 21:50
@droidmonkey
Copy link
Copy Markdown
Member Author

Ready for final review

@droidmonkey droidmonkey requested a review from phoerious March 7, 2020 21:50
Copy link
Copy Markdown
Member

@varjolintu varjolintu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At first I wondered why the password generator suggests the same length password when using it from EditEntry widget, but that's actually quite nice. This eliminates the possibility to create a password that's too long for sites that has some limits for the length. Nice work!

Copy link
Copy Markdown
Member

@phoerious phoerious left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ASAN errors need to be fixed, rest looks good.

@droidmonkey droidmonkey force-pushed the feature/toggle-pass-kbd branch 4 times, most recently from 7f0e3b7 to ac08882 Compare March 9, 2020 02:36
* Add function to Application to quickly determine if in light or dark theme
* Add kpxcApp symbol
* Explicitly define main function for GUI tests to improve performance and use custom Application.
* Remove repeat password on entry edit
* Move show/hide password and password generator buttons into the field as actions.
* Register keyboard shortcut Ctrl+H to toggle password visibility
* Register keyboard shortcut Ctrl+G to open the password generator
* Cleanup code and improve interactions between elements
* Simplify Password Generator button layout; convert advanced mode button to toggle button
* Update GUI tests

* Fixes #4120
* Always use a pop-up generator to avoid cluttering the user interface and making it clear that a password is being created
@droidmonkey droidmonkey force-pushed the feature/toggle-pass-kbd branch from ac08882 to 16cc112 Compare March 9, 2020 02:46
@droidmonkey droidmonkey merged commit fb5173c into develop Mar 9, 2020
@droidmonkey droidmonkey deleted the feature/toggle-pass-kbd branch March 9, 2020 22:03
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]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr: refactoring Pull request refactors code user interface

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Password Generator resets when window is minimised Add keyboard shortcut to toggle password visibility

3 participants