mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-04 08:36:52 +08:00
* relative cache/settings paths are available relativeFilePath * directories build in CDirectoryUtils * directory comparison in CDirectoryUtils * using CFileUtils to concatenate dir paths * using URL encoded string for normalized directory (as it can be decoded)
75 lines
2.2 KiB
C++
75 lines
2.2 KiB
C++
/* Copyright (C) 2015
|
|
* swift project Community / Contributors
|
|
*
|
|
* This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level
|
|
* directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project,
|
|
* including this file, may be copied, modified, propagated, or distributed except according to the terms
|
|
* contained in the LICENSE file.
|
|
*/
|
|
|
|
#include "blackmisc/directoryutils.h"
|
|
#include "blackmisc/logmessage.h"
|
|
#include "blackmisc/settingscache.h"
|
|
|
|
#include <QStandardPaths>
|
|
|
|
namespace BlackMisc
|
|
{
|
|
CSettingsCache::CSettingsCache()
|
|
{}
|
|
|
|
CSettingsCache *CSettingsCache::instance()
|
|
{
|
|
static CSettingsCache cache;
|
|
return &cache;
|
|
}
|
|
|
|
const QString &CSettingsCache::persistentStore()
|
|
{
|
|
static const QString dir = CFileUtils::appendFilePaths(getCacheRootDirectory(), relativeFilePath());
|
|
return dir;
|
|
}
|
|
|
|
BlackMisc::CStatusMessage CSettingsCache::saveToStore(const QString &keyPrefix)
|
|
{
|
|
return saveToFiles(persistentStore(), keyPrefix);
|
|
}
|
|
|
|
BlackMisc::CStatusMessage CSettingsCache::saveToStore(const QStringList &keys)
|
|
{
|
|
return saveToFiles(persistentStore(), keys);
|
|
}
|
|
|
|
void CSettingsCache::enableLocalSave()
|
|
{
|
|
connect(CSettingsCache::instance(), &CSettingsCache::valuesSaveRequested, CSettingsCache::instance(), &CSettingsCache::saveToStoreByPacket);
|
|
}
|
|
|
|
void CSettingsCache::saveToStoreByPacket(const CValueCachePacket &values)
|
|
{
|
|
CStatusMessage status = saveToFiles(persistentStore(), values.toVariantMap());
|
|
CLogMessage::preformatted(status);
|
|
}
|
|
|
|
BlackMisc::CStatusMessage CSettingsCache::loadFromStore()
|
|
{
|
|
return loadFromFiles(persistentStore());
|
|
}
|
|
|
|
QString CSettingsCache::filenameForKey(const QString &key)
|
|
{
|
|
return CFileUtils::appendFilePaths(persistentStore(), CValueCache::filenameForKey(key));
|
|
}
|
|
|
|
const QString CSettingsCache::relativeFilePath()
|
|
{
|
|
static const QString p("/settings/core");
|
|
return p;
|
|
}
|
|
|
|
QStringList CSettingsCache::enumerateStore() const
|
|
{
|
|
return enumerateFiles(persistentStore());
|
|
}
|
|
}
|