diff options
Diffstat (limited to 'src/webengine')
| -rw-r--r-- | src/webengine/widgets/pagemenu.cpp | 25 | ||||
| -rw-r--r-- | src/webengine/widgets/pagemenu.h | 7 | 
2 files changed, 32 insertions, 0 deletions
| diff --git a/src/webengine/widgets/pagemenu.cpp b/src/webengine/widgets/pagemenu.cpp index c435d34..9cfeb71 100644 --- a/src/webengine/widgets/pagemenu.cpp +++ b/src/webengine/widgets/pagemenu.cpp @@ -18,11 +18,13 @@  #include <QToolButton>  #include <QVBoxLayout>  #include <QWidgetAction> +#include "browser.h"  PageMenu::PageMenu(WebView *parent)      : QMenu(tr("Page"), parent)  {      setMinimumWidth(240); +    view = parent;      auto *bookmarkAction = addAction(tr("Bookmark page"));      connect(bookmarkAction, &QAction::triggered, parent, [parent]() { @@ -89,4 +91,27 @@ PageMenu::PageMenu(WebView *parent)      }      addAction(zoomWidgetAction); +    addSeparator(); + +    loadProfile_menu = addMenu(tr("Load Profile")); +    connect(this, &PageMenu::aboutToShow, this, &PageMenu::updateLoadProfileMenu); +} + +void PageMenu::updateLoadProfileMenu() +{ +    Q_CHECK_PTR(loadProfile_menu); +    loadProfile_menu->clear(); + +    auto *browser = qobject_cast<Browser *>(qApp); +    Q_CHECK_PTR(browser); + +    for(const QString &name : browser->profiles()) { +        auto *profile = browser->profile(name); +        Q_CHECK_PTR(profile); + +        auto *profileAction = loadProfile_menu->addAction(profile->name()); +        connect(profileAction, &QAction::triggered, this, [this, profile]() { +            view->setProfile(profile); +        }); +    }  } diff --git a/src/webengine/widgets/pagemenu.h b/src/webengine/widgets/pagemenu.h index 91f35e0..23e0e20 100644 --- a/src/webengine/widgets/pagemenu.h +++ b/src/webengine/widgets/pagemenu.h @@ -17,6 +17,13 @@ class PageMenu : public QMenu      Q_OBJECT  public:      explicit PageMenu(WebView *parent = nullptr); + +private slots: +    void updateLoadProfileMenu(); + +private: +    QMenu *loadProfile_menu = nullptr; +    WebView *view = nullptr;  };  #endif //SMOLBOTE_PAGEMENU_H | 
