From 94970131974b2450230307e8c418d1691eca1b37 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Sat, 23 Apr 2016 09:46:49 +0200 Subject: [PATCH 1/2] CommandLineOptions: Don't exit on unknown option Makes it possible to pass options to Chromium --- src/lib/app/commandlineoptions.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/lib/app/commandlineoptions.cpp b/src/lib/app/commandlineoptions.cpp index bcf2f5af3..a188d11b5 100644 --- a/src/lib/app/commandlineoptions.cpp +++ b/src/lib/app/commandlineoptions.cpp @@ -1,6 +1,6 @@ /* ============================================================ * QupZilla - QtWebEngine based browser -* Copyright (C) 2010-2015 David Rosca +* Copyright (C) 2010-2016 David Rosca * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -78,8 +78,8 @@ void CommandLineOptions::parseActions() // Parser QCommandLineParser parser; parser.setApplicationDescription(QSL("QtWebEngine based browser")); - parser.addHelpOption(); - parser.addVersionOption(); + QCommandLineOption helpOption = parser.addHelpOption(); + QCommandLineOption versionOption = parser.addVersionOption(); parser.addOption(authorsOption); parser.addOption(profileOption); parser.addOption(noExtensionsOption); @@ -93,7 +93,17 @@ void CommandLineOptions::parseActions() parser.addOption(openWindowOption); parser.addOption(fullscreenOption); parser.addPositionalArgument(QSL("URL"), QSL("URLs to open"), QSL("[URL...]")); - parser.process(QCoreApplication::arguments()); + + // parse() and not process() so we can pass arbitrary options to Chromium + parser.parse(QCoreApplication::arguments()); + + if (parser.isSet(helpOption)) { + parser.showHelp(); + } + + if (parser.isSet(versionOption)) { + parser.showVersion(); + } if (parser.isSet(authorsOption)) { std::cout << "David Rosca " << std::endl; From 658f71c337bab1506cdbb30956899605c1a2ccb0 Mon Sep 17 00:00:00 2001 From: David Rosca Date: Sat, 23 Apr 2016 09:47:00 +0200 Subject: [PATCH 2/2] Fix setting default font families Closes #1955 --- src/lib/preferences/preferences.cpp | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/lib/preferences/preferences.cpp b/src/lib/preferences/preferences.cpp index a5097ed68..dd2582ea9 100644 --- a/src/lib/preferences/preferences.cpp +++ b/src/lib/preferences/preferences.cpp @@ -348,12 +348,25 @@ Preferences::Preferences(BrowserWindow* window) //FONTS settings.beginGroup("Browser-Fonts"); QWebEngineSettings* webSettings = QWebEngineSettings::defaultSettings(); - ui->fontStandard->setCurrentFont(QFont(settings.value("StandardFont", webSettings->fontFamily(QWebEngineSettings::StandardFont)).toString())); - ui->fontCursive->setCurrentFont(QFont(settings.value("CursiveFont", webSettings->fontFamily(QWebEngineSettings::CursiveFont)).toString())); - ui->fontFantasy->setCurrentFont(QFont(settings.value("FantasyFont", webSettings->fontFamily(QWebEngineSettings::FantasyFont)).toString())); - ui->fontFixed->setCurrentFont(QFont(settings.value("FixedFont", webSettings->fontFamily(QWebEngineSettings::FixedFont)).toString())); - ui->fontSansSerif->setCurrentFont(QFont(settings.value("SansSerifFont", webSettings->fontFamily(QWebEngineSettings::SansSerifFont)).toString())); - ui->fontSerif->setCurrentFont(QFont(settings.value("SerifFont", webSettings->fontFamily(QWebEngineSettings::SerifFont)).toString())); + auto defaultFont = [&](QWebEngineSettings::FontFamily font) { + const QString family = webSettings->fontFamily(font); + if (!family.isEmpty()) + return family; + switch (font) { + case QWebEngineSettings::FixedFont: + return QFontDatabase::systemFont(QFontDatabase::FixedFont).family(); + case QWebEngineSettings::SerifFont: + // TODO + default: + return QFontDatabase::systemFont(QFontDatabase::GeneralFont).family(); + } + }; + ui->fontStandard->setCurrentFont(QFont(settings.value("StandardFont", defaultFont(QWebEngineSettings::StandardFont)).toString())); + ui->fontCursive->setCurrentFont(QFont(settings.value("CursiveFont", defaultFont(QWebEngineSettings::CursiveFont)).toString())); + ui->fontFantasy->setCurrentFont(QFont(settings.value("FantasyFont", defaultFont(QWebEngineSettings::FantasyFont)).toString())); + ui->fontFixed->setCurrentFont(QFont(settings.value("FixedFont", defaultFont(QWebEngineSettings::FixedFont)).toString())); + ui->fontSansSerif->setCurrentFont(QFont(settings.value("SansSerifFont", defaultFont(QWebEngineSettings::SansSerifFont)).toString())); + ui->fontSerif->setCurrentFont(QFont(settings.value("SerifFont", defaultFont(QWebEngineSettings::SerifFont)).toString())); ui->sizeDefault->setValue(settings.value("DefaultFontSize", webSettings->fontSize(QWebEngineSettings::DefaultFontSize)).toInt()); ui->sizeFixed->setValue(settings.value("FixedFontSize", webSettings->fontSize(QWebEngineSettings::DefaultFixedFontSize)).toInt()); ui->sizeMinimum->setValue(settings.value("MinimumFontSize", webSettings->fontSize(QWebEngineSettings::MinimumFontSize)).toInt());