Page MenuHome GnuPG

No OneTemporary

diff --git a/src/utils/migration.cpp b/src/utils/migration.cpp
index a312f65b8..03496c696 100644
--- a/src/utils/migration.cpp
+++ b/src/utils/migration.cpp
@@ -1,50 +1,51 @@
// SPDX-FileCopyrightText: 2024 g10 Code GmbH
// SPDX-FileContributor: Tobias Fella <tobias.fella@gnupg.com>
// SPDX-License-Identifier: GPL-2.0-or-later
#include "utils/migration.h"
#include <KConfigGroup>
#include <KSharedConfig>
#include <QRegularExpression>
#include <QUuid>
static const QStringList groupStateIgnoredKeys = {
QStringLiteral("magic"),
};
static void migrateGroupState(const QString &configName, const QString &name)
{
const auto config = KSharedConfig::openConfig(configName);
auto groups = config->groupList().filter(QRegularExpression(QStringLiteral("^View #\\d+$")));
groups.sort();
QStringList uuids;
const auto newConfig = KSharedConfig::openStateConfig();
for (const auto &g : groups) {
auto group = KConfigGroup(config, g);
auto newGroup = KConfigGroup(newConfig, QStringLiteral("%1:View %2").arg(name, QUuid::createUuid().toString()));
for (const auto &key : group.keyList()) {
if (key == QStringLiteral("column-sizes")) {
newGroup.writeEntry("ColumnWidths", group.readEntry(key));
} else if (!groupStateIgnoredKeys.contains(key)) {
newGroup.writeEntry(key, group.readEntry(key));
}
}
newGroup.sync();
uuids += newGroup.name();
}
if (!uuids.isEmpty()) {
newConfig->group(name).writeEntry("Tabs", uuids);
}
}
void Migration::migrate()
{
auto migrations = KSharedConfig::openStateConfig()->group(QStringLiteral("Migrations"));
if (!migrations.readEntry("01-key-list-layout", false)) {
migrateGroupState({}, QStringLiteral("KeyList"));
migrateGroupState(QStringLiteral("kleopatracertificateselectiondialogrc"), QStringLiteral("CertificateSelectionDialog"));
migrations.writeEntry("01-key-list-layout", true);
+ migrations.sync();
}
}

File Metadata

Mime Type
text/x-diff
Expires
Sat, May 10, 8:26 AM (1 d, 8 h)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
de/e9/5bb9b3c99f6d11c3eadd4f4e2713

Event Timeline