summaryrefslogtreecommitdiffstats
path: root/examples/webenginewidgets/stylesheetbrowser/mainwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/webenginewidgets/stylesheetbrowser/mainwindow.cpp')
-rw-r--r--examples/webenginewidgets/stylesheetbrowser/mainwindow.cpp38
1 files changed, 35 insertions, 3 deletions
diff --git a/examples/webenginewidgets/stylesheetbrowser/mainwindow.cpp b/examples/webenginewidgets/stylesheetbrowser/mainwindow.cpp
index f7e6964cb..c93205b18 100644
--- a/examples/webenginewidgets/stylesheetbrowser/mainwindow.cpp
+++ b/examples/webenginewidgets/stylesheetbrowser/mainwindow.cpp
@@ -49,9 +49,12 @@
****************************************************************************/
#include "mainwindow.h"
+#include "stylesheetdialog.h"
#include "ui_mainwindow.h"
-#include "stylesheetdialog.h"
+static QMap<QString, QString> defaultStyleSheets = {
+ {"Upside down", "body { -webkit-transform: rotate(180deg); }"}
+};
MainWindow::MainWindow(const QUrl &url) :
QMainWindow(),
@@ -67,8 +70,16 @@ MainWindow::MainWindow(const QUrl &url) :
QSettings settings;
settings.beginGroup("styleSheets");
QStringList styleSheets = settings.allKeys();
- for (auto name : qAsConst(styleSheets))
- insertStyleSheet(name, settings.value(name, QString()).toString(), false);
+ if (styleSheets.empty()) {
+ // Add back default style sheets if the user cleared them out
+ loadDefaultStyleSheets();
+ } else {
+ for (auto name : qAsConst(styleSheets)) {
+ StyleSheet styleSheet = settings.value(name).value<StyleSheet>();
+ if (styleSheet.second)
+ insertStyleSheet(name, styleSheet.first, false);
+ }
+ }
settings.endGroup();
ui->webEngineView->setUrl(url);
@@ -114,6 +125,27 @@ void MainWindow::removeStyleSheet(const QString &name, bool immediately)
ui->webEngineView->page()->scripts().remove(script);
}
+bool MainWindow::hasStyleSheet(const QString &name)
+{
+ QWebEngineScript script = ui->webEngineView->page()->scripts().findScript(name);
+ return !script.isNull();
+}
+
+void MainWindow::loadDefaultStyleSheets()
+{
+ QSettings settings;
+ settings.beginGroup("styleSheets");
+
+ auto it = defaultStyleSheets.constBegin();
+ while (it != defaultStyleSheets.constEnd()) {
+ settings.setValue(it.key(), QVariant::fromValue(qMakePair(it.value(), true)));
+ insertStyleSheet(it.key(), it.value(), false);
+ ++it;
+ }
+
+ settings.endGroup();
+}
+
void MainWindow::urlEntered()
{
ui->webEngineView->setUrl(QUrl::fromUserInput(ui->urlBar->text()));