mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-07-23 15:00:47 -04:00
Add database name, color, and icon options for unlock view (#10819)
Closes #10783 Adds three database configuration options (stored as public custom data) that allow a database to have a public name/summary, color, and/or icon to be displayed on the unlock screen. This information is configured in the Database Settings and stored in the database public custom data (ie, unencrypted). The name/summary is stored in KPXC_PUBLIC_NAME, the color is stored in KPXC_PUBLIC_COLOR, and the icon is stored in KPXC_PUBLIC_ICON. --------- Co-authored-by: Jonathan White <support@dmapps.us>
This commit is contained in:
parent
36ec1aa35b
commit
0731a64957
10 changed files with 437 additions and 32 deletions
|
@ -82,7 +82,6 @@ DatabaseOpenWidget::DatabaseOpenWidget(QWidget* parent)
|
|||
font.setPointSize(font.pointSize() + 4);
|
||||
font.setBold(true);
|
||||
m_ui->labelHeadline->setFont(font);
|
||||
m_ui->labelHeadline->setText(tr("Unlock KeePassXC Database"));
|
||||
|
||||
m_ui->quickUnlockButton->setFont(font);
|
||||
m_ui->quickUnlockButton->setIcon(
|
||||
|
@ -235,6 +234,31 @@ void DatabaseOpenWidget::load(const QString& filename)
|
|||
m_filename = filename;
|
||||
m_ui->fileNameLabel->setRawText(m_filename);
|
||||
|
||||
// Set the public name if defined
|
||||
auto label = tr("Unlock KeePassXC Database");
|
||||
if (!m_db->publicName().isEmpty()) {
|
||||
label.append(QString(": %1").arg(m_db->publicName()));
|
||||
}
|
||||
m_ui->labelHeadline->setText(label);
|
||||
|
||||
// Apply the public color to the central unlock stack if defined
|
||||
auto color = m_db->publicColor();
|
||||
if (!color.isEmpty()) {
|
||||
m_ui->centralStack->setStyleSheet(QString("QStackedWidget {border: 4px solid %1}").arg(color));
|
||||
} else {
|
||||
m_ui->centralStack->setStyleSheet("");
|
||||
}
|
||||
|
||||
// Show the database icon if defined
|
||||
auto iconIndex = m_db->publicIcon();
|
||||
if (iconIndex >= 0 && iconIndex < databaseIcons()->count()) {
|
||||
m_ui->dbIconLabel->setPixmap(databaseIcons()->icon(iconIndex, IconSize::Large));
|
||||
m_ui->dbIconLabel->setVisible(true);
|
||||
} else {
|
||||
m_ui->dbIconLabel->setPixmap({});
|
||||
m_ui->dbIconLabel->setVisible(false);
|
||||
}
|
||||
|
||||
if (config()->get(Config::RememberLastKeyFiles).toBool()) {
|
||||
auto lastKeyFiles = config()->get(Config::LastKeyFiles).toHash();
|
||||
if (lastKeyFiles.contains(m_filename)) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue