/* *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 . */ #ifndef ASTANDARDPATHS_H #define ASTANDARDPATHS_H #include #include #include #include /*! * \brief The AStandardAppPaths class encapsulates a static QHash holding * the standard paths of the application. */ class AStandardPaths{ public: enum Directories { Database, Templates, Backup, Log, JSON }; private: static QHash directories; /*! * \brief Ensures the standard app directories exists and creates * them if neccessary. */ static bool scan_directories(); public: /*! * \brief Creates and verifies a static map of the standard paths used in the app. */ static bool setup(); /*! * \brief Returns the QDir for the standard directory referenced * by the Directories enum 'loc' */ static const QDir &directory(Directories location); /*! * \brief Returns a string of the absolute path to directory location concatenated with filename */ static const QString asChildOfDir(Directories location, const QString& filename); /*! * \brief returns the static map of all standard directories * \return static const QHash */ static const QHash &allDirectories(); }; #endif // ASTANDARDPATHS_H