diskmanager: save configured disk cache location

This commit is contained in:
itsmattkc
2020-08-07 19:00:09 +10:00
parent d85089f71a
commit 1b2b5d3b75
2 changed files with 32 additions and 8 deletions
+28 -8
View File
@@ -39,16 +39,18 @@ DiskManager* DiskManager::instance_ = nullptr;
DiskManager::DiskManager()
{
// Add default cache location
QFile default_disk_cache_file(QDir(FileFunctions::GetConfigurationLocation()).filePath(QStringLiteral("defaultdiskcache")));
QFile default_disk_cache_file(GetDefaultDiskCacheConfigFile());
if (default_disk_cache_file.open(QFile::ReadOnly)) {
QString default_dir = default_disk_cache_file.readAll();
if (FileFunctions::DirectoryIsValid(default_dir, true)) {
GetOpenFolder(default_dir);
} else {
QMessageBox::warning(nullptr,
tr("Disk Cache Error"),
tr("Unable to set custom application disk cache. Using default instead."));
if (!default_dir.isEmpty()) {
if (FileFunctions::DirectoryIsValid(default_dir, true)) {
GetOpenFolder(default_dir);
} else {
QMessageBox::warning(nullptr,
tr("Disk Cache Error"),
tr("Unable to set custom application disk cache. Using default instead."));
}
}
default_disk_cache_file.close();
@@ -56,7 +58,7 @@ DiskManager::DiskManager()
// If no custom default was loaded, load default
if (open_folders_.isEmpty()) {
GetOpenFolder(QDir(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation)).filePath("mediacache"));
GetOpenFolder(GetDefaultDiskCachePath());
}
QFile disk_cache_index(QDir(FileFunctions::GetConfigurationLocation()).filePath(QStringLiteral("diskcache")));
@@ -75,6 +77,14 @@ DiskManager::DiskManager()
DiskManager::~DiskManager()
{
QFile default_disk_cache_file(GetDefaultDiskCacheConfigFile());
if (default_disk_cache_file.open(QFile::WriteOnly)) {
if (GetDefaultDiskCachePath() != GetDefaultCachePath()) {
default_disk_cache_file.write(GetDefaultCachePath().toUtf8());
}
default_disk_cache_file.close();
}
}
void DiskManager::CreateInstance()
@@ -145,6 +155,16 @@ bool DiskManager::ShowDiskCacheChangeConfirmationDialog(QWidget *parent)
QMessageBox::Ok | QMessageBox::Cancel) == QMessageBox::Ok);
}
QString DiskManager::GetDefaultDiskCacheConfigFile()
{
return QDir(FileFunctions::GetConfigurationLocation()).filePath(QStringLiteral("defaultdiskcache"));
}
QString DiskManager::GetDefaultDiskCachePath()
{
return QDir(QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation)).filePath("mediacache");
}
DiskCacheFolder::DiskCacheFolder(const QString &path, QObject *parent) :
QObject(parent)
{
+4
View File
@@ -131,6 +131,10 @@ public:
static bool ShowDiskCacheChangeConfirmationDialog(QWidget* parent);
static QString GetDefaultDiskCacheConfigFile();
static QString GetDefaultDiskCachePath();
public slots:
void Accessed(const QString& cache_folder, const QByteArray& hash);