diff options
Diffstat (limited to 'src/adblock')
-rw-r--r-- | src/adblock/adblockmanager.cpp | 29 | ||||
-rw-r--r-- | src/adblock/adblockmanager.h | 4 |
2 files changed, 33 insertions, 0 deletions
diff --git a/src/adblock/adblockmanager.cpp b/src/adblock/adblockmanager.cpp index b435d437..27fb4020 100644 --- a/src/adblock/adblockmanager.cpp +++ b/src/adblock/adblockmanager.cpp @@ -62,6 +62,12 @@ AdBlockManager::~AdBlockManager() } +bool AdBlockManager::isEnabled() +{ + return _isAdblockEnabled; +} + + void AdBlockManager::loadSettings() { // first, check this... @@ -347,3 +353,26 @@ void AdBlockManager::showSettings() dialog->deleteLater(); } + + +void AdBlockManager::addCustomRule(const QString &stringRule) +{ + // save rule in local filters + QString localRulesFilePath = KStandardDirs::locateLocal("appdata" , QL1S("adblockrules_local")); + + QFile ruleFile(localRulesFilePath); + if (!ruleFile.open(QFile::WriteOnly | QFile::Text)) + { + kDebug() << "Unable to open rule file" << localRulesFilePath; + return; + } + + QTextStream out(&ruleFile); + out << stringRule << '\n'; + + // load it + AdBlockRule rule(stringRule); + _blackList << rule; + + // TODO: update page? +} diff --git a/src/adblock/adblockmanager.h b/src/adblock/adblockmanager.h index f853a8ed..2e7f7836 100644 --- a/src/adblock/adblockmanager.h +++ b/src/adblock/adblockmanager.h @@ -154,9 +154,13 @@ public: AdBlockManager(QObject *parent = 0); ~AdBlockManager(); + bool isEnabled(); + QNetworkReply *block(const QNetworkRequest &request, WebPage *page); void applyHidingRules(WebPage *page); + void addCustomRule(const QString &); + public Q_SLOTS: void loadSettings(); void showSettings(); |