diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2019-01-16 16:52:07 +0100 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2019-01-16 16:52:07 +0100 |
commit | 2a696a57abafb25978aef1af5758fe75b706d1f0 (patch) | |
tree | 9c9b3468398b16711a573e0c8b87ae2ad03100b4 /lib/web/profilemanager.h | |
parent | Rewrite lib/urlfilter (diff) | |
download | smolbote-2a696a57abafb25978aef1af5758fe75b706d1f0.tar.xz |
Rewrite lib/web to lib/webprofile
- libweb was supposed to be a general QtWebEngine wrapper, but only
turned out to do profiles and profile management. The new name should
make this more obvious.
- Renamed ProfileManager to WebProfileManager, and cut out duplicate
code.
- Temporary profiles: temporary profiles are not kept after closing the
browser.
Diffstat (limited to 'lib/web/profilemanager.h')
-rw-r--r-- | lib/web/profilemanager.h | 79 |
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 |