/* * This file is part of smolbote. It's copyrighted by the contributors recorded * in the version control history of the file, available from its original * location: https://neueland.iserlohn-fortress.net/smolbote.hg * * SPDX-License-Identifier: GPL-3.0 */ #ifndef SMOLBOTE_PROFILEMANAGER_H #define SMOLBOTE_PROFILEMANAGER_H #include #include #include typedef QMapIterator ProfileIterator; #define profileManager ProfileManager::instance() class WebProfile; class ProfileManager : public QObject { Q_OBJECT public: struct Profile { QString id; WebProfile *profile = nullptr; }; explicit ProfileManager(const QHash &profileSection, QObject *parent = nullptr); static void setInstance(ProfileManager *instance); static ProfileManager *instance(); WebProfile *loadProfile(const QString &path); const QString id(WebProfile *profile); WebProfile *profile(const QString &id); const QMap& profileList(); private: QMap profiles; static ProfileManager *s_instance; const QHash defaults; }; #endif // SMOLBOTE_PROFILEMANAGER_H