diff --git a/CMakeLists.txt b/CMakeLists.txt index a64516256..9f06d824b 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -431,8 +431,6 @@ set(APP_SOURCES src/network-web/adblock/adblocktreewidget.cpp src/network-web/adblock/followredirectreply.cpp - - # MAIN sources. src/main.cpp ) @@ -526,8 +524,6 @@ set(APP_HEADERS src/network-web/adblock/adblockicon.h src/network-web/adblock/adblockmanager.h src/network-web/adblock/adblockmatcher.h - src/network-web/adblock/adblockrule.h - src/network-web/adblock/adblocksearchtree.h src/network-web/adblock/adblocksubscription.h src/network-web/adblock/adblocktreewidget.h src/network-web/adblock/followredirectreply.h diff --git a/resources/graphics/icons/mini-kfaenza/view-fullscreen.png b/resources/graphics/icons/mini-kfaenza/view-fullscreen.png index ef92f8e76..f66ed81c2 100644 Binary files a/resources/graphics/icons/mini-kfaenza/view-fullscreen.png and b/resources/graphics/icons/mini-kfaenza/view-fullscreen.png differ diff --git a/resources/graphics/icons/mini-kfaenza/web-adblock-disabled.png b/resources/graphics/icons/mini-kfaenza/web-adblock-disabled.png new file mode 100644 index 000000000..5cc6951dc Binary files /dev/null and b/resources/graphics/icons/mini-kfaenza/web-adblock-disabled.png differ diff --git a/resources/graphics/icons/mini-kfaenza/web-adblock.png b/resources/graphics/icons/mini-kfaenza/web-adblock.png index b18972d03..fb6222e42 100644 Binary files a/resources/graphics/icons/mini-kfaenza/web-adblock.png and b/resources/graphics/icons/mini-kfaenza/web-adblock.png differ diff --git a/src/gui/formmain.cpp b/src/gui/formmain.cpp index 8bfff1d6c..f30578306 100755 --- a/src/gui/formmain.cpp +++ b/src/gui/formmain.cpp @@ -35,6 +35,7 @@ #include "gui/statusbar.h" #include "gui/feedmessageviewer.h" #include "gui/formupdate.h" +#include "gui/plaintoolbutton.h" #include "gui/formimportexport.h" #include "gui/formbackupdatabasesettings.h" #include "gui/formrestoredatabasesettings.h" diff --git a/src/gui/plaintoolbutton.cpp b/src/gui/plaintoolbutton.cpp index 30a08bee8..1c9f72125 100644 --- a/src/gui/plaintoolbutton.cpp +++ b/src/gui/plaintoolbutton.cpp @@ -39,8 +39,9 @@ void PlainToolButton::paintEvent(QPaintEvent *e) { // Set padding. rect.adjust(m_padding, m_padding, -m_padding, -m_padding); + // Paint the icon. - if (underMouse()) { + if (underMouse() || isChecked()) { p.setOpacity(0.7); } @@ -53,7 +54,11 @@ int PlainToolButton::padding() const { void PlainToolButton::setPadding(int padding) { m_padding = padding; - + repaint(); +} + +void PlainToolButton::setChecked(bool checked) { + QToolButton::setChecked(checked); repaint(); } diff --git a/src/gui/plaintoolbutton.h b/src/gui/plaintoolbutton.h index f64c0f69c..48d7a33a6 100644 --- a/src/gui/plaintoolbutton.h +++ b/src/gui/plaintoolbutton.h @@ -33,6 +33,9 @@ class PlainToolButton : public QToolButton { int padding() const; void setPadding(int padding); + public slots: + void setChecked(bool checked); + protected: // Custom look. void paintEvent(QPaintEvent *e); diff --git a/src/gui/statusbar.cpp b/src/gui/statusbar.cpp index d15a58349..7d3c3c244 100755 --- a/src/gui/statusbar.cpp +++ b/src/gui/statusbar.cpp @@ -19,6 +19,8 @@ #include "gui/formmain.h" #include "gui/tabwidget.h" +#include "gui/plaintoolbutton.h" +#include "network-web/adblock/adblockicon.h" #include "miscellaneous/iconfactory.h" #include @@ -31,11 +33,10 @@ StatusBar::StatusBar(QWidget *parent) : QStatusBar(parent) { setSizeGripEnabled(false); setContentsMargins(0, 0, 0, 0); - adblockIcon_ = new AdBlockIcon(this); + m_adblockIcon = new AdBlockIcon(this); // Initializations of widgets for status bar. - m_fullscreenSwitcher = new QToolButton(this); - m_fullscreenSwitcher->setAutoRaise(true); + m_fullscreenSwitcher = new PlainToolButton(this); m_fullscreenSwitcher->setCheckable(true); m_fullscreenSwitcher->setIcon(qApp->icons()->fromTheme("view-fullscreen")); m_fullscreenSwitcher->setText(tr("Fullscreen mode")); @@ -68,22 +69,18 @@ StatusBar::StatusBar(QWidget *parent) : QStatusBar(parent) { addPermanentWidget(m_barProgressFeeds); addPermanentWidget(m_lblProgressDownload); addPermanentWidget(m_barProgressDownload); + addPermanentWidget(m_adblockIcon); addPermanentWidget(m_fullscreenSwitcher); - addPermanentWidget(adblockIcon_); } StatusBar::~StatusBar() { qDebug("Destroying StatusBar instance."); } -void StatusBar::displayDownloadManager() { - qApp->mainForm()->tabWidget()->showDownloadManager(); -} - bool StatusBar::eventFilter(QObject *watched, QEvent *event) { if (watched == m_lblProgressDownload || watched == m_barProgressDownload) { if (event->type() == QEvent::MouseButtonPress) { - displayDownloadManager(); + qApp->mainForm()->tabWidget()->showDownloadManager(); } } diff --git a/src/gui/statusbar.h b/src/gui/statusbar.h index 4a790b6ac..dd8bf72f1 100755 --- a/src/gui/statusbar.h +++ b/src/gui/statusbar.h @@ -20,12 +20,11 @@ #include -#include - class QProgressBar; -class QToolButton; +class PlainToolButton; class QLabel; +class AdBlockIcon; class StatusBar : public QStatusBar { Q_OBJECT @@ -35,11 +34,13 @@ class StatusBar : public QStatusBar { explicit StatusBar(QWidget *parent = 0); virtual ~StatusBar(); - inline QToolButton *fullscreenSwitcher() const { + inline PlainToolButton *fullscreenSwitcher() const { return m_fullscreenSwitcher; } - AdBlockIcon *adBlockIcon() { return adblockIcon_; } + inline AdBlockIcon *adBlockIcon() { + return m_adblockIcon; + } public slots: // Progress bar operations @@ -49,8 +50,6 @@ class StatusBar : public QStatusBar { void showProgressDownload(int progress, const QString &tooltip); void clearProgressDownload(); - void displayDownloadManager(); - protected: bool eventFilter(QObject *watched, QEvent *event); @@ -59,8 +58,8 @@ class StatusBar : public QStatusBar { QLabel *m_lblProgressFeeds; QProgressBar *m_barProgressDownload; QLabel *m_lblProgressDownload; - QToolButton *m_fullscreenSwitcher; - AdBlockIcon* adblockIcon_; + PlainToolButton *m_fullscreenSwitcher; + AdBlockIcon* m_adblockIcon; }; #endif // STATUSBAR_H diff --git a/src/network-web/adblock/adblockdialog.cpp b/src/network-web/adblock/adblockdialog.cpp index 8681b3e21..f7dff329c 100755 --- a/src/network-web/adblock/adblockdialog.cpp +++ b/src/network-web/adblock/adblockdialog.cpp @@ -89,6 +89,10 @@ AdBlockDialog::AdBlockDialog(QWidget* parent) buttonBox->setFocus(); } +AdBlockDialog::~AdBlockDialog() { + qDebug("Destroying AdBlockDialog instance."); +} + void AdBlockDialog::showRule(const AdBlockRule* rule) const { AdBlockSubscription* subscription = rule->subscription(); @@ -210,7 +214,7 @@ void AdBlockDialog::load() m_loaded = true; - QTimer::singleShot(50, this, SLOT(loadSubscriptions())); + QTimer::singleShot(100, this, SLOT(loadSubscriptions())); } void AdBlockDialog::closeEvent(QCloseEvent* ev) diff --git a/src/network-web/adblock/adblockdialog.h b/src/network-web/adblock/adblockdialog.h index 7563b23f0..ca834ce93 100755 --- a/src/network-web/adblock/adblockdialog.h +++ b/src/network-web/adblock/adblockdialog.h @@ -46,44 +46,45 @@ class AdBlockRule; class AdBlockDialog : public QWidget, public Ui_AdBlockDialog { - Q_OBJECT + Q_OBJECT -public: - explicit AdBlockDialog(QWidget* parent = 0); + public: + explicit AdBlockDialog(QWidget* parent = 0); + virtual ~AdBlockDialog(); - void showRule(const AdBlockRule* rule) const; + void showRule(const AdBlockRule* rule) const; -private slots: - void addRule(); - void removeRule(); + private slots: + void addRule(); + void removeRule(); - void addSubscription(); - void removeSubscription(); + void addSubscription(); + void removeSubscription(); - void currentChanged(int index); - void filterString(const QString &string); - void enableAdBlock(bool state); + void currentChanged(int index); + void filterString(const QString &string); + void enableAdBlock(bool state); - void aboutToShowMenu(); - void learnAboutRules(); + void aboutToShowMenu(); + void learnAboutRules(); - void loadSubscriptions(); - void load(); + void loadSubscriptions(); + void load(); -private: - void closeEvent(QCloseEvent* ev); + private: + void closeEvent(QCloseEvent* ev); - AdBlockManager* m_manager; - AdBlockTreeWidget* m_currentTreeWidget; - AdBlockSubscription* m_currentSubscription; + 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; + bool m_loaded; + bool m_useLimitedEasyList; }; #endif // ADBLOCKDIALOG_H diff --git a/src/network-web/adblock/adblockdialog.ui b/src/network-web/adblock/adblockdialog.ui index 067a0437f..98eff9d73 100755 --- a/src/network-web/adblock/adblockdialog.ui +++ b/src/network-web/adblock/adblockdialog.ui @@ -57,7 +57,16 @@ true - + + 0 + + + 0 + + + 0 + + 0 @@ -67,10 +76,6 @@ Options - - - :/images/images/adblock.png:/images/images/adblock.png - @@ -129,7 +134,7 @@ Qt::Horizontal - QDialogButtonBox::Ok + QDialogButtonBox::Close @@ -137,9 +142,7 @@ - - - + adblockCheckBox @@ -157,5 +160,21 @@ + + buttonBox + clicked(QAbstractButton*) + AdBlockDialog + close() + + + 434 + 440 + + + 272 + 230 + + + diff --git a/src/network-web/adblock/adblockicon.cpp b/src/network-web/adblock/adblockicon.cpp index 72b0065da..fa61eebac 100755 --- a/src/network-web/adblock/adblockicon.cpp +++ b/src/network-web/adblock/adblockicon.cpp @@ -32,16 +32,18 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . * ============================================================ */ -#include "adblockicon.h" -#include "adblockrule.h" -#include "adblockmanager.h" -#include "adblocksubscription.h" -#include "webpage.h" +#include "network-web/adblock/adblockicon.h" + +#include "network-web/adblock/adblockrule.h" +#include "network-web/adblock/adblockmanager.h" +#include "network-web/adblock/adblocksubscription.h" +#include "network-web/webpage.h" +#include "network-web/webbrowser.h" #include "miscellaneous/application.h" +#include "gui/plaintoolbutton.h" #include "gui/formmain.h" #include "gui/tabwidget.h" -#include "network-web/webbrowser.h" #include #include @@ -50,27 +52,13 @@ AdBlockIcon::AdBlockIcon(QWidget *window, QWidget *parent) - : QToolButton(parent) - , m_window(window) - , m_menuAction(0) - , m_flashTimer(0) - , m_timerTicks(0) - , m_enabled(false) -{ - setFocusPolicy(Qt::NoFocus); - setStyleSheet("QToolButton { border: none; padding: 0px; }"); + : PlainToolButton(parent), m_window(window), m_menuAction(0), m_flashTimer(0), m_timerTicks(0), m_enabled(false) { + setToolTip(tr("Adblock lets you block unwanted content on web pages.")); connect(this, SIGNAL(clicked(QPoint)), this, SLOT(showMenu(QPoint))); connect(AdBlockManager::instance(), SIGNAL(enabledChanged(bool)), this, SLOT(setEnabled(bool))); } -void AdBlockIcon::retranslateStrings() -{ - setToolTip(tr("AdBlock lets you block unwanted content on web pages")); - - AdBlockManager::instance()->customList()->retranslateStrings(); -} - void AdBlockIcon::popupBlocked(const QString &ruleString, const QUrl &url) { int index = ruleString.lastIndexOf(QLatin1String(" (")); @@ -117,24 +105,25 @@ QAction* AdBlockIcon::menuAction() return m_menuAction; } -void AdBlockIcon::createMenu(QMenu* menu) +void AdBlockIcon::createMenu(QMenu *menu) { - if (!menu) { + if (menu == NULL) { menu = qobject_cast(sender()); - if (!menu) { + + if (menu == NULL) { return; } } menu->clear(); - AdBlockManager* manager = AdBlockManager::instance(); - AdBlockCustomList* customList = manager->customList(); + AdBlockManager *manager = AdBlockManager::instance(); + AdBlockCustomList *customList = manager->customList(); WebPage* page = qApp->mainForm()->tabWidget()->widget(qApp->mainForm()->tabWidget()->currentIndex())->webBrowser()->view()->page(); const QUrl pageUrl = page->mainFrame()->url(); - menu->addAction(tr("Show AdBlock &Settings"), manager, SLOT(showDialog())); + menu->addAction(tr("Show Adblock &settings"), manager, SLOT(showDialog())); menu->addSeparator(); if (!pageUrl.host().isEmpty() && m_enabled && manager->canRunOnScheme(pageUrl.scheme())) { @@ -244,10 +233,10 @@ void AdBlockIcon::stopAnimation() void AdBlockIcon::setEnabled(bool enabled) { if (enabled) { - setIcon(QIcon(":images/images/adblock.png")); + setIcon(qApp->icons()->fromTheme("web-adblock")); } else { - setIcon(QIcon(":images/images/adblock-disabled.png")); + setIcon(qApp->icons()->fromTheme("web-adblock-disabled")); } m_enabled = enabled; diff --git a/src/network-web/adblock/adblockicon.h b/src/network-web/adblock/adblockicon.h index c16b186ad..259d8bec0 100755 --- a/src/network-web/adblock/adblockicon.h +++ b/src/network-web/adblock/adblockicon.h @@ -35,50 +35,49 @@ #ifndef ADBLOCKICON_H #define ADBLOCKICON_H -#include +#include "gui/plaintoolbutton.h" -#include "adblockrule.h" class QMenu; class QUrl; -class MainWindow; +class AdBlockRule; -class AdBlockIcon : public QToolButton -{ - Q_OBJECT -public: - explicit AdBlockIcon(QWidget *window, QWidget *parent = 0); - ~AdBlockIcon(); +class AdBlockIcon : public PlainToolButton { + Q_OBJECT + public: + // Constructors. + explicit AdBlockIcon(QWidget *window, QWidget *parent = 0); + virtual ~AdBlockIcon(); - void retranslateStrings(); - void popupBlocked(const QString &ruleString, const QUrl &url); - QAction* menuAction(); + void popupBlocked(const QString &ruleString, const QUrl &url); + QAction *menuAction(); -signals: - void clicked(QPoint); + public slots: + void setEnabled(bool enabled); + void createMenu(QMenu *menu = NULL); -public slots: - void setEnabled(bool enabled); - void createMenu(QMenu* menu = 0); + private slots: + void showMenu(const QPoint &pos); + void toggleCustomFilter(); -private slots: - void showMenu(const QPoint &pos); - void toggleCustomFilter(); + void animateIcon(); + void stopAnimation(); - void animateIcon(); - void stopAnimation(); + protected: + void mouseReleaseEvent(QMouseEvent *event); -private: - void mouseReleaseEvent(QMouseEvent* event); + signals: + void clicked(QPoint); - QWidget *m_window; - QAction* m_menuAction; + private: + QWidget *m_window; + QAction* m_menuAction; - QVector > m_blockedPopups; - QTimer* m_flashTimer; + QVector > m_blockedPopups; + QTimer* m_flashTimer; - int m_timerTicks; - bool m_enabled; + int m_timerTicks; + bool m_enabled; }; #endif // ADBLOCKICON_H diff --git a/src/network-web/adblock/adblockmanager.cpp b/src/network-web/adblock/adblockmanager.cpp index b87bac832..0702d11a1 100755 --- a/src/network-web/adblock/adblockmanager.cpp +++ b/src/network-web/adblock/adblockmanager.cpp @@ -43,6 +43,7 @@ #include "miscellaneous/application.h" #include "miscellaneous/settings.h" #include "network-web/silentnetworkaccessmanager.h" +#include "gui/formmain.h" #include #include @@ -445,8 +446,14 @@ AdBlockSubscription* AdBlockManager::subscriptionByName(const QString &name) con return 0; } -AdBlockDialog* AdBlockManager::showDialog() -{ +AdBlockDialog *AdBlockManager::showDialog() { + QPointer form_pointer = new AdBlockDialog(); + form_pointer.data()->show(); + form_pointer.data()->raise(); + form_pointer.data()->activateWindow(); + form_pointer.data()->setAttribute(Qt::WA_DeleteOnClose, true); + return form_pointer.data(); + /* if (!m_adBlockDialog) { m_adBlockDialog = new AdBlockDialog; } @@ -455,7 +462,7 @@ AdBlockDialog* AdBlockManager::showDialog() m_adBlockDialog.data()->raise(); m_adBlockDialog.data()->activateWindow(); - return m_adBlockDialog.data(); + return m_adBlockDialog.data();*/ } void AdBlockManager::showRule() diff --git a/src/network-web/adblock/adblockmanager.h b/src/network-web/adblock/adblockmanager.h index f3e76585d..7b8451e81 100755 --- a/src/network-web/adblock/adblockmanager.h +++ b/src/network-web/adblock/adblockmanager.h @@ -70,68 +70,67 @@ class AdBlockSubscription; class AdBlockManager : public QObject { - Q_OBJECT + Q_OBJECT -public: - AdBlockManager(QObject* parent = 0); - ~AdBlockManager(); + public: + AdBlockManager(QObject* parent = 0); + ~AdBlockManager(); - static AdBlockManager* instance(); + static AdBlockManager* instance(); - static QString filterCharsFromFilename(const QString &name); + static QString filterCharsFromFilename(const QString &name); - static QString ensureUniqueFilename(const QString &name, const QString &appendFormat = QString("(%1)")); + static QString ensureUniqueFilename(const QString &name, const QString &appendFormat = QString("(%1)")); - void load(); - void save(); + void load(); + void save(); - bool isEnabled() const; - bool canRunOnScheme(const QString &scheme) const; + bool isEnabled() const; + bool canRunOnScheme(const QString &scheme) const; - bool useLimitedEasyList() const; - void setUseLimitedEasyList(bool useLimited); + bool useLimitedEasyList() const; + void setUseLimitedEasyList(bool useLimited); - QString elementHidingRules() const; - QString elementHidingRulesForDomain(const QUrl &url) const; + QString elementHidingRules() const; + QString elementHidingRulesForDomain(const QUrl &url) const; - AdBlockSubscription* subscriptionByName(const QString &name) const; - QList subscriptions() const; + AdBlockSubscription* subscriptionByName(const QString &name) const; + QList subscriptions() const; - QNetworkReply* block(const QNetworkRequest &request); + QNetworkReply* block(const QNetworkRequest &request); - QStringList disabledRules() const; - void addDisabledRule(const QString &filter); - void removeDisabledRule(const QString &filter); + QStringList disabledRules() const; + void addDisabledRule(const QString &filter); + void removeDisabledRule(const QString &filter); - AdBlockSubscription* addSubscription(const QString &title, const QString &url); - bool removeSubscription(AdBlockSubscription* subscription); + AdBlockSubscription* addSubscription(const QString &title, const QString &url); + bool removeSubscription(AdBlockSubscription* subscription); - AdBlockCustomList* customList() const; + AdBlockCustomList* customList() const; -signals: - void enabledChanged(bool enabled); + signals: + void enabledChanged(bool enabled); -public slots: - void setEnabled(bool enabled); - void showRule(); + public slots: + void setEnabled(bool enabled); + void showRule(); + void updateAllSubscriptions(); - void updateAllSubscriptions(); + AdBlockDialog *showDialog(); - AdBlockDialog* showDialog(); + private: + inline bool canBeBlocked(const QUrl &url) const; -private: - inline bool canBeBlocked(const QUrl &url) const; + bool m_loaded; + bool m_enabled; + bool m_useLimitedEasyList; - bool m_loaded; - bool m_enabled; - bool m_useLimitedEasyList; + QList m_subscriptions; + static AdBlockManager* s_adBlockManager; + AdBlockMatcher* m_matcher; + QStringList m_disabledRules; - QList m_subscriptions; - static AdBlockManager* s_adBlockManager; - AdBlockMatcher* m_matcher; - QStringList m_disabledRules; - - QPointer m_adBlockDialog; + QPointer m_adBlockDialog; }; #endif // ADBLOCKMANAGER_H diff --git a/src/network-web/adblock/adblocksubscription.cpp b/src/network-web/adblock/adblocksubscription.cpp index 9edce5222..cc46bbbbe 100755 --- a/src/network-web/adblock/adblocksubscription.cpp +++ b/src/network-web/adblock/adblocksubscription.cpp @@ -327,18 +327,12 @@ AdBlockSubscription::~AdBlockSubscription() // AdBlockCustomList -AdBlockCustomList::AdBlockCustomList(QObject* parent) - : AdBlockSubscription(tr("Custom Rules"), parent) -{ +AdBlockCustomList::AdBlockCustomList(QObject* parent) : AdBlockSubscription(tr("Custom rules"), parent) { + setTitle(tr("Custom rules")); // TODO setFilePath(qApp->homeFolderPath() + "/adblock/customlist.txt"); } -void AdBlockCustomList::retranslateStrings() -{ - setTitle(tr("Custom Rules")); -} - void AdBlockCustomList::loadSubscription(const QStringList &disabledRules) { // DuckDuckGo ad whitelist rules diff --git a/src/network-web/adblock/adblocksubscription.h b/src/network-web/adblock/adblocksubscription.h index 6e79d0f0f..4772af3bd 100755 --- a/src/network-web/adblock/adblocksubscription.h +++ b/src/network-web/adblock/adblocksubscription.h @@ -77,82 +77,80 @@ class FollowRedirectReply; class AdBlockSubscription : public QObject { - Q_OBJECT -public: - explicit AdBlockSubscription(const QString &title, QObject* parent = 0); - ~AdBlockSubscription(); + Q_OBJECT + public: + explicit AdBlockSubscription(const QString &title, QObject* parent = 0); + ~AdBlockSubscription(); - QString title() const; - void setTitle(const QString &title); + QString title() const; + void setTitle(const QString &title); - QString filePath() const; - void setFilePath(const QString &path); + QString filePath() const; + void setFilePath(const QString &path); - QUrl url() const; - void setUrl(const QUrl &url); + QUrl url() const; + void setUrl(const QUrl &url); - virtual void loadSubscription(const QStringList &disabledRules); - virtual void saveSubscription(); + virtual void loadSubscription(const QStringList &disabledRules); + virtual void saveSubscription(); - const AdBlockRule* rule(int offset) const; - QVector allRules() const; + const AdBlockRule* rule(int offset) const; + QVector allRules() const; - const AdBlockRule* enableRule(int offset); - const AdBlockRule* disableRule(int offset); + const AdBlockRule* enableRule(int offset); + const AdBlockRule* disableRule(int offset); - virtual bool canEditRules() const; - virtual bool canBeRemoved() const; + virtual bool canEditRules() const; + virtual bool canBeRemoved() const; - virtual int addRule(AdBlockRule* rule); - virtual bool removeRule(int offset); - virtual const AdBlockRule* replaceRule(AdBlockRule* rule, int offset); + virtual int addRule(AdBlockRule* rule); + virtual bool removeRule(int offset); + virtual const AdBlockRule* replaceRule(AdBlockRule* rule, int offset); -public slots: - void updateSubscription(); + public slots: + void updateSubscription(); -signals: - void subscriptionChanged(); - void subscriptionUpdated(); - void subscriptionError(const QString &message); + signals: + void subscriptionChanged(); + void subscriptionUpdated(); + void subscriptionError(const QString &message); -protected slots: - void subscriptionDownloaded(); + protected slots: + void subscriptionDownloaded(); -protected: - virtual bool saveDownloadedData(const QByteArray &data); + protected: + virtual bool saveDownloadedData(const QByteArray &data); - FollowRedirectReply* m_reply; + FollowRedirectReply* m_reply; - QVector m_rules; + QVector m_rules; -private: - QString m_title; - QString m_filePath; + private: + QString m_title; + QString m_filePath; - QUrl m_url; - bool m_updated; + QUrl m_url; + bool m_updated; }; class AdBlockCustomList : public AdBlockSubscription { - Q_OBJECT -public: - explicit AdBlockCustomList(QObject* parent = 0); + Q_OBJECT + public: + explicit AdBlockCustomList(QObject* parent = 0); - void retranslateStrings(); + void loadSubscription(const QStringList &disabledRules); + void saveSubscription(); - void loadSubscription(const QStringList &disabledRules); - void saveSubscription(); + bool canEditRules() const; + bool canBeRemoved() const; - bool canEditRules() const; - bool canBeRemoved() const; + bool containsFilter(const QString &filter) const; + bool removeFilter(const QString &filter); - bool containsFilter(const QString &filter) const; - bool removeFilter(const QString &filter); - - int addRule(AdBlockRule* rule); - bool removeRule(int offset); - const AdBlockRule* replaceRule(AdBlockRule* rule, int offset); + int addRule(AdBlockRule* rule); + bool removeRule(int offset); + const AdBlockRule* replaceRule(AdBlockRule* rule, int offset); }; #endif // ADBLOCKSUBSCRIPTION_H