aboutsummaryrefslogtreecommitdiff
path: root/src/WindowMediator.cpp
blob: fa9a25e83df5d147150e24e785ee78ba7edab993 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <QList>
#include <QWidget>
#include <QtCore>
#include <qwebengineprofile.h>

#include "WindowMediator.hpp"
#include "widgets/WebViewStack.hpp"

WindowMediator::WindowMediator(WebViewStack *webview_stack) : webview_stack(webview_stack) {
  connect(webview_stack, &WebViewStack::new_window_requested, this,
          &WindowMediator::new_window_requested);
  connect(webview_stack, &WebViewStack::close_window_requested, this,
          &WindowMediator::close_window_requested);
}

void WindowMediator::update_user_agent(const QString &user_agent) {
  auto *profile = webview_stack->get_profile();
  profile->setHttpUserAgent(user_agent);
}

void WindowMediator::update_downloads_dir(const QString &downloads_dir) {
  auto *profile = webview_stack->get_profile();
  profile->setDownloadPath(downloads_dir);
}

void WindowMediator::update_permissions_persistance(const QString &persistance) {
  auto *profile = webview_stack->get_profile();
  auto persistance_policy = Configuration::to_permission_persistance_policy(persistance);
  profile->setPersistentPermissionsPolicy(persistance_policy);
}

WindowMediator::~WindowMediator() {
  disconnect(this);
  delete webview_stack;
}