Minor UI fixes

* Fixes #11044 - password generator excluded characters tooltip was incorrect

* Fixes #11084 - allow more than 30 days for showing expiring passwords. Also fix the ability to properly translate this control.

* Fixes #11212 - don't show password on creating new database

* Fixes #10726 - improve indication of hardware key polling. Also improve layout spacing of unlock dialog.

* Fixes #11142 - provide better link for challenge-response information
This commit is contained in:
Jonathan White 2024-10-01 09:36:05 -04:00
parent 3fde6aae45
commit ba0fc3b886
7 changed files with 41 additions and 59 deletions

View File

@ -282,25 +282,6 @@
<source>Include beta releases when checking for updates</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>On database unlock, show entries that </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>have expired</source>
<comment>On database unlock, show entries that...</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source> days</source>
<comment>On database unlock, show entries that will expire within %1 days</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>will expire within </source>
<comment>On database unlock, show entries that...</comment>
<translation type="unfinished"></translation>
</message>
<message>
<source>File Management</source>
<translation type="unfinished"></translation>
@ -507,6 +488,19 @@
<source>Remember last typed entry for:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>On database unlock, show entries that will expire within</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>On database unlock, show entries that will expire within </source>
<translation type="unfinished"></translation>
</message>
<message>
<source> days</source>
<comment>number of days warning for password expiration</comment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ApplicationSettingsWidgetSecurity</name>
@ -6788,10 +6782,6 @@ The following data is missing:
<source>Also choose from:</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Excluded characters: &quot;0&quot;, &quot;1&quot;, &quot;l&quot;, &quot;I&quot;, &quot;O&quot;, &quot;|&quot;, &quot;&quot;</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Exclude look-alike characters</source>
<translation type="unfinished"></translation>
@ -6949,6 +6939,10 @@ Do you want to overwrite it?</source>
<source>Characters: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Excluded characters: &quot;0&quot;, &quot;1&quot;, &quot;l&quot;, &quot;I&quot;, &quot;O&quot;, &quot;|&quot;, &quot;&quot;, &quot;B&quot;, &quot;8&quot;, &quot;G&quot;, &quot;6&quot;</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PasswordWidget</name>
@ -10136,11 +10130,11 @@ Example: JBSWY3DPEHPK3PXP</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>&lt;p&gt;If you own a &lt;a href=&quot;https://www.yubico.com/&quot;&gt;YubiKey&lt;/a&gt; or &lt;a href=&quot;https://onlykey.io&quot;&gt;OnlyKey&lt;/a&gt;, you can use it for additional security.&lt;/p&gt;&lt;p&gt;The key requires one of its slots to be programmed as &lt;a href=&quot;https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html&quot;&gt;HMAC-SHA1 Challenge-Response&lt;/a&gt;.&lt;/p&gt;</source>
<source>Refresh hardware keys</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Refresh hardware keys</source>
<source>&lt;p&gt;If you own a &lt;a href=&quot;https://www.yubico.com/&quot;&gt;YubiKey&lt;/a&gt; or &lt;a href=&quot;https://onlykey.io&quot;&gt;OnlyKey&lt;/a&gt;, you can use it for additional security.&lt;/p&gt;&lt;p&gt;The key requires one of its slots to be programmed with &lt;a href=&quot;https://keepassxc.org/docs/#faq-yubikey-howto&quot;&gt;Challenge-Response&lt;/a&gt;.&lt;/p&gt;</source>
<translation type="unfinished"></translation>
</message>
</context>

View File

@ -278,7 +278,7 @@
<item row="0" column="0">
<widget class="QCheckBox" name="showExpiredEntriesOnDatabaseUnlockCheckBox">
<property name="text">
<string>On database unlock, show entries that </string>
<string>On database unlock, show entries that will expire within</string>
</property>
</widget>
</item>
@ -297,25 +297,19 @@
<enum>Qt::StrongFocus</enum>
</property>
<property name="accessibleName">
<string>On database unlock, show entries that </string>
</property>
<property name="specialValueText">
<string comment="On database unlock, show entries that...">have expired</string>
<string>On database unlock, show entries that will expire within </string>
</property>
<property name="suffix">
<string comment="On database unlock, show entries that will expire within %1 days"> days</string>
</property>
<property name="prefix">
<string comment="On database unlock, show entries that...">will expire within </string>
<string comment="number of days warning for password expiration"> days</string>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>30</number>
<number>90</number>
</property>
<property name="value">
<number>0</number>
<number>3</number>
</property>
</widget>
</item>

View File

