diff --git a/localization/rssguard-cs_CZ.ts b/localization/rssguard-cs_CZ.ts index ebdf62798..c3c34f8c8 100644 --- a/localization/rssguard-cs_CZ.ts +++ b/localization/rssguard-cs_CZ.ts @@ -288,10 +288,10 @@ Tato stránka obsahuje %n kanálů. Not supported - + Nepodporováno - Give account does not support adding feeds. + Given account does not support adding feeds. @@ -584,15 +584,15 @@ or this functionality is not implemented yet. Not supported - + Nepodporováno Selected account does not support adding of new feeds. - + Vybraný účet nepodporuje přidávání nových kanálů. Selected account does not support adding of new categories. - + Vybraný účet nepodporuje přidávání nových kategorií. @@ -849,11 +849,11 @@ or this functionality is not implemented yet. unknown - + neznámá file: %1, data: %2 - + soubor: %1, data: %2 @@ -1123,15 +1123,15 @@ or this functionality is not implemented yet. The URL is ok. - + URL je v pořádku. The URL does not meet standard pattern. Does your URL start with "http://" or "https://" prefix. - + URL nemá standardní tvar. Začíná vaše URL na "http://" či "https://"? The URL is empty. - + URL je prázdná. @@ -1526,19 +1526,19 @@ or this functionality is not implemented yet. Add new feed into selected account - + Přidat nový kanál do vybraného účtu Add new category into selected account - + Přidat novou kategorii do vybraného účtu Add new category - + Přidat novou kategorii Add new feed - + Přidat nový kanál @@ -2687,15 +2687,15 @@ File filter for external e-mail selection dialog. The URL is ok. - + URL je v pořádku. The URL does not meet standard pattern. Does your URL start with "http://" or "https://" prefix. - + URL nemá standardní tvar. Začíná vaše URL na "http://" či "https://"? The URL is empty. - + URL je prázdná. @@ -2790,15 +2790,15 @@ File filter for external e-mail selection dialog. Parsing data... - + Zpracovávám data... TXT files (one URL per line) (*.txt) - + TXT soubory (jedna URL na řádek) (*.txt) Cannot write into destination file: '%1'. - + Do cílového souboru nelze zapisovat: '%1'. @@ -3434,7 +3434,7 @@ ID účtu: %1 This new account does not include any feeds. You can now add default set of feeds. - + Tento nový účet doposud neobsahuje žádné kanály, chcete nyní přidat výchozí sadu kanálů? diff --git a/localization/rssguard-da_DK.ts b/localization/rssguard-da_DK.ts index 04f362569..9faec44db 100644 --- a/localization/rssguard-da_DK.ts +++ b/localization/rssguard-da_DK.ts @@ -286,7 +286,7 @@ This website contains %n feed(s). - Give account does not support adding feeds. + Given account does not support adding feeds. @@ -843,7 +843,7 @@ or this functionality is not implemented yet. unknown - + ukendt file: %1, data: %2 @@ -1528,11 +1528,11 @@ or this functionality is not implemented yet. Add new category - + Tilføj ny kategori Add new feed - + Tilføj nyt feed diff --git a/localization/rssguard-de_DE.ts b/localization/rssguard-de_DE.ts index 88ee2de5f..d20149e7a 100644 --- a/localization/rssguard-de_DE.ts +++ b/localization/rssguard-de_DE.ts @@ -286,7 +286,7 @@ This website contains %n feed(s). - Give account does not support adding feeds. + Given account does not support adding feeds. @@ -843,7 +843,7 @@ or this functionality is not implemented yet. unknown - + unbekannt file: %1, data: %2 @@ -1528,7 +1528,7 @@ or this functionality is not implemented yet. Add new category - + Füge neue Kategorie hinzu Add new feed diff --git a/localization/rssguard-en_GB.ts b/localization/rssguard-en_GB.ts index 80153263a..634c9b231 100644 --- a/localization/rssguard-en_GB.ts +++ b/localization/rssguard-en_GB.ts @@ -291,7 +291,7 @@ This website contains %n feed(s). - Give account does not support adding feeds. + Given account does not support adding feeds. diff --git a/localization/rssguard-en_US.ts b/localization/rssguard-en_US.ts index f65f383d1..1313c68a8 100644 --- a/localization/rssguard-en_US.ts +++ b/localization/rssguard-en_US.ts @@ -286,7 +286,7 @@ This website contains %n feed(s). - Give account does not support adding feeds. + Given account does not support adding feeds. diff --git a/localization/rssguard-fr_FR.ts b/localization/rssguard-fr_FR.ts index c47c5e536..f82e1e92f 100644 --- a/localization/rssguard-fr_FR.ts +++ b/localization/rssguard-fr_FR.ts @@ -286,7 +286,7 @@ This website contains %n feed(s). - Give account does not support adding feeds. + Given account does not support adding feeds. @@ -843,7 +843,7 @@ or this functionality is not implemented yet. unknown - + inconnu file: %1, data: %2 @@ -1528,11 +1528,11 @@ or this functionality is not implemented yet. Add new category - + Ajouter une nouvelle catégorie Add new feed - + Ajouter un nouveau flux diff --git a/localization/rssguard-it_IT.ts b/localization/rssguard-it_IT.ts index 082f47dac..dfc370124 100644 --- a/localization/rssguard-it_IT.ts +++ b/localization/rssguard-it_IT.ts @@ -286,7 +286,7 @@ This website contains %n feed(s). - Give account does not support adding feeds. + Given account does not support adding feeds. @@ -843,7 +843,7 @@ or this functionality is not implemented yet. unknown - + sconosciuto file: %1, data: %2 @@ -1528,11 +1528,11 @@ or this functionality is not implemented yet. Add new category - + Aggiungi nuova categoria Add new feed - + Aggiungi nuovo feed diff --git a/localization/rssguard-nl_NL.ts b/localization/rssguard-nl_NL.ts index 040ffae8c..13b53ef77 100644 --- a/localization/rssguard-nl_NL.ts +++ b/localization/rssguard-nl_NL.ts @@ -288,10 +288,10 @@ Deze website bevat %n feeds. Not supported - + Niet ondersteund - Give account does not support adding feeds. + Given account does not support adding feeds. @@ -585,15 +585,15 @@ of deze functie bestaat nog niet. Not supported - + Niet ondersteund Selected account does not support adding of new feeds. - + Geselecteerde account ondersteunt geen toevoeging van nieuwe feeds. Selected account does not support adding of new categories. - + Geselecteerde account ondersteunt geen toevoeging van nieuwe categorieën. @@ -850,11 +850,11 @@ of deze functie bestaat nog niet. unknown - + onbekend file: %1, data: %2 - + bestand: %1, gegevens: %2 @@ -1124,15 +1124,15 @@ of deze functie bestaat nog niet. The URL is ok. - + De url is ok. The URL does not meet standard pattern. Does your URL start with "http://" or "https://" prefix. - + De URL voldoet niet aan het standaard patroon. Start je url met "http://" of "https://" prefix. The URL is empty. - + De url is leeg. @@ -1527,19 +1527,19 @@ of deze functie bestaat nog niet. Add new feed into selected account - + Voeg nieuwe feed toe aan geselecteerde account Add new category into selected account - + Voeg nieuwe categorie toe aan geselecteerde account Add new category - + Voeg nieuwe categorie toe Add new feed - + Voeg nieuw feed toe @@ -2694,15 +2694,15 @@ Open nieuw webbrowser pagina(sleep muis omlaag). The URL is ok. - + De URL is ok. The URL does not meet standard pattern. Does your URL start with "http://" or "https://" prefix. - + De URL voldoet niet aan het standaard patroon. Start je url met "http://" of "https://" prefix. The URL is empty. - + De URL is leeg. @@ -2797,15 +2797,15 @@ Open nieuw webbrowser pagina(sleep muis omlaag). Parsing data... - + Gegevens ontleden... TXT files (one URL per line) (*.txt) - + TXT bestanden (een url per lijn) (*.txt) Cannot write into destination file: '%1'. - + Kan niet schrijven naar doelbestand: '%1'. @@ -3442,7 +3442,7 @@ Account ID: %1 This new account does not include any feeds. You can now add default set of feeds. - + Dit nieuwe account bevat geen feeds. U kunt de standaard set van feeds toevoegen. diff --git a/localization/rssguard-sv_SE.ts b/localization/rssguard-sv_SE.ts index b45b9fa5f..d4c4ecaf8 100644 --- a/localization/rssguard-sv_SE.ts +++ b/localization/rssguard-sv_SE.ts @@ -287,10 +287,10 @@ Denna webbsida innehåller %1 flöden. Not supported - + Stöds ej - Give account does not support adding feeds. + Given account does not support adding feeds. @@ -584,15 +584,15 @@ att funktionen inte är implementerad än. Not supported - + Stöds ej Selected account does not support adding of new feeds. - + Det valda kontot stöder inte tillägg av nya flöden. Selected account does not support adding of new categories. - + Det valda kontot stöder inte tillägg av nya kategorier. @@ -849,11 +849,11 @@ att funktionen inte är implementerad än. unknown - + Okänd file: %1, data: %2 - + fil: %1, data: %2 @@ -1123,15 +1123,15 @@ att funktionen inte är implementerad än. The URL is ok. - + URL:en är OK. The URL does not meet standard pattern. Does your URL start with "http://" or "https://" prefix. - + URL:en stämmer inte med standardmönstret. Börjar din URL med prefixet "http://" eller "https://"? The URL is empty. - + URL saknas. @@ -1526,19 +1526,19 @@ att funktionen inte är implementerad än. Add new feed into selected account - + Lägg till nytt flöde i markerat konto Add new category into selected account - + Lägg till ny kategori i markerat konto Add new category - + Lägg till ny kategori Add new feed - + Lägg till nytt flöde @@ -2688,15 +2688,15 @@ File filter for external e-mail selection dialog. The URL is ok. - + URL:en är OK. The URL does not meet standard pattern. Does your URL start with "http://" or "https://" prefix. - + URL:en stämmer inte med standardmönstret. Börjar din URL med prefixet "http://" eller "https://"? The URL is empty. - + URL saknas. @@ -2791,15 +2791,15 @@ File filter for external e-mail selection dialog. Parsing data... - + Analyserar data... TXT files (one URL per line) (*.txt) - + TXT-filer (en URL per rad) (*.txt) Cannot write into destination file: '%1'. - + Kan inte skriva till målfilen: %1 @@ -3433,7 +3433,7 @@ Konto-ID: %1 This new account does not include any feeds. You can now add default set of feeds. - + Detta nya konto inkluderar inte några flöden. Du kan nu läsa in standarduppsättningen av flöden. diff --git a/src/gui/discoverfeedsbutton.cpp b/src/gui/discoverfeedsbutton.cpp index 45c8a877f..f633ba7db 100755 --- a/src/gui/discoverfeedsbutton.cpp +++ b/src/gui/discoverfeedsbutton.cpp @@ -68,7 +68,7 @@ void DiscoverFeedsButton::linkTriggered(QAction *action) { } else { qApp->showGuiMessage(tr("Not supported"), - tr("Give account does not support adding feeds."), + tr("Given account does not support adding feeds."), QSystemTrayIcon::Warning, qApp->mainForm(), true); } diff --git a/src/gui/toolbareditor.cpp b/src/gui/toolbareditor.cpp index c6d31a47a..cde86c726 100755 --- a/src/gui/toolbareditor.cpp +++ b/src/gui/toolbareditor.cpp @@ -46,6 +46,7 @@ ToolBarEditor::ToolBarEditor(QWidget *parent) } ToolBarEditor::~ToolBarEditor() { + qDebug("Destroying ToolBarEditor instance."); } void ToolBarEditor::loadFromToolBar(BaseToolBar *tool_bar) { diff --git a/src/network-web/adblock/adblockaddsubscriptiondialog.cpp b/src/network-web/adblock/adblockaddsubscriptiondialog.cpp index ec539a494..9d78ac0fd 100755 --- a/src/network-web/adblock/adblockaddsubscriptiondialog.cpp +++ b/src/network-web/adblock/adblockaddsubscriptiondialog.cpp @@ -125,5 +125,5 @@ void AdBlockAddSubscriptionDialog::checkInputs() { } AdBlockAddSubscriptionDialog::~AdBlockAddSubscriptionDialog() { - delete m_ui; + qDebug("Destroying AdBlockAddSubscriptionDialog instance."); } diff --git a/src/network-web/adblock/adblockaddsubscriptiondialog.h b/src/network-web/adblock/adblockaddsubscriptiondialog.h index 1d560b457..ad4435090 100755 --- a/src/network-web/adblock/adblockaddsubscriptiondialog.h +++ b/src/network-web/adblock/adblockaddsubscriptiondialog.h @@ -63,7 +63,7 @@ class AdBlockAddSubscriptionDialog : public QDialog { } }; - Ui::AdBlockAddSubscriptionDialog *m_ui; + QScopedPointer m_ui; QVector m_knownSubscriptions; }; diff --git a/src/network-web/adblock/adblockdialog.cpp b/src/network-web/adblock/adblockdialog.cpp index 1d527c14e..9b7a64a87 100755 --- a/src/network-web/adblock/adblockdialog.cpp +++ b/src/network-web/adblock/adblockdialog.cpp @@ -59,7 +59,6 @@ AdBlockDialog::AdBlockDialog(QWidget* parent) : QDialog(parent), m_ui(new Ui::Ad AdBlockDialog::~AdBlockDialog() { qDebug("Destroying AdBlockDialog instance."); - delete m_ui; } void AdBlockDialog::setupMenu() { @@ -113,24 +112,22 @@ void AdBlockDialog::removeRule() { } void AdBlockDialog::addSubscription() { - QPointer dialog = new AdBlockAddSubscriptionDialog(this); + QScopedPointer dialog(new AdBlockAddSubscriptionDialog(this)); if (dialog.data()->exec() == QDialog::Accepted) { - QString title = dialog.data()->title(); - QString url = dialog.data()->url(); + const QString title = dialog.data()->title(); + const QString url = dialog.data()->url(); if (AdBlockSubscription *subscription = m_manager->addSubscription(title, url)) { AdBlockTreeWidget *tree = new AdBlockTreeWidget(subscription, this); - connect(tree, SIGNAL(refreshStatusChanged(bool)), this, SLOT(setDisabled(bool))); - int index = m_ui->m_tabs->insertTab(m_ui->m_tabs->count() - 1, tree, subscription->title()); - + const int index = m_ui->m_tabs->insertTab(m_ui->m_tabs->count() - 1, tree, subscription->title()); m_ui->m_tabs->setCurrentIndex(index); } } - delete dialog.data(); + //delete dialog.data(); } void AdBlockDialog::removeSubscription() { @@ -144,7 +141,7 @@ void AdBlockDialog::currentChanged(int index) { m_currentTreeWidget = qobject_cast(m_ui->m_tabs->widget(index)); m_currentSubscription = m_currentTreeWidget->subscription(); - bool is_easylist = m_currentSubscription->url() == QUrl(ADBLOCK_EASYLIST_URL); + const bool is_easylist = m_currentSubscription->url() == QUrl(ADBLOCK_EASYLIST_URL); m_ui->m_checkUseLimitedEasyList->setEnabled(is_easylist && m_ui->m_checkEnable->isChecked()); m_ui->m_checkUseLimitedEasyList->setVisible(is_easylist); @@ -169,12 +166,12 @@ void AdBlockDialog::enableAdBlock(bool state) { } void AdBlockDialog::aboutToShowMenu() { - bool subscriptionEditable = m_currentSubscription && m_currentSubscription->canEditRules(); - bool subscriptionRemovable = m_currentSubscription && m_currentSubscription->canBeRemoved(); + const bool subscription_editable = m_currentSubscription && m_currentSubscription->canEditRules(); + const bool subscription_removable = m_currentSubscription && m_currentSubscription->canBeRemoved(); - m_actionAddRule->setEnabled(subscriptionEditable); - m_actionRemoveRule->setEnabled(subscriptionEditable); - m_actionRemoveSubscription->setEnabled(subscriptionRemovable); + m_actionAddRule->setEnabled(subscription_editable); + m_actionRemoveRule->setEnabled(subscription_editable); + m_actionRemoveSubscription->setEnabled(subscription_removable); } void AdBlockDialog::learnAboutRules() { @@ -197,13 +194,11 @@ void AdBlockDialog::load() { AdBlockTreeWidget *tree = new AdBlockTreeWidget(subscription, this); connect(tree, SIGNAL(refreshStatusChanged(bool)), this, SLOT(setDisabled(bool))); - m_ui->m_tabs->addTab(tree, subscription->title()); } m_useLimitedEasyList = m_manager->useLimitedEasyList(); m_ui->m_checkUseLimitedEasyList->setChecked(m_useLimitedEasyList); - m_loaded = true; QTimer::singleShot(100, this, SLOT(loadSubscriptions())); diff --git a/src/network-web/adblock/adblockdialog.h b/src/network-web/adblock/adblockdialog.h index b21d51945..69eb39235 100755 --- a/src/network-web/adblock/adblockdialog.h +++ b/src/network-web/adblock/adblockdialog.h @@ -67,15 +67,15 @@ class AdBlockDialog : public QDialog { void setupMenu(); void createConnections(); - Ui::AdBlockDialog *m_ui; - AdBlockManager* m_manager; - AdBlockTreeWidget* m_currentTreeWidget; - AdBlockSubscription* m_currentSubscription; + QScopedPointer m_ui; + AdBlockManager *m_manager; + AdBlockTreeWidget *m_currentTreeWidget; + AdBlockSubscription *m_currentSubscription; - QAction* m_actionAddRule; - QAction* m_actionRemoveRule; - QAction* m_actionAddSubscription; - QAction* m_actionRemoveSubscription; + QAction *m_actionAddRule; + QAction *m_actionRemoveRule; + QAction *m_actionAddSubscription; + QAction *m_actionRemoveSubscription; bool m_loaded; bool m_useLimitedEasyList; diff --git a/src/network-web/adblock/adblockicon.cpp b/src/network-web/adblock/adblockicon.cpp index cb43bd47a..4d281c823 100755 --- a/src/network-web/adblock/adblockicon.cpp +++ b/src/network-web/adblock/adblockicon.cpp @@ -70,7 +70,7 @@ void AdBlockIcon::createMenu(QMenu *menu) { AdBlockManager *manager = AdBlockManager::instance(); AdBlockCustomList *custom_list = manager->customList(); - WebPage* page = qApp->mainForm()->tabWidget()->currentWidget()->webBrowser()->view()->page(); + WebPage *page = qApp->mainForm()->tabWidget()->currentWidget()->webBrowser()->view()->page(); const QUrl page_url = page->mainFrame()->url(); menu->addAction(tr("Show Adblock &settings"), manager, SLOT(showDialog())); @@ -104,18 +104,18 @@ void AdBlockIcon::createMenu(QMenu *menu) { for (int i = 0; i < m_blockedPopups.count(); i++) { const QPair &pair = m_blockedPopups.at(i); - QString address = pair.second.toString().right(55); - QString actionText = tr("%1 with (%2)").arg(address, - pair.first->filter()).replace(QLatin1Char('&'), QLatin1String("&&")); + const QString address = pair.second.toString().right(55); + QString action_text = tr("%1 with (%2)").arg(address, + pair.first->filter()).replace(QLatin1Char('&'), QLatin1String("&&")); - QAction *action = menu->addAction(actionText, manager, SLOT(showRule())); + QAction *action = menu->addAction(action_text, manager, SLOT(showRule())); action->setData(QVariant::fromValue((void*)pair.first)); } } menu->addSeparator(); - QVector entries = page->adBlockedEntries(); + const QVector entries = page->adBlockedEntries(); if (entries.isEmpty()) { menu->addAction(tr("No content blocked"))->setEnabled(false); @@ -141,7 +141,7 @@ void AdBlockIcon::showMenu(const QPoint &pos) { } void AdBlockIcon::toggleCustomFilter() { - QAction *action = qobject_cast(sender()); + const QAction *action = qobject_cast(sender()); if (action == NULL) { return; diff --git a/src/network-web/adblock/adblockmanager.cpp b/src/network-web/adblock/adblockmanager.cpp index 0c71f214e..fcbe85c98 100755 --- a/src/network-web/adblock/adblockmanager.cpp +++ b/src/network-web/adblock/adblockmanager.cpp @@ -123,8 +123,8 @@ AdBlockSubscription *AdBlockManager::addSubscription(const QString &title, const return NULL; } - QString file_name = IOFactory::filterBadCharsFromFilename(title.toLower()) + QL1S(".txt"); - QString file_path = IOFactory::ensureUniqueFilename(baseSubscriptionDirectory() + QDir::separator() + file_name); + const QString file_name = IOFactory::filterBadCharsFromFilename(title.toLower()) + QL1S(".txt"); + const QString file_path = IOFactory::ensureUniqueFilename(baseSubscriptionDirectory() + QDir::separator() + file_name); QFile file(file_path); if (!file.open(QFile::WriteOnly | QFile::Truncate | QFile::Unbuffered)) { @@ -187,7 +187,7 @@ QString AdBlockManager::baseSubscriptionDirectory() { return QDir::toNativeSeparators(directory); } -bool AdBlockManager::shouldBeEnabled() { +bool AdBlockManager::shouldBeEnabled() const { return qApp->settings()->value(GROUP(AdBlock), SETTING(AdBlock::Enabled)).toBool(); } @@ -198,7 +198,7 @@ void AdBlockManager::load() { return; } - Settings *settings = qApp->settings(); + const Settings *settings = qApp->settings(); m_enabled = settings->value(GROUP(AdBlock), SETTING(AdBlock::Enabled)).toBool(); m_useLimitedEasyList = settings->value(GROUP(AdBlock), SETTING(AdBlock::UseLimitedEasyList)).toBool(); m_disabledRules = settings->value(GROUP(AdBlock), SETTING(AdBlock::DisabledRules)).toStringList(); @@ -228,8 +228,8 @@ void AdBlockManager::load() { QTextStream stream(&file); stream.setCodec("UTF-8"); - QString title = stream.readLine(1024).remove(QSL("Title: ")); - QUrl url = QUrl(stream.readLine(1024).remove(QSL("Url: "))); + const QString title = stream.readLine(1024).remove(QSL("Title: ")); + const QUrl url = QUrl(stream.readLine(1024).remove(QSL("Url: "))); // Close the file. file.close(); diff --git a/src/network-web/adblock/adblockmanager.h b/src/network-web/adblock/adblockmanager.h index b588e7cd8..02e6f3f21 100755 --- a/src/network-web/adblock/adblockmanager.h +++ b/src/network-web/adblock/adblockmanager.h @@ -69,7 +69,7 @@ class AdBlockManager : public QObject { AdBlockCustomList *customList() const; - bool shouldBeEnabled(); + bool shouldBeEnabled() const; static QString baseSubscriptionDirectory(); static AdBlockManager *instance(); diff --git a/src/network-web/adblock/adblockmatcher.cpp b/src/network-web/adblock/adblockmatcher.cpp index e566fe552..6a0b77edd 100755 --- a/src/network-web/adblock/adblockmatcher.cpp +++ b/src/network-web/adblock/adblockmatcher.cpp @@ -127,7 +127,7 @@ void AdBlockMatcher::update() { QHash css_rules_hash; QVector exception_css_rules; - foreach (AdBlockSubscription *subscription, m_manager->subscriptions()) { + foreach (const AdBlockSubscription *subscription, m_manager->subscriptions()) { foreach (const AdBlockRule *rule, subscription->allRules()) { // Don't add internally disabled rules to cache if (rule->isInternalDisabled()) { diff --git a/src/network-web/adblock/adblockmatcher.h b/src/network-web/adblock/adblockmatcher.h index e0bab02c7..ed5fd85ec 100755 --- a/src/network-web/adblock/adblockmatcher.h +++ b/src/network-web/adblock/adblockmatcher.h @@ -53,7 +53,7 @@ class AdBlockMatcher : public QObject { void enabledChanged(bool enabled); private: - AdBlockManager* m_manager; + AdBlockManager *m_manager; QVector m_createdRules; QVector m_networkExceptionRules; diff --git a/src/network-web/adblock/adblockrule.cpp b/src/network-web/adblock/adblockrule.cpp index 22f70f9ce..5eaea3e98 100755 --- a/src/network-web/adblock/adblockrule.cpp +++ b/src/network-web/adblock/adblockrule.cpp @@ -72,6 +72,7 @@ AdBlockRule::~AdBlockRule() { AdBlockRule *AdBlockRule::copy() const { AdBlockRule* rule = new AdBlockRule(); + rule->m_subscription = m_subscription; rule->m_type = m_type; rule->m_options = m_options; diff --git a/src/network-web/adblock/adblocksearchtree.cpp b/src/network-web/adblock/adblocksearchtree.cpp index 3ac36a272..969b731c8 100755 --- a/src/network-web/adblock/adblocksearchtree.cpp +++ b/src/network-web/adblock/adblocksearchtree.cpp @@ -38,7 +38,7 @@ bool AdBlockSearchTree::add(const AdBlockRule *rule) { } const QString filter = rule->m_matchString; - int len = filter.size(); + const int len = filter.size(); if (len <= 0) { qWarning("Inserting rule with filter len <= 0!"); @@ -67,7 +67,7 @@ bool AdBlockSearchTree::add(const AdBlockRule *rule) { const AdBlockRule *AdBlockSearchTree::find(const QNetworkRequest &request, const QString &domain, const QString &url_string) const { - int len = url_string.size(); + const int len = url_string.size(); if (len <= 0) { return NULL; diff --git a/src/network-web/basenetworkaccessmanager.cpp b/src/network-web/basenetworkaccessmanager.cpp index cf3e8cd4b..043e8b557 100755 --- a/src/network-web/basenetworkaccessmanager.cpp +++ b/src/network-web/basenetworkaccessmanager.cpp @@ -36,8 +36,8 @@ BaseNetworkAccessManager::~BaseNetworkAccessManager() { void BaseNetworkAccessManager::loadSettings() { QNetworkProxy new_proxy; - QNetworkProxy::ProxyType selected_proxy_type = static_cast(qApp->settings()->value(GROUP(Proxy), - SETTING(Proxy::Type)).toInt()); + const QNetworkProxy::ProxyType selected_proxy_type = static_cast(qApp->settings()->value(GROUP(Proxy), + SETTING(Proxy::Type)).toInt()); if (selected_proxy_type == QNetworkProxy::NoProxy) { // No extra setting is needed, set new proxy and exit this method. @@ -47,8 +47,7 @@ void BaseNetworkAccessManager::loadSettings() { setProxy(QNetworkProxy::applicationProxy()); } else { - - Settings *settings = qApp->settings(); + const Settings *settings = qApp->settings(); // Custom proxy is selected, set it up. new_proxy.setType(selected_proxy_type); diff --git a/src/network-web/downloader.cpp b/src/network-web/downloader.cpp index a6b764474..ebebb6c96 100755 --- a/src/network-web/downloader.cpp +++ b/src/network-web/downloader.cpp @@ -35,7 +35,6 @@ Downloader::Downloader(QObject *parent) } Downloader::~Downloader() { - m_downloadManager->deleteLater(); } void Downloader::downloadFile(const QString &url, int timeout, bool protected_contents, const QString &username, @@ -101,7 +100,7 @@ void Downloader::finished() { m_timer->stop(); // In this phase, some part of downloading process is completed. - QUrl redirection_url = reply->attribute(QNetworkRequest::RedirectionTargetAttribute).toUrl(); + const QUrl redirection_url = reply->attribute(QNetworkRequest::RedirectionTargetAttribute).toUrl(); if (redirection_url.isValid()) { // Communication indicates that HTTP redirection is needed. diff --git a/src/network-web/downloader.h b/src/network-web/downloader.h index 9761f6b01..e537640ba 100755 --- a/src/network-web/downloader.h +++ b/src/network-web/downloader.h @@ -76,7 +76,7 @@ class Downloader : public QObject { private: QNetworkReply *m_activeReply; - SilentNetworkAccessManager *m_downloadManager; + QScopedPointer m_downloadManager; QTimer *m_timer; QHash m_customHeaders; QByteArray m_inputData; diff --git a/src/network-web/downloadmanager.cpp b/src/network-web/downloadmanager.cpp index 1bacf0351..0f353aaa4 100755 --- a/src/network-web/downloadmanager.cpp +++ b/src/network-web/downloadmanager.cpp @@ -97,11 +97,11 @@ void DownloadItem::getFileName() { return; } - QString download_directory = qApp->downloadManager()->downloadDirectory(); + const QString download_directory = qApp->downloadManager()->downloadDirectory(); QString chosen_filename = saveFileName(download_directory); - QString filename_for_prompt = qApp->settings()->value(GROUP(Downloads), SETTING(Downloads::TargetExplicitDirectory)).toString() + - QDir::separator() + - QFileInfo(chosen_filename).fileName(); + const QString filename_for_prompt = qApp->settings()->value(GROUP(Downloads), SETTING(Downloads::TargetExplicitDirectory)).toString() + + QDir::separator() + + QFileInfo(chosen_filename).fileName(); if (m_requestFileName) { // User must provide the path where he wants to save downloaded file in. @@ -118,7 +118,7 @@ void DownloadItem::getFileName() { return; } - QFileInfo file_info = QFileInfo(chosen_filename); + const QFileInfo file_info = QFileInfo(chosen_filename); qApp->settings()->setValue(GROUP(Downloads), Downloads::TargetExplicitDirectory, QDir::toNativeSeparators(QFileInfo(chosen_filename).absolutePath())); @@ -128,7 +128,7 @@ void DownloadItem::getFileName() { m_output.setFileName(chosen_filename); // Check file path for saving. - QDir save_dir = QFileInfo(m_output.fileName()).dir(); + const QDir save_dir = QFileInfo(m_output.fileName()).dir(); if (!save_dir.exists() && !save_dir.mkpath(save_dir.absolutePath())) { stop(); @@ -149,8 +149,8 @@ QString DownloadItem::saveFileName(const QString &directory) const { QString path; if (m_reply->hasRawHeader("Content-Disposition")) { - QString value = QLatin1String(m_reply->rawHeader("Content-Disposition")); - int pos = value.indexOf(QL1S("filename=")); + const QString value = QLatin1String(m_reply->rawHeader("Content-Disposition")); + const int pos = value.indexOf(QL1S("filename=")); if (pos != -1) { QString name = value.mid(pos + 9); @@ -167,7 +167,7 @@ QString DownloadItem::saveFileName(const QString &directory) const { path = m_url.path(); } - QFileInfo info(path); + const QFileInfo info(path); QString base_name = info.completeBaseName(); QString end_name = info.suffix(); @@ -213,10 +213,10 @@ void DownloadItem::openFile() { void DownloadItem::openFolder() { if (m_output.exists()) { - QString folder = QDir::toNativeSeparators(QFileInfo(m_output.fileName()).absoluteDir().absolutePath()); + const QString folder = QDir::toNativeSeparators(QFileInfo(m_output.fileName()).absoluteDir().absolutePath()); #if defined(Q_OS_WIN32) - QString file = QDir::toNativeSeparators(m_output.fileName()); + const QString file = QDir::toNativeSeparators(m_output.fileName()); if (!QProcess::startDetached(QString("explorer.exe /select, \"") + file + "\"")) { MessageBox::show(this, QMessageBox::Warning, tr("Cannot open directory"), tr("Cannot open output directory. Open it manually."), QString(), folder); @@ -375,32 +375,32 @@ void DownloadItem::updateDownloadInfoLabel() { return; } - qint64 bytesTotal = m_reply->header(QNetworkRequest::ContentLengthHeader).toULongLong(); + const qint64 bytes_total = m_reply->header(QNetworkRequest::ContentLengthHeader).toULongLong(); bool running = !downloadedSuccessfully(); double speed = currentSpeed(); - double timeRemaining = remainingTime(); + double time_remaining = remainingTime(); QString info; if (running) { QString remaining; - if (bytesTotal != 0) { - remaining = DownloadManager::timeString(timeRemaining); + if (bytes_total != 0) { + remaining = DownloadManager::timeString(time_remaining); } info = QString(tr("%1 of %2 (%3 per second) - %4")).arg(DownloadManager::dataString(m_bytesReceived), - bytesTotal == 0 ? QSL("?") : DownloadManager::dataString(bytesTotal), + bytes_total == 0 ? QSL("?") : DownloadManager::dataString(bytes_total), DownloadManager::dataString((int)speed), remaining); } else { - if (m_bytesReceived == bytesTotal) { + if (m_bytesReceived == bytes_total) { info = DownloadManager::dataString(m_output.size()); } else { info = tr("%1 of %2 - download completed").arg(DownloadManager::dataString(m_bytesReceived), - DownloadManager::dataString(bytesTotal)); + DownloadManager::dataString(bytes_total)); } } @@ -447,7 +447,7 @@ void DownloadItem::updateInfoAndUrlLabel() { DownloadManager::DownloadManager(QWidget *parent) : TabContent(parent), m_ui(new Ui::DownloadManager), m_autoSaver(new AutoSaver(this)), m_model(new DownloadModel(this)), - m_networkManager(SilentNetworkAccessManager::instance()), m_iconProvider(0), m_removePolicy(Never) { + m_networkManager(SilentNetworkAccessManager::instance()), m_iconProvider(NULL), m_removePolicy(Never) { m_ui->setupUi(this); m_ui->m_viewDownloads->setShowGrid(false); m_ui->m_viewDownloads->verticalHeader()->hide(); @@ -465,19 +465,13 @@ DownloadManager::~DownloadManager() { m_autoSaver->changeOccurred(); m_autoSaver->saveIfNeccessary(); - if (m_iconProvider != NULL) { - delete m_iconProvider; - } - - delete m_ui; - qDebug("Destroying DownloadManager instance."); } int DownloadManager::activeDownloads() const { int count = 0; - foreach (DownloadItem *download, m_downloads) { + foreach (const DownloadItem *download, m_downloads) { if (download->downloading()) { count++; } @@ -490,7 +484,7 @@ int DownloadManager::downloadProgress() const { qint64 bytes_total = 0; qint64 bytes_received = 0; - foreach (DownloadItem *download, m_downloads) { + foreach (const DownloadItem *download, m_downloads) { if (download->downloading()) { bytes_total += download->bytesTotal(); bytes_received += download->bytesReceived(); @@ -520,9 +514,9 @@ void DownloadManager::handleUnsupportedContent(QNetworkReply *reply) { return; } - QVariant header = reply->header(QNetworkRequest::ContentLengthHeader); + const QVariant header = reply->header(QNetworkRequest::ContentLengthHeader); bool ok; - int size = header.toInt(&ok); + const int size = header.toInt(&ok); if (ok && size == 0) { return; @@ -541,7 +535,7 @@ void DownloadManager::addItem(DownloadItem *item) { connect(item, SIGNAL(progress(qint64,qint64)), this, SLOT(itemProgress())); connect(item, SIGNAL(downloadFinished()), this, SLOT(itemFinished())); - int row = m_downloads.count(); + const int row = m_downloads.count(); m_model->beginInsertRows(QModelIndex(), row, row); m_downloads.append(item); m_model->endInsertRows(); @@ -585,14 +579,14 @@ void DownloadManager::itemProgress() { } void DownloadManager::updateRow(DownloadItem *item) { - int row = m_downloads.indexOf(item); + const int row = m_downloads.indexOf(item); if (row == -1) { return; } - if (!m_iconProvider) { - m_iconProvider = new QFileIconProvider(); + if (m_iconProvider.isNull()) { + m_iconProvider.reset(new QFileIconProvider()); } QIcon icon = m_iconProvider->icon(item->m_output.fileName()); @@ -662,7 +656,7 @@ void DownloadManager::save() const { } void DownloadManager::load() { - Settings *settings = qApp->settings(); + const Settings *settings = qApp->settings(); int i = 0; // Restore the policy. diff --git a/src/network-web/downloadmanager.h b/src/network-web/downloadmanager.h index e5687feee..b3763d009 100755 --- a/src/network-web/downloadmanager.h +++ b/src/network-web/downloadmanager.h @@ -146,11 +146,11 @@ class DownloadManager : public TabContent { private: void addItem(DownloadItem *item); - Ui::DownloadManager *m_ui; + QScopedPointer m_ui; AutoSaver *m_autoSaver; DownloadModel *m_model; QNetworkAccessManager *m_networkManager; - QFileIconProvider *m_iconProvider; + QScopedPointer m_iconProvider; QList m_downloads; RemovePolicy m_removePolicy; QString m_downloadDirectory; diff --git a/src/network-web/googlesuggest.cpp b/src/network-web/googlesuggest.cpp index 4725c59ee..54b2d4707 100755 --- a/src/network-web/googlesuggest.cpp +++ b/src/network-web/googlesuggest.cpp @@ -59,8 +59,8 @@ #include -GoogleSuggest::GoogleSuggest(LocationLineEdit *editor, QObject *parent) : QObject(parent), editor(editor) { - popup = new QListWidget(); +GoogleSuggest::GoogleSuggest(LocationLineEdit *editor, QObject *parent) + : QObject(parent), editor(editor), popup(new QListWidget()) { popup->setWindowFlags(Qt::Popup); popup->setFocusPolicy(Qt::NoFocus); popup->setFocusProxy(editor); @@ -74,17 +74,16 @@ GoogleSuggest::GoogleSuggest(LocationLineEdit *editor, QObject *parent) : QObjec timer->setSingleShot(true); timer->setInterval(500); - connect(popup, SIGNAL(itemClicked(QListWidgetItem*)), SLOT(doneCompletion())); + connect(popup.data(), SIGNAL(itemClicked(QListWidgetItem*)), SLOT(doneCompletion())); connect(timer, SIGNAL(timeout()), SLOT(autoSuggest())); connect(editor, SIGNAL(textEdited(QString)), timer, SLOT(start())); } GoogleSuggest::~GoogleSuggest() { - delete popup; } bool GoogleSuggest::eventFilter(QObject *object, QEvent *event) { - if (object != popup) { + if (object != popup.data()) { return false; } @@ -96,7 +95,7 @@ bool GoogleSuggest::eventFilter(QObject *object, QEvent *event) { if (event->type() == QEvent::KeyPress) { bool consumed = false; - int key = static_cast(event)->key(); + const int key = static_cast(event)->key(); switch (key) { case Qt::Key_Enter: @@ -139,7 +138,7 @@ void GoogleSuggest::showCompletion(const QStringList &choices) { popup->clear(); foreach (const QString &choice, choices) { - new QListWidgetItem(choice, popup); + new QListWidgetItem(choice, popup.data()); } popup->setCurrentItem(popup->item(0)); @@ -176,20 +175,20 @@ void GoogleSuggest::autoSuggest() { } void GoogleSuggest::handleNetworkData() { - QNetworkReply *reply = static_cast(sender()); + QScopedPointer reply(static_cast(sender())); if (!reply->error()) { QStringList choices; QDomDocument xml; QByteArray response = reply->readAll(); - QTextCodec *c = QTextCodec::codecForUtfText(response); + const QTextCodec *c = QTextCodec::codecForUtfText(response); xml.setContent(c->toUnicode(response)); QDomNodeList suggestions = xml.elementsByTagName(QSL("suggestion")); for (int i = 0; i < suggestions.size(); i++) { - QDomElement element = suggestions.at(i).toElement(); + const QDomElement element = suggestions.at(i).toElement(); if (element.attributes().contains(QSL("data"))) { choices.append(element.attribute(QSL("data"))); @@ -198,6 +197,4 @@ void GoogleSuggest::handleNetworkData() { showCompletion(choices); } - - reply->deleteLater(); } diff --git a/src/network-web/googlesuggest.h b/src/network-web/googlesuggest.h index 078600785..6808949fa 100755 --- a/src/network-web/googlesuggest.h +++ b/src/network-web/googlesuggest.h @@ -74,7 +74,7 @@ class GoogleSuggest : public QObject { private: LocationLineEdit *editor; - QListWidget *popup; + QScopedPointer popup; QTimer *timer; }; diff --git a/src/network-web/networkfactory.cpp b/src/network-web/networkfactory.cpp index 116c7f9b1..0566852d9 100755 --- a/src/network-web/networkfactory.cpp +++ b/src/network-web/networkfactory.cpp @@ -34,8 +34,8 @@ NetworkFactory::NetworkFactory() { QStringList NetworkFactory::extractFeedLinksFromHtmlPage(const QUrl &url, const QString &html) { QStringList feeds; - QRegExp rx(FEED_REGEX_MATCHER, Qt::CaseInsensitive); - QRegExp rx_href(FEED_HREF_REGEX_MATCHER, Qt::CaseInsensitive); + const QRegExp rx(FEED_REGEX_MATCHER, Qt::CaseInsensitive); + const QRegExp rx_href(FEED_HREF_REGEX_MATCHER, Qt::CaseInsensitive); for (int pos = 0; (pos = rx.indexIn(html, pos)) != -1; pos += rx.matchedLength()) { QString link_element = html.mid(pos, rx.matchedLength()); @@ -130,9 +130,9 @@ QNetworkReply::NetworkError NetworkFactory::downloadIcon(const QList &u foreach (const QString &url, urls) { #if QT_VERSION >= 0x050000 - QString google_s2_with_url = QString("http://www.google.com/s2/favicons?domain=%1").arg(url.toHtmlEscaped()); + const QString google_s2_with_url = QString("http://www.google.com/s2/favicons?domain=%1").arg(url.toHtmlEscaped()); #else - QString google_s2_with_url = QString("http://www.google.com/s2/favicons?domain=%1").arg(Qt::escape(url)); + const QString google_s2_with_url = QString("http://www.google.com/s2/favicons?domain=%1").arg(Qt::escape(url)); #endif QByteArray icon_data; network_result = downloadFile(google_s2_with_url, timeout, icon_data).first; diff --git a/src/network-web/webbrowser.cpp b/src/network-web/webbrowser.cpp index c37cbf850..751d20581 100755 --- a/src/network-web/webbrowser.cpp +++ b/src/network-web/webbrowser.cpp @@ -306,7 +306,7 @@ WebBrowser::~WebBrowser() { // Remove this instance from the global list of web browsers. m_runningWebBrowsers.removeAll(this); - // Delete members. + // Delete members. Do not use scoped pointers here. delete m_layout; delete m_zoomButtons; delete m_actionZoom; diff --git a/src/network-web/webbrowsernetworkaccessmanager.cpp b/src/network-web/webbrowsernetworkaccessmanager.cpp index 011c03949..643d0cf4b 100755 --- a/src/network-web/webbrowsernetworkaccessmanager.cpp +++ b/src/network-web/webbrowsernetworkaccessmanager.cpp @@ -45,9 +45,9 @@ void WebBrowserNetworkAccessManager::onAuthenticationRequired(QNetworkReply *rep QNetworkReply *WebBrowserNetworkAccessManager::createRequest(QNetworkAccessManager::Operation op, const QNetworkRequest &request, QIODevice *outgoingData) { if (m_page != NULL) { - QNetworkRequest pageRequest = request; - m_page->populateNetworkRequest(pageRequest); - return WebBrowserNetworkAccessManager::instance()->createRequest(op, pageRequest, outgoingData); + QNetworkRequest page_request = request; + m_page->populateNetworkRequest(page_request); + return WebBrowserNetworkAccessManager::instance()->createRequest(op, page_request, outgoingData); } if (op == QNetworkAccessManager::GetOperation) { diff --git a/src/network-web/webbrowsernetworkaccessmanager.h b/src/network-web/webbrowsernetworkaccessmanager.h index 331a6ca37..b4893cee7 100755 --- a/src/network-web/webbrowsernetworkaccessmanager.h +++ b/src/network-web/webbrowsernetworkaccessmanager.h @@ -38,17 +38,16 @@ class WebBrowserNetworkAccessManager : public BaseNetworkAccessManager { // used by ALL web browsers and download manager. static WebBrowserNetworkAccessManager *instance(); + protected: + QNetworkReply *createRequest(Operation op, const QNetworkRequest &request, QIODevice *outgoingData); + protected slots: void onAuthenticationRequired(QNetworkReply *reply, QAuthenticator *authenticator); private: - WebPage *m_page; + WebPage *m_page; static QPointer s_instance; - - // QNetworkAccessManager interface - protected: - QNetworkReply *createRequest(Operation op, const QNetworkRequest &request, QIODevice *outgoingData); }; #endif // WEBBROWSERNETWORKACCESSMANAGER_H diff --git a/src/network-web/webfactory.cpp b/src/network-web/webfactory.cpp index e650935db..ecd6ebc2b 100755 --- a/src/network-web/webfactory.cpp +++ b/src/network-web/webfactory.cpp @@ -21,7 +21,7 @@ WebFactory::~WebFactory() { } void WebFactory::loadState() { - Settings *settings = qApp->settings(); + const Settings *settings = qApp->settings(); switchJavascript(settings->value(GROUP(Browser), SETTING(Browser::JavascriptEnabled)).toBool(), false); switchImages(settings->value(GROUP(Browser), SETTING(Browser::ImagesEnabled)).toBool(), false); @@ -30,8 +30,8 @@ void WebFactory::loadState() { bool WebFactory::sendMessageViaEmail(const Message &message) { if (qApp->settings()->value(GROUP(Browser), SETTING(Browser::CustomExternalEmailEnabled)).toBool()) { - QString browser = qApp->settings()->value(GROUP(Browser), SETTING(Browser::CustomExternalEmailExecutable)).toString(); - QString arguments = qApp->settings()->value(GROUP(Browser), SETTING(Browser::CustomExternalEmailArguments)).toString(); + const QString browser = qApp->settings()->value(GROUP(Browser), SETTING(Browser::CustomExternalEmailExecutable)).toString(); + const QString arguments = qApp->settings()->value(GROUP(Browser), SETTING(Browser::CustomExternalEmailArguments)).toString(); return QProcess::startDetached(QString("\"") + browser + QSL("\" ") + arguments.arg(message.m_title, stripTags(message.m_contents))); @@ -46,21 +46,20 @@ bool WebFactory::sendMessageViaEmail(const Message &message) { bool WebFactory::openUrlInExternalBrowser(const QString &url) { if (qApp->settings()->value(GROUP(Browser), SETTING(Browser::CustomExternalBrowserEnabled)).toBool()) { - QString browser = qApp->settings()->value(GROUP(Browser), SETTING(Browser::CustomExternalBrowserExecutable)).toString(); - QString arguments = qApp->settings()->value(GROUP(Browser), SETTING(Browser::CustomExternalBrowserArguments)).toString(); + const QString browser = qApp->settings()->value(GROUP(Browser), SETTING(Browser::CustomExternalBrowserExecutable)).toString(); + const QString arguments = qApp->settings()->value(GROUP(Browser), SETTING(Browser::CustomExternalBrowserArguments)).toString(); - QString call_line = "\"" + browser + "\" \"" + arguments.arg(url) + "\""; + const QString call_line = "\"" + browser + "\" \"" + arguments.arg(url) + "\""; qDebug("Running command '%s'.", qPrintable(call_line)); - bool result = QProcess::startDetached(call_line); + const bool result = QProcess::startDetached(call_line); if (!result) { qDebug("External web browser call failed."); } return result; - //return QProcess::startDetached(QString("\"") + browser + QSL("\""), QStringList() << arguments.arg(url)); } else { return QDesktopServices::openUrl(url); diff --git a/src/network-web/webpage.cpp b/src/network-web/webpage.cpp index db8c7a0de..af3aee3a0 100755 --- a/src/network-web/webpage.cpp +++ b/src/network-web/webpage.cpp @@ -63,6 +63,7 @@ void WebPage::finished() { void WebPage::cleanBlockedObjects() { AdBlockManager *manager = AdBlockManager::instance(); + if (!manager->isEnabled()) { return; } @@ -101,6 +102,7 @@ void WebPage::cleanBlockedObjects() { // Apply domain-specific element hiding rules QString element_hiding = manager->elementHidingRulesForDomain(mainFrame()->url()); + if (element_hiding.isEmpty()) { return; } @@ -161,7 +163,7 @@ void WebPage::populateNetworkRequest(QNetworkRequest &request) { void WebPage::handleUnsupportedContent(QNetworkReply *reply) { if (reply != NULL) { - QUrl reply_url = reply->url(); + const QUrl reply_url = reply->url(); if (reply_url.scheme() == QL1S("abp")) { return; @@ -187,7 +189,7 @@ QString WebPage::toHtml() const { bool WebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, QWebPage::NavigationType type) { - QString scheme = request.url().scheme(); + const QString scheme = request.url().scheme(); if (scheme == QL1S("mailto") || scheme == QL1S("ftp")) { qWarning("Received request with scheme '%s', blocking it.", qPrintable(scheme)); diff --git a/src/network-web/webpage.h b/src/network-web/webpage.h index a09282930..e6202919b 100755 --- a/src/network-web/webpage.h +++ b/src/network-web/webpage.h @@ -43,15 +43,13 @@ class WebPage : public QWebPage { QString toHtml() const; QString toPlainText() const; - - void populateNetworkRequest(QNetworkRequest &request); - bool isLoading() const; - - static bool isPointerSafeToUse(WebPage *page); - void addAdBlockRule(const AdBlockRule *rule, const QUrl &url); QVector adBlockedEntries() const; + void populateNetworkRequest(QNetworkRequest &request); + void addAdBlockRule(const AdBlockRule *rule, const QUrl &url); + + static bool isPointerSafeToUse(WebPage *page); private slots: void progress(int prog); diff --git a/src/network-web/webview.cpp b/src/network-web/webview.cpp index ab46cdc48..b582657b9 100755 --- a/src/network-web/webview.cpp +++ b/src/network-web/webview.cpp @@ -85,27 +85,27 @@ void WebView::searchTextViaGoogle() { void WebView::saveCurrentPageToFile() { QString selected_file; - QString implicit_file_base_name = tr("source_page"); + const QString implicit_file_base_name = tr("source_page"); // NOTE: It is good to always ask for destination here, since download manager // is not displaying afterwards because this is *not* real download actually. //if (qApp->settings()->value(GROUP(Downloads), SETTING(Downloads::AlwaysPromptForFilename)).toBool()) { - QString filter_html = tr("HTML web pages (*.html)"); + const QString filter_html = tr("HTML web pages (*.html)"); - QString filter; - QString selected_filter; - QString filename_for_prompt = qApp->settings()->value(GROUP(Downloads), SETTING(Downloads::TargetExplicitDirectory)).toString() + - QDir::separator() + implicit_file_base_name + QL1S(".html"); + QString filter; + QString selected_filter; + const QString filename_for_prompt = qApp->settings()->value(GROUP(Downloads), SETTING(Downloads::TargetExplicitDirectory)).toString() + + QDir::separator() + implicit_file_base_name + QL1S(".html"); - // Add more filters here. - filter += filter_html; - selected_file = QFileDialog::getSaveFileName(this, tr("Select destination file for web page"), - filename_for_prompt, filter, &selected_filter); + // Add more filters here. + filter += filter_html; + selected_file = QFileDialog::getSaveFileName(this, tr("Select destination file for web page"), + filename_for_prompt, filter, &selected_filter); - if (!selected_file.isEmpty()) { - qApp->settings()->setValue(GROUP(Downloads), Downloads::TargetExplicitDirectory, - QDir::toNativeSeparators(QFileInfo(selected_file).absolutePath())); - } + if (!selected_file.isEmpty()) { + qApp->settings()->setValue(GROUP(Downloads), Downloads::TargetExplicitDirectory, + QDir::toNativeSeparators(QFileInfo(selected_file).absolutePath())); + } /*} else { QString base_folder = qApp->settings()->value(GROUP(Downloads), SETTING(Downloads::TargetDirectory)).toString(); @@ -132,14 +132,14 @@ void WebView::saveCurrentPageToFile() { QFile selected_file_handle(selected_file); if (selected_file_handle.open(QIODevice::WriteOnly | QIODevice::Unbuffered)) { - QString html_text = page()->mainFrame()->toHtml(); + const QString html_text = page()->mainFrame()->toHtml(); QTextStream str(&selected_file_handle); str.setCodec("UTF-16"); str << html_text; selected_file_handle.close(); } - else { + else { MessageBox::show(this, QMessageBox::Critical, tr("Cannot save web page"), tr("Web page cannot be saved because destination file is not writtable.")); } @@ -299,8 +299,8 @@ void WebView::popupContextMenu(const QPoint &pos) { context_menu.addAction(m_actionCopySelectedItem); context_menu.addAction(m_actionSavePageAs); - QUrl hit_url = hit_result.linkUrl(); - QUrl hit_image_url = hit_result.imageUrl(); + const QUrl hit_url = hit_result.linkUrl(); + const QUrl hit_image_url = hit_result.imageUrl(); if (hit_url.isValid()) { m_contextLinkUrl = hit_url; @@ -340,7 +340,7 @@ void WebView::popupContextMenu(const QPoint &pos) { } void WebView::printCurrentPage() { - QPointer print_preview = new QPrintPreviewDialog(this); + QScopedPointer print_preview(new QPrintPreviewDialog(this)); connect(print_preview.data(), SIGNAL(paintRequested(QPrinter*)), this, SLOT(print(QPrinter*))); print_preview.data()->exec(); } @@ -355,8 +355,8 @@ void WebView::mousePressEvent(QMouseEvent *event) { // Check if user clicked with middle mouse button on some // hyperlink. - QUrl link_url = hit_result.linkUrl(); - QUrl image_url = hit_result.imageUrl(); + const QUrl link_url = hit_result.linkUrl(); + const QUrl image_url = hit_result.imageUrl(); if (link_url.isValid()) { emit linkMiddleClicked(link_url); @@ -377,10 +377,10 @@ void WebView::mousePressEvent(QMouseEvent *event) { void WebView::mouseReleaseEvent(QMouseEvent *event) { if (event->button() & Qt::MiddleButton) { - bool are_gestures_enabled = qApp->settings()->value(GROUP(Browser), SETTING(Browser::GesturesEnabled)).toBool(); + const bool are_gestures_enabled = qApp->settings()->value(GROUP(Browser), SETTING(Browser::GesturesEnabled)).toBool(); if (are_gestures_enabled) { - QPoint release_point = event->pos(); + const QPoint release_point = event->pos(); int left_move = m_gestureOrigin.x() - release_point.x(); int right_move = -left_move; int top_move = m_gestureOrigin.y() - release_point.y(); @@ -423,7 +423,7 @@ void WebView::wheelEvent(QWheelEvent *event) { } bool WebView::increaseWebPageZoom() { - qreal new_factor = zoomFactor() + 0.1; + const qreal new_factor = zoomFactor() + 0.1; if (new_factor >= 0.0 && new_factor <= MAX_ZOOM_FACTOR) { setZoomFactor(new_factor); @@ -435,7 +435,7 @@ bool WebView::increaseWebPageZoom() { } bool WebView::decreaseWebPageZoom() { - qreal new_factor = zoomFactor() - 0.1; + const qreal new_factor = zoomFactor() - 0.1; if (new_factor >= 0.0 && new_factor <= MAX_ZOOM_FACTOR) { setZoomFactor(new_factor); @@ -447,7 +447,7 @@ bool WebView::decreaseWebPageZoom() { } bool WebView::resetWebPageZoom() { - qreal new_factor = 1.0; + const qreal new_factor = 1.0; if (new_factor != zoomFactor()) { setZoomFactor(new_factor); diff --git a/src/services/abstract/recyclebin.cpp b/src/services/abstract/recyclebin.cpp index ebbffece8..9869a834a 100755 --- a/src/services/abstract/recyclebin.cpp +++ b/src/services/abstract/recyclebin.cpp @@ -47,7 +47,7 @@ int RecycleBin::countOfAllMessages() const { void RecycleBin::updateCounts(bool update_total_count) { QSqlDatabase database = qApp->database()->connection(metaObject()->className(), DatabaseFactory::FromSettings); QSqlQuery query_all(database); - ServiceRoot *parent_root = getParentServiceRoot(); + const ServiceRoot *parent_root = getParentServiceRoot(); query_all.setForwardOnly(true); query_all.prepare("SELECT count(*) FROM Messages " @@ -88,7 +88,7 @@ QVariant RecycleBin::data(int column, int role) const { QList RecycleBin::undeletedMessages() const { QList messages; - int account_id = const_cast(this)->getParentServiceRoot()->accountId(); + const int account_id = getParentServiceRoot()->accountId(); QSqlDatabase database = qApp->database()->connection(metaObject()->className(), DatabaseFactory::FromSettings); QSqlQuery query_read_msg(database); diff --git a/src/services/abstract/rootitem.cpp b/src/services/abstract/rootitem.cpp index 7f2fa156b..5b7afe33d 100755 --- a/src/services/abstract/rootitem.cpp +++ b/src/services/abstract/rootitem.cpp @@ -51,7 +51,7 @@ QList RootItem::contextMenu() { return QList(); } -bool RootItem::canBeEdited() { +bool RootItem::canBeEdited() const { return false; } @@ -59,7 +59,7 @@ bool RootItem::editViaGui() { return false; } -bool RootItem::canBeDeleted() { +bool RootItem::canBeDeleted() const { return false; } @@ -359,12 +359,12 @@ bool RootItem::removeChild(RootItem *child) { return m_childItems.removeOne(child); } -Category *RootItem::toCategory() { - return static_cast(this); +Category *RootItem::toCategory() const { + return static_cast(const_cast(this)); } -Feed *RootItem::toFeed() { - return static_cast(this); +Feed *RootItem::toFeed() const { + return static_cast(const_cast(this)); } ServiceRoot *RootItem::toServiceRoot() const { diff --git a/src/services/abstract/rootitem.h b/src/services/abstract/rootitem.h index 8e9a5c4ad..2a551a064 100755 --- a/src/services/abstract/rootitem.h +++ b/src/services/abstract/rootitem.h @@ -82,14 +82,14 @@ class RootItem : public QObject { virtual QList contextMenu(); // Can properties of this item be edited? - virtual bool canBeEdited(); + virtual bool canBeEdited() const; // Performs editing of properties of this item (probably via dialog) // and returns result status. virtual bool editViaGui(); // Can the item be deleted? - virtual bool canBeDeleted(); + virtual bool canBeDeleted() const; // Performs deletion of the item, this // method should NOT display any additional dialogs. @@ -255,8 +255,8 @@ class RootItem : public QObject { } // Converters - Category *toCategory(); - Feed *toFeed(); + Category *toCategory() const; + Feed *toFeed() const; ServiceRoot *toServiceRoot() const; private: diff --git a/src/services/abstract/serviceentrypoint.h b/src/services/abstract/serviceentrypoint.h index 716280dda..d9c99ec7a 100755 --- a/src/services/abstract/serviceentrypoint.h +++ b/src/services/abstract/serviceentrypoint.h @@ -41,7 +41,7 @@ class ServiceEntryPoint { // some kind of first-time configuration dialog inside itself // before returning the root item. // Returns NULL if initialization of new root cannot be done. - virtual ServiceRoot *createNewRoot() = 0; + virtual ServiceRoot *createNewRoot() const = 0; // Performs initialization of all service accounts created using this entry // point from persistent DB. diff --git a/src/services/abstract/serviceroot.cpp b/src/services/abstract/serviceroot.cpp index 279c814db..46a0f59c0 100755 --- a/src/services/abstract/serviceroot.cpp +++ b/src/services/abstract/serviceroot.cpp @@ -36,7 +36,7 @@ ServiceRoot::~ServiceRoot() { bool ServiceRoot::deleteViaGui() { QSqlDatabase connection = qApp->database()->connection(metaObject()->className(), DatabaseFactory::FromSettings); QSqlQuery query(connection); - int account_id = accountId(); + const int account_id = accountId(); query.setForwardOnly(true); QStringList queries; @@ -84,7 +84,7 @@ bool ServiceRoot::markAsReadUnread(RootItem::ReadStatus status) { QList ServiceRoot::undeletedMessages() const { QList messages; - int account_id = accountId(); + const int account_id = accountId(); QSqlDatabase database = qApp->database()->connection(metaObject()->className(), DatabaseFactory::FromSettings); QSqlQuery query(database); diff --git a/src/services/abstract/serviceroot.h b/src/services/abstract/serviceroot.h index d2fcb9cd9..b4e7e387d 100755 --- a/src/services/abstract/serviceroot.h +++ b/src/services/abstract/serviceroot.h @@ -82,6 +82,10 @@ class ServiceRoot : public RootItem { virtual void start(bool freshly_activated) = 0; virtual void stop() = 0; + // Account ID corresponds with DB attribute Accounts (id). + int accountId() const; + void setAccountId(int account_id); + // Returns the UNIQUE code of the given service. // NOTE: Keep in sync with ServiceEntryRoot::code(). virtual QString code() const = 0; @@ -156,10 +160,6 @@ class ServiceRoot : public RootItem { void requestItemReassignment(RootItem *item, RootItem *new_parent); void requestItemRemoval(RootItem *item); - // Account ID corresponds with DB attribute Accounts (id). - int accountId() const; - void setAccountId(int account_id); - public slots: virtual void addNewFeed(const QString &url = QString()) = 0; virtual void addNewCategory() = 0; diff --git a/src/services/standard/gui/formstandardcategorydetails.cpp b/src/services/standard/gui/formstandardcategorydetails.cpp index 23781e081..ea995c7d9 100755 --- a/src/services/standard/gui/formstandardcategorydetails.cpp +++ b/src/services/standard/gui/formstandardcategorydetails.cpp @@ -201,7 +201,7 @@ void FormStandardCategoryDetails::onUseDefaultIcon() { } void FormStandardCategoryDetails::initialize() { - m_ui = new Ui::FormStandardCategoryDetails(); + m_ui.reset(new Ui::FormStandardCategoryDetails()); m_ui->setupUi(this); // Set text boxes. diff --git a/src/services/standard/gui/formstandardcategorydetails.h b/src/services/standard/gui/formstandardcategorydetails.h index c64237c70..5ab809b1f 100755 --- a/src/services/standard/gui/formstandardcategorydetails.h +++ b/src/services/standard/gui/formstandardcategorydetails.h @@ -76,7 +76,7 @@ class FormStandardCategoryDetails : public QDialog { void loadCategories(const QList categories, RootItem *root_item, StandardCategory *input_category); private: - Ui::FormStandardCategoryDetails *m_ui; + QScopedPointer m_ui; StandardCategory *m_editableCategory; StandardServiceRoot *m_serviceRoot; diff --git a/src/services/standard/gui/formstandardfeeddetails.cpp b/src/services/standard/gui/formstandardfeeddetails.cpp index 61cad31be..c6b7e5a77 100755 --- a/src/services/standard/gui/formstandardfeeddetails.cpp +++ b/src/services/standard/gui/formstandardfeeddetails.cpp @@ -56,7 +56,6 @@ FormStandardFeedDetails::FormStandardFeedDetails(StandardServiceRoot *service_ro } FormStandardFeedDetails::~FormStandardFeedDetails() { - delete m_ui; } int FormStandardFeedDetails::exec(StandardFeed *input_feed, RootItem *parent_to_select, const QString &url) { @@ -386,7 +385,7 @@ void FormStandardFeedDetails::setEditableFeed(StandardFeed *editable_feed) { } void FormStandardFeedDetails::initialize() { - m_ui = new Ui::FormStandardFeedDetails(); + m_ui.reset(new Ui::FormStandardFeedDetails()); m_ui->setupUi(this); // Set flags and attributes. @@ -419,7 +418,7 @@ void FormStandardFeedDetails::initialize() { m_ui->m_cmbType->addItem(StandardFeed::typeToString(StandardFeed::Rss2X), QVariant::fromValue((int) StandardFeed::Rss2X)); // Load available encodings. - QList encodings = QTextCodec::availableCodecs(); + const QList encodings = QTextCodec::availableCodecs(); QStringList encoded_encodings; foreach (const QByteArray &encoding, encodings) { diff --git a/src/services/standard/gui/formstandardfeeddetails.h b/src/services/standard/gui/formstandardfeeddetails.h index cd99ee962..6d09e7401 100755 --- a/src/services/standard/gui/formstandardfeeddetails.h +++ b/src/services/standard/gui/formstandardfeeddetails.h @@ -81,7 +81,7 @@ class FormStandardFeedDetails : public QDialog { void loadCategories(const QList categories, RootItem *root_item); private: - Ui::FormStandardFeedDetails *m_ui; + QScopedPointer m_ui; StandardFeed *m_editableFeed; StandardServiceRoot *m_serviceRoot; diff --git a/src/services/standard/gui/formstandardimportexport.cpp b/src/services/standard/gui/formstandardimportexport.cpp index 3cc5ec433..77c5375da 100755 --- a/src/services/standard/gui/formstandardimportexport.cpp +++ b/src/services/standard/gui/formstandardimportexport.cpp @@ -53,7 +53,6 @@ FormStandardImportExport::FormStandardImportExport(StandardServiceRoot *service_ } FormStandardImportExport::~FormStandardImportExport() { - delete m_ui; } void FormStandardImportExport::setMode(const FeedsImportExportModel::Mode &mode) { @@ -141,8 +140,8 @@ void FormStandardImportExport::onParsingProgress(int completed, int total) { } void FormStandardImportExport::selectExportFile() { - QString filter_opml20 = tr("OPML 2.0 files (*.opml)"); - QString filter_txt_url_per_line = tr("TXT files (one URL per line) (*.txt)"); + const QString filter_opml20 = tr("OPML 2.0 files (*.opml)"); + const QString filter_txt_url_per_line = tr("TXT files (one URL per line) (*.txt)"); QString filter; QString selected_filter; @@ -178,8 +177,8 @@ void FormStandardImportExport::selectExportFile() { } void FormStandardImportExport::selectImportFile() { - QString filter_opml20 = tr("OPML 2.0 files (*.opml)"); - QString filter_txt_url_per_line = tr("TXT files (one URL per line) (*.txt)"); + const QString filter_opml20 = tr("OPML 2.0 files (*.opml)"); + const QString filter_txt_url_per_line = tr("TXT files (one URL per line) (*.txt)"); QString filter; QString selected_filter; @@ -189,8 +188,8 @@ void FormStandardImportExport::selectImportFile() { filter += ";;"; filter += filter_txt_url_per_line; - QString selected_file = QFileDialog::getOpenFileName(this, tr("Select file for feeds import"), qApp->homeFolderPath(), - filter, &selected_filter); + const QString selected_file = QFileDialog::getOpenFileName(this, tr("Select file for feeds import"), qApp->homeFolderPath(), + filter, &selected_filter); if (!selected_file.isEmpty()) { if (selected_filter == filter_opml20) { diff --git a/src/services/standard/gui/formstandardimportexport.h b/src/services/standard/gui/formstandardimportexport.h index 1fc643d14..9a7c18fe3 100755 --- a/src/services/standard/gui/formstandardimportexport.h +++ b/src/services/standard/gui/formstandardimportexport.h @@ -60,7 +60,7 @@ class FormStandardImportExport : public QDialog { void exportFeeds(); void importFeeds(); - Ui::FormStandardImportExport *m_ui; + QScopedPointer m_ui; ConversionType m_conversionType; FeedsImportExportModel *m_model; StandardServiceRoot *m_serviceRoot; diff --git a/src/services/standard/standardcategory.cpp b/src/services/standard/standardcategory.cpp index 74d79acb1..4757826f2 100755 --- a/src/services/standard/standardcategory.cpp +++ b/src/services/standard/standardcategory.cpp @@ -100,10 +100,9 @@ bool StandardCategory::performDragDropChange(RootItem *target_item) { } bool StandardCategory::editViaGui() { - QPointer form_pointer = new FormStandardCategoryDetails(serviceRoot(), qApp->mainForm()); + QScopedPointer form_pointer(new FormStandardCategoryDetails(serviceRoot(), qApp->mainForm())); form_pointer.data()->exec(this, NULL); - delete form_pointer.data(); return false; } diff --git a/src/services/standard/standardcategory.h b/src/services/standard/standardcategory.h index f5213be1f..91cdc4b86 100755 --- a/src/services/standard/standardcategory.h +++ b/src/services/standard/standardcategory.h @@ -47,11 +47,11 @@ class StandardCategory : public Category { Qt::ItemFlags additionalFlags() const; bool performDragDropChange(RootItem *target_item); - bool canBeEdited() { + bool canBeEdited() const { return true; } - bool canBeDeleted() { + bool canBeDeleted() const { return true; } diff --git a/src/services/standard/standardfeed.cpp b/src/services/standard/standardfeed.cpp index d783a2616..fc797f745 100755 --- a/src/services/standard/standardfeed.cpp +++ b/src/services/standard/standardfeed.cpp @@ -103,10 +103,9 @@ StandardServiceRoot *StandardFeed::serviceRoot() { } bool StandardFeed::editViaGui() { - QPointer form_pointer = new FormStandardFeedDetails(serviceRoot(), qApp->mainForm()); + QScopedPointer form_pointer(new FormStandardFeedDetails(serviceRoot(), qApp->mainForm())); form_pointer.data()->exec(this, NULL); - delete form_pointer.data(); return false; } diff --git a/src/services/standard/standardfeed.h b/src/services/standard/standardfeed.h index 7e62e07f3..570f663b4 100755 --- a/src/services/standard/standardfeed.h +++ b/src/services/standard/standardfeed.h @@ -63,11 +63,11 @@ class StandardFeed : public Feed { QList contextMenu(); - bool canBeEdited() { + bool canBeEdited() const { return true; } - bool canBeDeleted() { + bool canBeDeleted() const { return true; } diff --git a/src/services/standard/standardserviceentrypoint.cpp b/src/services/standard/standardserviceentrypoint.cpp index 219da2c2f..18181c2f4 100755 --- a/src/services/standard/standardserviceentrypoint.cpp +++ b/src/services/standard/standardserviceentrypoint.cpp @@ -59,7 +59,7 @@ QString StandardServiceEntryPoint::code() const { return SERVICE_CODE_STD_RSS; } -ServiceRoot *StandardServiceEntryPoint::createNewRoot() { +ServiceRoot *StandardServiceEntryPoint::createNewRoot() const { // Switch DB. QSqlDatabase database = qApp->database()->connection(QSL("StandardServiceEntryPoint"), DatabaseFactory::FromSettings); QSqlQuery query(database); diff --git a/src/services/standard/standardserviceentrypoint.h b/src/services/standard/standardserviceentrypoint.h index df8b00770..65e5ee60a 100755 --- a/src/services/standard/standardserviceentrypoint.h +++ b/src/services/standard/standardserviceentrypoint.h @@ -34,7 +34,7 @@ class StandardServiceEntryPoint : public ServiceEntryPoint { QIcon icon() const; QString code() const; - ServiceRoot *createNewRoot(); + ServiceRoot *createNewRoot() const; QList initializeSubtree() const; }; diff --git a/src/services/standard/standardserviceroot.cpp b/src/services/standard/standardserviceroot.cpp index 8c34bcb3a..6bb9a11b9 100755 --- a/src/services/standard/standardserviceroot.cpp +++ b/src/services/standard/standardserviceroot.cpp @@ -108,11 +108,11 @@ QString StandardServiceRoot::code() const { return SERVICE_CODE_STD_RSS; } -bool StandardServiceRoot::canBeEdited() { +bool StandardServiceRoot::canBeEdited() const { return false; } -bool StandardServiceRoot::canBeDeleted() { +bool StandardServiceRoot::canBeDeleted() const { return true; } diff --git a/src/services/standard/standardserviceroot.h b/src/services/standard/standardserviceroot.h index 4f1692481..2e485dd2c 100755 --- a/src/services/standard/standardserviceroot.h +++ b/src/services/standard/standardserviceroot.h @@ -43,8 +43,8 @@ class StandardServiceRoot : public ServiceRoot { QString code() const; - bool canBeEdited(); - bool canBeDeleted(); + bool canBeEdited() const; + bool canBeDeleted() const; bool deleteViaGui(); bool markAsReadUnread(ReadStatus status); diff --git a/src/services/tt-rss/ttrssfeed.cpp b/src/services/tt-rss/ttrssfeed.cpp index fb4075e9e..3d8e1f830 100755 --- a/src/services/tt-rss/ttrssfeed.cpp +++ b/src/services/tt-rss/ttrssfeed.cpp @@ -138,7 +138,7 @@ void TtRssFeed::updateCounts(bool including_total_count) { } } -bool TtRssFeed::canBeEdited() { +bool TtRssFeed::canBeEdited() const { return true; } diff --git a/src/services/tt-rss/ttrssfeed.h b/src/services/tt-rss/ttrssfeed.h index a28d964a8..edcfd52d6 100755 --- a/src/services/tt-rss/ttrssfeed.h +++ b/src/services/tt-rss/ttrssfeed.h @@ -41,7 +41,7 @@ class TtRssFeed : public Feed { void updateCounts(bool including_total_count); - bool canBeEdited(); + bool canBeEdited() const; bool editViaGui(); int countOfAllMessages() const; diff --git a/src/services/tt-rss/ttrssserviceentrypoint.cpp b/src/services/tt-rss/ttrssserviceentrypoint.cpp index 29e03754c..02f3e7684 100755 --- a/src/services/tt-rss/ttrssserviceentrypoint.cpp +++ b/src/services/tt-rss/ttrssserviceentrypoint.cpp @@ -71,7 +71,7 @@ QString TtRssServiceEntryPoint::code() const { return SERVICE_CODE_TT_RSS; } -ServiceRoot *TtRssServiceEntryPoint::createNewRoot() { +ServiceRoot *TtRssServiceEntryPoint::createNewRoot() const { QPointer form_acc = new FormEditAccount(qApp->mainForm()); TtRssServiceRoot *new_root = form_acc.data()->execForCreate(); delete form_acc.data(); diff --git a/src/services/tt-rss/ttrssserviceentrypoint.h b/src/services/tt-rss/ttrssserviceentrypoint.h index c14839651..d62d78de0 100755 --- a/src/services/tt-rss/ttrssserviceentrypoint.h +++ b/src/services/tt-rss/ttrssserviceentrypoint.h @@ -35,7 +35,7 @@ class TtRssServiceEntryPoint : public ServiceEntryPoint { QIcon icon() const; QString code() const; - ServiceRoot *createNewRoot(); + ServiceRoot *createNewRoot() const; QList initializeSubtree() const; }; diff --git a/src/services/tt-rss/ttrssserviceroot.cpp b/src/services/tt-rss/ttrssserviceroot.cpp index e412dc85c..9dd105766 100755 --- a/src/services/tt-rss/ttrssserviceroot.cpp +++ b/src/services/tt-rss/ttrssserviceroot.cpp @@ -129,11 +129,11 @@ void TtRssServiceRoot::addNewCategory() { // Do nothing. } -bool TtRssServiceRoot::canBeEdited() { +bool TtRssServiceRoot::canBeEdited() const { return true; } -bool TtRssServiceRoot::canBeDeleted() { +bool TtRssServiceRoot::canBeDeleted() const { return true; } diff --git a/src/services/tt-rss/ttrssserviceroot.h b/src/services/tt-rss/ttrssserviceroot.h index 82d5564f8..d25589f94 100755 --- a/src/services/tt-rss/ttrssserviceroot.h +++ b/src/services/tt-rss/ttrssserviceroot.h @@ -40,8 +40,8 @@ class TtRssServiceRoot : public ServiceRoot { QString code() const; - bool canBeEdited(); - bool canBeDeleted(); + bool canBeEdited() const; + bool canBeDeleted() const; bool editViaGui(); bool deleteViaGui();