diff options
Diffstat (limited to 'src/forms/profiledialog.cpp')
-rw-r--r-- | src/forms/profiledialog.cpp | 63 |
1 files changed, 58 insertions, 5 deletions
diff --git a/src/forms/profiledialog.cpp b/src/forms/profiledialog.cpp index b485419..286d85c 100644 --- a/src/forms/profiledialog.cpp +++ b/src/forms/profiledialog.cpp @@ -2,6 +2,9 @@ #include "ui_profiledialog.h" #include <QLineEdit> +#include <QPlainTextEdit> +#include <QComboBox> +#include <QPushButton> ProfileDialog::ProfileDialog(QWebEngineProfile *profile, QWidget *parent) : QDialog(parent), @@ -10,11 +13,29 @@ ProfileDialog::ProfileDialog(QWebEngineProfile *profile, QWidget *parent) : _profile = profile; ui->setupUi(this); - ui->userAgent_lineEdit->setText(_profile->httpUserAgent()); + + // http + ui->userAgent->setPlainText(_profile->httpUserAgent()); + ui->acceptLanguage->setPlainText(_profile->httpAcceptLanguage()); + ui->cacheType->setCurrentIndex(_profile->httpCacheType()); + ui->cacheSize->setText(QString::number(_profile->httpCacheMaximumSize())); + + // path ui->storagePath_lineEdit->setText(_profile->persistentStoragePath()); ui->cachePath_lineEdit->setText(_profile->cachePath()); - connect(this, SIGNAL(accepted()), this, SLOT(saveProfile())); + // policy + ui->cookiePolicy->setCurrentIndex(_profile->persistentCookiesPolicy()); + + // actions + connect(ui->clearCache_pushButton, &QPushButton::clicked, [this]() { + this->_profile->clearHttpCache(); + }); + connect(ui->clearHistory_pushButton, &QPushButton::clicked, [this]() { + this->_profile->clearAllVisitedLinks(); + }); + + connect(this, SIGNAL(accepted()), this, SLOT(updateProfile())); } ProfileDialog::~ProfileDialog() @@ -22,8 +43,40 @@ ProfileDialog::~ProfileDialog() delete ui; } -void ProfileDialog::saveProfile() +void ProfileDialog::updateProfile() { - qDebug("Saving profile..."); - _profile->setHttpUserAgent(ui->userAgent_lineEdit->text()); + qDebug("Updating profile..."); + + // http + _profile->setHttpUserAgent(ui->userAgent->toPlainText()); + _profile->setHttpAcceptLanguage(ui->acceptLanguage->toPlainText()); + switch (ui->cacheType->currentIndex()) { + case 0: + _profile->setHttpCacheType(QWebEngineProfile::MemoryHttpCache); + break; + case 1: + _profile->setHttpCacheType(QWebEngineProfile::DiskHttpCache); + break; + case 2: + _profile->setHttpCacheType(QWebEngineProfile::NoCache); + break; + default: + break; + } + _profile->setHttpCacheMaximumSize(ui->cacheSize->text().toInt()); + + // policy + switch (ui->cookiePolicy->currentIndex()) { + case 0: + _profile->setPersistentCookiesPolicy(QWebEngineProfile::NoPersistentCookies); + break; + case 1: + _profile->setPersistentCookiesPolicy(QWebEngineProfile::AllowPersistentCookies); + break; + case 2: + _profile->setPersistentCookiesPolicy(QWebEngineProfile::ForcePersistentCookies); + break; + default: + break; + } } |