Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
PIM
PIM Messagelib
Commits
f595c2db
Commit
f595c2db
authored
Apr 20, 2016
by
Laurent Montel
😁
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use QtWebEngine by default
parent
3a7f4701
Changes
37
Hide whitespace changes
Inline
Side-by-side
Showing
37 changed files
with
2 additions
and
3325 deletions
+2
-3325
messageviewer/src/CMakeLists.txt
messageviewer/src/CMakeLists.txt
+0
-52
messageviewer/src/adblock/adblockblockableitemsdialog.cpp
messageviewer/src/adblock/adblockblockableitemsdialog.cpp
+0
-81
messageviewer/src/adblock/adblockblockableitemsdialog.h
messageviewer/src/adblock/adblockblockableitemsdialog.h
+0
-44
messageviewer/src/adblock/adblockblockableitemswidget.cpp
messageviewer/src/adblock/adblockblockableitemswidget.cpp
+0
-328
messageviewer/src/adblock/adblockblockableitemswidget.h
messageviewer/src/adblock/adblockblockableitemswidget.h
+0
-85
messageviewer/src/adblock/adblockelementhiding.cpp
messageviewer/src/adblock/adblockelementhiding.cpp
+0
-126
messageviewer/src/adblock/adblockelementhiding.h
messageviewer/src/adblock/adblockelementhiding.h
+0
-56
messageviewer/src/adblock/adblockmanager.cpp
messageviewer/src/adblock/adblockmanager.cpp
+0
-431
messageviewer/src/adblock/adblockmanager.h
messageviewer/src/adblock/adblockmanager.h
+0
-192
messageviewer/src/adblock/adblockrulefallbackimpl.cpp
messageviewer/src/adblock/adblockrulefallbackimpl.cpp
+0
-192
messageviewer/src/adblock/adblockrulefallbackimpl.h
messageviewer/src/adblock/adblockrulefallbackimpl.h
+0
-62
messageviewer/src/adblock/common/adblockcreatefilterdialog.cpp
...geviewer/src/adblock/common/adblockcreatefilterdialog.cpp
+0
-159
messageviewer/src/adblock/common/adblockcreatefilterdialog.h
messageviewer/src/adblock/common/adblockcreatefilterdialog.h
+0
-58
messageviewer/src/adblock/common/adblocksettingwidget.cpp
messageviewer/src/adblock/common/adblocksettingwidget.cpp
+1
-8
messageviewer/src/adblock/common/matcher/adblockhostmatcher.cpp
...eviewer/src/adblock/common/matcher/adblockhostmatcher.cpp
+0
-96
messageviewer/src/adblock/common/matcher/adblockhostmatcher.h
...ageviewer/src/adblock/common/matcher/adblockhostmatcher.h
+0
-53
messageviewer/src/adblock/common/matcher/adblockrule.cpp
messageviewer/src/adblock/common/matcher/adblockrule.cpp
+0
-78
messageviewer/src/adblock/common/matcher/adblockrule.h
messageviewer/src/adblock/common/matcher/adblockrule.h
+0
-60
messageviewer/src/adblock/common/matcher/adblockrulenullimpl.cpp
...viewer/src/adblock/common/matcher/adblockrulenullimpl.cpp
+0
-147
messageviewer/src/adblock/common/matcher/adblockrulenullimpl.h
...geviewer/src/adblock/common/matcher/adblockrulenullimpl.h
+0
-53
messageviewer/src/adblock/common/matcher/adblockruletextmatchimpl.cpp
...r/src/adblock/common/matcher/adblockruletextmatchimpl.cpp
+0
-95
messageviewer/src/adblock/common/matcher/adblockruletextmatchimpl.h
...wer/src/adblock/common/matcher/adblockruletextmatchimpl.h
+0
-56
messageviewer/src/adblock/tests/CMakeLists.txt
messageviewer/src/adblock/tests/CMakeLists.txt
+0
-12
messageviewer/src/adblock/tests/adblockblockableitemdialog_gui.cpp
...ewer/src/adblock/tests/adblockblockableitemdialog_gui.cpp
+0
-112
messageviewer/src/adblock/tests/adblockblockableitemdialog_gui.h
...viewer/src/adblock/tests/adblockblockableitemdialog_gui.h
+0
-49
messageviewer/src/config-messageviewer.h.cmake
messageviewer/src/config-messageviewer.h.cmake
+0
-2
messageviewer/src/findbar/findbarwebview.cpp
messageviewer/src/findbar/findbarwebview.cpp
+0
-141
messageviewer/src/findbar/findbarwebview.h
messageviewer/src/findbar/findbarwebview.h
+0
-51
messageviewer/src/scamdetection/scamdetection.cpp
messageviewer/src/scamdetection/scamdetection.cpp
+0
-166
messageviewer/src/scamdetection/scamdetection.h
messageviewer/src/scamdetection/scamdetection.h
+0
-55
messageviewer/src/viewer/urlhandlermanager.cpp
messageviewer/src/viewer/urlhandlermanager.cpp
+0
-1
messageviewer/src/viewer/viewer.cpp
messageviewer/src/viewer/viewer.cpp
+0
-13
messageviewer/src/viewer/viewer.h
messageviewer/src/viewer/viewer.h
+0
-8
messageviewer/src/viewer/viewer_p.cpp
messageviewer/src/viewer/viewer_p.cpp
+1
-159
messageviewer/src/viewer/viewer_p.h
messageviewer/src/viewer/viewer_p.h
+0
-26
messageviewer/src/viewer/webengine/tests/CMakeLists.txt
messageviewer/src/viewer/webengine/tests/CMakeLists.txt
+0
-14
messageviewer/src/widgets/zoomactionmenu.cpp
messageviewer/src/widgets/zoomactionmenu.cpp
+0
-4
No files found.
messageviewer/src/CMakeLists.txt
View file @
f595c2db
...
@@ -59,23 +59,6 @@ set(_mailwebview_cpp
...
@@ -59,23 +59,6 @@ set(_mailwebview_cpp
adblock/common/adblockautomaticruleslistwidget.cpp
adblock/common/adblockautomaticruleslistwidget.cpp
)
)
if
(
NOT MESSAGEVIEWER_USE_QTWEBENGINE
)
set
(
_mailwebview_cpp
adblock/common/adblockcreatefilterdialog.cpp
adblock/common/matcher/adblockrule.cpp
adblock/common/matcher/adblockruletextmatchimpl.cpp
adblock/common/matcher/adblockrulenullimpl.cpp
adblock/common/matcher/adblockhostmatcher.cpp
adblock/adblockelementhiding.cpp
adblock/adblockmanager.cpp
adblock/adblockrulefallbackimpl.cpp
adblock/adblockblockableitemsdialog.cpp
adblock/adblockblockableitemswidget.cpp
${
_mailwebview_cpp
}
)
endif
()
set
(
libmessageviewer_mailviewer_SRCS
set
(
libmessageviewer_mailviewer_SRCS
viewer/webengine/mailwebengineview.cpp
viewer/webengine/mailwebengineview.cpp
viewer/webengine/mailwebenginepage.cpp
viewer/webengine/mailwebenginepage.cpp
...
@@ -147,9 +130,6 @@ set(libmessageviewer_scamdetection_SRCS
...
@@ -147,9 +130,6 @@ set(libmessageviewer_scamdetection_SRCS
scamdetection/scamexpandurljob.cpp
scamdetection/scamexpandurljob.cpp
scamdetection/scamcheckshorturlmanager.cpp
scamdetection/scamcheckshorturlmanager.cpp
)
)
if
(
NOT MESSAGEVIEWER_USE_QTWEBENGINE
)
set
(
libmessageviewer_scamdetection_SRCS scamdetection/scamdetection.cpp
${
libmessageviewer_scamdetection_SRCS
}
)
endif
()
set
(
libmessageviewer_scamdetection_webengine_SRCS
set
(
libmessageviewer_scamdetection_webengine_SRCS
scamdetection/scamdetectionwebengine.cpp
scamdetection/scamdetectionwebengine.cpp
...
@@ -159,9 +139,6 @@ set(libmessageviewer_findbar_SRCS
...
@@ -159,9 +139,6 @@ set(libmessageviewer_findbar_SRCS
findbar/findbarbase.cpp
findbar/findbarbase.cpp
findbar/findbarsourceview.cpp
findbar/findbarsourceview.cpp
)
)
if
(
NOT MESSAGEVIEWER_USE_QTWEBENGINE
)
set
(
libmessageviewer_findbar_SRCS findbar/findbarwebview.cpp
${
libmessageviewer_findbar_SRCS
}
)
endif
()
set
(
libmessageviewer_utils_SRCS
set
(
libmessageviewer_utils_SRCS
utils/markmessagereadhandler.cpp
utils/markmessagereadhandler.cpp
...
@@ -282,16 +259,6 @@ install(TARGETS
...
@@ -282,16 +259,6 @@ install(TARGETS
EXPORT KF5MessageViewerTargets
${
KF5_INSTALL_TARGETS_DEFAULT_ARGS
}
${
LIBRARY_NAMELINK
}
EXPORT KF5MessageViewerTargets
${
KF5_INSTALL_TARGETS_DEFAULT_ARGS
}
${
LIBRARY_NAMELINK
}
)
)
ecm_generate_headers
(
MessageViewer_Camelcasewebviewer_HEADERS
HEADER_NAMES
MailWebView
WebViewAccessKey
WebPage
REQUIRED_HEADERS MessageViewer_webviewer_HEADERS
PREFIX MessageViewer
RELATIVE viewer/webview
)
ecm_generate_headers
(
MessageViewer_Camelcasewebengine_HEADERS
ecm_generate_headers
(
MessageViewer_Camelcasewebengine_HEADERS
HEADER_NAMES
HEADER_NAMES
MailWebEnginePage
MailWebEnginePage
...
@@ -348,7 +315,6 @@ ecm_generate_headers(MessageViewer_Camelcaseutils_HEADERS
...
@@ -348,7 +315,6 @@ ecm_generate_headers(MessageViewer_Camelcaseutils_HEADERS
ecm_generate_headers
(
MessageViewer_Camelfindbar_HEADERS
ecm_generate_headers
(
MessageViewer_Camelfindbar_HEADERS
HEADER_NAMES
HEADER_NAMES
FindBarWebView
FindBarBase
FindBarBase
REQUIRED_HEADERS MessageViewer_findbar_HEADERS
REQUIRED_HEADERS MessageViewer_findbar_HEADERS
PREFIX MessageViewer
PREFIX MessageViewer
...
@@ -408,14 +374,6 @@ ecm_generate_headers(MessageViewer_Camelcaseheader_HEADERS
...
@@ -408,14 +374,6 @@ ecm_generate_headers(MessageViewer_Camelcaseheader_HEADERS
RELATIVE header
RELATIVE header
)
)
ecm_generate_headers
(
MessageViewer_Camelcasehtmlwriter_HEADERS
HEADER_NAMES
WebKitPartHtmlWriter
REQUIRED_HEADERS MessageViewer_htmlwriter_HEADERS
PREFIX MessageViewer
RELATIVE htmlwriter
)
ecm_generate_headers
(
MessageViewer_Camelcaseadblockcommon_HEADERS
ecm_generate_headers
(
MessageViewer_Camelcaseadblockcommon_HEADERS
HEADER_NAMES
HEADER_NAMES
AdBlockListWidget
AdBlockListWidget
...
@@ -425,16 +383,6 @@ ecm_generate_headers(MessageViewer_Camelcaseadblockcommon_HEADERS
...
@@ -425,16 +383,6 @@ ecm_generate_headers(MessageViewer_Camelcaseadblockcommon_HEADERS
RELATIVE adblock/common
RELATIVE adblock/common
)
)
ecm_generate_headers
(
MessageViewer_Camelcaseadblock_HEADERS
HEADER_NAMES
AdBlockBlockableItemsDialog
AdBlockManager
REQUIRED_HEADERS MessageViewer_adblock_HEADERS
PREFIX MessageViewer
RELATIVE adblock
)
ecm_generate_headers
(
MessageViewer_Camelcaseviewerplugin_HEADERS
ecm_generate_headers
(
MessageViewer_Camelcaseviewerplugin_HEADERS
HEADER_NAMES
HEADER_NAMES
ViewerPluginManager
ViewerPluginManager
...
...
messageviewer/src/adblock/adblockblockableitemsdialog.cpp
deleted
100644 → 0
View file @
3a7f4701
/*
Copyright (c) 2013-2016 Montel Laurent <montel@kde.org>
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License, version 2, as
published by the Free Software Foundation.
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 "adblockblockableitemsdialog.h"
#include "adblockblockableitemswidget.h"
#include <KLocalizedString>
#include <KTreeWidgetSearchLine>
#include <QVBoxLayout>
#include <QWebFrame>
#include <KSharedConfig>
#include <QDialogButtonBox>
#include <KConfigGroup>
#include <QPushButton>
using
namespace
MessageViewer
;
AdBlockBlockableItemsDialog
::
AdBlockBlockableItemsDialog
(
QWidget
*
parent
)
:
QDialog
(
parent
)
{
setWindowTitle
(
i18n
(
"Blockable Items"
));
QDialogButtonBox
*
buttonBox
=
new
QDialogButtonBox
(
QDialogButtonBox
::
Ok
|
QDialogButtonBox
::
Cancel
);
QVBoxLayout
*
mainLayout
=
new
QVBoxLayout
;
setLayout
(
mainLayout
);
QPushButton
*
okButton
=
buttonBox
->
button
(
QDialogButtonBox
::
Ok
);
okButton
->
setDefault
(
true
);
okButton
->
setShortcut
(
Qt
::
CTRL
|
Qt
::
Key_Return
);
connect
(
buttonBox
,
&
QDialogButtonBox
::
accepted
,
this
,
&
AdBlockBlockableItemsDialog
::
accept
);
connect
(
buttonBox
,
&
QDialogButtonBox
::
rejected
,
this
,
&
AdBlockBlockableItemsDialog
::
reject
);
mBlockableItems
=
new
AdBlockBlockableItemsWidget
;
mainLayout
->
addWidget
(
mBlockableItems
);
mainLayout
->
addWidget
(
buttonBox
);
readConfig
();
}
AdBlockBlockableItemsDialog
::~
AdBlockBlockableItemsDialog
()
{
writeConfig
();
}
void
AdBlockBlockableItemsDialog
::
setWebFrame
(
QWebFrame
*
frame
)
{
mBlockableItems
->
setWebFrame
(
frame
);
}
void
AdBlockBlockableItemsDialog
::
saveFilters
()
{
mBlockableItems
->
saveFilters
();
}
void
AdBlockBlockableItemsDialog
::
writeConfig
()
{
KConfigGroup
group
(
KSharedConfig
::
openConfig
(),
"AdBlockBlockableItemsDialog"
);
group
.
writeEntry
(
"Size"
,
size
());
}
void
AdBlockBlockableItemsDialog
::
readConfig
()
{
KConfigGroup
group
(
KSharedConfig
::
openConfig
(),
"AdBlockBlockableItemsDialog"
);
const
QSize
sizeDialog
=
group
.
readEntry
(
"Size"
,
QSize
(
500
,
300
));
if
(
sizeDialog
.
isValid
())
{
resize
(
sizeDialog
);
}
}
messageviewer/src/adblock/adblockblockableitemsdialog.h
deleted
100644 → 0
View file @
3a7f4701
/*
Copyright (c) 2013-2016 Montel Laurent <montel@kde.org>
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License, version 2, as
published by the Free Software Foundation.
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 ADBLOCKBLOCKABLEITEMSDIALOG_H
#define ADBLOCKBLOCKABLEITEMSDIALOG_H
#include <QDialog>
#include "messageviewer_export.h"
class
QWebFrame
;
namespace
MessageViewer
{
class
AdBlockBlockableItemsWidget
;
class
MESSAGEVIEWER_EXPORT
AdBlockBlockableItemsDialog
:
public
QDialog
{
Q_OBJECT
public:
explicit
AdBlockBlockableItemsDialog
(
QWidget
*
parent
=
Q_NULLPTR
);
~
AdBlockBlockableItemsDialog
();
void
setWebFrame
(
QWebFrame
*
frame
);
void
saveFilters
();
private:
void
writeConfig
();
void
readConfig
();
AdBlockBlockableItemsWidget
*
mBlockableItems
;
};
}
#endif // ADBLOCKBLOCKABLEITEMSDIALOG_H
messageviewer/src/adblock/adblockblockableitemswidget.cpp
deleted
100644 → 0
View file @
3a7f4701
/*
Copyright (c) 2013-2016 Montel Laurent <montel@kde.org>
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License, version 2, as
published by the Free Software Foundation.
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 "adblockblockableitemswidget.h"
#include "common/adblockcreatefilterdialog.h"
#include "settings/messageviewersettings.h"
#include "adblock/adblockmanager.h"
#include "PimCommon/CustomTreeView"
#include "messageviewer_debug.h"
#include <KLocalizedString>
#include <KTreeWidgetSearchLine>
#include <QMenu>
#include <KConfigGroup>
#include "adblock/common/adblockutil.h"
#include <QUrl>
#include <KRun>
#include <QHeaderView>
#include <QVBoxLayout>
#include <QWebFrame>
#include <QWebElement>
#include <QPointer>
#include <QClipboard>
#include <QApplication>
#include <QFile>
using
namespace
MessageViewer
;
AdBlockBlockableItemsWidget
::
AdBlockBlockableItemsWidget
(
QWidget
*
parent
)
:
QWidget
(
parent
)
{
QVBoxLayout
*
lay
=
new
QVBoxLayout
;
lay
->
setMargin
(
0
);
setLayout
(
lay
);
mListItems
=
new
PimCommon
::
CustomTreeView
;
mListItems
->
setDefaultText
(
i18n
(
"No blockable element found."
));
mListItems
->
setContextMenuPolicy
(
Qt
::
CustomContextMenu
);
mListItems
->
setAlternatingRowColors
(
true
);
mListItems
->
setRootIsDecorated
(
false
);
connect
(
mListItems
,
&
PimCommon
::
CustomTreeView
::
customContextMenuRequested
,
this
,
&
AdBlockBlockableItemsWidget
::
customContextMenuRequested
);
QStringList
lst
;
lst
<<
i18n
(
"Filter"
)
<<
i18n
(
"Address"
)
<<
i18n
(
"Type"
);
mListItems
->
setHeaderLabels
(
lst
);
KTreeWidgetSearchLine
*
searchLine
=
new
KTreeWidgetSearchLine
(
this
,
mListItems
);
searchLine
->
setPlaceholderText
(
i18n
(
"Search..."
));
lay
->
addWidget
(
searchLine
);
lay
->
addWidget
(
mListItems
);
KConfigGroup
config
(
MessageViewer
::
MessageViewerSettings
::
self
()
->
config
(),
"AdBlockHeaders"
);
mListItems
->
header
()
->
restoreState
(
config
.
readEntry
(
"HeaderState"
,
QByteArray
()));
}
AdBlockBlockableItemsWidget
::~
AdBlockBlockableItemsWidget
()
{
KConfigGroup
groupHeader
(
MessageViewer
::
MessageViewerSettings
::
self
()
->
config
(),
"AdBlockHeaders"
);
groupHeader
.
writeEntry
(
"HeaderState"
,
mListItems
->
header
()
->
saveState
());
groupHeader
.
sync
();
}
void
AdBlockBlockableItemsWidget
::
setWebFrame
(
QWebFrame
*
frame
)
{
mListItems
->
clear
();
searchBlockableElement
(
frame
);
}
QString
AdBlockBlockableItemsWidget
::
elementTypeToI18n
(
AdBlockBlockableItemsWidget
::
TypeElement
type
)
{
QString
result
;
switch
(
type
)
{
case
AdBlockBlockableItemsWidget
::
Image
:
result
=
i18n
(
"Image"
);
break
;
case
AdBlockBlockableItemsWidget
::
Script
:
result
=
i18n
(
"Script"
);
break
;
case
AdBlockBlockableItemsWidget
::
StyleSheet
:
result
=
i18n
(
"Stylesheet"
);
break
;
case
AdBlockBlockableItemsWidget
::
Font
:
result
=
i18n
(
"Font"
);
break
;
case
AdBlockBlockableItemsWidget
::
Frame
:
result
=
i18n
(
"Frame"
);
break
;
case
AdBlockBlockableItemsWidget
::
XmlRequest
:
result
=
i18n
(
"XML Request"
);
break
;
case
AdBlockBlockableItemsWidget
::
Object
:
result
=
i18n
(
"Object"
);
break
;
case
AdBlockBlockableItemsWidget
::
Media
:
result
=
i18n
(
"Audio/Video"
);
break
;
case
AdBlockBlockableItemsWidget
::
Popup
:
result
=
i18n
(
"Popup window"
);
break
;
case
AdBlockBlockableItemsWidget
::
None
:
default:
result
=
i18n
(
"Unknown"
);
}
return
result
;
}
QString
AdBlockBlockableItemsWidget
::
elementType
(
AdBlockBlockableItemsWidget
::
TypeElement
type
)
{
QString
result
;
switch
(
type
)
{
case
AdBlockBlockableItemsWidget
::
Image
:
result
=
QStringLiteral
(
"image"
);
break
;
case
AdBlockBlockableItemsWidget
::
Script
:
result
=
QStringLiteral
(
"script"
);
break
;
case
AdBlockBlockableItemsWidget
::
StyleSheet
:
result
=
QStringLiteral
(
"stylesheet"
);
break
;
case
AdBlockBlockableItemsWidget
::
Font
:
result
=
QStringLiteral
(
"font"
);
break
;
case
AdBlockBlockableItemsWidget
::
Frame
:
result
=
QStringLiteral
(
"frame"
);
break
;
case
AdBlockBlockableItemsWidget
::
XmlRequest
:
result
=
QStringLiteral
(
"xmlhttprequest"
);
break
;
case
AdBlockBlockableItemsWidget
::
Object
:
result
=
QStringLiteral
(
"other"
);
break
;
case
AdBlockBlockableItemsWidget
::
Media
:
result
=
QStringLiteral
(
"media"
);
break
;
case
AdBlockBlockableItemsWidget
::
Popup
:
result
=
QStringLiteral
(
"popup"
);
break
;
case
AdBlockBlockableItemsWidget
::
None
:
default:
qCDebug
(
MESSAGEVIEWER_LOG
)
<<
" unknown type "
<<
type
;
}
return
result
;
}
void
AdBlockBlockableItemsWidget
::
adaptSrc
(
QString
&
src
,
const
QString
&
hostName
)
{
if
(
src
.
startsWith
(
QStringLiteral
(
"http://"
))
||
src
.
startsWith
(
QStringLiteral
(
"https://"
)))
{
//Nothing
}
else
if
(
src
.
startsWith
(
QStringLiteral
(
"//"
)))
{
src
=
QLatin1String
(
"https:"
)
+
src
;
}
else
if
(
src
.
startsWith
(
QLatin1Char
(
'/'
)))
{
src
=
QLatin1String
(
"https://"
)
+
hostName
+
src
;
}
else
{
src
=
QString
();
}
}
void
AdBlockBlockableItemsWidget
::
searchBlockableElement
(
QWebFrame
*
frame
)
{
const
QUrl
url
=
frame
->
requestedUrl
();
const
QString
host
=
url
.
host
();
const
QWebElementCollection
images
=
frame
->
findAllElements
(
QStringLiteral
(
"img"
));
Q_FOREACH
(
const
QWebElement
&
img
,
images
)
{
if
(
img
.
hasAttribute
(
QStringLiteral
(
"src"
)))
{
QString
src
=
img
.
attribute
(
QStringLiteral
(
"src"
));
if
(
src
.
isEmpty
())
{
continue
;
}
adaptSrc
(
src
,
host
);
if
(
src
.
isEmpty
())
{
continue
;
}
QTreeWidgetItem
*
item
=
new
QTreeWidgetItem
(
mListItems
);
item
->
setText
(
Url
,
src
);
item
->
setText
(
Type
,
elementTypeToI18n
(
AdBlockBlockableItemsWidget
::
Image
));
item
->
setTextColor
(
FilterValue
,
Qt
::
red
);
item
->
setData
(
Type
,
Element
,
Image
);
}
}
const
QWebElementCollection
scripts
=
frame
->
findAllElements
(
QStringLiteral
(
"script"
));
Q_FOREACH
(
const
QWebElement
&
script
,
scripts
)
{
QString
src
=
script
.
attribute
(
QStringLiteral
(
"src"
));
if
(
src
.
isEmpty
())
{
continue
;
}
adaptSrc
(
src
,
host
);
if
(
src
.
isEmpty
())
{
continue
;
}
QTreeWidgetItem
*
item
=
new
QTreeWidgetItem
(
mListItems
);
item
->
setText
(
Url
,
src
);
item
->
setText
(
Type
,
elementTypeToI18n
(
AdBlockBlockableItemsWidget
::
Script
));
item
->
setTextColor
(
FilterValue
,
Qt
::
red
);
item
->
setData
(
Type
,
Element
,
Script
);
}
foreach
(
QWebFrame
*
childFrame
,
frame
->
childFrames
())
{
searchBlockableElement
(
childFrame
);
}
mListItems
->
setShowDefaultText
(
mListItems
->
model
()
->
rowCount
()
==
0
);
}
void
AdBlockBlockableItemsWidget
::
customContextMenuRequested
(
const
QPoint
&
)
{
QTreeWidgetItem
*
item
=
mListItems
->
currentItem
();
if
(
!
item
)
{
return
;
}
QMenu
menu
;
menu
.
addAction
(
i18n
(
"Copy url"
),
this
,
SLOT
(
slotCopyItem
()));
if
(
!
item
->
text
(
FilterValue
).
isEmpty
())
{
menu
.
addAction
(
i18n
(
"Copy filter"
),
this
,
SLOT
(
slotCopyFilterItem
()));
}
menu
.
addAction
(
i18n
(
"Block item..."
),
this
,
SLOT
(
slotBlockItem
()));
menu
.
addSeparator
();
menu
.
addAction
(
i18n
(
"Open"
),
this
,
SLOT
(
slotOpenItem
()));
if
(
!
item
->
text
(
FilterValue
).
isEmpty
())
{
menu
.
addSeparator
();
menu
.
addAction
(
i18n
(
"Remove filter"
),
this
,
SLOT
(
slotRemoveFilter
()));
}
menu
.
exec
(
QCursor
::
pos
());
}
void
AdBlockBlockableItemsWidget
::
slotCopyFilterItem
()
{
QTreeWidgetItem
*
item
=
mListItems
->
currentItem
();
if
(
!
item
)
{
return
;
}
QClipboard
*
cb
=
QApplication
::
clipboard
();
cb
->
setText
(
item
->
text
(
FilterValue
),
QClipboard
::
Clipboard
);
}
void
AdBlockBlockableItemsWidget
::
slotOpenItem
()
{
QTreeWidgetItem
*
item
=
mListItems
->
currentItem
();
if
(
!
item
)
{
return
;
}
const
QUrl
url
(
item
->
text
(
Url
));
KRun
*
runner
=
new
KRun
(
url
,
this
);
// will delete itself
runner
->
setRunExecutables
(
false
);
}
void
AdBlockBlockableItemsWidget
::
slotBlockItem
()
{
QTreeWidgetItem
*
item
=
mListItems
->
currentItem
();
if
(
!
item
)
{
return
;
}
QPointer
<
AdBlockCreateFilterDialog
>
dlg
=
new
AdBlockCreateFilterDialog
(
this
);
dlg
->
setPattern
(
static_cast
<
TypeElement
>
(
item
->
data
(
Type
,
Element
).
toInt
()),
item
->
text
(
Url
));
if
(
dlg
->
exec
())
{
const
QString
filter
=
dlg
->
filter
();
item
->
setText
(
FilterValue
,
filter
);
}
delete
dlg
;
}
void
AdBlockBlockableItemsWidget
::
slotCopyItem
()
{
QTreeWidgetItem
*
item
=
mListItems
->
currentItem
();
if
(
!
item
)
{
return
;
}
QClipboard
*
cb
=
QApplication
::
clipboard
();
cb
->
setText
(
item
->
text
(
Url
),
QClipboard
::
Clipboard
);
}
void
AdBlockBlockableItemsWidget
::
saveFilters
()
{
const
int
numberOfElement
(
mListItems
->
topLevelItemCount
());
QString
filters
;
for
(
int
i
=
0
;
i
<
numberOfElement
;
++
i
)
{
QTreeWidgetItem
*
item
=
mListItems
->
topLevelItem
(
i
);
if
(
!
item
->
text
(
FilterValue
).
isEmpty
())
{
if
(
filters
.
isEmpty
())
{
filters
=
item
->
text
(
FilterValue
);
}
else
{
filters
+=
QLatin1Char
(
'\n'
)
+
item
->
text
(
FilterValue
);
}
}
}
if
(
filters
.
isEmpty
())
{
return
;
}
const
QString
localRulesFilePath
=
MessageViewer
::
AdBlockUtil
::
localFilterPath
();
QFile
ruleFile
(
localRulesFilePath
);
if
(
!
ruleFile
.
open
(
QFile
::
WriteOnly
|
QFile
::
Text
))
{
qCDebug
(
MESSAGEVIEWER_LOG
)
<<
"Unable to open rule file"
<<
localRulesFilePath
;
return
;
}
QTextStream
out
(
&
ruleFile
);
out
<<
filters
;
AdBlockManager
::
self
()
->
reloadConfig
();
}
void
AdBlockBlockableItemsWidget
::
slotRemoveFilter
()
{
QTreeWidgetItem
*
item
=
mListItems
->
currentItem
();
if
(
!
item
)
{
return
;
}
item
->
setText
(
FilterValue
,
QString
());
}
messageviewer/src/adblock/adblockblockableitemswidget.h
deleted
100644 → 0
View file @
3a7f4701
/*
Copyright (c) 2013-2016 Montel Laurent <montel@kde.org>
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License, version 2, as
published by the Free Software Foundation.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of