From 40a926571c300782882d954b1307fdbf4a41c642 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20W=C3=A4ckerlin?= Date: Wed, 9 May 2012 08:49:32 +0000 Subject: [PATCH] save as dialog cleanups, #refs 145; rearrangements for debug; refs #153 --- src/browser.hxx | 7 +- src/main.cxx | 122 +++--- src/qbrowserlib/qbrowserlib_de.ts | 34 +- src/qbrowserlib/qbrowserlib_en.ts | 34 +- src/qbrowserlib/qbrowserlib_fr.ts | 34 +- src/qbrowserlib/qbrowserlib_it.ts | 34 +- src/qbrowserlib/saveorrun.hxx | 3 + src/qbrowserlib/saveorrun.ui | 36 +- src/qbrowserlib/settings.hxx | 665 +++++++++++++++--------------- src/swissbrowser_de.ts | 1 + src/swissbrowser_en.ts | 1 + src/swissbrowser_fr.ts | 1 + src/swissbrowser_it.ts | 1 + 13 files changed, 514 insertions(+), 459 deletions(-) diff --git a/src/browser.hxx b/src/browser.hxx index 96df9f1..1d4238a 100644 --- a/src/browser.hxx +++ b/src/browser.hxx @@ -65,7 +65,8 @@ class Browser: public QMainWindow, protected Ui::Browser { Browser(const QString& actlib, const QStringList& urls = QStringList(), QSettings* settings=0, - Settings::MimeTypes mimeTypes = Settings::MimeTypes(), + qbrowserlib::Settings::MimeTypes mimeTypes = + qbrowserlib::Settings::MimeTypes(), bool kiosk = false, bool login = true, bool quirks=true, QString bookmarkfile=QString()): _url(0), _find(new ButtonLineEdit), @@ -583,7 +584,7 @@ class Browser: public QMainWindow, protected Ui::Browser { void newSettings() { _searchEngines->clear(); - for (Settings::SearchEngines::const_iterator + for (qbrowserlib::Settings::SearchEngines::const_iterator it(_settings.searchEngines().begin()); it!=_settings.searchEngines().end(); it++) if (QFile(":/icons/"+it.key()).exists()) @@ -1499,7 +1500,7 @@ class Browser: public QMainWindow, protected Ui::Browser { QPrinter _printer; SslClientAuthNetworkAccessManager _networkManager; QSharedPointer _downloadManager; - Settings _settings; + qbrowserlib::Settings _settings; ErrorLog _errorLog; LoginCertificate _logincertificate; gui::Proxy _proxy; diff --git a/src/main.cxx b/src/main.cxx index dd4ea4b..75d50f8 100644 --- a/src/main.cxx +++ b/src/main.cxx @@ -239,6 +239,60 @@ void notrace(QtMsgType, const char*) { extern QWEBKIT_EXPORT void qt_drt_overwritePluginDirectories(); +QMap& env() { + static QStringList l(QProcess::systemEnvironment()); + static QMap env; + if (env.isEmpty()) + for (QStringList::iterator it(l.begin()); it!=l.end(); ++it) { + QStringList v(it->split('=')); + QString key(*v.begin()); + QString value((v.pop_front(), v.join("="))); + env.insert(key, value); + } + return env; +} + +QString helptext() { + return QObject::trUtf8 + ("Usage: %1 [OPTIONS...] [ ...]\n" + "Options:\n" + " -h, --help show this help text\n" + " -d, --debug enable verbose debug mode\n" + " -t --tmp path temporary folder for data caching\n" + " -k, --kiosk no url bar\n" + " if you sepcify -k and -s, -k must be first\n" + " -q, --quirks alternate user interface\n" + " -n, --no-settings don't load or store any settings\n" + " --login ask for smartcard password at startup\n" + " -l, --lib path to file libengine_act.so\n" + " -s, --settings \n" + " load settings from \n" + " if you sepcify -k and -s, -k must be first\n" + " -c, --cert load local client certificate from \n" + " -y, --key load local certificate key from \n" + " -m, --mime \n" + " start for mimetype \n" + " -b, --bookmarks \n" + " load and save bookmarks from and to \n" + " -e, --edit-bookmarks\n" + " start in bookmark-edition mode\n" + " optional full URL\n" + "Environment:\n" + " LANGUAGE \"de\", \"en\", ... " + "(actual: %5)\n" + " PROXY_TYPE \"http\" or \"socks\" or \"\" " + "(actual: %2)\n" + " PROXY_PORT proxy port number (actual: %3)\n" + " PROXY_HOST proxy host name (actual: %4)\n" + " SWISS_USERAGENT fake user agent (actual: %6)\n" + " QT_PLUGIN_PATH path to plugins dir (actual: %7)\n" + " QTWEBKIT_PLUGIN_PATH path to netscape plugins (actual: %8)\n") + .arg(QFileInfo(QCoreApplication::arguments().at(0)).fileName()) + .arg(env()["PROXY_TYPE"]).arg(env()["PROXY_PORT"]).arg(env()["PROXY_HOST"]) + .arg(env()["LANGUAGE"]).arg(env()["SWISS_USERAGENT"]) + .arg(env()["QT_PLUGIN_PATH"]).arg(env()["QTWEBKIT_PLUGIN_PATH"]); +} + int main(int argv, char** argc) try { // qInstallMsgHandler(notrace); // std::cout.rdbuf((new std::stringstream)->rdbuf()); @@ -264,16 +318,6 @@ int main(int argv, char** argc) try { // certs.push_back(QSslCertificate(SWISSSIGN_PLATINUM_CA_G2)); // sslConfig.setCaCertificates(certs); //............................................................................ - QStringList l(QProcess::systemEnvironment()); - QMap env; - for (QStringList::iterator it(l.begin()); it!=l.end(); ++it) { - QStringList v(it->split('=')); - QString key(*v.begin()); - QString value((v.pop_front(), v.join("="))); - env.insert(key, value); - qDebug()<<"env:"<(new QSettings("SwissSign", "SwissBrowser"))); for (QStringList::iterator it(args.begin()); ++it!=args.end();) if (*it=="-h" || *it=="--help" || *it=="-help" || *it=="/?") { - std::cout< ...]\n" - "Options:\n" - " -h, --help show this help text\n" - " -t --tmp path temporary folder for data caching\n" - " -k, --kiosk no url bar\n" - " if you sepcify -k and -s, -k must be first\n" - " -q, --quirks alternate user interface\n" - " -n, --no-settings don't load or store any settings\n" - " --login ask for smartcard password at startup\n" - " -l, --lib path to file libengine_act.so\n" - " -s, --settings \n" - " load settings from \n" - " if you sepcify -k and -s, -k must be first\n" - " -c, --cert load local client certificate from \n" - " -y, --key load local certificate key from \n" - " -m, --mime \n" - " start for mimetype \n" - " -b, --bookmarks \n" - " load and save bookmarks from and to \n" - " -e, --edit-bookmarks\n" - " start in bookmark-edition mode\n" - " optional full URL\n" - "Environment:\n" - " LANGUAGE \"de\", \"en\", ... " - "(actual: %5)\n" - " PROXY_TYPE \"http\" or \"socks\" or \"\" " - "(actual: %2)\n" - " PROXY_PORT proxy port number (actual: %3)\n" - " PROXY_HOST proxy host name (actual: %4)\n" - " SWISS_USERAGENT fake user agent (actual: %6)\n" - " QT_PLUGIN_PATH path to plugins dir (actual: %7)\n" - " QTWEBKIT_PLUGIN_PATH path to netscape plugins (actual: %8)\n") - .arg(QFileInfo(argc[0]).fileName()) - .arg(env["PROXY_TYPE"]).arg(env["PROXY_PORT"]).arg(env["PROXY_HOST"]) - .arg(env["LANGUAGE"]).arg(env["SWISS_USERAGENT"]) - .toStdString() - < - + browse ... @@ -36,13 +36,13 @@ - - Run + + remember tool for this type - - remember tool for this type + + Run @@ -523,12 +523,12 @@ p, li { white-space: pre-wrap; } qbrowserlib::SaveOrRun - + File Exists - + File already exists: %1 @@ -537,12 +537,12 @@ Overwrite? - + No Program - + Not an executable Program: %1 @@ -551,26 +551,34 @@ Specify full path to executable program - + Save File As ... - + Open File With ... - + Dokumente Documents folder in local language - + Arbeitsfläche Desktop folder in local language + + qbrowserlib::SaveOrRunDialog + + + Unknown File Type + + + diff --git a/src/qbrowserlib/qbrowserlib_en.ts b/src/qbrowserlib/qbrowserlib_en.ts index 47834c9..8f31239 100644 --- a/src/qbrowserlib/qbrowserlib_en.ts +++ b/src/qbrowserlib/qbrowserlib_en.ts @@ -16,7 +16,7 @@ - + browse ... @@ -36,13 +36,13 @@ - - Run + + remember tool for this type - - remember tool for this type + + Run @@ -523,12 +523,12 @@ p, li { white-space: pre-wrap; } qbrowserlib::SaveOrRun - + File Exists - + File already exists: %1 @@ -537,12 +537,12 @@ Overwrite? - + No Program - + Not an executable Program: %1 @@ -551,26 +551,34 @@ Specify full path to executable program - + Save File As ... - + Open File With ... - + Dokumente Documents folder in local language - + Arbeitsfläche Desktop folder in local language + + qbrowserlib::SaveOrRunDialog + + + Unknown File Type + + + diff --git a/src/qbrowserlib/qbrowserlib_fr.ts b/src/qbrowserlib/qbrowserlib_fr.ts index 7689acf..7889f37 100644 --- a/src/qbrowserlib/qbrowserlib_fr.ts +++ b/src/qbrowserlib/qbrowserlib_fr.ts @@ -16,7 +16,7 @@ - + browse ... @@ -36,13 +36,13 @@ - - Run + + remember tool for this type - - remember tool for this type + + Run @@ -523,12 +523,12 @@ p, li { white-space: pre-wrap; } qbrowserlib::SaveOrRun - + File Exists - + File already exists: %1 @@ -537,12 +537,12 @@ Overwrite? - + No Program - + Not an executable Program: %1 @@ -551,26 +551,34 @@ Specify full path to executable program - + Save File As ... - + Open File With ... - + Dokumente Documents folder in local language - + Arbeitsfläche Desktop folder in local language + + qbrowserlib::SaveOrRunDialog + + + Unknown File Type + + + diff --git a/src/qbrowserlib/qbrowserlib_it.ts b/src/qbrowserlib/qbrowserlib_it.ts index 15654e9..11bcf7a 100644 --- a/src/qbrowserlib/qbrowserlib_it.ts +++ b/src/qbrowserlib/qbrowserlib_it.ts @@ -16,7 +16,7 @@ - + browse ... @@ -36,13 +36,13 @@ - - Run + + remember tool for this type - - remember tool for this type + + Run @@ -523,12 +523,12 @@ p, li { white-space: pre-wrap; } qbrowserlib::SaveOrRun - + File Exists - + File already exists: %1 @@ -537,12 +537,12 @@ Overwrite? - + No Program - + Not an executable Program: %1 @@ -551,26 +551,34 @@ Specify full path to executable program - + Save File As ... - + Open File With ... - + Dokumente Documents folder in local language - + Arbeitsfläche Desktop folder in local language + + qbrowserlib::SaveOrRunDialog + + + Unknown File Type + + + diff --git a/src/qbrowserlib/saveorrun.hxx b/src/qbrowserlib/saveorrun.hxx index 4b456a8..f053f4f 100644 --- a/src/qbrowserlib/saveorrun.hxx +++ b/src/qbrowserlib/saveorrun.hxx @@ -47,6 +47,8 @@ namespace qbrowserlib { LOG; setupUi(this); QString obj(remoteFilename()); + _rememberPath->setVisible(false); + _rememberTool->setVisible(false); _program->setText(QCoreApplication::applicationDirPath() +QDir::separator()); _object->setText(obj); @@ -232,6 +234,7 @@ namespace qbrowserlib { bool kiosk=false, QWidget* p=0): QDialog(p), _sor(new SaveOrRun(reply, executor, type, src)) { LOG; + setWindowTitle(tr("Unknown File Type")); QVBoxLayout* l(new QVBoxLayout(this)); l->addWidget(_sor); l->addWidget(_buttons = new QDialogButtonBox(QDialogButtonBox::Cancel)); diff --git a/src/qbrowserlib/saveorrun.ui b/src/qbrowserlib/saveorrun.ui index 4cbf813..c9ea10b 100644 --- a/src/qbrowserlib/saveorrun.ui +++ b/src/qbrowserlib/saveorrun.ui @@ -77,6 +77,16 @@ Open in External Application + + + + remember tool for this type + + + true + + + @@ -107,16 +117,6 @@ - - - - remember tool for this type - - - true - - - @@ -279,12 +279,12 @@ click() - 371 - 113 + 320 + 78 - 94 - 126 + 430 + 108 @@ -295,12 +295,12 @@ click() - 371 - 207 + 320 + 78 - 94 - 220 + 430 + 108 diff --git a/src/qbrowserlib/settings.hxx b/src/qbrowserlib/settings.hxx index de21b93..5d2f71b 100644 --- a/src/qbrowserlib/settings.hxx +++ b/src/qbrowserlib/settings.hxx @@ -22,350 +22,357 @@ #define LOG qDebug()<<__PRETTY_FUNCTION__ #endif -class Settings: public QDialog, protected Ui::Settings { +namespace qbrowserlib { - Q_OBJECT; + class Settings: public QDialog, protected Ui::Settings { - public: + Q_OBJECT; - typedef QMap MimeTypes; - typedef QMap SearchEngines; + public: - Q_SIGNALS: + typedef QMap MimeTypes; + typedef QMap SearchEngines; - void newSettings(); + Q_SIGNALS: - public: + void newSettings(); - Settings(MimeTypes mimetypes, QWidget* p=0, - QSettings* settings=0, bool autoWrite=true): - QDialog(p), _settings(settings), - _autoWrite(autoWrite), _mimetypes(mimetypes) { + public: + + Settings(MimeTypes mimetypes, QWidget* p=0, + QSettings* settings=0, bool autoWrite=true): + QDialog(p), _settings(settings), + _autoWrite(autoWrite), _mimetypes(mimetypes) { - setupUi(this); - - // Web Attributes - _attributes[QWebSettings::AutoLoadImages] = - _settingAutoLoadImages; - _attributes[QWebSettings::DnsPrefetchEnabled] = - _settingDnsPrefetchEnabled; - _attributes[QWebSettings::JavascriptEnabled] = - _settingJavascriptEnabled; - _attributes[QWebSettings::JavaEnabled] = - _settingJavaEnabled; - _attributes[QWebSettings::PluginsEnabled] = - _settingPluginsEnabled; - _attributes[QWebSettings::PrivateBrowsingEnabled] = - _settingPrivateBrowsingEnabled; - _attributes[QWebSettings::JavascriptCanOpenWindows] = - _settingJavascriptCanOpenWindows; - _attributes[QWebSettings::JavascriptCanAccessClipboard] = - _settingJavascriptCanAccessClipboard; - _attributes[QWebSettings::DeveloperExtrasEnabled] = - _settingDeveloperExtrasEnabled; - _attributes[QWebSettings::SpatialNavigationEnabled] = - _settingSpatialNavigationEnabled; - _attributes[QWebSettings::LinksIncludedInFocusChain] = - _settingLinksIncludedInFocusChain; - _attributes[QWebSettings::ZoomTextOnly] = - _settingZoomTextOnly; - _attributes[QWebSettings::PrintElementBackgrounds] = - _settingPrintElementBackgrounds; - _attributes[QWebSettings::OfflineStorageDatabaseEnabled] = - _settingOfflineStorageDatabaseEnabled; - _attributes[QWebSettings::OfflineWebApplicationCacheEnabled] = - _settingOfflineWebApplicationCacheEnabled; - _attributes[QWebSettings::LocalStorageEnabled] = - _settingLocalStorageEnabled; - _attributes[QWebSettings::LocalContentCanAccessRemoteUrls] = - _settingLocalContentCanAccessRemoteUrls; - _attributes[QWebSettings::LocalContentCanAccessFileUrls] = - _settingLocalContentCanAccessFileUrls; - // not in qt 4.7.0 (mac) - // _attributes[QWebSettings::XSSAuditingEnabled] = - // _settingXSSAuditingEnabled; - _attributes[QWebSettings::AcceleratedCompositingEnabled] = - _settingAcceleratedCompositingEnabled; - _attributes[QWebSettings::TiledBackingStoreEnabled] = - _settingTiledBackingStoreEnabled; - _attributes[QWebSettings::FrameFlatteningEnabled] = - _settingFrameFlatteningEnabled; - // not in qt 4.7.0 (mac) - // _attributes[QWebSettings::SiteSpecificQuirksEnabled] = - // _settingSiteSpecificQuirksEnabled; - - // CheckBoxes - _checkboxes["SaveWindowState"] = - std::make_pair(_saveWindowState, _saveWindowState->isChecked()); - _checkboxes["CloseApps"] = - std::make_pair(_closeApps, _closeApps->isChecked()); - - load(!_mimetypes.size()); - on__buttons_rejected(); - } - - void setSettings(QSettings* settings) { - _settings = settings; - } - - QSettings* operator()() { - return _settings; - } - - void setAttribute(QWebSettings::WebAttribute attr, bool state) { - //LOG; - QWebSettings::globalSettings()->setAttribute(attr, state); - _attributes[attr]->setChecked(state); - } - - bool flag(const QString& name) { - assert(_checkboxes.find(name)!=_checkboxes.end()); - return _checkboxes[name].second; - } - - const QString& text(const QString& name) { - assert(_lineedits.find(name)!=_lineedits.end()); - return _lineedits[name].second; - } - - const MimeTypes& mimetypes() const { - return _mimetypes; - } - - QStringList mimetype(QString mimetype, QString filename) const { - Settings::MimeTypes::const_iterator - it(_mimetypes.find(mimetype.split(';')[0])); - if (it!=_mimetypes.end()) return it.value().toStringList(); - for (it=_mimetypes.begin(); it!=_mimetypes.end(); ++it) - if (filename.endsWith("."+it.value().toStringList().at(0))) - return it.value().toStringList(); - return QStringList(); - } - - QString& replaceSearchEngine(QString& url) { - LOG; - int len(url.indexOf(QRegExp("[ :]"))); - if (len<=0) return url; - QString scheme(url.left(len)); - LOG<<"scheme:"<isWritable()) return false; - // Attributes - for (Attributes::iterator it(_attributes.begin()); - it!=_attributes.end(); ++it) - _settings->setValue - (QString("QWebSettings/%1").arg(it->first), - QWebSettings::globalSettings()->testAttribute(it->first)); - // CheckBoxes - for (CheckBoxes::iterator it(_checkboxes.begin()); - it!=_checkboxes.end(); ++it) - _settings->setValue - (QString("Flags/%1").arg(it->first), it->second.second); - // LineEdits - for (LineEdits::iterator it(_lineedits.begin()); - it!=_lineedits.end(); ++it) - _settings->setValue - (QString("Texts/%1").arg(it->first), it->second.second); - // MimeTypes - _settings->setValue("QWebSettings/MimeTypes", _mimetypes); - // Search Engines - _settings->setValue("QWebSettings/SearchEngines", _searchEngines); - return true; - } - - bool load(bool overwriteMimeTypes=true) { - LOG; - if (!_settings) return false; - // Attributes - for (Attributes::iterator it(_attributes.begin()); - it!=_attributes.end(); ++it) { - QVariant val - (_settings->value - (QString("QWebSettings/%1").arg(it->first), - QWebSettings::globalSettings()->testAttribute(it->first))); - if (val.isValid() && val.canConvert(QVariant::Bool)) - setAttribute(it->first, val.toBool()); + setupUi(this); + + // Web Attributes + _attributes[QWebSettings::AutoLoadImages] = + _settingAutoLoadImages; + _attributes[QWebSettings::DnsPrefetchEnabled] = + _settingDnsPrefetchEnabled; + _attributes[QWebSettings::JavascriptEnabled] = + _settingJavascriptEnabled; + _attributes[QWebSettings::JavaEnabled] = + _settingJavaEnabled; + _attributes[QWebSettings::PluginsEnabled] = + _settingPluginsEnabled; + _attributes[QWebSettings::PrivateBrowsingEnabled] = + _settingPrivateBrowsingEnabled; + _attributes[QWebSettings::JavascriptCanOpenWindows] = + _settingJavascriptCanOpenWindows; + _attributes[QWebSettings::JavascriptCanAccessClipboard] = + _settingJavascriptCanAccessClipboard; + _attributes[QWebSettings::DeveloperExtrasEnabled] = + _settingDeveloperExtrasEnabled; + _attributes[QWebSettings::SpatialNavigationEnabled] = + _settingSpatialNavigationEnabled; + _attributes[QWebSettings::LinksIncludedInFocusChain] = + _settingLinksIncludedInFocusChain; + _attributes[QWebSettings::ZoomTextOnly] = + _settingZoomTextOnly; + _attributes[QWebSettings::PrintElementBackgrounds] = + _settingPrintElementBackgrounds; + _attributes[QWebSettings::OfflineStorageDatabaseEnabled] = + _settingOfflineStorageDatabaseEnabled; + _attributes[QWebSettings::OfflineWebApplicationCacheEnabled] = + _settingOfflineWebApplicationCacheEnabled; + _attributes[QWebSettings::LocalStorageEnabled] = + _settingLocalStorageEnabled; + _attributes[QWebSettings::LocalContentCanAccessRemoteUrls] = + _settingLocalContentCanAccessRemoteUrls; + _attributes[QWebSettings::LocalContentCanAccessFileUrls] = + _settingLocalContentCanAccessFileUrls; + // not in qt 4.7.0 (mac) + // _attributes[QWebSettings::XSSAuditingEnabled] = + // _settingXSSAuditingEnabled; + _attributes[QWebSettings::AcceleratedCompositingEnabled] = + _settingAcceleratedCompositingEnabled; + _attributes[QWebSettings::TiledBackingStoreEnabled] = + _settingTiledBackingStoreEnabled; + _attributes[QWebSettings::FrameFlatteningEnabled] = + _settingFrameFlatteningEnabled; + // not in qt 4.7.0 (mac) + // _attributes[QWebSettings::SiteSpecificQuirksEnabled] = + // _settingSiteSpecificQuirksEnabled; + + // CheckBoxes + _checkboxes["SaveWindowState"] = + std::make_pair(_saveWindowState, _saveWindowState->isChecked()); + _checkboxes["CloseApps"] = + std::make_pair(_closeApps, _closeApps->isChecked()); + + load(!_mimetypes.size()); + on__buttons_rejected(); } - // CheckBoxes - for (CheckBoxes::iterator it(_checkboxes.begin()); - it!=_checkboxes.end(); ++it) { - QVariant val - (_settings->value - (QString("Flags/%1").arg(it->first), it->second.second)); - if (val.isValid() && val.canConvert(QVariant::Bool)) { - it->second.first->setChecked(val.toBool()); - it->second.second = val.toBool(); - } + + static bool DEBUG; + + void setSettings(QSettings* settings) { + _settings = settings; } - // LineEdits - for (LineEdits::iterator it(_lineedits.begin()); - it!=_lineedits.end(); ++it) { - QVariant val - (_settings->value - (QString("Texts/%1").arg(it->first), it->second.second)); - if (val.isValid() && val.canConvert(QVariant::String)) { - it->second.first->setText(val.toString()); - it->second.second = val.toString(); - } + + QSettings* operator()() { + return _settings; + } + + void setAttribute(QWebSettings::WebAttribute attr, bool state) { + //LOG; + QWebSettings::globalSettings()->setAttribute(attr, state); + _attributes[attr]->setChecked(state); + } + + bool flag(const QString& name) { + assert(_checkboxes.find(name)!=_checkboxes.end()); + return _checkboxes[name].second; + } + + const QString& text(const QString& name) { + assert(_lineedits.find(name)!=_lineedits.end()); + return _lineedits[name].second; + } + + const MimeTypes& mimetypes() const { + return _mimetypes; + } + + QStringList mimetype(QString mimetype, QString filename) const { + Settings::MimeTypes::const_iterator + it(_mimetypes.find(mimetype.split(';')[0])); + if (it!=_mimetypes.end()) return it.value().toStringList(); + for (it=_mimetypes.begin(); it!=_mimetypes.end(); ++it) + if (filename.endsWith("."+it.value().toStringList().at(0))) + return it.value().toStringList(); + return QStringList(); + } + + QString& replaceSearchEngine(QString& url) { + LOG; + int len(url.indexOf(QRegExp("[ :]"))); + if (len<=0) return url; + QString scheme(url.left(len)); + LOG<<"scheme:"<isWritable()) return false; + // Attributes + for (Attributes::iterator it(_attributes.begin()); + it!=_attributes.end(); ++it) + _settings->setValue + (QString("QWebSettings/%1").arg(it->first), + QWebSettings::globalSettings()->testAttribute(it->first)); + // CheckBoxes + for (CheckBoxes::iterator it(_checkboxes.begin()); + it!=_checkboxes.end(); ++it) + _settings->setValue + (QString("Flags/%1").arg(it->first), it->second.second); + // LineEdits + for (LineEdits::iterator it(_lineedits.begin()); + it!=_lineedits.end(); ++it) + _settings->setValue + (QString("Texts/%1").arg(it->first), it->second.second); + // MimeTypes + _settings->setValue("QWebSettings/MimeTypes", _mimetypes); + // Search Engines + _settings->setValue("QWebSettings/SearchEngines", _searchEngines); + return true; } - // MimeTypes - if (overwriteMimeTypes) { - QVariant val(_settings->value("QWebSettings/MimeTypes")); + + bool load(bool overwriteMimeTypes=true) { + LOG; + if (!_settings) return false; + // Attributes + for (Attributes::iterator it(_attributes.begin()); + it!=_attributes.end(); ++it) { + QVariant val + (_settings->value + (QString("QWebSettings/%1").arg(it->first), + QWebSettings::globalSettings()->testAttribute(it->first))); + if (val.isValid() && val.canConvert(QVariant::Bool)) + setAttribute(it->first, val.toBool()); + } + // CheckBoxes + for (CheckBoxes::iterator it(_checkboxes.begin()); + it!=_checkboxes.end(); ++it) { + QVariant val + (_settings->value + (QString("Flags/%1").arg(it->first), it->second.second)); + if (val.isValid() && val.canConvert(QVariant::Bool)) { + it->second.first->setChecked(val.toBool()); + it->second.second = val.toBool(); + } + } + // LineEdits + for (LineEdits::iterator it(_lineedits.begin()); + it!=_lineedits.end(); ++it) { + QVariant val + (_settings->value + (QString("Texts/%1").arg(it->first), it->second.second)); + if (val.isValid() && val.canConvert(QVariant::String)) { + it->second.first->setText(val.toString()); + it->second.second = val.toString(); + } + } + // MimeTypes + if (overwriteMimeTypes) { + QVariant val(_settings->value("QWebSettings/MimeTypes")); + if (val.isValid() && val.canConvert(QVariant::Map)) + _mimetypes = val.toMap(); + } + // SearchEngines + QVariant val(_settings->value("QWebSettings/SearchEngines")); if (val.isValid() && val.canConvert(QVariant::Map)) - _mimetypes = val.toMap(); + _searchEngines = val.toMap(); + newSettings(); + return true; } - // SearchEngines - QVariant val(_settings->value("QWebSettings/SearchEngines")); - if (val.isValid() && val.canConvert(QVariant::Map)) - _searchEngines = val.toMap(); - newSettings(); - return true; - } - - private Q_SLOTS: - - void on__buttons_accepted() { - LOG; - // Attributes - for (Attributes::iterator it(_attributes.begin()); - it!=_attributes.end(); ++it) - QWebSettings::globalSettings() - ->setAttribute(it->first, it->second->isChecked()); - // CheckBoxes - for (CheckBoxes::iterator it(_checkboxes.begin()); - it!=_checkboxes.end(); ++it) - it->second.second = it->second.first->isChecked(); - // LineEdits - for (LineEdits::iterator it(_lineedits.begin()); - it!=_lineedits.end(); ++it) - it->second.second = it->second.first->text(); - // MimeTypes - _mimetypes.clear(); - for (int row(_mimeTypeTable->rowCount()); row--;) - _mimetypes[_mimeTypeTable->item(row, 0)->text()] = - QStringList() - <<_mimeTypeTable->item(row, 1)->text() - <<_mimeTypeTable->item(row, 2)->text(); - // SearchEngines - _searchEngines.clear(); - for (int row(_searchEngineTable->rowCount()); row--;) - _searchEngines[_searchEngineTable->item(row, 0)->text()] = - _searchEngineTable->item(row, 1)->text(); - // Save - if (_autoWrite) save(); - newSettings(); - } - - void on__buttons_rejected() { - LOG; - // Attributes - for (Attributes::iterator it(_attributes.begin()); - it!=_attributes.end(); ++it) - it->second->setChecked - (QWebSettings::globalSettings()->testAttribute(it->first)); - // CheckBoxes - for (CheckBoxes::iterator it(_checkboxes.begin()); - it!=_checkboxes.end(); ++it) - it->second.first->setChecked(it->second.second); - // LineEdits - for (LineEdits::iterator it(_lineedits.begin()); - it!=_lineedits.end(); ++it) - it->second.first->setText(it->second.second); - // MimeTypes - _mimeTypeTable->setRowCount(_mimetypes.size()); - _mimeTypeTable->verticalHeader()->show(); - _mimeTypeTable->horizontalHeader()->show(); - _mimeTypeTable->horizontalHeader()->setStretchLastSection(true); - int row(0); - for (MimeTypes::iterator it(_mimetypes.begin()); - it!=_mimetypes.end(); ++it, ++row) { - LOG<<"MimeType:"<setItem - (row, 0, new QTableWidgetItem(it.key())); - _mimeTypeTable->setItem - (row, 1, new QTableWidgetItem(it.value().toStringList().at(0))); - _mimeTypeTable->setItem - (row, 2, new QTableWidgetItem(it.value().toStringList().at(1))); + + private Q_SLOTS: + + void on__buttons_accepted() { + LOG; + // Attributes + for (Attributes::iterator it(_attributes.begin()); + it!=_attributes.end(); ++it) + QWebSettings::globalSettings() + ->setAttribute(it->first, it->second->isChecked()); + // CheckBoxes + for (CheckBoxes::iterator it(_checkboxes.begin()); + it!=_checkboxes.end(); ++it) + it->second.second = it->second.first->isChecked(); + // LineEdits + for (LineEdits::iterator it(_lineedits.begin()); + it!=_lineedits.end(); ++it) + it->second.second = it->second.first->text(); + // MimeTypes + _mimetypes.clear(); + for (int row(_mimeTypeTable->rowCount()); row--;) + _mimetypes[_mimeTypeTable->item(row, 0)->text()] = + QStringList() + <<_mimeTypeTable->item(row, 1)->text() + <<_mimeTypeTable->item(row, 2)->text(); + // SearchEngines + _searchEngines.clear(); + for (int row(_searchEngineTable->rowCount()); row--;) + _searchEngines[_searchEngineTable->item(row, 0)->text()] = + _searchEngineTable->item(row, 1)->text(); + // Save + if (_autoWrite) save(); + newSettings(); } - // SearchEngines - _searchEngineTable->setRowCount(_searchEngines.size()); - _searchEngineTable->verticalHeader()->show(); - _searchEngineTable->horizontalHeader()->show(); - _searchEngineTable->horizontalHeader()->setStretchLastSection(true); - row = 0; - for (MimeTypes::iterator it(_searchEngines.begin()); - it!=_searchEngines.end(); ++it, ++row) { - LOG<<"SearchEngine:"<setItem - (row, 0, new QTableWidgetItem(it.key())); - _searchEngineTable->setItem - (row, 1, new QTableWidgetItem(it.value().toString())); + + void on__buttons_rejected() { + LOG; + // Attributes + for (Attributes::iterator it(_attributes.begin()); + it!=_attributes.end(); ++it) + it->second->setChecked + (QWebSettings::globalSettings()->testAttribute(it->first)); + // CheckBoxes + for (CheckBoxes::iterator it(_checkboxes.begin()); + it!=_checkboxes.end(); ++it) + it->second.first->setChecked(it->second.second); + // LineEdits + for (LineEdits::iterator it(_lineedits.begin()); + it!=_lineedits.end(); ++it) + it->second.first->setText(it->second.second); + // MimeTypes + _mimeTypeTable->setRowCount(_mimetypes.size()); + _mimeTypeTable->verticalHeader()->show(); + _mimeTypeTable->horizontalHeader()->show(); + _mimeTypeTable->horizontalHeader()->setStretchLastSection(true); + int row(0); + for (MimeTypes::iterator it(_mimetypes.begin()); + it!=_mimetypes.end(); ++it, ++row) { + LOG<<"MimeType:"<setItem + (row, 0, new QTableWidgetItem(it.key())); + _mimeTypeTable->setItem + (row, 1, new QTableWidgetItem(it.value().toStringList().at(0))); + _mimeTypeTable->setItem + (row, 2, new QTableWidgetItem(it.value().toStringList().at(1))); + } + // SearchEngines + _searchEngineTable->setRowCount(_searchEngines.size()); + _searchEngineTable->verticalHeader()->show(); + _searchEngineTable->horizontalHeader()->show(); + _searchEngineTable->horizontalHeader()->setStretchLastSection(true); + row = 0; + for (MimeTypes::iterator it(_searchEngines.begin()); + it!=_searchEngines.end(); ++it, ++row) { + LOG<<"SearchEngine:"<setItem + (row, 0, new QTableWidgetItem(it.key())); + _searchEngineTable->setItem + (row, 1, new QTableWidgetItem(it.value().toString())); + } + } + + void on__addMimeType_pressed() { + _mimeTypeTable->setRowCount(_mimeTypeTable->rowCount()+1); + _mimeTypeTable->setItem(_mimeTypeTable->rowCount()-1, 0, + new QTableWidgetItem); + _mimeTypeTable->setItem(_mimeTypeTable->rowCount()-1, 1, + new QTableWidgetItem); + _mimeTypeTable->setItem(_mimeTypeTable->rowCount()-1, 2, + new QTableWidgetItem); + } + + void on__removeMimeType_pressed() { + QList ranges + (_mimeTypeTable->selectedRanges()); + if (ranges.isEmpty()) return; + for (int begin(ranges.at(0).topRow()), count(ranges.at(0).rowCount()); + count; --count) + _mimeTypeTable->removeRow(begin); } - } - - void on__addMimeType_pressed() { - _mimeTypeTable->setRowCount(_mimeTypeTable->rowCount()+1); - _mimeTypeTable->setItem(_mimeTypeTable->rowCount()-1, 0, - new QTableWidgetItem); - _mimeTypeTable->setItem(_mimeTypeTable->rowCount()-1, 1, - new QTableWidgetItem); - _mimeTypeTable->setItem(_mimeTypeTable->rowCount()-1, 2, - new QTableWidgetItem); - } - - void on__removeMimeType_pressed() { - QList ranges - (_mimeTypeTable->selectedRanges()); - if (ranges.isEmpty()) return; - for (int begin(ranges.at(0).topRow()), count(ranges.at(0).rowCount()); - count; --count) - _mimeTypeTable->removeRow(begin); - } - void on__addSearchEngine_pressed() { - _searchEngineTable->setRowCount(_searchEngineTable->rowCount()+1); - _searchEngineTable->setItem(_searchEngineTable->rowCount()-1, 0, - new QTableWidgetItem); - _searchEngineTable->setItem(_searchEngineTable->rowCount()-1, 1, - new QTableWidgetItem); - _searchEngineTable->setItem(_searchEngineTable->rowCount()-1, 2, - new QTableWidgetItem); - } - - void on__removeSearchEngine_pressed() { - QList ranges - (_searchEngineTable->selectedRanges()); - if (ranges.isEmpty()) return; - for (int begin(ranges.at(0).topRow()), count(ranges.at(0).rowCount()); - count; --count) - _searchEngineTable->removeRow(begin); - } + void on__addSearchEngine_pressed() { + _searchEngineTable->setRowCount(_searchEngineTable->rowCount()+1); + _searchEngineTable->setItem(_searchEngineTable->rowCount()-1, 0, + new QTableWidgetItem); + _searchEngineTable->setItem(_searchEngineTable->rowCount()-1, 1, + new QTableWidgetItem); + _searchEngineTable->setItem(_searchEngineTable->rowCount()-1, 2, + new QTableWidgetItem); + } + + void on__removeSearchEngine_pressed() { + QList ranges + (_searchEngineTable->selectedRanges()); + if (ranges.isEmpty()) return; + for (int begin(ranges.at(0).topRow()), count(ranges.at(0).rowCount()); + count; --count) + _searchEngineTable->removeRow(begin); + } - private: - - typedef std::map Attributes ; - Attributes _attributes; - typedef std::map > CheckBoxes; - CheckBoxes _checkboxes; - typedef std::map > LineEdits; - LineEdits _lineedits; - QSettings* _settings; - bool _autoWrite; - MimeTypes _mimetypes; - SearchEngines _searchEngines; - -}; + private: + + typedef std::map Attributes ; + Attributes _attributes; + typedef std::map > CheckBoxes; + CheckBoxes _checkboxes; + typedef std::map > LineEdits; + LineEdits _lineedits; + QSettings* _settings; + bool _autoWrite; + MimeTypes _mimetypes; + SearchEngines _searchEngines; + + }; + +} + #endif diff --git a/src/swissbrowser_de.ts b/src/swissbrowser_de.ts index 962d6cc..3a449e8 100644 --- a/src/swissbrowser_de.ts +++ b/src/swissbrowser_de.ts @@ -716,6 +716,7 @@ Try: %1 --help Usage: %1 [OPTIONS...] [<url> ...] Options: -h, --help show this help text + -d, --debug enable verbose debug mode -t --tmp path temporary folder for data caching -k, --kiosk no url bar if you sepcify -k and -s, -k must be first diff --git a/src/swissbrowser_en.ts b/src/swissbrowser_en.ts index d733a72..6fe59ae 100644 --- a/src/swissbrowser_en.ts +++ b/src/swissbrowser_en.ts @@ -716,6 +716,7 @@ Try: %1 --help Usage: %1 [OPTIONS...] [<url> ...] Options: -h, --help show this help text + -d, --debug enable verbose debug mode -t --tmp path temporary folder for data caching -k, --kiosk no url bar if you sepcify -k and -s, -k must be first diff --git a/src/swissbrowser_fr.ts b/src/swissbrowser_fr.ts index 962d6cc..3a449e8 100644 --- a/src/swissbrowser_fr.ts +++ b/src/swissbrowser_fr.ts @@ -716,6 +716,7 @@ Try: %1 --help Usage: %1 [OPTIONS...] [<url> ...] Options: -h, --help show this help text + -d, --debug enable verbose debug mode -t --tmp path temporary folder for data caching -k, --kiosk no url bar if you sepcify -k and -s, -k must be first diff --git a/src/swissbrowser_it.ts b/src/swissbrowser_it.ts index 26083f7..d677dff 100644 --- a/src/swissbrowser_it.ts +++ b/src/swissbrowser_it.ts @@ -716,6 +716,7 @@ Try: %1 --help Usage: %1 [OPTIONS...] [<url> ...] Options: -h, --help show this help text + -d, --debug enable verbose debug mode -t --tmp path temporary folder for data caching -k, --kiosk no url bar if you sepcify -k and -s, -k must be first