mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2024-10-01 01:26:01 -04:00
Use length of existing password for the password generator (#2318)
Add optional length parameter to PasswordGeneratorWidget::reset() (default=0), which when >0 sets the legth SpinBox's value to the value passed in. The EditEntryWidget already called reset() when the password was known, so the current length was just added to this call (accounts for empty passwords) If entry edit is cancelled, return the password generator length to the application default or last committed length if available. This is done by calling reseting the password generator in EditEntryWidget::cancel() when the edit page is being closed Fixes #2180
This commit is contained in:
parent
e7c5e17a8e
commit
d4112fe2bf
@ -179,9 +179,15 @@ void PasswordGeneratorWidget::saveSettings()
|
|||||||
config()->set("generator/Type", m_ui->tabWidget->currentIndex());
|
config()->set("generator/Type", m_ui->tabWidget->currentIndex());
|
||||||
}
|
}
|
||||||
|
|
||||||
void PasswordGeneratorWidget::reset()
|
void PasswordGeneratorWidget::reset(int length)
|
||||||
{
|
{
|
||||||
m_ui->editNewPassword->setText("");
|
m_ui->editNewPassword->setText("");
|
||||||
|
if (length > 0) {
|
||||||
|
m_ui->spinBoxLength->setValue(length);
|
||||||
|
} else {
|
||||||
|
m_ui->spinBoxLength->setValue(config()->get("generator/Length", PasswordGenerator::DefaultLength).toInt());
|
||||||
|
}
|
||||||
|
|
||||||
setStandaloneMode(false);
|
setStandaloneMode(false);
|
||||||
setPasswordVisible(config()->get("security/passwordscleartext").toBool());
|
setPasswordVisible(config()->get("security/passwordscleartext").toBool());
|
||||||
updateGenerator();
|
updateGenerator();
|
||||||
|
@ -48,7 +48,7 @@ public:
|
|||||||
~PasswordGeneratorWidget();
|
~PasswordGeneratorWidget();
|
||||||
void loadSettings();
|
void loadSettings();
|
||||||
void saveSettings();
|
void saveSettings();
|
||||||
void reset();
|
void reset(int length = 0);
|
||||||
void setStandaloneMode(bool standalone);
|
void setStandaloneMode(bool standalone);
|
||||||
QString getGeneratedPassword();
|
QString getGeneratedPassword();
|
||||||
bool isPasswordVisible() const;
|
bool isPasswordVisible() const;
|
||||||
|
@ -681,7 +681,7 @@ void EditEntryWidget::setForms(const Entry* entry, bool restore)
|
|||||||
m_mainUi->notesHint->setVisible(config()->get("security/hidenotes").toBool());
|
m_mainUi->notesHint->setVisible(config()->get("security/hidenotes").toBool());
|
||||||
m_mainUi->togglePasswordGeneratorButton->setChecked(false);
|
m_mainUi->togglePasswordGeneratorButton->setChecked(false);
|
||||||
m_mainUi->togglePasswordGeneratorButton->setDisabled(m_history);
|
m_mainUi->togglePasswordGeneratorButton->setDisabled(m_history);
|
||||||
m_mainUi->passwordGenerator->reset();
|
m_mainUi->passwordGenerator->reset(entry->password().length());
|
||||||
|
|
||||||
m_advancedUi->attachmentsWidget->setReadOnly(m_history);
|
m_advancedUi->attachmentsWidget->setReadOnly(m_history);
|
||||||
m_advancedUi->addAttributeButton->setEnabled(!m_history);
|
m_advancedUi->addAttributeButton->setEnabled(!m_history);
|
||||||
@ -934,6 +934,7 @@ void EditEntryWidget::cancel()
|
|||||||
QMessageBox::Cancel | QMessageBox::Save | QMessageBox::Discard,
|
QMessageBox::Cancel | QMessageBox::Save | QMessageBox::Discard,
|
||||||
QMessageBox::Cancel);
|
QMessageBox::Cancel);
|
||||||
if (result == QMessageBox::Cancel) {
|
if (result == QMessageBox::Cancel) {
|
||||||
|
m_mainUi->passwordGenerator->reset();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (result == QMessageBox::Save) {
|
if (result == QMessageBox::Save) {
|
||||||
|
Loading…
Reference in New Issue
Block a user