From c2f893609ca7cd5671e821af8d642485a9ac79c5 Mon Sep 17 00:00:00 2001 From: Martin Rotter Date: Tue, 18 Mar 2014 12:50:14 +0100 Subject: [PATCH] Tweaking... --- resources/text/CHANGELOG | 15 +++++ src/core/feedsmodelstandardfeed.cpp | 3 +- src/core/settings.cpp | 12 ---- src/core/webfactory.cpp | 75 +++++++++++-------------- src/core/webfactory.h | 7 ++- src/gui/feedsview.cpp | 4 +- src/gui/formstandardcategorydetails.cpp | 4 +- src/gui/formstandardfeeddetails.cpp | 19 +++++-- src/gui/widgetwithstatus.cpp | 1 + 9 files changed, 73 insertions(+), 67 deletions(-) diff --git a/resources/text/CHANGELOG b/resources/text/CHANGELOG index 1761e8e06..4f9d2d691 100644 --- a/resources/text/CHANGELOG +++ b/resources/text/CHANGELOG @@ -1,4 +1,19 @@ +

1.9.9.8

+ +Fixed: + + +Added: + +Changed: + + +

1.9.9.7

Fixed: diff --git a/src/core/feedsmodelstandardfeed.cpp b/src/core/feedsmodelstandardfeed.cpp index 4067dcdf9..4822f2437 100755 --- a/src/core/feedsmodelstandardfeed.cpp +++ b/src/core/feedsmodelstandardfeed.cpp @@ -366,8 +366,7 @@ void FeedsModelStandardFeed::updateMessages(const QList &messages) { // Used to check if give feed contains with message with given // title, url and date_created. - // WARNING: One feed CANNOT contain - // two (or more) messages with same + // WARNING: One feed CANNOT contain two (or more) messages with same // AUTHOR AND TITLE AND URL AND DATE_CREATED. query_select.setForwardOnly(true); query_select.prepare("SELECT id, feed, date_created FROM Messages " diff --git a/src/core/settings.cpp b/src/core/settings.cpp index d1c82e9b2..ce082693e 100644 --- a/src/core/settings.cpp +++ b/src/core/settings.cpp @@ -92,18 +92,6 @@ QSettings::Status Settings::setupSettings() { QDir(web_path).mkpath(web_path); QWebSettings::setIconDatabasePath(web_path); - // TODO: pridat http://qt-project.org/doc/qt-4.8/qwebsettings.html#WebAttribute-enum - // - napsat nejakou webfactory ktera bude ke qwebsettings pristupovat - // a upravovat dané vlastnosti - // do FOrmSettings Webbrowser & proxy pridat tab "Advanced" a tam - // naflakat vsecky zajimavy attributy - /*QWebSettings::globalSettings()->setAttribute(QWebSettings::DnsPrefetchEnabled, - true); - QWebSettings::globalSettings()->setAttribute(QWebSettings::AutoLoadImages, - false); - QWebSettings::globalSettings()->setAttribute(QWebSettings::JavascriptEnabled, - false);*/ - qDebug("Initializing settings in '%s' (non-portable way).", qPrintable(QDir::toNativeSeparators(home_path_file))); } diff --git a/src/core/webfactory.cpp b/src/core/webfactory.cpp index 40daa368e..d2dbe6057 100644 --- a/src/core/webfactory.cpp +++ b/src/core/webfactory.cpp @@ -13,8 +13,10 @@ QPointer WebFactory::s_instance; -WebFactory::WebFactory(QObject *parent) : QObject(parent) { - m_globalSettings = QWebSettings::globalSettings(); +WebFactory::WebFactory(QObject *parent) + : QObject(parent), m_escapes(QMap()), + m_deEscapes(QMap()), + m_globalSettings(QWebSettings::globalSettings()) { } WebFactory::~WebFactory() { @@ -24,12 +26,9 @@ WebFactory::~WebFactory() { void WebFactory::loadState() { Settings *settings = Settings::instance(); - switchJavascript(settings->value(APP_CFG_BROWSER, "enable_javascript", true).toBool(), - false); - switchImages(settings->value(APP_CFG_BROWSER, "enable_images", true).toBool(), - false); - switchPlugins(settings->value(APP_CFG_BROWSER, "enable_plugins", false).toBool(), - false); + switchJavascript(settings->value(APP_CFG_BROWSER, "enable_javascript", true).toBool(), false); + switchImages(settings->value(APP_CFG_BROWSER, "enable_images", true).toBool(), false); + switchPlugins(settings->value(APP_CFG_BROWSER, "enable_plugins", false).toBool(), false); } bool WebFactory::openUrlInExternalBrowser(const QString &url) { @@ -107,56 +106,50 @@ QString WebFactory::stripTags(QString text) { } QString WebFactory::escapeHtml(const QString &html) { - static QMap escape_sequences = generetaEscapes(); + if (m_escapes.isEmpty()) { + generetaEscapes(); + } - QList keys = escape_sequences.uniqueKeys(); QString output = html; - foreach (const QString &key, keys) { - output.replace(key, escape_sequences.value(key)); + foreach (const QString &key, m_escapes.keys()) { + output = output.replace(key, m_escapes.value(key)); } return output; } QString WebFactory::deEscapeHtml(const QString &text) { - static QMap deescape_sequences = generateDeescapes(); + if (m_deEscapes.isEmpty()) { + generateDeescapes(); + } - QList keys = deescape_sequences.uniqueKeys(); QString output = text; - foreach (const QString &key, keys) { - output.replace(key, deescape_sequences.value(key)); + foreach (const QString &key, m_deEscapes.keys()) { + output = output.replace(key, m_deEscapes.value(key)); } return output; } -QMap WebFactory::generetaEscapes() { - QMap sequences; - - sequences["<"] = '<'; - sequences[">"] = '>'; - sequences["&"] = '&'; - sequences["""] = '\"'; - sequences[" "] = ' '; - sequences["±"] = "±"; - sequences["×"] = "×"; - sequences["'"] = '\''; - - return sequences; +void WebFactory::generetaEscapes() { + m_escapes["<"] = '<'; + m_escapes[">"] = '>'; + m_escapes["&"] = '&'; + m_escapes["""] = '\"'; + m_escapes[" "] = ' '; + m_escapes["±"] = "±"; + m_escapes["×"] = "×"; + m_escapes["'"] = '\''; } -QMap WebFactory::generateDeescapes() { - QMap sequences; - - sequences["<"] = "<"; - sequences[">"] = ">"; - sequences["&"] = "&"; - sequences["\""] = """; - sequences["±"] = "±"; - sequences["×"] = "×"; - sequences["\'"] = "'"; - - return sequences; +void WebFactory::generateDeescapes() { + m_deEscapes["<"] = "<"; + m_deEscapes[">"] = ">"; + m_deEscapes["&"] = "&"; + m_deEscapes["\""] = """; + m_deEscapes["±"] = "±"; + m_deEscapes["×"] = "×"; + m_deEscapes["\'"] = "'"; } diff --git a/src/core/webfactory.h b/src/core/webfactory.h index fc9520d7b..946e2d59a 100644 --- a/src/core/webfactory.h +++ b/src/core/webfactory.h @@ -24,7 +24,6 @@ class WebFactory : public QObject { QString stripTags(QString text); // HTML entity escaping. - // TODO: Optimize these methods. QString escapeHtml(const QString &html); QString deEscapeHtml(const QString &text); @@ -55,9 +54,11 @@ class WebFactory : public QObject { explicit WebFactory(QObject *parent = 0); // Escape sequences generators. - QMap generetaEscapes(); - QMap generateDeescapes(); + void generetaEscapes(); + void generateDeescapes(); + QMap m_escapes; + QMap m_deEscapes; QWebSettings *m_globalSettings; // Singleton. diff --git a/src/gui/feedsview.cpp b/src/gui/feedsview.cpp index e7579ca75..97164eaca 100644 --- a/src/gui/feedsview.cpp +++ b/src/gui/feedsview.cpp @@ -547,8 +547,8 @@ void FeedsView::initializeContextMenuCategoriesFeeds() { void FeedsView::initializeContextMenuEmptySpace() { m_contextMenuEmptySpace = new QMenu(tr("Context menu for feeds"), this); m_contextMenuEmptySpace->addActions(QList() << - FormMain::instance()->m_ui->m_actionUpdateAllFeeds); - + FormMain::instance()->m_ui->m_actionUpdateAllFeeds << + FormMain::instance()->m_ui->m_actionAddStandardFeed); } void FeedsView::setupAppearance() { diff --git a/src/gui/formstandardcategorydetails.cpp b/src/gui/formstandardcategorydetails.cpp index b4d31d312..6e5b5d227 100644 --- a/src/gui/formstandardcategorydetails.cpp +++ b/src/gui/formstandardcategorydetails.cpp @@ -238,10 +238,12 @@ void FormStandardCategoryDetails::initialize() { m_ui->m_btnIcon->setMenu(m_iconMenu); // Setup tab order. - setTabOrder(m_ui->m_buttonBox, m_ui->m_cmbParentCategory); setTabOrder(m_ui->m_cmbParentCategory, m_ui->m_txtTitle->lineEdit()); setTabOrder(m_ui->m_txtTitle->lineEdit(), m_ui->m_txtDescription->lineEdit()); setTabOrder(m_ui->m_txtDescription->lineEdit(), m_ui->m_btnIcon); + setTabOrder(m_ui->m_btnIcon, m_ui->m_buttonBox); + + m_ui->m_txtTitle->lineEdit()->setFocus(Qt::TabFocusReason); } void FormStandardCategoryDetails::loadCategories(const QList categories, diff --git a/src/gui/formstandardfeeddetails.cpp b/src/gui/formstandardfeeddetails.cpp index df9b5d270..71fa8947f 100644 --- a/src/gui/formstandardfeeddetails.cpp +++ b/src/gui/formstandardfeeddetails.cpp @@ -426,18 +426,25 @@ void FormStandardFeedDetails::initialize() { m_ui->m_cmbAutoUpdateType->addItem(tr("Do not auto-update at all"), QVariant::fromValue((int) FeedsModelStandardFeed::DontAutoUpdate)); // Set tab order. - setTabOrder(m_ui->m_buttonBox, m_ui->m_cmbParentCategory); setTabOrder(m_ui->m_cmbParentCategory, m_ui->m_cmbType); - setTabOrder(m_ui->m_cmbType, m_ui->m_txtTitle->lineEdit()); - setTabOrder(m_ui->m_txtTitle->lineEdit(), m_ui->m_txtDescription->lineEdit()); - setTabOrder(m_ui->m_txtDescription->lineEdit(), m_ui->m_txtUrl->lineEdit()); - setTabOrder(m_ui->m_txtUrl->lineEdit(), m_ui->m_cmbEncoding); + + setTabOrder(m_ui->m_cmbType, m_ui->m_cmbEncoding); + setTabOrder(m_ui->m_cmbEncoding, m_ui->m_cmbAutoUpdateType); setTabOrder(m_ui->m_cmbAutoUpdateType, m_ui->m_spinAutoUpdateInterval); - setTabOrder(m_ui->m_spinAutoUpdateInterval, m_ui->m_btnIcon); + setTabOrder(m_ui->m_spinAutoUpdateInterval, m_ui->m_txtTitle->lineEdit()); + + + setTabOrder(m_ui->m_txtTitle->lineEdit(), m_ui->m_txtDescription->lineEdit()); + setTabOrder(m_ui->m_txtDescription->lineEdit(), m_ui->m_txtUrl->lineEdit()); + setTabOrder(m_ui->m_txtUrl->lineEdit(), m_ui->m_btnFetchMetadata); + + setTabOrder(m_ui->m_btnFetchMetadata, m_ui->m_btnIcon); setTabOrder(m_ui->m_btnIcon, m_ui->m_gbAuthentication); setTabOrder(m_ui->m_gbAuthentication, m_ui->m_txtUsername->lineEdit()); setTabOrder(m_ui->m_txtUsername->lineEdit(), m_ui->m_txtPassword->lineEdit()); + + m_ui->m_txtUrl->lineEdit()->setFocus(Qt::TabFocusReason); } void FormStandardFeedDetails::loadCategories(const QList categories, diff --git a/src/gui/widgetwithstatus.cpp b/src/gui/widgetwithstatus.cpp index f3adfba11..9306d9e3b 100644 --- a/src/gui/widgetwithstatus.cpp +++ b/src/gui/widgetwithstatus.cpp @@ -27,6 +27,7 @@ WidgetWithStatus::WidgetWithStatus(QWidget *parent) : QWidget(parent), m_wdgInput(NULL) { m_layout = new QHBoxLayout(this); m_btnStatus = new PlainToolButton(this); + m_btnStatus->setFocusPolicy(Qt::NoFocus); m_iconInformation = IconThemeFactory::instance()->fromTheme("dialog-information"); m_iconWarning = IconThemeFactory::instance()->fromTheme("dialog-warning");