aboutsummaryrefslogtreecommitdiff
path: root/lib/web/profilemanager.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/web/profilemanager.h')
-rw-r--r--lib/web/profilemanager.h79
1 files changed, 0 insertions, 79 deletions
diff --git a/lib/web/profilemanager.h b/lib/web/profilemanager.h
deleted file mode 100644
index e0040a3..0000000
--- a/lib/web/profilemanager.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * 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/gitea/aqua/smolbote
- *
- * SPDX-License-Identifier: GPL-3.0
- */
-
-#ifndef SMOLBOTE_PROFILEMANAGER_H
-#define SMOLBOTE_PROFILEMANAGER_H
-
-#include "webprofile.h"
-#include <QDir>
-#include <QFile>
-#include <QMap>
-#include <QMenu>
-#include <QObject>
-#include <QSettings>
-#include <functional>
-#include <map>
-#include <memory>
-
-class WebProfile;
-class ProfileManager : public QObject
-{
- Q_OBJECT
-public:
- explicit ProfileManager(const QHash<QString, QString> &profileSection, QObject *parent);
-
- WebProfile *createProfile(const QString &id, bool isOffTheRecord);
- WebProfile *loadProfile(const QString &path);
- void deleteProfile(const QString &id);
-
- void profilePickerMenu(QMenu *menu, WebProfile *current, std::function<void(WebProfile *)> callback) const;
- QMenu *createProfileMenu(std::function<void(WebProfile *)> callback, QWidget *parent = nullptr) const;
-
- const QStringList idList() const;
- const QString id(const WebProfile *profile) const;
- WebProfile *profile(const QString &id) const;
-
-private:
- struct ProfileData {
- explicit ProfileData(const QString &path = QString())
- : settings(path, QSettings::IniFormat)
- {
- this->path = path;
- }
-
- ~ProfileData()
- {
- if(!deleteSelf) {
-#ifdef QT_DEBUG
- qDebug("sync %s", qUtf8Printable(settings.fileName()));
-#endif
- this->settings.sync();
- } else {
- QFile::remove(path);
-
- if(!profile->isOffTheRecord()) {
- if(!profile->persistentStoragePath().isEmpty())
- QDir(profile->persistentStoragePath()).removeRecursively();
-
- if(!profile->cachePath().isEmpty())
- QDir(profile->cachePath()).removeRecursively();
- }
- }
- }
-
- WebProfile *profile = nullptr;
- bool deleteSelf = false;
- QSettings settings;
- QString path;
- };
-
- std::map<QString, std::unique_ptr<ProfileData>> m_profiles;
- const QHash<QString, QString> defaults;
-};
-
-#endif // SMOLBOTE_PROFILEMANAGER_H