@ -253,6 +253,7 @@ void DatabaseOpenWidget::clearForms()
m_ui->keyFileLineEdit->setShowPassword(false);
m_ui->keyFileLineEdit->setClearButtonEnabled(true);
m_ui->hardwareKeyCombo->clear();
toggleHardwareKeyComponent(false);
toggleQuickUnlockScreen();
m_db.reset(new Database(m_filename));
@ -497,6 +498,7 @@ void DatabaseOpenWidget::pollHardwareKey(bool manualTrigger)
}
m_ui->hardwareKeyCombo->setEnabled(false);
m_ui->useHardwareKeyCheckBox->setEnabled(false);
m_ui->hardwareKeyProgress->setVisible(true);
m_ui->refreshHardwareKeys->setEnabled(false);
m_ui->noHardwareKeysFoundLabel->setVisible(false);
@ -511,6 +513,7 @@ void DatabaseOpenWidget::pollHardwareKey(bool manualTrigger)
void DatabaseOpenWidget::hardwareKeyResponse(bool found)
{
m_ui->useHardwareKeyCheckBox->setEnabled(true);
m_ui->hardwareKeyProgress->setVisible(false);
m_ui->refreshHardwareKeys->setEnabled(true);
m_ui->hardwareKeyCombo->clear();

View File

@ -59,6 +59,7 @@
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
@ -143,7 +144,7 @@
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
<number>10</number>
</property>
<item>
<widget class="QLabel" name="passwordLabel">
@ -155,7 +156,7 @@
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<property name="spacing">
<number>0</number>
<number>2</number>
</property>
<item>
<widget class="PasswordWidget" name="editPassword" native="true">
@ -213,13 +214,13 @@
<number>0</number>
</property>
<property name="topMargin">
<number>10</number>
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>15</number>
<number>10</number>
</property>
<item>
<widget class="QLabel" name="selectKeyFileLabel">
@ -362,7 +363,7 @@
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>0</height>
<height>20</height>
</size>
</property>
</spacer>
@ -417,19 +418,6 @@
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>5</height>
</size>
</property>
</spacer>
</item>
<item>
<layout class="QHBoxLayout" name="dialogButtonsLayout">
<property name="spacing">
@ -511,6 +499,7 @@
<property name="font">
<font>
<pointsize>10</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>

View File

@ -716,7 +716,10 @@ QProgressBar::chunk {
<item>
<widget class="QCheckBox" name="checkBoxExcludeAlike">
<property name="toolTip">
<string>Excluded characters: &quot;0&quot;, &quot;1&quot;, &quot;l&quot;, &quot;I&quot;, &quot;O&quot;, &quot;|&quot;, &quot;﹒&quot;</string>
<string>Excluded characters: &quot;0&quot;, &quot;1&quot;, &quot;l&quot;, &quot;I&quot;, &quot;O&quot;, &quot;|&quot;, &quot;﹒&quot;, &quot;B&quot;, &quot;8&quot;, &quot;G&quot;, &quot;6&quot;</string>
</property>
<property name="accessibleDescription">
<string>Excluded characters: &quot;0&quot;, &quot;1&quot;, &quot;l&quot;, &quot;I&quot;, &quot;O&quot;, &quot;|&quot;, &quot;﹒&quot;, &quot;B&quot;, &quot;8&quot;, &quot;G&quot;, &quot;6&quot;</string>
</property>
<property name="text">
<string>Exclude look-alike characters</string>

View File

@ -139,9 +139,9 @@ void YubiKeyEditWidget::initComponent()
m_ui->componentDescription->setText(
tr("<p>If you own a <a href=\"https://www.yubico.com/\">YubiKey</a> or "
"<a href=\"https://onlykey.io\">OnlyKey</a>, you can use it for additional security.</p>"
"<p>The key requires one of its slots to be programmed as "
"<a href=\"https://docs.yubico.com/yesdk/users-manual/application-otp/challenge-response.html\">"
"HMAC-SHA1 Challenge-Response</a>.</p>"));
"<p>The key requires one of its slots to be programmed with "
"<a href=\"https://keepassxc.org/docs/#faq-yubikey-howto\">"
"Challenge-Response</a>.</p>"));
}
void YubiKeyEditWidget::pollYubikey()

View File

@ -78,7 +78,6 @@ void DatabaseSettingsWidgetDatabaseKey::loadSettings(QSharedPointer<Database> db
if (!m_db->key() || m_db->key()->keys().isEmpty()) {
// Database has no key, we are about to add a new one
m_passwordEditWidget->changeVisiblePage(KeyComponentWidget::Page::Edit);
m_passwordEditWidget->setPasswordVisible(true);
// Focus won't work until the UI settles
QTimer::singleShot(0, m_passwordEditWidget, SLOT(setFocus()));
} else {