-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix renaming extension key name in Database Settings
- Loading branch information
1 parent
d57d167
commit 10786de
Showing
4 changed files
with
31 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
/* | ||
* Copyright (C) 2018 KeePassXC Team <[email protected]> | ||
* Copyright (C) 2024 KeePassXC Team <[email protected]> | ||
* | ||
* This program is free software: you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License as published by | ||
|
@@ -21,7 +21,7 @@ | |
#include "core/Global.h" | ||
|
||
const QString CustomData::LastModified = QStringLiteral("_LAST_MODIFIED"); | ||
const QString CustomData::Created = QStringLiteral("_CREATED"); | ||
const QString CustomData::Created = QStringLiteral("_CREATED_"); | ||
const QString CustomData::BrowserKeyPrefix = QStringLiteral("KPXC_BROWSER_"); | ||
const QString CustomData::BrowserLegacyKeyPrefix = QStringLiteral("Public Key: "); | ||
const QString CustomData::ExcludeFromReportsLegacy = QStringLiteral("KnownBad"); | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
/* | ||
* Copyright (C) 2022 KeePassXC Team <[email protected]> | ||
* Copyright (C) 2024 KeePassXC Team <[email protected]> | ||
* Copyright (C) 2018 Sami Vänttinen <[email protected]> | ||
* | ||
* This program is free software: you can redistribute it and/or modify | ||
|
@@ -124,7 +124,7 @@ void DatabaseSettingsWidgetBrowser::updateModel() | |
if (key.startsWith(CustomData::BrowserKeyPrefix)) { | ||
QString strippedKey = key; | ||
strippedKey.remove(CustomData::BrowserKeyPrefix); | ||
auto created = customData()->value(QString("%1_%2").arg(CustomData::Created, strippedKey)); | ||
auto created = customData()->value(getKeyWithPrefix(CustomData::Created, strippedKey)); | ||
auto createdItem = new QStandardItem(created); | ||
createdItem->setEditable(false); | ||
m_customDataModel->appendRow(QList<QStandardItem*>() | ||
|
@@ -267,18 +267,16 @@ void DatabaseSettingsWidgetBrowser::editFinished(QStandardItem* item) | |
|
||
if (itemSelectionModel) { | ||
auto indexList = itemSelectionModel->selectedRows(item->column()); | ||
if (indexList.length() > 0) { | ||
QString newValue = item->index().data().toString(); | ||
if (!indexList.isEmpty()) { | ||
auto newValue = item->index().data().toString(); | ||
|
||
// The key is edited | ||
if (item->column() == 0) { | ||
// Get the old key/value pair, remove it and replace it | ||
m_valueInEdit.insert(0, CustomData::BrowserKeyPrefix); | ||
auto tempValue = customData()->value(m_valueInEdit); | ||
newValue.insert(0, CustomData::BrowserKeyPrefix); | ||
// Update created timestamp with the new key | ||
replaceKey(CustomData::Created, m_valueInEdit, newValue); | ||
|
||
m_db->metadata()->customData()->remove(m_valueInEdit); | ||
m_db->metadata()->customData()->set(newValue, tempValue); | ||
// Get the old key/value pair, remove it and replace it | ||
replaceKey(CustomData::BrowserKeyPrefix, m_valueInEdit, newValue); | ||
} else { | ||
// Replace just the value | ||
for (const QString& key : m_db->metadata()->customData()->keys()) { | ||
|
@@ -301,3 +299,20 @@ void DatabaseSettingsWidgetBrowser::updateSharedKeyList() | |
{ | ||
updateModel(); | ||
} | ||
|
||
// Replaces a key and the created timestamp for it | ||
void DatabaseSettingsWidgetBrowser::replaceKey(const QString& prefix, | ||
const QString& oldName, | ||
const QString& newName) const | ||
{ | ||
const auto oldKey = getKeyWithPrefix(prefix, oldName); | ||
const auto newKey = getKeyWithPrefix(prefix, newName); | ||
const auto tempValue = customData()->value(oldKey); | ||
m_db->metadata()->customData()->remove(oldKey); | ||
m_db->metadata()->customData()->set(newKey, tempValue); | ||
} | ||
|
||
QString DatabaseSettingsWidgetBrowser::getKeyWithPrefix(const QString& prefix, const QString& key) const | ||
{ | ||
return QString("%1%2").arg(prefix, key); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
/* | ||
* Copyright (C) 2023 KeePassXC Team <[email protected]> | ||
* Copyright (C) 2024 KeePassXC Team <[email protected]> | ||
* Copyright (C) 2018 Sami Vänttinen <[email protected]> | ||
* | ||
* This program is free software: you can redistribute it and/or modify | ||
|
@@ -62,6 +62,8 @@ private slots: | |
private: | ||
void updateModel(); | ||
void settingsWarning(); | ||
void replaceKey(const QString& prefix, const QString& oldName, const QString& newName) const; | ||
QString getKeyWithPrefix(const QString& prefix, const QString& key) const; | ||
|
||
protected: | ||
void showEvent(QShowEvent* event) override; | ||
|