mirror of
https://invent.kde.org/network/falkon.git
synced 2024-09-22 02:02:10 +02:00
More work and rewrites of ideas
Signed-off-by: Juraj Oravec <jurajoravec@mailo.com>
This commit is contained in:
parent
8a07a7f724
commit
d433b2292f
|
@ -360,14 +360,14 @@ void ProfileManager::updateDatabase()
|
|||
"wa_playback_needs_gesture INTEGER DEFAULT 0,"
|
||||
"wa_webrtc_public_interface_only INTEGER DEFAULT 0,"
|
||||
|
||||
"allow_notifications INTEGER DEFAULT 0,"
|
||||
"allow_geolocation INTEGER DEFAULT 0,"
|
||||
"allow_media_audio_capture INTEGER DEFAULT 0,"
|
||||
"allow_media_video_capture INTEGER DEFAULT 0,"
|
||||
"allow_media_audio_video_capture INTEGER DEFAULT 0,"
|
||||
"allow_mouse_lock INTEGER DEFAULT 0,"
|
||||
"allow_desktop_video_capture INTEGER DEFAULT 0,"
|
||||
"allow_desktop_audio_video_capture INTEGER DEFAULT 0"
|
||||
"f_notifications INTEGER DEFAULT 0,"
|
||||
"f_geolocation INTEGER DEFAULT 0,"
|
||||
"f_media_audio_capture INTEGER DEFAULT 0,"
|
||||
"f_media_video_capture INTEGER DEFAULT 0,"
|
||||
"f_media_audio_video_capture INTEGER DEFAULT 0,"
|
||||
"f_mouse_lock INTEGER DEFAULT 0,"
|
||||
"f_desktop_video_capture INTEGER DEFAULT 0,"
|
||||
"f_desktop_audio_video_capture INTEGER DEFAULT 0"
|
||||
");"
|
||||
));
|
||||
|
||||
|
|
|
@ -76,14 +76,14 @@ CREATE TABLE site_settings (
|
|||
wa_playback_needs_gesture INTEGER DEFAULT 0,
|
||||
wa_webrtc_public_interface_only INTEGER DEFAULT 0,
|
||||
|
||||
allow_notifications INTEGER DEFAULT 0,
|
||||
allow_geolocation INTEGER DEFAULT 0,
|
||||
allow_media_audio_capture INTEGER DEFAULT 0,
|
||||
allow_media_video_capture INTEGER DEFAULT 0,
|
||||
allow_media_audio_video_capture INTEGER DEFAULT 0,
|
||||
allow_mouse_lock INTEGER DEFAULT 0,
|
||||
allow_desktop_video_capture INTEGER DEFAULT 0,
|
||||
allow_desktop_audio_video_capture INTEGER DEFAULT 0
|
||||
f_notifications INTEGER DEFAULT 0,
|
||||
f_geolocation INTEGER DEFAULT 0,
|
||||
f_media_audio_capture INTEGER DEFAULT 0,
|
||||
f_media_video_capture INTEGER DEFAULT 0,
|
||||
f_media_audio_video_capture INTEGER DEFAULT 0,
|
||||
f_mouse_lock INTEGER DEFAULT 0,
|
||||
f_desktop_video_capture INTEGER DEFAULT 0,
|
||||
f_desktop_audio_video_capture INTEGER DEFAULT 0
|
||||
);
|
||||
CREATE UNIQUE INDEX site_settings_serveruniqueindex ON site_settings (server);
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@ SiteSettingsManager::SiteSettingsManager ( QObject* parent )
|
|||
{
|
||||
loadSettings();
|
||||
|
||||
|
||||
supportedAttribute.append(QWebEngineSettings::AutoLoadImages);
|
||||
supportedAttribute.append(QWebEngineSettings::JavascriptEnabled);
|
||||
supportedAttribute.append(QWebEngineSettings::JavascriptCanOpenWindows);
|
||||
|
@ -41,7 +42,6 @@ SiteSettingsManager::SiteSettingsManager ( QObject* parent )
|
|||
supportedAttribute.append(QWebEngineSettings::PlaybackRequiresUserGesture);
|
||||
supportedAttribute.append(QWebEngineSettings::WebRTCPublicInterfacesOnly);
|
||||
|
||||
|
||||
attributesSql = QSL("SELECT ");
|
||||
|
||||
for (int i = 0; i < supportedAttribute.size(); ++i) {
|
||||
|
@ -52,6 +52,16 @@ SiteSettingsManager::SiteSettingsManager ( QObject* parent )
|
|||
}
|
||||
|
||||
attributesSql.append(QSL(" FROM site_settings WHERE server=?"));
|
||||
|
||||
|
||||
supportedFeatures.append(QWebEnginePage::Notifications);
|
||||
supportedFeatures.append(QWebEnginePage::Geolocation);
|
||||
supportedFeatures.append(QWebEnginePage::MediaAudioCapture);
|
||||
supportedFeatures.append(QWebEnginePage::MediaVideoCapture);
|
||||
supportedFeatures.append(QWebEnginePage::MediaAudioVideoCapture);
|
||||
supportedFeatures.append(QWebEnginePage::MouseLock);
|
||||
supportedFeatures.append(QWebEnginePage::DesktopVideoCapture);
|
||||
supportedFeatures.append(QWebEnginePage::DesktopAudioVideoCapture);
|
||||
}
|
||||
|
||||
SiteSettingsManager::~SiteSettingsManager() noexcept
|
||||
|
@ -97,6 +107,14 @@ void SiteSettingsManager::loadSettings()
|
|||
m_defaults[poAllowDesktopVideoCapture] = intToPermission(settings.value("allowDesktopVideoCapture", Ask).toInt());
|
||||
m_defaults[poAllowDesktopAudioVideoCapture] = intToPermission(settings.value("allowDesktopAudioVideoCapture", Ask).toInt());
|
||||
settings.endGroup();
|
||||
|
||||
|
||||
settings.beginGroup("Site-Settings-Default-Features");
|
||||
for (auto &feature : qAsConst(supportedFeatures)) {
|
||||
;
|
||||
defaultFeatures[feature] = intToPermission(settings.value(featureToSqlColumn(feature), Ask).toInt());
|
||||
}
|
||||
settings.endGroup();
|
||||
}
|
||||
|
||||
void SiteSettingsManager::saveSettings()
|
||||
|
@ -117,6 +135,13 @@ void SiteSettingsManager::saveSettings()
|
|||
settings.setValue("allowDesktopVideoCapture", m_defaults[poAllowDesktopVideoCapture]);
|
||||
settings.setValue("allowDesktopAudioVideoCapture", m_defaults[poAllowDesktopAudioVideoCapture]);
|
||||
settings.endGroup();
|
||||
|
||||
|
||||
settings.beginGroup("Site-Settings-Default-Features");
|
||||
for (auto it = defaultFeatures.begin(); it != defaultFeatures.end(); ++it) {
|
||||
settings.setValue(featureToSqlColumn(it.key()), it.value());
|
||||
}
|
||||
settings.endGroup();
|
||||
}
|
||||
|
||||
QHash<QWebEngineSettings::WebAttribute, bool> SiteSettingsManager::getWebAttributes(const QUrl& url)
|
||||
|
@ -158,10 +183,8 @@ void SiteSettingsManager::setImages(const QUrl& url, const int value)
|
|||
setOption(poAutoloadImages, url, value);
|
||||
}
|
||||
|
||||
void SiteSettingsManager::setOption(const PageOptions option, const QUrl& url, const int value)
|
||||
void SiteSettingsManager::setOption(const QString& column, const QUrl& url, const int value)
|
||||
{
|
||||
QString column = optionToSqlColumn(option);
|
||||
|
||||
if (column.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
@ -180,16 +203,18 @@ void SiteSettingsManager::setOption(const PageOptions option, const QUrl& url, c
|
|||
job->start();
|
||||
}
|
||||
|
||||
void SiteSettingsManager::setOption(const QWebEnginePage::Feature& feature, const QUrl& url, const Permission &value)
|
||||
void SiteSettingsManager::setOption(const PageOptions option, const QUrl& url, const int value)
|
||||
{
|
||||
auto option = optionFromWebEngineFeature(feature);
|
||||
setOption(option, url, value);
|
||||
setOption(optionToSqlColumn(option), url, value);
|
||||
}
|
||||
|
||||
SiteSettingsManager::Permission SiteSettingsManager::getPermission(const SiteSettingsManager::PageOptions option, const QUrl& url)
|
||||
void SiteSettingsManager::setOption(const QWebEnginePage::Feature& feature, const QUrl& url, const Permission &value)
|
||||
{
|
||||
QString column = optionToSqlColumn(option);
|
||||
setOption(featureToSqlColumn(feature), url, value);
|
||||
}
|
||||
|
||||
SiteSettingsManager::Permission SiteSettingsManager::getPermission(const QString &column, const QUrl& url)
|
||||
{
|
||||
if (column.isEmpty()) {
|
||||
return Deny;
|
||||
}
|
||||
|
@ -208,10 +233,14 @@ SiteSettingsManager::Permission SiteSettingsManager::getPermission(const SiteSet
|
|||
return Default;
|
||||
}
|
||||
|
||||
SiteSettingsManager::Permission SiteSettingsManager::getPermission(const SiteSettingsManager::PageOptions option, const QUrl& url)
|
||||
{
|
||||
return getPermission(optionToSqlColumn(option), url);
|
||||
}
|
||||
|
||||
SiteSettingsManager::Permission SiteSettingsManager::getPermission(const QWebEnginePage::Feature& feature, const QUrl& url)
|
||||
{
|
||||
auto option = optionFromWebEngineFeature(feature);
|
||||
return getPermission(option, url);
|
||||
return getPermission(featureToSqlColumn(feature), url);
|
||||
}
|
||||
|
||||
QString SiteSettingsManager::optionToSqlColumn(const SiteSettingsManager::PageOptions &option)
|
||||
|
@ -226,23 +255,23 @@ QString SiteSettingsManager::optionToSqlColumn(const SiteSettingsManager::PageOp
|
|||
case poZoomLevel:
|
||||
return QSL("zoom_level");
|
||||
case poAllowNotifications:
|
||||
return QSL("allow_notifications");
|
||||
return QSL("f_notifications");
|
||||
case poAllowGeolocation:
|
||||
return QSL("allow_geolocation");
|
||||
return QSL("f_geolocation");
|
||||
case poAllowMediaAudioCapture:
|
||||
return QSL("allow_media_audio_capture");
|
||||
return QSL("f_media_audio_capture");
|
||||
case poAllowMediaVideoCapture:
|
||||
return QSL("allow_media_video_capture");
|
||||
return QSL("f_media_video_capture");
|
||||
case poAllowMediaAudioVideoCapture:
|
||||
return QSL("allow_media_audio_video_capture");
|
||||
return QSL("f_media_audio_video_capture");
|
||||
case poAllowMouseLock:
|
||||
return QSL("allow_mouse_lock");
|
||||
return QSL("f_mouse_lock");
|
||||
case poAllowDesktopVideoCapture:
|
||||
return QSL("allow_desktop_video_capture");
|
||||
return QSL("f_desktop_video_capture");
|
||||
case poAllowDesktopAudioVideoCapture:
|
||||
return QSL("allow_desktop_audio_video_capture");
|
||||
return QSL("f_desktop_audio_video_capture");
|
||||
default:
|
||||
qWarning() << "Unknown option" << option;
|
||||
qWarning() << "Unknown option:" << option;
|
||||
return QLatin1String("");
|
||||
}
|
||||
}
|
||||
|
@ -275,15 +304,19 @@ SiteSettingsManager::Permission SiteSettingsManager::getDefaultPermission(const
|
|||
case poZoomLevel:
|
||||
case poAllowCookies:
|
||||
default:
|
||||
qWarning() << "Unknown option" << option;
|
||||
qWarning() << "Unknown option:" << option;
|
||||
return Deny;
|
||||
}
|
||||
}
|
||||
|
||||
SiteSettingsManager::Permission SiteSettingsManager::getDefaultPermission(const QWebEnginePage::Feature& feature)
|
||||
{
|
||||
auto option = optionFromWebEngineFeature(feature);
|
||||
return getDefaultPermission(option);
|
||||
if (!supportedFeatures.contains(feature)) {
|
||||
qWarning() << "Unknown feature:" << feature;
|
||||
return Deny;
|
||||
}
|
||||
|
||||
return defaultFeatures[feature];
|
||||
}
|
||||
|
||||
void SiteSettingsManager::setDefaultPermission(const SiteSettingsManager::PageOptions& option, const int& value)
|
||||
|
@ -305,7 +338,7 @@ void SiteSettingsManager::setDefaultPermission(const SiteSettingsManager::PageOp
|
|||
case poJavascriptEnabled:
|
||||
case poAutoloadImages:
|
||||
default:
|
||||
qWarning() << "Unknown option" << option;
|
||||
qWarning() << "Unknown option:" << option;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -317,7 +350,7 @@ void SiteSettingsManager::setDefaultPermission(const SiteSettingsManager::PageOp
|
|||
case poAllowCookies:
|
||||
case poJavascriptEnabled:
|
||||
case poAutoloadImages:
|
||||
qWarning() << "So far not implemented" << option;
|
||||
qWarning() << "So far not implemented:" << option;
|
||||
break;
|
||||
|
||||
case poAllowNotifications:
|
||||
|
@ -331,45 +364,19 @@ void SiteSettingsManager::setDefaultPermission(const SiteSettingsManager::PageOp
|
|||
m_defaults[option] = permission;
|
||||
break;
|
||||
default:
|
||||
qWarning() << "Unknown option" << option;
|
||||
qWarning() << "Unknown option:" << option;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void SiteSettingsManager::setDefaultPermission(const QWebEnginePage::Feature& feature, const SiteSettingsManager::Permission& value)
|
||||
{
|
||||
auto option = optionFromWebEngineFeature(feature);
|
||||
setDefaultPermission(option, value);
|
||||
}
|
||||
|
||||
SiteSettingsManager::PageOptions SiteSettingsManager::optionFromWebEngineFeature(const QWebEnginePage::Feature& feature) const
|
||||
{
|
||||
switch (feature) {
|
||||
case QWebEnginePage::Notifications:
|
||||
return poAllowNotifications;
|
||||
case QWebEnginePage::Geolocation:
|
||||
return poAllowGeolocation;
|
||||
case QWebEnginePage::MediaAudioCapture:
|
||||
return poAllowMediaAudioCapture;
|
||||
case QWebEnginePage::MediaVideoCapture:
|
||||
return poAllowMediaVideoCapture;
|
||||
case QWebEnginePage::MediaAudioVideoCapture:
|
||||
return poAllowMediaAudioVideoCapture;
|
||||
case QWebEnginePage::MouseLock:
|
||||
return poAllowMouseLock;
|
||||
case QWebEnginePage::DesktopVideoCapture:
|
||||
return poAllowDesktopVideoCapture;
|
||||
case QWebEnginePage::DesktopAudioVideoCapture:
|
||||
return poAllowDesktopAudioVideoCapture;
|
||||
default:
|
||||
qWarning() << "Unknown feature" << feature;
|
||||
return poAllowNotifications;
|
||||
if (!supportedFeatures.contains(feature)) {
|
||||
qWarning() << "Unknown feature:" << feature;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
QString SiteSettingsManager::sqlColumnFromWebEngineFeature(const QWebEnginePage::Feature& feature)
|
||||
{
|
||||
return optionToSqlColumn(optionFromWebEngineFeature(feature));
|
||||
defaultFeatures[feature] = value;
|
||||
}
|
||||
|
||||
SiteSettingsManager::Permission SiteSettingsManager::testAttribute(const QWebEngineSettings::WebAttribute attribute) const
|
||||
|
@ -410,7 +417,7 @@ QString SiteSettingsManager::getOptionName(const SiteSettingsManager::PageOption
|
|||
case poAllowNotifications:
|
||||
return QSL("Notifications");
|
||||
case poAllowGeolocation:
|
||||
return QSL("Location");
|
||||
return QSL("Geolocation");
|
||||
case poAllowMediaAudioCapture:
|
||||
return QSL("Microphone");
|
||||
case poAllowMediaVideoCapture:
|
||||
|
@ -424,14 +431,72 @@ QString SiteSettingsManager::getOptionName(const SiteSettingsManager::PageOption
|
|||
case poAllowDesktopAudioVideoCapture:
|
||||
return QSL("Screen capture with audio");
|
||||
default:
|
||||
qWarning() << "Unknown option" << option;
|
||||
qWarning() << "Unknown option:" << option;
|
||||
return QSL("Unknown");;
|
||||
}
|
||||
}
|
||||
|
||||
QString SiteSettingsManager::getOptionName(const QWebEnginePage::Feature& feature)
|
||||
{
|
||||
return getOptionName(optionFromWebEngineFeature(feature));
|
||||
switch (feature) {
|
||||
case QWebEnginePage::Notifications:
|
||||
return QSL("Notifications");
|
||||
case QWebEnginePage::Geolocation:
|
||||
return QSL("Geolocation");
|
||||
case QWebEnginePage::MediaAudioCapture:
|
||||
return QSL("Microphone");
|
||||
case QWebEnginePage::MediaVideoCapture:
|
||||
return QSL("Camera");
|
||||
case QWebEnginePage::MediaAudioVideoCapture:
|
||||
return QSL("Microphone and Camera");
|
||||
case QWebEnginePage::MouseLock:
|
||||
return QSL("Hide mouse pointer");
|
||||
case QWebEnginePage::DesktopVideoCapture:
|
||||
return QSL("Screen capture");
|
||||
case QWebEnginePage::DesktopAudioVideoCapture:
|
||||
return QSL("Screen capture with audio");
|
||||
default:
|
||||
qWarning() << "Unknown feature:" << feature;
|
||||
return QSL("Unknown");
|
||||
}
|
||||
}
|
||||
|
||||
QString SiteSettingsManager::getOptionName(const QWebEngineSettings::WebAttribute attribute)
|
||||
{
|
||||
switch (attribute) {
|
||||
case QWebEngineSettings::AutoLoadImages:
|
||||
return QSL("Autoload images");
|
||||
|
||||
case QWebEngineSettings::JavascriptEnabled:
|
||||
return QSL("Enable JavaScript");
|
||||
case QWebEngineSettings::JavascriptCanOpenWindows:
|
||||
return QSL("JavaScript: Open popup windows");
|
||||
case QWebEngineSettings::JavascriptCanAccessClipboard:
|
||||
return QSL("JavaScript: Access clipboard");
|
||||
case QWebEngineSettings::JavascriptCanPaste:
|
||||
return QSL("JavaScript: Paste from clipboard");
|
||||
case QWebEngineSettings::AllowWindowActivationFromJavaScript:
|
||||
return QSL("JavaScript: Activate windows");
|
||||
|
||||
case QWebEngineSettings::LocalStorageEnabled:
|
||||
return QSL("Local storage");
|
||||
case QWebEngineSettings::ScrollAnimatorEnabled:
|
||||
return QSL("Animated scrolling");
|
||||
case QWebEngineSettings::FullScreenSupportEnabled:
|
||||
return QSL("FullScreen support");
|
||||
case QWebEngineSettings::AllowRunningInsecureContent:
|
||||
return QSL("Run insecure content");
|
||||
case QWebEngineSettings::AllowGeolocationOnInsecureOrigins:
|
||||
return QSL("Geolocation on insecure origin");
|
||||
case QWebEngineSettings::PlaybackRequiresUserGesture:
|
||||
return QSL("Automatic playing of videos");
|
||||
case QWebEngineSettings::WebRTCPublicInterfacesOnly:
|
||||
return QSL("Prevent WebRTC from leaking private IP address");
|
||||
|
||||
default:
|
||||
qWarning() << "Unknown attribute:" << attribute;
|
||||
return QSL("Unknown");
|
||||
}
|
||||
}
|
||||
|
||||
QString SiteSettingsManager::getPermissionName(const SiteSettingsManager::Permission permission)
|
||||
|
@ -446,11 +511,36 @@ QString SiteSettingsManager::getPermissionName(const SiteSettingsManager::Permis
|
|||
case Default:
|
||||
return QSL("Default");
|
||||
default:
|
||||
qWarning() << "Uknown permission" << permission;
|
||||
qWarning() << "Uknown permission:" << permission;
|
||||
return QSL("Unknown");
|
||||
}
|
||||
}
|
||||
|
||||
QString SiteSettingsManager::featureToSqlColumn(const QWebEnginePage::Feature& feature)
|
||||
{
|
||||
switch (feature) {
|
||||
case QWebEnginePage::Notifications:
|
||||
return QSL("f_notifications");
|
||||
case QWebEnginePage::Geolocation:
|
||||
return QSL("f_geolocation");
|
||||
case QWebEnginePage::MediaAudioCapture:
|
||||
return QSL("f_media_audio_capture");
|
||||
case QWebEnginePage::MediaVideoCapture:
|
||||
return QSL("f_media_video_capture");
|
||||
case QWebEnginePage::MediaAudioVideoCapture:
|
||||
return QSL("f_media_audio_video_capture");
|
||||
case QWebEnginePage::MouseLock:
|
||||
return QSL("f_mouse_lock");
|
||||
case QWebEnginePage::DesktopVideoCapture:
|
||||
return QSL("f_desktop_video_capture");
|
||||
case QWebEnginePage::DesktopAudioVideoCapture:
|
||||
return QSL("f_desktop_audio_video_capture");
|
||||
default:
|
||||
qWarning() << "Unknown feature:" << feature;
|
||||
return QSL("f_notifications");
|
||||
}
|
||||
}
|
||||
|
||||
QString SiteSettingsManager::webAttributeToSqlColumn(const QWebEngineSettings::WebAttribute& attribute)
|
||||
{
|
||||
switch (attribute) {
|
||||
|
@ -484,7 +574,7 @@ QString SiteSettingsManager::webAttributeToSqlColumn(const QWebEngineSettings::W
|
|||
return QSL("wa_webrtc_public_interface_only");
|
||||
|
||||
default:
|
||||
qWarning() << "Unknown attribute: " << attribute;
|
||||
qWarning() << "Unknown attribute:" << attribute;
|
||||
return QSL("wa_js_enabled");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,13 +24,6 @@
|
|||
|
||||
class QUrl;
|
||||
|
||||
class SiteWebEngineSettings
|
||||
{
|
||||
public:
|
||||
bool allowJavaScript;
|
||||
bool allowImages;
|
||||
};
|
||||
|
||||
|
||||
class FALKON_EXPORT SiteSettingsManager : QObject
|
||||
{
|
||||
|
@ -98,9 +91,11 @@ public:
|
|||
void setJavascript(const QUrl &url, const int value);
|
||||
void setImages(const QUrl &url, const int value);
|
||||
|
||||
Permission getPermission(const QString &column, const QUrl &url);
|
||||
Permission getPermission(const PageOptions option, const QUrl &url);
|
||||
Permission getPermission(const QWebEnginePage::Feature &feature, const QUrl &url);
|
||||
|
||||
void setOption(const QString &column, const QUrl &url, const int value);
|
||||
void setOption(const PageOptions option, const QUrl &url, const int value);
|
||||
void setOption(const QWebEnginePage::Feature &feature, const QUrl &url, const Permission &value);
|
||||
|
||||
|
@ -110,22 +105,25 @@ public:
|
|||
void setDefaultPermission(const QWebEnginePage::Feature &feature, const Permission &value);
|
||||
void setDefaultPermission(const PageOptions &option, const int &value);
|
||||
|
||||
QString sqlColumnFromWebEngineFeature(const QWebEnginePage::Feature &feature);
|
||||
|
||||
QString getOptionName(const SiteSettingsManager::PageOptions &option);
|
||||
QString getOptionName(const QWebEnginePage::Feature &feature);
|
||||
QString getOptionName(const QWebEngineSettings::WebAttribute attribute);
|
||||
|
||||
QString getPermissionName(const Permission permission);
|
||||
|
||||
private:
|
||||
QString webAttributeToSqlColumn(const QWebEngineSettings::WebAttribute &attribute);
|
||||
QString featureToSqlColumn(const QWebEnginePage::Feature &feature);
|
||||
|
||||
private:
|
||||
QString optionToSqlColumn(const PageOptions &option);
|
||||
PageOptions optionFromWebEngineFeature(const QWebEnginePage::Feature &feature) const;
|
||||
|
||||
Permission testAttribute(const QWebEngineSettings::WebAttribute attribute) const;
|
||||
Permission intToPermission(const int permission) const;
|
||||
|
||||
QMap<PageOptions, Permission> m_defaults;
|
||||
QList<QWebEngineSettings::WebAttribute> supportedAttribute;
|
||||
QList<QWebEnginePage::Feature> supportedFeatures;
|
||||
QMap<QWebEnginePage::Feature, Permission> defaultFeatures;
|
||||
QString attributesSql;
|
||||
};
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ void HTML5PermissionsDialog::showFeaturePermissions(QWebEnginePage::Feature feat
|
|||
ui->treeWidget->clear();
|
||||
|
||||
if (m_data[feature].length() == 0) {
|
||||
QString column = mApp->siteSettingsManager()->sqlColumnFromWebEngineFeature(feature);
|
||||
QString column = mApp->siteSettingsManager()->featureToSqlColumn(feature);
|
||||
QSqlQuery query(SqlDatabase::instance()->database());
|
||||
query.prepare(QSL("SELECT id, server, %1 FROM site_settings WHERE %1 != ?").arg(column));
|
||||
query.addBindValue(SiteSettingsManager::Default);
|
||||
|
@ -159,7 +159,7 @@ void HTML5PermissionsDialog::saveSettings()
|
|||
|
||||
for (int i = 0; i < 8; ++i) {
|
||||
const QWebEnginePage::Feature feature = indexToFeature(i);
|
||||
const QString column = mApp->siteSettingsManager()->sqlColumnFromWebEngineFeature(feature);
|
||||
const QString column = mApp->siteSettingsManager()->featureToSqlColumn(feature);
|
||||
query.prepare(QSL("UPDATE site_settings SET %1 = ? WHERE id = ?").arg(column));
|
||||
query.addBindValue(SiteSettingsManager::Default);
|
||||
query.addBindValue(m_removed[feature]);
|
||||
|
|
Loading…
Reference in New Issue
Block a user