aboutsummaryrefslogtreecommitdiff
path: root/src/webengine/webprofilemanager.cpp
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2020-01-05 10:55:56 +0200
committerAqua-sama <aqua@iserlohn-fortress.net>2020-01-05 14:59:10 +0200
commit7918bce1422fb217b59131111c6fb1ccdf52ddc4 (patch)
tree369fce128f1b021c0c88455039c0011a2014b9d7 /src/webengine/webprofilemanager.cpp
parentDisable plugins as broken (diff)
downloadsmolbote-7918bce1422fb217b59131111c6fb1ccdf52ddc4.tar.xz
Code cleanup
- Replace Browser::getProfileManager with WebProfileManager::instance - Make WebProfileManager::profileMenu a free function - Replace Browser::loadProfile with Browser::loadProfiles
Diffstat (limited to 'src/webengine/webprofilemanager.cpp')
-rw-r--r--src/webengine/webprofilemanager.cpp44
1 files changed, 33 insertions, 11 deletions
diff --git a/src/webengine/webprofilemanager.cpp b/src/webengine/webprofilemanager.cpp
index 2fe6222..80762f7 100644
--- a/src/webengine/webprofilemanager.cpp
+++ b/src/webengine/webprofilemanager.cpp
@@ -12,6 +12,17 @@
#include <QFileInfo>
#include <QWebEngineSettings>
+static WebProfileManager *s_instance = nullptr;
+
+auto WebProfileManager::instance() -> const WebProfileManager *
+{
+ return s_instance;
+}
+void WebProfileManager::setInstance(WebProfileManager *ptr)
+{
+ s_instance = ptr;
+}
+
WebProfileManager::WebProfileManager(QObject *parent)
: QObject(parent)
{
@@ -37,11 +48,21 @@ WebProfileManager::~WebProfileManager()
}
}
-WebProfile *WebProfileManager::profile(const QString &id, const QString &path, bool isOffTheRecord)
+WebProfile *WebProfileManager::profile(const QString &id) const
{
// Check if profile exists
- if(profiles.contains(id))
+ if(profiles.contains(id)) {
return profiles.value(id).ptr;
+ }
+
+ return nullptr;
+}
+
+WebProfile *WebProfileManager::add(const QString &id, const QString &path, bool isOffTheRecord)
+{
+ if(profiles.contains(id)) {
+ return nullptr;
+ }
Configuration conf;
Profile profile;
@@ -52,12 +73,13 @@ WebProfile *WebProfileManager::profile(const QString &id, const QString &path, b
profile.settings = new QSettings;
// QWebEngineCore cleans up profiles automatically, so no need to set parent
- profile.ptr = [id, isOffTheRecord, profile]() {
- if(profile.settings->value("otr", isOffTheRecord).toBool())
- return new WebProfile(/* name */ profile.settings->value("name", id).toString(), /* parent */ nullptr);
- else
- return new WebProfile(/* storageName */ id, /* name */ profile.settings->value("name", id).toString(), /* parent */ nullptr);
- }();
+ if(profile.settings->value("otr", isOffTheRecord).toBool()) {
+ // name parent
+ profile.ptr = new WebProfile(profile.settings->value("name", id).toString(), nullptr);
+ } else {
+ // storageName name parent
+ profile.ptr = new WebProfile(id, profile.settings->value("name", id).toString(), nullptr);
+ }
profile.settings->setParent(profile.ptr);
@@ -133,12 +155,12 @@ void WebProfileManager::deleteProfile(const QString &id)
}
}
-void WebProfileManager::profileMenu(QMenu *menu, const std::function<void(WebProfile *)> &callback, WebProfile *current, bool checkable) const
+void profileMenu(QMenu *menu, const std::function<void(WebProfile *)> &callback, WebProfile *current, bool checkable)
{
auto *group = new QActionGroup(menu);
- connect(menu, &QMenu::aboutToHide, group, &QActionGroup::deleteLater);
+ QObject::connect(menu, &QMenu::aboutToHide, group, &QActionGroup::deleteLater);
- for(const auto &profile : profiles) {
+ for(const auto &profile : s_instance->profiles) {
auto *action = menu->addAction(profile.ptr->name(), profile.ptr, [profile, callback]() {
callback(profile.ptr);
});