mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-07-25 15:55:38 -04:00
Fix opening files from command line
* Fix #2877 - password is unchecked by default * Smarter activation of key components based on contents of text entry fields * Prevent multiple copies of the same database from opening when the canonicalFileName != fileName
This commit is contained in:
parent
52d411f423
commit
edef225eab
4 changed files with 35 additions and 19 deletions
|
@ -45,7 +45,6 @@ DatabaseOpenWidget::DatabaseOpenWidget(QWidget* parent)
|
|||
m_ui->setupUi(this);
|
||||
|
||||
m_ui->messageWidget->setHidden(true);
|
||||
m_ui->checkPassword->setChecked(true);
|
||||
|
||||
QFont font = m_ui->labelHeadline->font();
|
||||
font.setBold(true);
|
||||
|
@ -159,7 +158,7 @@ void DatabaseOpenWidget::clearForms()
|
|||
m_ui->editPassword->setText("");
|
||||
m_ui->comboKeyFile->clear();
|
||||
m_ui->comboKeyFile->setEditText("");
|
||||
m_ui->checkPassword->setChecked(true);
|
||||
m_ui->checkPassword->setChecked(false);
|
||||
m_ui->checkKeyFile->setChecked(false);
|
||||
m_ui->checkChallengeResponse->setChecked(false);
|
||||
m_ui->checkTouchID->setChecked(false);
|
||||
|
@ -174,13 +173,8 @@ QSharedPointer<Database> DatabaseOpenWidget::database()
|
|||
|
||||
void DatabaseOpenWidget::enterKey(const QString& pw, const QString& keyFile)
|
||||
{
|
||||
if (!pw.isEmpty()) {
|
||||
m_ui->editPassword->setText(pw);
|
||||
}
|
||||
if (!keyFile.isEmpty()) {
|
||||
m_ui->comboKeyFile->setEditText(keyFile);
|
||||
}
|
||||
|
||||
m_ui->editPassword->setText(pw);
|
||||
m_ui->comboKeyFile->setEditText(keyFile);
|
||||
openDatabase();
|
||||
}
|
||||
|
||||
|
@ -339,17 +333,20 @@ void DatabaseOpenWidget::reject()
|
|||
|
||||
void DatabaseOpenWidget::activatePassword()
|
||||
{
|
||||
m_ui->checkPassword->setChecked(true);
|
||||
bool hasPassword = !m_ui->editPassword->text().isEmpty();
|
||||
m_ui->checkPassword->setChecked(hasPassword);
|
||||
}
|
||||
|
||||
void DatabaseOpenWidget::activateKeyFile()
|
||||
{
|
||||
m_ui->checkKeyFile->setChecked(true);
|
||||
bool hasKeyFile = !m_ui->comboKeyFile->lineEdit()->text().isEmpty();
|
||||
m_ui->checkKeyFile->setChecked(hasKeyFile);
|
||||
}
|
||||
|
||||
void DatabaseOpenWidget::activateChallengeResponse()
|
||||
{
|
||||
m_ui->checkChallengeResponse->setChecked(true);
|
||||
bool hasCR = m_ui->comboChallengeResponse->currentData().toInt() != -1;
|
||||
m_ui->checkChallengeResponse->setChecked(hasCR);
|
||||
}
|
||||
|
||||
void DatabaseOpenWidget::browseKeyFile()
|
||||
|
@ -372,6 +369,7 @@ void DatabaseOpenWidget::pollYubikey()
|
|||
m_ui->checkChallengeResponse->setChecked(false);
|
||||
m_ui->comboChallengeResponse->setEnabled(false);
|
||||
m_ui->comboChallengeResponse->clear();
|
||||
m_ui->comboChallengeResponse->addItem(tr("-- SELECT --"), -1);
|
||||
m_ui->yubikeyProgress->setVisible(true);
|
||||
|
||||
// YubiKey init is slow, detect asynchronously to not block the UI
|
||||
|
@ -388,6 +386,7 @@ void DatabaseOpenWidget::yubikeyDetected(int slot, bool blocking)
|
|||
QHash<QString, QVariant> lastChallengeResponse = config()->get("LastChallengeResponse").toHash();
|
||||
if (lastChallengeResponse.contains(m_filename)) {
|
||||
m_ui->checkChallengeResponse->setChecked(true);
|
||||
m_ui->comboChallengeResponse->setCurrentIndex(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue