Falkon Develop
Cross-platform Qt-based web browser
sitesettingshtml5item.cpp
Go to the documentation of this file.
1/*
2 * Falkon - Permission item for HTML5 features for preferences
3 * SPDX-FileCopyrightText: 2024 Juraj Oravec <jurajoravec@mailo.com>
4 * SPDX-License-Identifier: GPL-3.0-or-later
5 */
6
8#include "ui_sitesettingshtml5item.h"
9
10#include "mainapplication.h"
11#include "sitesettingsmanager.h"
13
14SiteSettingsHtml5Item::SiteSettingsHtml5Item(const QWebEnginePage::Feature a_feature, QWidget* parent)
15 : QWidget(parent)
16 , m_feature(a_feature)
17 , m_ui(new Ui::SiteSettingsHtml5Item)
18{
19 m_ui->setupUi(this);
20
21 m_ui->defaultPermissionCombo->addItem(
22 mApp->siteSettingsManager()->getPermissionName(SiteSettingsManager::Ask),
24 );
25 m_ui->defaultPermissionCombo->addItem(
26 mApp->siteSettingsManager()->getPermissionName(SiteSettingsManager::Allow),
28 );
29 m_ui->defaultPermissionCombo->addItem(
30 mApp->siteSettingsManager()->getPermissionName(SiteSettingsManager::Deny),
32 );
33
34 setPermission();
35 m_ui->label->setText(mApp->siteSettingsManager()->getOptionName(m_feature));
36
37 connect(m_ui->browseButton, &QPushButton::clicked, this, &SiteSettingsHtml5Item::showBrowseDialog);
38}
39
41
43{
44 QString sqlColumn = mApp->siteSettingsManager()->featureToSqlColumn(m_feature);
45 QString name = m_ui->label->text();
46
47 auto* dialog = new SiteSettingsBrowseDialog(name, sqlColumn, this);
48 dialog->open();
49}
50
51QWebEnginePage::Feature SiteSettingsHtml5Item::feature() const
52{
53 return m_feature;
54}
55
57{
58 QVariant data = m_ui->defaultPermissionCombo->currentData();
59 return data.value<SiteSettingsManager::Permission>();
60}
61
62void SiteSettingsHtml5Item::setPermission()
63{
64 auto defaultPermission = mApp->siteSettingsManager()->getDefaultPermission(m_feature);
65 int index = m_ui->defaultPermissionCombo->findData(defaultPermission);
66
67 if (index == -1) {
68 qWarning() << "Unknown permission" << defaultPermission;
69 return;
70 }
71
72 m_ui->defaultPermissionCombo->setCurrentIndex(index);
73}
SiteSettingsHtml5Item(const QWebEnginePage::Feature a_feature, QWidget *parent=nullptr)
SiteSettingsManager::Permission permission() const
QWebEnginePage::Feature feature
#define mApp