Falkon Develop
Cross-platform Qt-based web browser
siteinfopermissionitem.cpp
Go to the documentation of this file.
1/* ============================================================
2 * Falkon - Qt web browser
3 * Copyright (C) 2022 Juraj Oravec <jurajoravec@mailo.com>
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 * ============================================================ */
18
20#include "ui_siteinfopermissionitem.h"
21#include "mainapplication.h"
22#include "sitesettingsmanager.h"
23
25: QWidget(parent)
26, m_hasOptionAsk(true)
27, m_ui(new Ui::SiteInfoPermissionItem())
28{
29 m_ui->setupUi(this);
30 setPermission(a_permission);
31}
32
34
36{
37 return m_hasOptionAsk;
38}
39
41{
42 if (m_hasOptionAsk == hasOptionAsk) {
43 return;
44 }
45
46 m_hasOptionAsk = hasOptionAsk;
47 m_ui->radioAsk->setVisible(hasOptionAsk);
48}
49
50void SiteInfoPermissionItem::setPermission(const SiteSettingsManager::Permission permission)
51{
52 m_ui->radioAllow->setChecked(false);
53 m_ui->radioAsk->setChecked(false);
54 m_ui->radioDeny->setChecked(false);
55 m_ui->radioDefault->setChecked(false);
56
57 switch (permission) {
59 m_ui->radioAllow->setChecked(true);
60 break;
62 m_ui->radioAsk->setChecked(true);
63 break;
65 m_ui->radioDeny->setChecked(true);
66 break;
68 m_ui->radioDefault->setChecked(true);
69 break;
70 default:
71 qWarning() << "Unknown permission" << permission;
72 m_ui->radioDefault->setChecked(true);
73 }
74}
75
77{
78 if (m_ui->radioAllow->isChecked()) {
80 }
81 else if (m_ui->radioAsk->isChecked()) {
83 }
84 else if (m_ui->radioDeny->isChecked()) {
86 }
87 else if (m_ui->radioDefault->isChecked()) {
89 }
90 else {
91 qWarning() << "No permission is selected";
93 }
94}
95
97{
98 return m_sqlColumn;
99}
100
101void SiteInfoPermissionItem::setDefaultPermission(SiteSettingsManager::Permission permission)
102{
105 }
106 m_ui->labelDefaultPermission->setText(mApp->siteSettingsManager()->getPermissionName(permission));
107}
108
109void SiteInfoPermissionItem::setAttribute(const QWebEngineSettings::WebAttribute &attribute)
110{
111 m_sqlColumn = mApp->siteSettingsManager()->webAttributeToSqlColumn(attribute);
112 m_ui->label->setText(mApp->siteSettingsManager()->getOptionName(attribute));
113 setDefaultPermission(mApp->siteSettingsManager()->getDefaultPermission(attribute));
114 setHasOptionAsk(false);
115}
116
117void SiteInfoPermissionItem::setFeature(const QWebEnginePage::Feature& feature)
118{
119 m_sqlColumn = mApp->siteSettingsManager()->featureToSqlColumn(feature);
120 m_ui->label->setText(mApp->siteSettingsManager()->getOptionName(feature));
121 setDefaultPermission(mApp->siteSettingsManager()->getDefaultPermission(feature));
122}
123
125{
126 m_sqlColumn = mApp->siteSettingsManager()->optionToSqlColumn(option);
127 m_ui->label->setText(mApp->siteSettingsManager()->getOptionName(option));
128 setDefaultPermission(mApp->siteSettingsManager()->getDefaultPermission(option));
129 setHasOptionAsk(false);
130}
SiteSettingsManager::Permission permission() const
void setOption(const SiteSettingsManager::PageOptions &option)
SiteInfoPermissionItem(const SiteSettingsManager::Permission &a_permission, QWidget *parent=nullptr)
void setFeature(const QWebEnginePage::Feature &feature)
void setAttribute(const QWebEngineSettings::WebAttribute &attribute)
#define mApp