From 85900021a041818ecf2415f5925fcc2a5aa5e7a4 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Fri, 20 Nov 2009 02:27:17 +0100 Subject: AdBlock. First blocks :D --- src/CMakeLists.txt | 12 ++++++++--- src/adblock/adblockmanager.cpp | 47 +++++++++++++++++++++++++++++++++++++++++ src/adblock/adblockmanager.h | 48 ++++++++++++++++++++++++++++++++++++++++++ src/webpage.cpp | 5 ++--- src/webpage.h | 5 +++++ 5 files changed, 111 insertions(+), 6 deletions(-) create mode 100644 src/adblock/adblockmanager.cpp create mode 100644 src/adblock/adblockmanager.h diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 296e91fd..a675573a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -27,11 +27,16 @@ SET( rekonq_KDEINIT_SRCS webpluginfactory.cpp websnap.cpp webview.cpp +#---------------------------------------- rekonqpage/newtabpage.cpp +#---------------------------------------- settings/settingsdialog.cpp - bookmarkspanel/bookmarkspanel.cpp - bookmarkspanel/bookmarkstreemodel.cpp - bookmarkspanel/bookmarksproxy.cpp +#---------------------------------------- + bookmarkspanel/bookmarkspanel.cpp + bookmarkspanel/bookmarkstreemodel.cpp + bookmarkspanel/bookmarksproxy.cpp +#---------------------------------------- + adblock/adblockmanager.cpp ) @@ -51,6 +56,7 @@ KDE4_ADD_KCFG_FILES( rekonq_KDEINIT_SRCS rekonq.kcfgc ) INCLUDE_DIRECTORIES ( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/rekonqpage ${CMAKE_CURRENT_SOURCE_DIR}/settings + ${CMAKE_CURRENT_SOURCE_DIR}/adblock ${CMAKE_CURRENT_BINARY_DIR} ${KDE4_INCLUDES} ${QT4_INCLUDES} diff --git a/src/adblock/adblockmanager.cpp b/src/adblock/adblockmanager.cpp new file mode 100644 index 00000000..2d3feff7 --- /dev/null +++ b/src/adblock/adblockmanager.cpp @@ -0,0 +1,47 @@ +/* ============================================================ +* +* This file is a part of the rekonq project +* +* Copyright (C) 2009 by Andrea Diamantini +* +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License as +* published by the Free Software Foundation; either version 2 of +* the License or (at your option) version 3 or any later version +* accepted by the membership of KDE e.V. (or its successor approved +* by the membership of KDE e.V.), which shall act as a proxy +* defined in Section 14 of version 3 of the license. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* ============================================================ */ + + +#include "adblockmanager.h" +#include "adblockmanager.moc" + +#include + + +AdBlockManager::AdBlockManager(QObject *parent) + : QObject(parent) +{ +} + + +AdBlockManager::~AdBlockManager() +{ +} + + +bool AdBlockManager::isUrlAllowed(const QUrl &url) +{ + return true; +} \ No newline at end of file diff --git a/src/adblock/adblockmanager.h b/src/adblock/adblockmanager.h new file mode 100644 index 00000000..12e897c1 --- /dev/null +++ b/src/adblock/adblockmanager.h @@ -0,0 +1,48 @@ +/* ============================================================ +* +* This file is a part of the rekonq project +* +* Copyright (C) 2009 by Andrea Diamantini +* +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License as +* published by the Free Software Foundation; either version 2 of +* the License or (at your option) version 3 or any later version +* accepted by the membership of KDE e.V. (or its successor approved +* by the membership of KDE e.V.), which shall act as a proxy +* defined in Section 14 of version 3 of the license. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program. If not, see . +* +* ============================================================ */ + + + +#ifndef ADBLOCK_MANAGER_H +#define ADBLOCK_MANAGER_H + + +#include + +class QUrl; + + +class AdBlockManager : public QObject +{ +Q_OBJECT + +public: + AdBlockManager(QObject *parent = 0); + ~AdBlockManager(); + + bool isUrlAllowed(const QUrl &url); +}; + +#endif diff --git a/src/webpage.cpp b/src/webpage.cpp index 94ecbe09..9803d8a3 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -69,6 +69,7 @@ WebPage::WebPage(QObject *parent, qlonglong windowId) : KWebPage(parent, windowId) , m_keyboardModifiers(Qt::NoModifier) , m_pressedButtons(Qt::NoButton) + , m_adBlockMan(new AdBlockManager(this)) { setPluginFactory(new WebPluginFactory(this)); @@ -252,7 +253,5 @@ QString WebPage::errorPage(QNetworkReply *reply) bool WebPage::authorizedRequest(const QUrl &url) const { - Q_UNUSED(url) - // TODO implement ad-block here - return true; + return m_adBlockMan->isUrlAllowed(url); } diff --git a/src/webpage.h b/src/webpage.h index eb558220..acaaab25 100644 --- a/src/webpage.h +++ b/src/webpage.h @@ -32,6 +32,9 @@ #define WEBPAGE_H +// Local Includes +#include "adblockmanager.h" + // KDE Includes #include @@ -75,6 +78,8 @@ private: Qt::MouseButtons m_pressedButtons; QUrl m_requestedUrl; + + AdBlockManager *m_adBlockMan; }; #endif -- cgit v1.2.1