aboutsummaryrefslogtreecommitdiff
path: root/src/applicationmenu.cpp
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2020-04-25 22:09:13 +0300
committerAqua-sama <aqua@iserlohn-fortress.net>2020-05-26 12:50:15 +0300
commit0492a063806b6d63e4f378908b809de104a24820 (patch)
tree2e285d0c9b5067dc9395bfb751fe84bb8ac2a5f4 /src/applicationmenu.cpp
parentlibwebengine (diff)
downloadsmolbote-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.cpp18
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);