diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2020-04-25 22:09:13 +0300 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2020-05-26 12:50:15 +0300 |
commit | 0492a063806b6d63e4f378908b809de104a24820 (patch) | |
tree | 2e285d0c9b5067dc9395bfb751fe84bb8ac2a5f4 /src/applicationmenu.cpp | |
parent | libwebengine (diff) | |
download | smolbote-0492a063806b6d63e4f378908b809de104a24820.tar.xz |
Update ProfileEditor plugin
ProfileEditor:
- add tests
- disable read-only settings on otr profiles
Add WebProfile::setHeaders and WebProfile::setCookies
Diffstat (limited to 'src/applicationmenu.cpp')
-rw-r--r-- | src/applicationmenu.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/applicationmenu.cpp b/src/applicationmenu.cpp index b7acd57..dc888e7 100644 --- a/src/applicationmenu.cpp +++ b/src/applicationmenu.cpp @@ -13,10 +13,12 @@ #include "session/sessiondialog.h" #include "smolbote/plugininterface.hpp" #include <QPluginLoader> +#include <spdlog/spdlog.h> ApplicationMenu::ApplicationMenu(Browser *app, QWidget *parent) : QMenu(parent) { + m_app = app; setTitle(qApp->applicationName()); Configuration conf; @@ -57,11 +59,21 @@ void ApplicationMenu::addPlugin(QPluginLoader *plugin) auto *action = addAction(metadata.value("name").toString()); action->setShortcut(QKeySequence::fromString(metadata.value("shortcut").toString())); - connect(action, &QAction::triggered, this, [this, plugin]() { + connect(action, &QAction::triggered, [this, plugin]() { if(plugin->isLoaded()) { - if(const auto *interface = qobject_cast<PluginInterface *>(plugin->instance())) { - interface->createWidget(this->parentWidget())->exec(); + const auto *interface = qobject_cast<PluginInterface *>(plugin->instance()); + auto *dlg = interface->createWidget(this->parentWidget()); + + if(auto *profileDlg = dynamic_cast<ProfileDialog*>(dlg)) { + WebProfileManager mgr; + mgr.walk([profileDlg](const QString &id, WebProfile *profile, QSettings *settings) { + profileDlg->addProfile(id, profile->name(), profile, settings); + }); } + + dlg->exec(); + } else { + spdlog::warn("Trying to run unloaded plugin!"); } }); insertAction(bottom_pluginSeparator, action); |