File indexing completed on 2024-06-02 05:24:47

0001 /*  utils/applicationstate.cpp
0002 
0003     This file is part of Kleopatra, the KDE keymanager
0004     SPDX-FileCopyrightText: 2022 g10 Code GmbH
0005     SPDX-FileContributor: Ingo Klöcker <dev@ingo-kloecker.de>
0006 
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 
0010 #include <config-kleopatra.h>
0011 
0012 #include "applicationstate.h"
0013 
0014 #include <KConfigGroup>
0015 #include <KSharedConfig>
0016 
0017 #include <QFileInfo>
0018 #include <QStandardPaths>
0019 
0020 QString ApplicationState::lastUsedExportDirectory()
0021 {
0022     QString ret;
0023     const KConfigGroup stateConfig{KSharedConfig::openStateConfig(), QLatin1StringView("Export")};
0024     ret = stateConfig.readEntry("LastDirectory");
0025     if (ret.isEmpty()) {
0026         // try the normal config for backward compatibility
0027         const KConfigGroup config{KSharedConfig::openConfig(), QLatin1StringView("ExportDialog")};
0028         ret = config.readEntry("LastDirectory");
0029     }
0030     return ret.isEmpty() ? QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation) : ret;
0031 }
0032 
0033 void ApplicationState::setLastUsedExportDirectory(const QString &path)
0034 {
0035     const QFileInfo fi{path};
0036     KConfigGroup stateConfig{KSharedConfig::openStateConfig(), QLatin1StringView("Export")};
0037     stateConfig.writeEntry("LastDirectory", fi.isDir() ? fi.absoluteFilePath() : fi.absolutePath());
0038 }