summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--konq-plugins/adblock/Makefile.am15
-rw-r--r--konq-plugins/adblock/Makefile.in812
-rw-r--r--konq-plugins/adblock/adblock.cpp268
-rw-r--r--konq-plugins/adblock/adblock.h99
-rw-r--r--konq-plugins/adblock/adblockdialogue.cpp163
-rw-r--r--konq-plugins/adblock/adblockdialogue.h76
-rw-r--r--konq-plugins/adblock/plugin_adblock.desktop16
-rw-r--r--konq-plugins/adblock/plugin_adblock.rc3
8 files changed, 1452 insertions, 0 deletions
diff --git a/konq-plugins/adblock/Makefile.am b/konq-plugins/adblock/Makefile.am
new file mode 100644
index 0000000..47c4074
--- /dev/null
+++ b/konq-plugins/adblock/Makefile.am
@@ -0,0 +1,15 @@
+INCLUDES = $(all_includes)
+METASOURCES = AUTO
+
+# Install this plugin in the KDE modules directory
+kde_module_LTLIBRARIES = libadblock.la
+
+libadblock_la_SOURCES = adblock.cpp adblockdialogue.cpp
+libadblock_la_LIBADD = $(LIB_KHTML) -lkonq
+libadblock_la_LDFLAGS = -module $(KDE_PLUGIN) $(all_libraries)
+
+pluginsdir = $(kde_datadir)/khtml/kpartplugins
+plugins_DATA = plugin_adblock.rc plugin_adblock.desktop
+
+messages: rc.cpp
+ $(XGETTEXT) *.cpp *.h -o $(podir)/adblockplugin.pot
diff --git a/konq-plugins/adblock/Makefile.in b/konq-plugins/adblock/Makefile.in
new file mode 100644
index 0000000..4b7ece5
--- /dev/null
+++ b/konq-plugins/adblock/Makefile.in
@@ -0,0 +1,812 @@
+# Makefile.in generated by automake 1.7.9 from Makefile.am.
+# KDE tags expanded automatically by am_edit - $Revision: 483858 $
+# @configure_input@
+
+# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+# Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+ARTSCCONFIG = @ARTSCCONFIG@
+AUTOCONF = @AUTOCONF@
+AUTODIRS = @AUTODIRS@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BERKELEY_DB_LIBS = @BERKELEY_DB_LIBS@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONF_FILES = @CONF_FILES@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DCOPIDLNG = @DCOPIDLNG@
+DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
+KCONFIG_COMPILER = @KCONFIG_COMPILER@
+KDECONFIG = @KDECONFIG@
+KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
+KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
+KDE_INCLUDES = @KDE_INCLUDES@
+KDE_LDFLAGS = @KDE_LDFLAGS@
+KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@
+KDE_MT_LIBS = @KDE_MT_LIBS@
+KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
+KDE_PLUGIN = @KDE_PLUGIN@
+KDE_RPATH = @KDE_RPATH@
+KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
+KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
+KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
+KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
+KDE_USE_FPIE = @KDE_USE_FPIE@
+KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
+KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
+KDE_USE_PIE = @KDE_USE_PIE@
+KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
+LDFLAGS = @LDFLAGS@
+LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
+LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
+LIBCOMPAT = @LIBCOMPAT@
+LIBCRYPT = @LIBCRYPT@
+LIBDL = @LIBDL@
+LIBJPEG = @LIBJPEG@
+LIBKSTAT = @LIBKSTAT@
+LIBOBJS = @LIBOBJS@
+LIBPNG = @LIBPNG@
+LIBPTHREAD = @LIBPTHREAD@
+LIBRESOLV = @LIBRESOLV@
+LIBS = @LIBS@
+LIBSM = @LIBSM@
+LIBSOCKET = @LIBSOCKET@
+LIBSSL = @LIBSSL@
+LIBTOOL = @LIBTOOL@
+LIBUCB = @LIBUCB@
+LIBUTIL = @LIBUTIL@
+LIBZ = @LIBZ@
+LIB_KAB = @LIB_KAB@
+LIB_KABC = @LIB_KABC@
+LIB_KDECORE = @LIB_KDECORE@
+LIB_KDED = @LIB_KDED@
+LIB_KDEPIM = @LIB_KDEPIM@
+LIB_KDEPRINT = @LIB_KDEPRINT@
+LIB_KDEUI = @LIB_KDEUI@
+LIB_KDNSSD = @LIB_KDNSSD@
+LIB_KFILE = @LIB_KFILE@
+LIB_KFM = @LIB_KFM@
+LIB_KHTML = @LIB_KHTML@
+LIB_KIMPROXY = @LIB_KIMPROXY@
+LIB_KIO = @LIB_KIO@
+LIB_KJS = @LIB_KJS@
+LIB_KNEWSTUFF = @LIB_KNEWSTUFF@
+LIB_KPARTS = @LIB_KPARTS@
+LIB_KSPELL = @LIB_KSPELL@
+LIB_KSYCOCA = @LIB_KSYCOCA@
+LIB_KUNITTEST = @LIB_KUNITTEST@
+LIB_KUTILS = @LIB_KUTILS@
+LIB_POLL = @LIB_POLL@
+LIB_QPE = @LIB_QPE@
+LIB_QT = @LIB_QT@
+LIB_SMB = @LIB_SMB@
+LIB_X11 = @LIB_X11@
+LIB_XEXT = @LIB_XEXT@
+LIB_XRENDER = @LIB_XRENDER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+MAKEINFO = @MAKEINFO@
+MAKEKDEWIDGETS = @MAKEKDEWIDGETS@
+MCOPIDL = @MCOPIDL@
+MEINPROC = @MEINPROC@
+MOC = @MOC@
+MSGFMT = @MSGFMT@
+NOOPT_CFLAGS = @NOOPT_CFLAGS@
+NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+QTE_NORTTI = @QTE_NORTTI@
+QT_INCLUDES = @QT_INCLUDES@
+QT_LDFLAGS = @QT_LDFLAGS@
+RANLIB = @RANLIB@
+SDL_CFLAGS = @SDL_CFLAGS@
+SDL_CONFIG = @SDL_CONFIG@
+SDL_LIBS = @SDL_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SSL_INCLUDES = @SSL_INCLUDES@
+SSL_LDFLAGS = @SSL_LDFLAGS@
+STRIP = @STRIP@
+TOPSUBDIRS = @TOPSUBDIRS@
+UIC = @UIC@
+UIC_TR = @UIC_TR@
+USER_INCLUDES = @USER_INCLUDES@
+USER_LDFLAGS = @USER_LDFLAGS@
+USE_EXCEPTIONS = @USE_EXCEPTIONS@
+USE_RTTI = @USE_RTTI@
+USE_THREADS = @USE_THREADS@
+VERSION = @VERSION@
+WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
+XGETTEXT = @XGETTEXT@
+XMKMF = @XMKMF@
+XMLLINT = @XMLLINT@
+XMMS_INCLUDES = @XMMS_INCLUDES@
+XMMS_LIBS = @XMMS_LIBS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_INCLUDES = @X_INCLUDES@
+X_LDFLAGS = @X_LDFLAGS@
+X_PRE_LIBS = @X_PRE_LIBS@
+X_RPATH = @X_RPATH@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+all_includes = @all_includes@
+all_libraries = @all_libraries@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+atlantikdesigner_SUBDIR_included_FALSE = @atlantikdesigner_SUBDIR_included_FALSE@
+atlantikdesigner_SUBDIR_included_TRUE = @atlantikdesigner_SUBDIR_included_TRUE@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+datarootdir = @datarootdir@
+doc_SUBDIR_included_FALSE = @doc_SUBDIR_included_FALSE@
+doc_SUBDIR_included_TRUE = @doc_SUBDIR_included_TRUE@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+include_ARTS_FALSE = @include_ARTS_FALSE@
+include_ARTS_TRUE = @include_ARTS_TRUE@
+include_BERKELEY_DB_FALSE = @include_BERKELEY_DB_FALSE@
+include_BERKELEY_DB_TRUE = @include_BERKELEY_DB_TRUE@
+include_SDL_FALSE = @include_SDL_FALSE@
+include_SDL_TRUE = @include_SDL_TRUE@
+include_kfileplugin_cert_SUBDIR_FALSE = @include_kfileplugin_cert_SUBDIR_FALSE@
+include_kfileplugin_cert_SUBDIR_TRUE = @include_kfileplugin_cert_SUBDIR_TRUE@
+include_noatunplugin_FALSE = @include_noatunplugin_FALSE@
+include_noatunplugin_TRUE = @include_noatunplugin_TRUE@
+include_x11_FALSE = @include_x11_FALSE@
+include_x11_TRUE = @include_x11_TRUE@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kaddressbook_plugins_SUBDIR_included_FALSE = @kaddressbook_plugins_SUBDIR_included_FALSE@
+kaddressbook_plugins_SUBDIR_included_TRUE = @kaddressbook_plugins_SUBDIR_included_TRUE@
+kate_SUBDIR_included_FALSE = @kate_SUBDIR_included_FALSE@
+kate_SUBDIR_included_TRUE = @kate_SUBDIR_included_TRUE@
+kde_appsdir = @kde_appsdir@
+kde_bindir = @kde_bindir@
+kde_confdir = @kde_confdir@
+kde_datadir = @kde_datadir@
+kde_htmldir = @kde_htmldir@
+kde_icondir = @kde_icondir@
+kde_includes = @kde_includes@
+kde_kcfgdir = @kde_kcfgdir@
+kde_libraries = @kde_libraries@
+kde_libs_htmldir = @kde_libs_htmldir@
+kde_libs_prefix = @kde_libs_prefix@
+kde_locale = @kde_locale@
+kde_mimedir = @kde_mimedir@
+kde_moduledir = @kde_moduledir@
+kde_qtver = @kde_qtver@
+kde_servicesdir = @kde_servicesdir@
+kde_servicetypesdir = @kde_servicetypesdir@
+kde_sounddir = @kde_sounddir@
+kde_styledir = @kde_styledir@
+kde_templatesdir = @kde_templatesdir@
+kde_wallpaperdir = @kde_wallpaperdir@
+kde_widgetdir = @kde_widgetdir@
+kdeinitdir = @kdeinitdir@
+kfile_plugins_SUBDIR_included_FALSE = @kfile_plugins_SUBDIR_included_FALSE@
+kfile_plugins_SUBDIR_included_TRUE = @kfile_plugins_SUBDIR_included_TRUE@
+kicker_applets_SUBDIR_included_FALSE = @kicker_applets_SUBDIR_included_FALSE@
+kicker_applets_SUBDIR_included_TRUE = @kicker_applets_SUBDIR_included_TRUE@
+knewsticker_scripts_SUBDIR_included_FALSE = @knewsticker_scripts_SUBDIR_included_FALSE@
+knewsticker_scripts_SUBDIR_included_TRUE = @knewsticker_scripts_SUBDIR_included_TRUE@
+konq_plugins_SUBDIR_included_FALSE = @konq_plugins_SUBDIR_included_FALSE@
+konq_plugins_SUBDIR_included_TRUE = @konq_plugins_SUBDIR_included_TRUE@
+ksig_SUBDIR_included_FALSE = @ksig_SUBDIR_included_FALSE@
+ksig_SUBDIR_included_TRUE = @ksig_SUBDIR_included_TRUE@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+noatun_plugins_SUBDIR_included_FALSE = @noatun_plugins_SUBDIR_included_FALSE@
+noatun_plugins_SUBDIR_included_TRUE = @noatun_plugins_SUBDIR_included_TRUE@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+qt_includes = @qt_includes@
+qt_libraries = @qt_libraries@
+renamedlgplugins_SUBDIR_included_FALSE = @renamedlgplugins_SUBDIR_included_FALSE@
+renamedlgplugins_SUBDIR_included_TRUE = @renamedlgplugins_SUBDIR_included_TRUE@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+unsermake_enable_pch_FALSE = @unsermake_enable_pch_FALSE@
+unsermake_enable_pch_TRUE = @unsermake_enable_pch_TRUE@
+x_includes = @x_includes@
+x_libraries = @x_libraries@
+xdg_appsdir = @xdg_appsdir@
+xdg_directorydir = @xdg_directorydir@
+xdg_menudir = @xdg_menudir@
+INCLUDES = $(all_includes)
+#>- METASOURCES = AUTO
+
+# Install this plugin in the KDE modules directory
+kde_module_LTLIBRARIES = libadblock.la
+
+libadblock_la_SOURCES = adblock.cpp adblockdialogue.cpp
+libadblock_la_LIBADD = $(LIB_KHTML) -lkonq
+libadblock_la_LDFLAGS = -module $(KDE_PLUGIN) $(all_libraries)
+
+pluginsdir = $(kde_datadir)/khtml/kpartplugins
+plugins_DATA = plugin_adblock.rc plugin_adblock.desktop
+subdir = konq-plugins/adblock
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(kde_module_LTLIBRARIES)
+
+libadblock_la_DEPENDENCIES =
+am_libadblock_la_OBJECTS = adblock.lo adblockdialogue.lo
+#>- libadblock_la_OBJECTS = $(am_libadblock_la_OBJECTS)
+#>+ 4
+libadblock_la_final_OBJECTS = libadblock_la.all_cpp.lo
+libadblock_la_nofinal_OBJECTS = adblock.lo adblockdialogue.lo
+@KDE_USE_FINAL_FALSE@libadblock_la_OBJECTS = $(libadblock_la_nofinal_OBJECTS)
+@KDE_USE_FINAL_TRUE@libadblock_la_OBJECTS = $(libadblock_la_final_OBJECTS)
+
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
+am__depfiles_maybe = depfiles
+#>- @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/adblock.Plo \
+#>- @AMDEP_TRUE@ ./$(DEPDIR)/adblockdialogue.Plo
+#>+ 4
+@AMDEP_TRUE@@KDE_USE_FINAL_TRUE@DEP_FILES = $(DEPDIR)/libadblock_la.all_cpp.P ./$(DEPDIR)/adblock.Plo \
+@AMDEP_TRUE@@KDE_USE_FINAL_TRUE@ @AMDEP_TRUE@ ./$(DEPDIR)/adblockdialogue.Plo
+@AMDEP_TRUE@@KDE_USE_FINAL_FALSE@DEP_FILES = ./$(DEPDIR)/adblock.Plo \
+@AMDEP_TRUE@@KDE_USE_FINAL_FALSE@ @AMDEP_TRUE@ ./$(DEPDIR)/adblockdialogue.Plo
+#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+#>+ 2
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
+#>- LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \
+#>- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+#>- $(AM_CXXFLAGS) $(CXXFLAGS)
+#>+ 3
+LTCXXCOMPILE = $(LIBTOOL) --mode=compile --tag=CXX $(CXX) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
+CXXLD = $(CXX)
+#>- CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
+#>- $(AM_LDFLAGS) $(LDFLAGS) -o $@
+#>+ 2
+CXXLINK = $(LIBTOOL) --mode=link --tag=CXX $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DIST_SOURCES = $(libadblock_la_SOURCES)
+DATA = $(plugins_DATA)
+
+DIST_COMMON = $(srcdir)/Makefile.in Makefile.am
+SOURCES = $(libadblock_la_SOURCES)
+
+#>- all: all-am
+#>+ 1
+all: docs-am all-am
+
+.SUFFIXES:
+.SUFFIXES: .cpp .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+#>- cd $(top_srcdir) && \
+#>- $(AUTOMAKE) --foreign konq-plugins/adblock/Makefile
+#>+ 3
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --foreign konq-plugins/adblock/Makefile
+ cd $(top_srcdir) && perl admin/am_edit konq-plugins/adblock/Makefile.in
+Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
+kde_moduleLTLIBRARIES_INSTALL = $(INSTALL)
+install-kde_moduleLTLIBRARIES: $(kde_module_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(kde_moduledir)
+ @list='$(kde_module_LTLIBRARIES)'; for p in $$list; do \
+ if test -f $$p; then \
+ f="`echo $$p | sed -e 's|^.*/||'`"; \
+ echo " $(LIBTOOL) --mode=install $(kde_moduleLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(kde_moduledir)/$$f"; \
+ $(LIBTOOL) --mode=install $(kde_moduleLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(kde_moduledir)/$$f; \
+ else :; fi; \
+ done
+
+uninstall-kde_moduleLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(kde_module_LTLIBRARIES)'; for p in $$list; do \
+ p="`echo $$p | sed -e 's|^.*/||'`"; \
+ echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(kde_moduledir)/$$p"; \
+ $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(kde_moduledir)/$$p; \
+ done
+
+clean-kde_moduleLTLIBRARIES:
+ -test -z "$(kde_module_LTLIBRARIES)" || rm -f $(kde_module_LTLIBRARIES)
+ @list='$(kde_module_LTLIBRARIES)'; for p in $$list; do \
+ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+ test "$$dir" = "$$p" && dir=.; \
+ echo "rm -f \"$${dir}/so_locations\""; \
+ rm -f "$${dir}/so_locations"; \
+ done
+#>- libadblock.la: $(libadblock_la_OBJECTS) $(libadblock_la_DEPENDENCIES)
+#>+ 2
+@KDE_USE_CLOSURE_TRUE@libadblock.la: libadblock.la.closure $(libadblock_la_OBJECTS) $(libadblock_la_DEPENDENCIES)
+@KDE_USE_CLOSURE_FALSE@libadblock.la: $(libadblock_la_OBJECTS) $(libadblock_la_DEPENDENCIES)
+ $(CXXLINK) -rpath $(kde_moduledir) $(libadblock_la_LDFLAGS) $(libadblock_la_OBJECTS) $(libadblock_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT) core *.core
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/adblock.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/adblockdialogue.Plo@am__quote@
+
+.cpp.o:
+@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
+@am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
+@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+@am__fastdepCXX_TRUE@ fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
+
+.cpp.obj:
+@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
+@am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \
+@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+@am__fastdepCXX_TRUE@ fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`
+
+.cpp.lo:
+@am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \
+@am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \
+@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \
+@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+@am__fastdepCXX_TRUE@ fi
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+distclean-libtool:
+ -rm -f libtool
+uninstall-info-am:
+pluginsDATA_INSTALL = $(INSTALL_DATA)
+install-pluginsDATA: $(plugins_DATA)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(pluginsdir)
+ @list='$(plugins_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f="`echo $$p | sed -e 's|^.*/||'`"; \
+ echo " $(pluginsDATA_INSTALL) $$d$$p $(DESTDIR)$(pluginsdir)/$$f"; \
+ $(pluginsDATA_INSTALL) $$d$$p $(DESTDIR)$(pluginsdir)/$$f; \
+ done
+
+uninstall-pluginsDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(plugins_DATA)'; for p in $$list; do \
+ f="`echo $$p | sed -e 's|^.*/||'`"; \
+ echo " rm -f $(DESTDIR)$(pluginsdir)/$$f"; \
+ rm -f $(DESTDIR)$(pluginsdir)/$$f; \
+ done
+
+ETAGS = etags
+ETAGSFLAGS =
+
+CTAGS = ctags
+CTAGSFLAGS =
+
+tags: TAGS
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ mkid -fID $$unique
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(ETAGS_ARGS)$$tags$$unique" \
+ || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique
+
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) ' { files[$$0] = 1; } \
+ END { for (i in files) print i; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$tags $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && cd $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+#>+ 1
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
+
+top_distdir = ../..
+distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkinstalldirs) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(DATA)
+
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(kde_moduledir) $(DESTDIR)$(pluginsdir)
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+#>- clean: clean-am
+#>+ 1
+clean: kde-rpo-clean clean-am
+
+#>- clean-am: clean-generic clean-kde_moduleLTLIBRARIES clean-libtool \
+#>- mostlyclean-am
+#>+ 2
+clean-am: clean-metasources clean-closures clean-bcheck clean-final clean-generic clean-kde_moduleLTLIBRARIES clean-libtool \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+info: info-am
+
+info-am:
+
+#>- install-data-am: install-kde_moduleLTLIBRARIES install-pluginsDATA
+#>+ 1
+install-data-am: install-pluginsDATA
+
+#>- install-exec-am:
+#>+ 1
+install-exec-am: install-kde_moduleLTLIBRARIES
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-kde_moduleLTLIBRARIES \
+ uninstall-pluginsDATA
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-kde_moduleLTLIBRARIES clean-libtool ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am info info-am install \
+ install-am install-data install-data-am install-exec \
+ install-exec-am install-info install-info-am \
+ install-kde_moduleLTLIBRARIES install-man install-pluginsDATA \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool pdf \
+ pdf-am ps ps-am tags uninstall uninstall-am uninstall-info-am \
+ uninstall-kde_moduleLTLIBRARIES uninstall-pluginsDATA
+
+
+messages: rc.cpp
+ $(XGETTEXT) *.cpp *.h -o $(podir)/adblockplugin.pot
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
+
+#>+ 8
+libadblock.la.closure: $(libadblock_la_OBJECTS) $(libadblock_la_DEPENDENCIES)
+ @echo "int main() {return 0;}" > libadblock_la_closure.cpp
+ @$(LTCXXCOMPILE) -c libadblock_la_closure.cpp
+ $(CXXLINK) libadblock_la_closure.lo $(libadblock_la_LDFLAGS) $(libadblock_la_OBJECTS) $(libadblock_la_LIBADD) $(LIBS)
+ @rm -f libadblock_la_closure.* libadblock.la.closure
+ @echo "timestamp" > libadblock.la.closure
+
+
+#>+ 3
+adblock.moc: $(srcdir)/adblock.h
+ $(MOC) $(srcdir)/adblock.h -o adblock.moc
+
+#>+ 2
+mocs: adblock.moc
+
+#>+ 3
+adblockdialogue.moc: $(srcdir)/adblockdialogue.h
+ $(MOC) $(srcdir)/adblockdialogue.h -o adblockdialogue.moc
+
+#>+ 2
+mocs: adblockdialogue.moc
+
+#>+ 3
+clean-metasources:
+ -rm -f adblock.moc adblockdialogue.moc
+
+#>+ 2
+KDE_DIST=plugin_adblock.rc adblock.h Makefile.in plugin_adblock.desktop adblockdialogue.h
+
+#>+ 3
+clean-closures:
+ -rm -f libadblock.la.closure
+
+#>+ 2
+docs-am:
+
+#>+ 6
+force-reedit:
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --foreign konq-plugins/adblock/Makefile
+ cd $(top_srcdir) && perl admin/am_edit konq-plugins/adblock/Makefile.in
+
+
+#>+ 21
+clean-bcheck:
+ rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
+
+bcheck: bcheck-am
+
+bcheck-am:
+ @for i in ; do \
+ if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
+ echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
+ echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
+ echo "$$i"; \
+ if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \
+ rm -f $$i.bchecktest.cc; exit 1; \
+ fi ; \
+ echo "" >> $$i.bchecktest.cc.class; \
+ perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
+ rm -f a.out; \
+ fi ; \
+ done
+
+
+#>+ 11
+libadblock_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/adblock.cpp $(srcdir)/adblockdialogue.cpp adblock.moc adblockdialogue.moc
+ @echo 'creating libadblock_la.all_cpp.cpp ...'; \
+ rm -f libadblock_la.all_cpp.files libadblock_la.all_cpp.final; \
+ echo "#define KDE_USE_FINAL 1" >> libadblock_la.all_cpp.final; \
+ for file in adblock.cpp adblockdialogue.cpp ; do \
+ echo "#include \"$$file\"" >> libadblock_la.all_cpp.files; \
+ test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libadblock_la.all_cpp.final; \
+ done; \
+ cat libadblock_la.all_cpp.final libadblock_la.all_cpp.files > libadblock_la.all_cpp.cpp; \
+ rm -f libadblock_la.all_cpp.final libadblock_la.all_cpp.files
+
+#>+ 3
+clean-final:
+ -rm -f libadblock_la.all_cpp.cpp
+
+#>+ 3
+final:
+ $(MAKE) libadblock_la_OBJECTS="$(libadblock_la_final_OBJECTS)" all-am
+
+#>+ 3
+final-install:
+ $(MAKE) libadblock_la_OBJECTS="$(libadblock_la_final_OBJECTS)" install-am
+
+#>+ 3
+no-final:
+ $(MAKE) libadblock_la_OBJECTS="$(libadblock_la_nofinal_OBJECTS)" all-am
+
+#>+ 3
+no-final-install:
+ $(MAKE) libadblock_la_OBJECTS="$(libadblock_la_nofinal_OBJECTS)" install-am
+
+#>+ 3
+kde-rpo-clean:
+ -rm -f *.rpo
+
+#>+ 7
+nmcheck:
+adblockdialogue.o: adblockdialogue.moc
+nmcheck-am: nmcheck
+adblock.lo: adblock.moc
+adblock.o: adblock.moc
+adblockdialogue.lo: adblockdialogue.moc
diff --git a/konq-plugins/adblock/adblock.cpp b/konq-plugins/adblock/adblock.cpp
new file mode 100644
index 0000000..30878fd
--- /dev/null
+++ b/konq-plugins/adblock/adblock.cpp
@@ -0,0 +1,268 @@
+// -*- mode: c++; c-basic-offset: 4 -*-
+/*
+ Copyright (C) 2006 Daniele Galdi <daniele.galdi@gmail.com>
+
+ 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) any later version.
+
+ 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, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA.
+*/
+
+/* Project related */
+#include "adblock.h"
+#include "adblockdialogue.h"
+
+/* Kde related */
+#include <kgenericfactory.h>
+#include <kdebug.h>
+#include <kiconloader.h>
+#include <klibloader.h>
+#include <kparts/statusbarextension.h>
+#include <khtml_part.h>
+#include <khtml_settings.h>
+#include <kstatusbar.h>
+#include <kurllabel.h>
+#include <kdialogbase.h>
+#include <kurl.h>
+#include <kconfig.h>
+#include <kmessagebox.h>
+#include <kstandarddirs.h>
+#include <kpopupmenu.h>
+#include <kcmultidialog.h>
+#include <klocale.h>
+#include <dom/html_document.h>
+#include <dom/html_image.h>
+#include <dom/html_inline.h>
+#include <dom/html_misc.h>
+#include <dom/html_element.h>
+#include <dom/dom_doc.h>
+#include <dom/dom_node.h>
+using namespace DOM;
+
+#include <qpixmap.h>
+#include <qcursor.h>
+#include <qregexp.h>
+
+typedef KGenericFactory<AdBlock> AdBlockFactory;
+K_EXPORT_COMPONENT_FACTORY( libadblock, AdBlockFactory( "adblock" ) )
+
+AdBlock::AdBlock(QObject *parent, const char *name, const QStringList &) :
+ KParts::Plugin(parent, name),
+ m_label(0), m_menu(0)
+{
+ m_part = dynamic_cast<KHTMLPart *>(parent);
+ if(!m_part) { kdDebug() << "couldn't get KHTMLPart" << endl; return; }
+
+ m_menu = new KPopupMenu(m_part->widget());
+ m_menu->insertTitle(i18n("Adblock"));
+ m_menu->insertItem(i18n("Configure"), this, SLOT(showKCModule()));
+ m_menu->insertItem(i18n("Show Elements"), this, SLOT(showDialogue()));
+
+ connect(m_part, SIGNAL(completed()), this, SLOT(initLabel()));
+}
+
+AdBlock::~AdBlock()
+{
+ KParts::StatusBarExtension *statusBarEx = KParts::StatusBarExtension::childObject(m_part);
+
+ if (!statusBarEx) { kdDebug() << "couldn't get KParts::StatusBarExtension" << endl; return; }
+
+ statusBarEx->removeStatusBarItem(m_label);
+
+ delete m_menu;
+}
+
+void AdBlock::initLabel()
+{
+ if (m_label) return;
+
+ KParts::StatusBarExtension *statusBarEx = KParts::StatusBarExtension::childObject(m_part);
+
+ if (!statusBarEx) { kdDebug() << "couldn't get KParts::StatusBarExtension" << endl; return; }
+
+ m_label = new KURLLabel(statusBarEx->statusBar());
+
+ KIconLoader *loader = instance()->iconLoader();
+
+ m_label->setFixedHeight(loader->currentSize(KIcon::Small));
+ m_label->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
+ m_label->setUseCursor(false);
+ m_label->setPixmap(loader->loadIcon("filter", KIcon::Small));
+
+ statusBarEx->addStatusBarItem(m_label, 0, false);
+
+ connect(m_label, SIGNAL(leftClickedURL()), this, SLOT(showDialogue()));
+ connect(m_label, SIGNAL(rightClickedURL()), this, SLOT(contextMenu()));
+}
+
+void AdBlock::showDialogue()
+{
+ if (!m_part->settings()->isAdFilterEnabled())
+ {
+ KMessageBox::error(0,
+ i18n("Please enable Konqueror's Adblock"),
+ i18n("Adblock disabled"));
+
+ return;
+ }
+
+ AdElementList elements;
+ fillBlockableElements(elements);
+
+ AdBlockDlg *dialogue = new AdBlockDlg(m_part->widget(), elements);
+ connect(dialogue, SIGNAL( notEmptyFilter(const QString&) ), this, SLOT( addAdFilter(const QString&) ));
+ connect(dialogue, SIGNAL( cancelClicked() ), dialogue, SLOT( delayedDestruct() ));
+ connect(dialogue, SIGNAL( closeClicked() ), dialogue, SLOT( delayedDestruct() ));
+ dialogue->show();
+}
+
+void AdBlock::showKCModule()
+{
+ KCMultiDialog* dialogue = new KCMultiDialog(m_part->widget());
+ dialogue->addModule("khtml_filter");
+ connect(dialogue, SIGNAL( cancelClicked() ), dialogue, SLOT( delayedDestruct() ));
+ connect(dialogue, SIGNAL( closeClicked() ), dialogue, SLOT( delayedDestruct() ));
+ dialogue->show();
+}
+
+void AdBlock::contextMenu()
+{
+ m_menu->popup(QCursor::pos());
+}
+
+void AdBlock::fillBlockableElements(AdElementList &elements)
+{
+ fillWithHtmlTag(elements, "script", "src", "SCRIPT");
+ fillWithHtmlTag(elements, "embed" , "src", "OBJECT");
+ fillWithHtmlTag(elements, "object", "src", "OBJECT");
+ fillWithImages(elements);
+
+ const KHTMLSettings *settings = m_part->settings();
+
+ AdElementList::iterator it;
+ for ( it = elements.begin(); it != elements.end(); ++it )
+ {
+ AdElement &element = (*it);
+ if (settings->isAdFiltered( element.url() ))
+ {
+ element.setBlocked(true);
+ }
+ }
+}
+
+void AdBlock::fillWithImages(AdElementList &elements)
+{
+ HTMLDocument htmlDoc = m_part->htmlDocument();
+
+ HTMLCollection images = htmlDoc.images();
+
+ for (unsigned int i = 0; i < images.length(); i++)
+ {
+ HTMLImageElement image = static_cast<HTMLImageElement>( images.item(i) );
+
+ DOMString src = image.src();
+
+ QString url = htmlDoc.completeURL(src).string();
+ if (!url.isEmpty() && url != m_part->baseURL().url())
+ {
+ AdElement element(url, "image", "IMG", false);
+ if (!elements.contains( element ))
+ elements.append( element);
+ }
+ }
+}
+
+void AdBlock::fillWithHtmlTag(AdElementList &elements,
+ const DOMString &tagName,
+ const DOMString &attrName,
+ const QString &category)
+{
+ Document doc = m_part->document();
+
+ NodeList nodes = doc.getElementsByTagName(tagName);
+
+ for (unsigned int i = 0; i < nodes.length(); i++)
+ {
+ Node node = nodes.item(i);
+ Node attr = node.attributes().getNamedItem(attrName);
+
+ DOMString src = attr.nodeValue();
+ if (src.isNull()) continue;
+
+ QString url = doc.completeURL(src).string();
+ if (!url.isEmpty() && url != m_part->baseURL().url())
+ {
+ AdElement element(url, tagName.string(), category, false);
+ if (!elements.contains( element ))
+ elements.append( element);
+ }
+ }
+}
+
+void AdBlock::addAdFilter(const QString &url)
+{
+ //FIXME hackish
+ KHTMLSettings *settings = const_cast<KHTMLSettings *>(m_part->settings());
+ settings->addAdFilter(url);
+}
+
+// ----------------------------------------------------------------------------
+
+AdElement::AdElement() :
+ m_url(0), m_category(0), m_type(0), m_blocked(false) {}
+
+AdElement::AdElement(const QString &url, const QString &category,
+ const QString &type, bool blocked) :
+ m_url(url), m_category(category), m_type(type), m_blocked(blocked) {}
+
+AdElement &AdElement::operator=(const AdElement &obj)
+{
+ m_blocked = obj.m_blocked;
+ m_url = obj.m_url;
+ m_category = obj.m_category;
+ m_type = obj.m_type;
+
+ return *this;
+}
+
+bool AdElement::operator==(const AdElement &obj)
+{
+ return m_url == obj.m_url;
+}
+
+bool AdElement::isBlocked() const
+{
+ return m_blocked;
+}
+
+void AdElement::setBlocked(bool blocked)
+{
+ m_blocked = blocked;
+}
+
+const QString &AdElement::url() const
+{
+ return m_url;
+}
+
+const QString &AdElement::category() const
+{
+ return m_category;
+}
+
+const QString &AdElement::type() const
+{
+ return m_type;
+}
+
+#include "adblock.moc"
diff --git a/konq-plugins/adblock/adblock.h b/konq-plugins/adblock/adblock.h
new file mode 100644
index 0000000..4b6154e
--- /dev/null
+++ b/konq-plugins/adblock/adblock.h
@@ -0,0 +1,99 @@
+// -*- mode: c++; c-basic-offset: 4 -*-
+/*
+ Copyright (C) 2006 Daniele Galdi <daniele.galdi@gmail.com>
+
+ 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) any later version.
+
+ 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, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA.
+*/
+
+#ifndef KONQ_ADBLOCK_H
+#define KONQ_ADBLOCK_H
+
+#include <qguardedptr.h>
+#include <qvaluelist.h>
+#include <kparts/plugin.h>
+
+class KHTMLPart;
+class KURLLabel;
+class KHTMLSettings;
+class AdElement;
+class KPopupMenu;
+
+namespace KParts
+{
+ class StatusBarExtension;
+}
+
+namespace DOM
+{
+ class DOMString;
+}
+
+typedef QValueList<AdElement> AdElementList;
+
+class AdBlock : public KParts::Plugin
+{
+ Q_OBJECT
+
+public:
+ AdBlock(QObject *parent, const char *name, const QStringList &);
+ ~AdBlock();
+
+private:
+ QGuardedPtr<KHTMLPart> m_part;
+ KURLLabel *m_label;
+ KPopupMenu *m_menu;
+
+ void fillBlockableElements(AdElementList &elements);
+ void fillWithImages(AdElementList &elements);
+ void fillWithHtmlTag(AdElementList &elements,
+ const DOM::DOMString &tagName,
+ const DOM::DOMString &attrName,
+ const QString &category);
+
+private slots:
+ void initLabel();
+ void showDialogue();
+ void addAdFilter(const QString &url);
+ void contextMenu();
+ void showKCModule();
+};
+
+// ----------------------------------------------------------------------------
+
+class AdElement
+{
+private:
+ QString m_url;
+ QString m_category;
+ QString m_type;
+ bool m_blocked;
+
+public:
+ AdElement();
+ AdElement(const QString &url, const QString &category,
+ const QString &type, bool blocked);
+
+ AdElement &operator=(const AdElement &);
+ bool operator==(const AdElement &e1);
+
+ bool isBlocked() const;
+ void setBlocked(bool blocked);
+ const QString &url() const;
+ const QString &category() const;
+ const QString &type() const;
+};
+
+#endif
diff --git a/konq-plugins/adblock/adblockdialogue.cpp b/konq-plugins/adblock/adblockdialogue.cpp
new file mode 100644
index 0000000..5de6efa
--- /dev/null
+++ b/konq-plugins/adblock/adblockdialogue.cpp
@@ -0,0 +1,163 @@
+// -*- mode: c++; c-basic-offset: 4 -*-
+/*
+ Copyright (C) 2006 Daniele Galdi <daniele.galdi@gmail.com>
+
+ 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)
+ any later version.
+
+ 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, write to the Free Software Foundation, Inc., 51
+ Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#include "adblock.h"
+#include "adblockdialogue.h"
+
+#include <kdebug.h>
+#include <kpopupmenu.h>
+#include <klocale.h>
+
+#include <qcursor.h>
+#include <qlabel.h>
+#include <qvbox.h>
+#include <qlineedit.h>
+#include <qcolor.h>
+#include <qfont.h>
+#include <qpainter.h>
+
+AdBlockDlg::AdBlockDlg(QWidget *parent, AdElementList &elements) :
+ KDialogBase( parent, "Adblock dialogue", true, "Adblock - able Items", Ok|Cancel, Ok, true )
+{
+ QVBox *page = makeVBoxMainWidget();
+ m_label1 = new QLabel( i18n("All blockable items in this page:"), page, "label1" );
+
+ m_list = new QListView(page);
+ m_list->setAllColumnsShowFocus( true );
+
+ m_list->addColumn( i18n("Source") );
+ m_list->addColumn( i18n("Category") );
+ m_list->addColumn( i18n("Node Name") );
+
+ m_list->setColumnWidthMode(0, QListView::Manual);
+ m_list->setColumnWidthMode(1, QListView::Manual);
+ m_list->setColumnWidthMode(2, QListView::Manual);
+
+ m_list->setColumnWidth(0, 600);
+ m_list->setColumnWidth(1, 90);
+ m_list->setColumnWidth(2, 90);
+
+ AdElementList::iterator it;
+ for ( it = elements.begin(); it != elements.end(); ++it )
+ {
+ AdElement &element = (*it);
+
+ QString url = element.url();
+
+ ListViewItem *item = new ListViewItem( m_list, url, element.category(), element.type() );
+ item->setBlocked(element.isBlocked());
+ }
+
+ m_label2 = new QLabel( i18n("New filter (use * as a wildcard):"), page, "label2" );
+
+ m_filter = new QLineEdit( "", page, "lineedit" );
+
+ connect(this, SIGNAL( okClicked() ), this, SLOT( validateFilter() ));
+ connect(m_list, SIGNAL( doubleClicked(QListViewItem *, const QPoint &, int) ), this, SLOT(updateFilter(QListViewItem *)) );
+
+ m_menu = new KPopupMenu(this);
+ m_menu->insertItem(i18n("Filter this item"), this, SLOT(filterItem()));
+ m_menu->insertItem(i18n("Filter all items at same path"), this, SLOT(filterPath()));
+
+ connect(m_list,
+ SIGNAL( contextMenuRequested( QListViewItem *, const QPoint& , int ) ),
+ this,
+ SLOT( showContextMenu(QListViewItem *, const QPoint &) ) );
+}
+
+void AdBlockDlg::updateFilter(QListViewItem *selected)
+{
+ ListViewItem *item = dynamic_cast<ListViewItem *>(selected);
+
+ if (item->isBlocked())
+ {
+ m_filter->setText("");
+ return;
+ }
+
+ m_filter->setText( item->text(0) );
+}
+
+void AdBlockDlg::validateFilter()
+{
+ const QString text = m_filter->text().stripWhiteSpace();
+
+ if (!text.isEmpty())
+ emit notEmptyFilter(text);
+
+ delayedDestruct();
+}
+
+void AdBlockDlg::showContextMenu(QListViewItem *item, const QPoint &point)
+{
+ if (!item) return;
+ m_menu->popup(point);
+}
+
+void AdBlockDlg::filterItem()
+{
+ QListViewItem* item = m_list->selectedItem();
+ m_filter->setText( item->text(0) );
+}
+
+void AdBlockDlg::filterPath()
+{
+ QListViewItem* item = m_list->selectedItem();
+ QString value = item->text(0);
+ m_filter->setText( value.section( '/', 0, -2 ).append("/*") );
+}
+
+AdBlockDlg::~AdBlockDlg()
+{
+ delete m_label1;
+ delete m_label2;
+ delete m_filter;
+ delete m_list;
+}
+
+// ----------------------------------------------------------------------------
+
+void ListViewItem::paintCell(QPainter *p, const QColorGroup & cg, int column, int width, int align)
+{
+ p->save();
+ QColorGroup g( cg );
+
+ if ( isBlocked() )
+ {
+ g.setColor(QColorGroup::Text, red);
+ QFont font;
+ font.setItalic(true);
+ p->setFont(font);
+ }
+
+ QListViewItem::paintCell(p, g, column, width, align);
+ p->restore();
+}
+
+inline bool ListViewItem::isBlocked()
+{
+ return m_blocked;
+}
+
+inline void ListViewItem::setBlocked(bool blocked)
+{
+ m_blocked = blocked;
+}
+
+#include "adblockdialogue.moc"
diff --git a/konq-plugins/adblock/adblockdialogue.h b/konq-plugins/adblock/adblockdialogue.h
new file mode 100644
index 0000000..ab41bc2
--- /dev/null
+++ b/konq-plugins/adblock/adblockdialogue.h
@@ -0,0 +1,76 @@
+// -*- mode: c++; c-basic-offset: 4 -*-
+/*
+ Copyright (C) 2006 Daniele Galdi <daniele.galdi@gmail.com>
+
+ 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) any later version.
+
+ 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, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#ifndef KONQ_ADBLOCKDLG_H
+#define KONQ_ADBLOCKDLG_H
+
+#include <kdialogbase.h>
+#include <qlistview.h>
+
+class QLabel;
+class QLineEdit;
+class KPopupMenu;
+
+class AdBlockDlg : public KDialogBase
+{
+ Q_OBJECT
+
+private:
+ QLineEdit *m_filter;
+ QListView *m_list;
+ QLabel *m_label1;
+ QLabel *m_label2;
+ KPopupMenu *m_menu;
+
+public:
+ AdBlockDlg(QWidget *parent, AdElementList &elements);
+ ~AdBlockDlg();
+
+private slots:
+ void validateFilter ();
+ void updateFilter(QListViewItem *item);
+ void showContextMenu(QListViewItem *item, const QPoint &point);
+ void filterPath();
+ void filterItem();
+
+signals:
+ void notEmptyFilter (const QString &url);
+};
+
+// ----------------------------------------------------------------------------
+
+class ListViewItem : public QListViewItem
+{
+private:
+ bool m_blocked;
+
+public:
+ ListViewItem(QListView *listView,
+ const QString &label1,
+ const QString &label2,
+ const QString &label3) : QListViewItem(listView, label1, label2, label3),
+ m_blocked(false){};
+
+ void paintCell(QPainter *p, const QColorGroup & cg, int column, int width, int align);
+
+ bool isBlocked();
+ void setBlocked(bool blocked);
+};
+
+#endif
diff --git a/konq-plugins/adblock/plugin_adblock.desktop b/konq-plugins/adblock/plugin_adblock.desktop
new file mode 100644
index 0000000..1ac9afe
--- /dev/null
+++ b/konq-plugins/adblock/plugin_adblock.desktop
@@ -0,0 +1,16 @@
+[Desktop Entry]
+Name=Adblock Plugin
+Icon=filter
+Comment=Show all blockable html elements
+Encoding=UTF-8
+Type=Service
+X-KDE-Library=libadblock
+X-KDE-PluginInfo-Author=Danie Galdi
+X-KDE-PluginInfo-Email=daniele.galdi@gmail.com
+X-KDE-PluginInfo-Name=adblock
+X-KDE-PluginInfo-Version=0.0.5
+X-KDE-PluginInfo-Website=http://www.pigamo.com
+X-KDE-PluginInfo-Category=Statusbar
+X-KDE-PluginInfo-License=GPL
+X-KDE-PluginInfo-EnabledByDefault=true
+X-KDE-ParentApp=konqueror
diff --git a/konq-plugins/adblock/plugin_adblock.rc b/konq-plugins/adblock/plugin_adblock.rc
new file mode 100644
index 0000000..615d08b
--- /dev/null
+++ b/konq-plugins/adblock/plugin_adblock.rc
@@ -0,0 +1,3 @@
+<!DOCTYPE kpartgui>
+<kpartplugin name="adblock" library="libadblock" version="1">
+</kpartplugin> \ No newline at end of file