Keepassxc: Allow to choose database from unlock dialog for Auto-Type and Browser [$150]

Created on 25 Sep 2018  路  10Comments  路  Source: keepassxreboot/keepassxc

Current Behavior

if you have several databases and press your global auto-type key, keepassxc tries to find the password in the currently unlocked databases or asks you to unlock the last database. Consider having several databases (like private/work, or several project-keepass-files). If you press the global autot-type key, you manually have to unlock the database where the password is stored in.

Possible Solution

All Cases occur after the global auto-key is pressed

Case 1: All databases are locked

Ask which database to unlock (or display the password-filed for opening and give the user a possibility to switch to another db)
case1

Case 2: A database is unlocked but password is not found

Display the currently unlocked DBs If autotype is pressed, ask the user if another database should be unlocked
case2

Case 3: A database is unlocked, some password is found

Give the user the possibility to unlock another DB.
case3

Operating system: Linux (but I expect everywhere)

bounty Auto-Type ux

Most helpful comment

All 10 comments

Very comprehensive, thank you! I could have swore this was reported before, but I cannot find it.

@droidmonkey @phoerious is it possible to put a bounty on individual issue? I would like to donate some money for this particular thing.

I think that would be reasonable. This feature has been sitting on the back burner for far too long.

Yup I'll throw $100 on it. This is a fair amount of work and that might entice someone. I need to seed some more bounties around here.

Added $50 to the bounty

@droidmonkey @phoerious what might an implementation of this feature look like, especially considering the changes in 2.6.0 which use this for unlocking via browser?

Personally, I like switching between tab pages because they respond to Ctrl-PageUp/PageDown shortcuts which I have bound to mouse buttons and that makes switching just a single click. Other designs could be a drop-down list or some other sort of list on the unlock dialog.

Currently, it looks like a DatabaseOpenDialog is tied to each DatabaseTabWidget and thus one database, so it might require more refactoring than I first expected to be able to present multiple database options in the unlock dialog. Could DatabaseOpenDialog be made more generic and accept a list of DatabaseWidget pointers and it can create a series of tabs that switch between a DatabaseOpenWidget for each?

I'd love to hack on this and come up with an implementation (if nobody else is taking on the challenge) but am having trouble knowing the best place to start.

To me this looks like a simple drop down choice above the credential fields to choose the database you want

UX design question: are there any objections to setting setWindowModality(Qt::ApplicationModal) in the DatabaseOpenDialog constructor?

When the open dialog is a non-modal window, the main UI can still be open and arbitrarily interacted with, including opening/closing/locking/unlocking databases that the open dialog may be targeting. Making DatabaseOpenDialog modal blocks input to the main application, eliminating a big set of corner cases.

(Actually handling those corner cases is possible, but involves setting up quite a few signals between DatabaseOpenDialog and its parent DatabaseTabWidget and the code gets a bit messy)

The whole sequence needs refactoring and requires careful handling.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

813gan picture 813gan  路  3Comments

shyim picture shyim  路  3Comments

2tbwXj46BDbdNBRV79DS picture 2tbwXj46BDbdNBRV79DS  路  3Comments

nfnty picture nfnty  路  3Comments

haroldm picture haroldm  路  3Comments