diff --git a/src/browser/BrowserService.cpp b/src/browser/BrowserService.cpp index 97b8fea42..9e2b86cb3 100644 --- a/src/browser/BrowserService.cpp +++ b/src/browser/BrowserService.cpp @@ -31,6 +31,7 @@ #include "core/Metadata.h" #include "core/Uuid.h" #include "core/PasswordGenerator.h" +#include "gui/MainWindow.h" // de887cc3-0363-43b8-974b-5911b8816224 @@ -60,11 +61,8 @@ bool BrowserService::isDatabaseOpened() const return false; } - if (dbWidget->currentMode() == DatabaseWidget::ViewMode || dbWidget->currentMode() == DatabaseWidget::EditMode) { - return true; - } + return dbWidget->currentMode() == DatabaseWidget::ViewMode || dbWidget->currentMode() == DatabaseWidget::EditMode; - return false; } bool BrowserService::openDatabase() @@ -82,7 +80,8 @@ bool BrowserService::openDatabase() return true; } - m_dbTabWidget->activateWindow(); + KEEPASSXC_MAIN_WINDOW->bringToFront(); + return false; } @@ -174,29 +173,38 @@ QString BrowserService::storeKey(const QString& key) Entry* config = getConfigEntry(true); if (!config) { - return QString(); + return {}; } - bool contains = false; + bool contains; QMessageBox::StandardButton dialogResult = QMessageBox::No; do { - bool ok = false; - id = QInputDialog::getText(0, tr("KeePassXC: New key association request"), - tr("You have received an association " - "request for the above key.\n" - "If you would like to allow it access " - "to your KeePassXC database,\n" - "give it a unique name to identify and accept it."), - QLineEdit::Normal, QString(), &ok); - if (!ok || id.isEmpty()) { - return QString(); + QInputDialog keyDialog; + keyDialog.setWindowTitle(tr("KeePassXC: New key association request")); + keyDialog.setLabelText(tr("You have received an association request for the above key.\n\n" + "If you would like to allow it access to your KeePassXC database,\n" + "give it a unique name to identify and accept it.")); + keyDialog.setOkButtonText(tr("Save and allow access")); + keyDialog.show(); + keyDialog.activateWindow(); + keyDialog.raise(); + auto ok = keyDialog.exec(); + + id = keyDialog.textValue(); + + if (ok != QDialog::Accepted || id.isEmpty()) { + return {}; } contains = config->attributes()->contains(QLatin1String(ASSOCIATE_KEY_PREFIX) + id); - dialogResult = QMessageBox::warning(0, tr("KeePassXC: Overwrite existing key?"), - tr("A shared encryption key with the name \"%1\" already exists.\nDo you want to overwrite it?").arg(id), - QMessageBox::Yes | QMessageBox::No); + if (contains) { + dialogResult = QMessageBox::warning(nullptr, tr("KeePassXC: Overwrite existing key?"), + tr("A shared encryption key with the name \"%1\" " + "already exists.\nDo you want to overwrite it?") + .arg(id), + QMessageBox::Yes | QMessageBox::No); + } } while (contains && dialogResult == QMessageBox::No); config->attributes()->set(QLatin1String(ASSOCIATE_KEY_PREFIX) + id, key, true); diff --git a/src/browser/HostInstaller.cpp b/src/browser/HostInstaller.cpp index bbb5fb6f5..9271da69e 100644 --- a/src/browser/HostInstaller.cpp +++ b/src/browser/HostInstaller.cpp @@ -28,8 +28,7 @@ const QString HostInstaller::HOST_NAME = "org.keepassxc.keepassxc_browser"; const QStringList HostInstaller::ALLOWED_ORIGINS = QStringList() << "chrome-extension://iopaggbpplllidnfmcghoonnokmjoicf/" - << "chrome-extension://fhakpkpdnjecjfceboihdjpfmgajebii/" - << "chrome-extension://jaikbblhommnkeialomogohhdlndpfbi/"; + << "chrome-extension://oboonakemofpalcgghocfoadofidjkkk/"; const QStringList HostInstaller::ALLOWED_EXTENSIONS = QStringList() << "keepassxc-browser@keepassxc.org";