/*
*openPilotLog - A FOSS Pilot Logbook Application
*Copyright (C) 2020-2022 Felix Turowsky
*
*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
*the Free Software Foundation, either version 3 of the License, or
*(at your option) any later version.
*
*This program is distributed in the hope that it will be useful,
*but WITHOUT ANY WARRANTY; without even the implied warranty of
*MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
*GNU General Public License for more details.
*
*You should have received a copy of the GNU General Public License
*along with this program. If not, see .
*/
#include "src/classes/astandardpaths.h"
#include "src/opl.h"
QHash AStandardPaths::directories;
bool AStandardPaths::setup()
{
auto data_location = QStandardPaths::AppDataLocation;
directories = {
{Database, QDir(QStandardPaths::writableLocation(data_location))},
{Templates, QDir(QStandardPaths::writableLocation(data_location)
+ QLatin1String("/templates"))},
{Backup, QDir(QStandardPaths::writableLocation(data_location)
+ QLatin1String("/backup"))},
{Log, QDir(QStandardPaths::writableLocation(data_location)
+ QLatin1String("/log"))},
{JSON, QDir(QStandardPaths::writableLocation(data_location)
+ QLatin1String("/json"))}
};
if (scan_directories())
return true;
return false;
}
const QDir& AStandardPaths::directory(Directories location)
{
return directories[location];
}
const QString AStandardPaths::asChildOfDir(Directories location, const QString &filename)
{
return directories[location].absoluteFilePath(filename);
}
const QHash& AStandardPaths::allDirectories()
{
return directories;
}
bool AStandardPaths::scan_directories()
{
for(const auto& dir : qAsConst(directories)){
if(!dir.exists()) {
LOG << dir << "Does not exist. Creating:" << dir.absolutePath();
if (!dir.mkpath(dir.absolutePath()))
return false;
}
}
return true;
}