1
mirror of https://invent.kde.org/network/falkon.git synced 2024-12-20 02:36:34 +01:00

[AdBlock] Make it possible to remove EasyList.

Closes #534
This commit is contained in:
nowrep 2013-04-13 23:00:22 +02:00
parent 901bdac85d
commit f09fc7fcec
6 changed files with 122 additions and 151 deletions

View File

@ -3,6 +3,7 @@ Version 1.5.0
* added support for Proxy Auto-Config (PAC) * added support for Proxy Auto-Config (PAC)
* added option to open another private window from private window * added option to open another private window from private window
* added delete action in edit context menu on page * added delete action in edit context menu on page
* added possibility to remove EasyList from AdBlock
* proxy exceptions now supports wildcards (*, ?) * proxy exceptions now supports wildcards (*, ?)
* cancel upload when trying to upload non-readable files * cancel upload when trying to upload non-readable files
* GreaseMonkey: added support for GM_Settings * GreaseMonkey: added support for GM_Settings

View File

@ -24,7 +24,8 @@ AdBlockAddSubscriptionDialog::AdBlockAddSubscriptionDialog(QWidget* parent)
{ {
ui->setupUi(this); ui->setupUi(this);
m_knownSubscriptions << Subscription("Fanboy's List (English)", "http://www.fanboy.co.nz/adblock/fanboy-adblock.txt") m_knownSubscriptions << Subscription("EasyList (English)", "https://easylist-downloads.adblockplus.org/easylist.txt")
<< Subscription("Fanboy's List (English)", "http://www.fanboy.co.nz/adblock/fanboy-adblock.txt")
<< Subscription("Adversity (English)", "http://adversity.googlecode.com/hg/Adversity.txt") << Subscription("Adversity (English)", "http://adversity.googlecode.com/hg/Adversity.txt")
<< Subscription("BSI Lista Polska (Polish)", "http://www.bsi.info.pl/filtrABP.txt") << Subscription("BSI Lista Polska (Polish)", "http://www.bsi.info.pl/filtrABP.txt")
<< Subscription("Czech List (Czech)", "http://adblock.dajbych.net/adblock.txt") << Subscription("Czech List (Czech)", "http://adblock.dajbych.net/adblock.txt")

View File

@ -225,7 +225,7 @@ void AdBlockManager::load()
} }
foreach (const QString &fileName, adblockDir.entryList(QStringList("*.txt"), QDir::Files)) { foreach (const QString &fileName, adblockDir.entryList(QStringList("*.txt"), QDir::Files)) {
if (fileName == QLatin1String("easylist.txt") || fileName == QLatin1String("customlist.txt")) { if (fileName == QLatin1String("customlist.txt")) {
continue; continue;
} }
@ -253,11 +253,16 @@ void AdBlockManager::load()
m_subscriptions.append(subscription); m_subscriptions.append(subscription);
} }
// Prepend EasyList // Prepend EasyList if subscriptions are empty
AdBlockSubscription* easyList = new AdBlockEasyList(this); if (m_subscriptions.isEmpty()) {
m_subscriptions.prepend(easyList); AdBlockSubscription* easyList = new AdBlockSubscription(tr("EasyList"), this);
easyList->setUrl(QUrl("https://easylist-downloads.adblockplus.org/easylist.txt"));
easyList->setFilePath(mApp->currentProfilePath() + "adblock/easylist.txt");
connect(easyList, SIGNAL(subscriptionUpdated()), mApp, SLOT(reloadUserStyleSheet())); connect(easyList, SIGNAL(subscriptionUpdated()), mApp, SLOT(reloadUserStyleSheet()));
m_subscriptions.prepend(easyList);
}
// Append CustomList // Append CustomList
AdBlockCustomList* customList = new AdBlockCustomList(this); AdBlockCustomList* customList = new AdBlockCustomList(this);
m_subscriptions.append(customList); m_subscriptions.append(customList);

View File

@ -181,6 +181,19 @@ void AdBlockSubscription::saveDownloadedData(const QByteArray &data)
return; return;
} }
if (m_url == QUrl("https://easylist-downloads.adblockplus.org/easylist.txt")) {
// Third-party advertisers rules are with start domain (||) placeholder which needs regexps
// So we are ignoring it for keeping good performance
// But we will use whitelist rules at the end of list
QByteArray part1 = data.left(data.indexOf(QLatin1String("!-----------------------------Third-party adverts-----------------------------!")));
QByteArray part2 = data.mid(data.indexOf(QLatin1String("!---------------------------------Whitelists----------------------------------!")));
file.write(part1 + part2);
file.close();
return;
}
file.write(data); file.write(data);
file.close(); file.close();
} }
@ -379,40 +392,6 @@ AdBlockSubscription::~AdBlockSubscription()
qDeleteAll(m_rules); qDeleteAll(m_rules);
} }
// AdBlockEasyList
AdBlockEasyList::AdBlockEasyList(QObject* parent)
: AdBlockSubscription(tr("EasyList"), parent)
{
setUrl(QUrl("https://easylist-downloads.adblockplus.org/easylist.txt"));
setFilePath(mApp->currentProfilePath() + "adblock/easylist.txt");
}
bool AdBlockEasyList::canBeRemoved() const
{
return false;
}
void AdBlockEasyList::saveDownloadedData(const QByteArray &data)
{
QFile file(filePath());
if (!file.open(QFile::ReadWrite | QFile::Truncate)) {
qWarning() << "AdBlockSubscription::" << __FUNCTION__ << "Unable to open adblock file for writing:" << filePath();
return;
}
// Third-party advertisers rules are with start domain (||) placeholder which needs regexps
// So we are ignoring it for keeping good performance
// But we will use whitelist rules at the end of list
QByteArray part1 = data.left(data.indexOf(QLatin1String("!-----------------------------Third-party adverts-----------------------------!")));
QByteArray part2 = data.mid(data.indexOf(QLatin1String("!---------------------------------Whitelists----------------------------------!")));
file.write(part1 + part2);
file.close();
}
// AdBlockCustomList // AdBlockCustomList
AdBlockCustomList::AdBlockCustomList(QObject* parent) AdBlockCustomList::AdBlockCustomList(QObject* parent)

View File

@ -131,18 +131,6 @@ private:
bool m_updated; bool m_updated;
}; };
class AdBlockEasyList : public AdBlockSubscription
{
Q_OBJECT
public:
explicit AdBlockEasyList(QObject* parent = 0);
bool canBeRemoved() const;
protected:
void saveDownloadedData(const QByteArray &data);
};
class AdBlockCustomList : public AdBlockSubscription class AdBlockCustomList : public AdBlockSubscription
{ {
Q_OBJECT Q_OBJECT

View File

@ -116,7 +116,7 @@
<context> <context>
<name>AdBlockCustomList</name> <name>AdBlockCustomList</name>
<message> <message>
<location filename="../src/lib/adblock/adblocksubscription.cpp" line="419"/> <location filename="../src/lib/adblock/adblocksubscription.cpp" line="398"/>
<source>Custom Rules</source> <source>Custom Rules</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -179,14 +179,6 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>AdBlockEasyList</name>
<message>
<location filename="../src/lib/adblock/adblocksubscription.cpp" line="385"/>
<source>EasyList</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>AdBlockIcon</name> <name>AdBlockIcon</name>
<message> <message>
@ -258,6 +250,11 @@
<source>AdBlock Subscription</source> <source>AdBlock Subscription</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../src/lib/adblock/adblockmanager.cpp" line="258"/>
<source>EasyList</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>AdBlockTreeWidget</name> <name>AdBlockTreeWidget</name>
@ -2439,12 +2436,12 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/preferences/pluginsmanager.cpp" line="259"/> <location filename="../src/lib/preferences/pluginsmanager.cpp" line="263"/>
<source>Error!</source> <source>Error!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/preferences/pluginsmanager.cpp" line="259"/> <location filename="../src/lib/preferences/pluginsmanager.cpp" line="263"/>
<source>Cannot load extension!</source> <source>Cannot load extension!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -5751,173 +5748,173 @@ After adding or removing certificate paths, it is neccessary to restart QupZilla
<context> <context>
<name>WebPage</name> <name>WebPage</name>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="350"/> <location filename="../src/lib/webview/webpage.cpp" line="361"/>
<source>QupZilla cannot handle &lt;b&gt;%1:&lt;/b&gt; links. The requested link is &lt;ul&gt;&lt;li&gt;%2&lt;/li&gt;&lt;/ul&gt;Do you want QupZilla to try open this link in system application?</source> <source>QupZilla cannot handle &lt;b&gt;%1:&lt;/b&gt; links. The requested link is &lt;ul&gt;&lt;li&gt;%2&lt;/li&gt;&lt;/ul&gt;Do you want QupZilla to try open this link in system application?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="355"/> <location filename="../src/lib/webview/webpage.cpp" line="366"/>
<source>Remember my choice for this protocol</source> <source>Remember my choice for this protocol</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="356"/> <location filename="../src/lib/webview/webpage.cpp" line="367"/>
<source>External Protocol Request</source> <source>External Protocol Request</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="517"/> <location filename="../src/lib/webview/webpage.cpp" line="521"/>
<source>To show this page, QupZilla must resend request which do it again <source>To show this page, QupZilla must resend request which do it again
(like searching on making an shopping, which has been already done.)</source> (like searching on making an shopping, which has been already done.)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="519"/> <location filename="../src/lib/webview/webpage.cpp" line="523"/>
<source>Confirm form resubmission</source> <source>Confirm form resubmission</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="688"/> <location filename="../src/lib/webview/webpage.cpp" line="692"/>
<source>Select files to upload...</source> <source>Select files to upload...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="709"/> <location filename="../src/lib/webview/webpage.cpp" line="713"/>
<source>Server refused the connection</source> <source>Server refused the connection</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="712"/> <location filename="../src/lib/webview/webpage.cpp" line="716"/>
<source>Server closed the connection</source> <source>Server closed the connection</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="715"/> <location filename="../src/lib/webview/webpage.cpp" line="719"/>
<source>Server not found</source> <source>Server not found</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="718"/> <location filename="../src/lib/webview/webpage.cpp" line="722"/>
<source>Connection timed out</source> <source>Connection timed out</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="721"/> <location filename="../src/lib/webview/webpage.cpp" line="725"/>
<source>Untrusted connection</source> <source>Untrusted connection</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="724"/> <location filename="../src/lib/webview/webpage.cpp" line="728"/>
<source>Temporary network failure</source> <source>Temporary network failure</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="727"/> <location filename="../src/lib/webview/webpage.cpp" line="731"/>
<source>Proxy connection refused</source> <source>Proxy connection refused</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="730"/> <location filename="../src/lib/webview/webpage.cpp" line="734"/>
<source>Proxy server not found</source> <source>Proxy server not found</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="733"/> <location filename="../src/lib/webview/webpage.cpp" line="737"/>
<source>Proxy connection timed out</source> <source>Proxy connection timed out</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="736"/> <location filename="../src/lib/webview/webpage.cpp" line="740"/>
<source>Proxy authentication required</source> <source>Proxy authentication required</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="739"/> <location filename="../src/lib/webview/webpage.cpp" line="743"/>
<source>Content not found</source> <source>Content not found</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="742"/> <location filename="../src/lib/webview/webpage.cpp" line="746"/>
<source>Unknown network error</source> <source>Unknown network error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="772"/> <location filename="../src/lib/webview/webpage.cpp" line="776"/>
<source>AdBlocked Content</source> <source>AdBlocked Content</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="776"/> <location filename="../src/lib/webview/webpage.cpp" line="780"/>
<source>Blocked by &lt;i&gt;%1&lt;/i&gt;</source> <source>Blocked by &lt;i&gt;%1&lt;/i&gt;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="793"/> <location filename="../src/lib/webview/webpage.cpp" line="797"/>
<source>Content Access Denied</source> <source>Content Access Denied</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="808"/> <location filename="../src/lib/webview/webpage.cpp" line="812"/>
<source>Error code %1</source> <source>Error code %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="820"/> <location filename="../src/lib/webview/webpage.cpp" line="824"/>
<source>Failed loading page</source> <source>Failed loading page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="826"/> <location filename="../src/lib/webview/webpage.cpp" line="830"/>
<source>QupZilla can&apos;t load page.</source> <source>QupZilla can&apos;t load page.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="826"/> <location filename="../src/lib/webview/webpage.cpp" line="830"/>
<source>QupZilla can&apos;t load page from %1.</source> <source>QupZilla can&apos;t load page from %1.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="830"/> <location filename="../src/lib/webview/webpage.cpp" line="834"/>
<source>Check the address for typing errors such as &lt;b&gt;ww.&lt;/b&gt;example.com instead of &lt;b&gt;www.&lt;/b&gt;example.com</source> <source>Check the address for typing errors such as &lt;b&gt;ww.&lt;/b&gt;example.com instead of &lt;b&gt;www.&lt;/b&gt;example.com</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="831"/> <location filename="../src/lib/webview/webpage.cpp" line="835"/>
<source>If you are unable to load any pages, check your computer&apos;s network connection.</source> <source>If you are unable to load any pages, check your computer&apos;s network connection.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="832"/> <location filename="../src/lib/webview/webpage.cpp" line="836"/>
<source>If your computer or network is protected by a firewall or proxy, make sure that QupZilla is permitted to access the Web.</source> <source>If your computer or network is protected by a firewall or proxy, make sure that QupZilla is permitted to access the Web.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="833"/> <location filename="../src/lib/webview/webpage.cpp" line="837"/>
<source>Try Again</source> <source>Try Again</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="933"/> <location filename="../src/lib/webview/webpage.cpp" line="937"/>
<source>JavaScript alert</source> <source>JavaScript alert</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="941"/> <location filename="../src/lib/webview/webpage.cpp" line="945"/>
<source>Prevent this page from creating additional dialogs</source> <source>Prevent this page from creating additional dialogs</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="989"/> <location filename="../src/lib/webview/webpage.cpp" line="993"/>
<source>Choose file...</source> <source>Choose file...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="997"/> <location filename="../src/lib/webview/webpage.cpp" line="1001"/>
<source>Cannot read data from &lt;b&gt;%1&lt;/b&gt;. Upload was cancelled!</source> <source>Cannot read data from &lt;b&gt;%1&lt;/b&gt;. Upload was cancelled!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webpage.cpp" line="998"/> <location filename="../src/lib/webview/webpage.cpp" line="1002"/>
<source>Cannot read file!</source> <source>Cannot read file!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -5963,268 +5960,268 @@ After adding or removing certificate paths, it is neccessary to restart QupZilla
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="760"/> <location filename="../src/lib/webview/webview.cpp" line="766"/>
<source>Create Search Engine</source> <source>Create Search Engine</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="777"/> <location filename="../src/lib/webview/webview.cpp" line="783"/>
<source>Cut</source> <source>Cut</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="779"/> <location filename="../src/lib/webview/webview.cpp" line="785"/>
<source>Copy</source> <source>Copy</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="781"/> <location filename="../src/lib/webview/webview.cpp" line="787"/>
<source>Paste</source> <source>Paste</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="783"/> <location filename="../src/lib/webview/webview.cpp" line="789"/>
<source>Select All</source> <source>Select All</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="785"/> <location filename="../src/lib/webview/webview.cpp" line="791"/>
<location filename="../src/lib/webview/webview.cpp" line="908"/> <location filename="../src/lib/webview/webview.cpp" line="914"/>
<source>&amp;Reload</source> <source>&amp;Reload</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="786"/> <location filename="../src/lib/webview/webview.cpp" line="792"/>
<source>S&amp;top</source> <source>S&amp;top</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="840"/> <location filename="../src/lib/webview/webview.cpp" line="846"/>
<source>Delete</source> <source>Delete</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="887"/> <location filename="../src/lib/webview/webview.cpp" line="893"/>
<source>&amp;Back</source> <source>&amp;Back</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="891"/> <location filename="../src/lib/webview/webview.cpp" line="897"/>
<source>&amp;Forward</source> <source>&amp;Forward</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="901"/> <location filename="../src/lib/webview/webview.cpp" line="907"/>
<source>This frame</source> <source>This frame</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="902"/> <location filename="../src/lib/webview/webview.cpp" line="908"/>
<source>Show &amp;only this frame</source> <source>Show &amp;only this frame</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="903"/> <location filename="../src/lib/webview/webview.cpp" line="909"/>
<source>Show this frame in new &amp;tab</source> <source>Show this frame in new &amp;tab</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="909"/> <location filename="../src/lib/webview/webview.cpp" line="915"/>
<source>Print frame</source> <source>Print frame</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="911"/> <location filename="../src/lib/webview/webview.cpp" line="917"/>
<source>Zoom &amp;in</source> <source>Zoom &amp;in</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="912"/> <location filename="../src/lib/webview/webview.cpp" line="918"/>
<source>&amp;Zoom out</source> <source>&amp;Zoom out</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="913"/> <location filename="../src/lib/webview/webview.cpp" line="919"/>
<source>Reset</source> <source>Reset</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="915"/> <location filename="../src/lib/webview/webview.cpp" line="921"/>
<source>Show so&amp;urce of frame</source> <source>Show so&amp;urce of frame</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="921"/> <location filename="../src/lib/webview/webview.cpp" line="927"/>
<source>Book&amp;mark page</source> <source>Book&amp;mark page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="922"/> <location filename="../src/lib/webview/webview.cpp" line="928"/>
<source>&amp;Save page as...</source> <source>&amp;Save page as...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="923"/> <location filename="../src/lib/webview/webview.cpp" line="929"/>
<source>&amp;Copy page link</source> <source>&amp;Copy page link</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="924"/> <location filename="../src/lib/webview/webview.cpp" line="930"/>
<source>Send page link...</source> <source>Send page link...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="925"/> <location filename="../src/lib/webview/webview.cpp" line="931"/>
<source>&amp;Print page</source> <source>&amp;Print page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="927"/> <location filename="../src/lib/webview/webview.cpp" line="933"/>
<source>Select &amp;all</source> <source>Select &amp;all</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="931"/> <location filename="../src/lib/webview/webview.cpp" line="937"/>
<source>Validate page</source> <source>Validate page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="934"/> <location filename="../src/lib/webview/webview.cpp" line="940"/>
<source>Show so&amp;urce code</source> <source>Show so&amp;urce code</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="935"/> <location filename="../src/lib/webview/webview.cpp" line="941"/>
<source>Show info ab&amp;out site</source> <source>Show info ab&amp;out site</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="946"/> <location filename="../src/lib/webview/webview.cpp" line="952"/>
<source>Open link in new &amp;tab</source> <source>Open link in new &amp;tab</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="951"/> <location filename="../src/lib/webview/webview.cpp" line="957"/>
<source>Open link in new &amp;window</source> <source>Open link in new &amp;window</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="953"/> <location filename="../src/lib/webview/webview.cpp" line="959"/>
<source>B&amp;ookmark link</source> <source>B&amp;ookmark link</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="954"/> <location filename="../src/lib/webview/webview.cpp" line="960"/>
<source>&amp;Save link as...</source> <source>&amp;Save link as...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="955"/> <location filename="../src/lib/webview/webview.cpp" line="961"/>
<source>Send link...</source> <source>Send link...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="956"/> <location filename="../src/lib/webview/webview.cpp" line="962"/>
<source>&amp;Copy link address</source> <source>&amp;Copy link address</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="968"/> <location filename="../src/lib/webview/webview.cpp" line="974"/>
<source>Show i&amp;mage</source> <source>Show i&amp;mage</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="973"/> <location filename="../src/lib/webview/webview.cpp" line="979"/>
<source>Copy im&amp;age</source> <source>Copy im&amp;age</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="974"/> <location filename="../src/lib/webview/webview.cpp" line="980"/>
<source>Copy image ad&amp;dress</source> <source>Copy image ad&amp;dress</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="976"/> <location filename="../src/lib/webview/webview.cpp" line="982"/>
<source>&amp;Save image as...</source> <source>&amp;Save image as...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="977"/> <location filename="../src/lib/webview/webview.cpp" line="983"/>
<source>Send image...</source> <source>Send image...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="996"/> <location filename="../src/lib/webview/webview.cpp" line="1002"/>
<source>Send text...</source> <source>Send text...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="1001"/> <location filename="../src/lib/webview/webview.cpp" line="1007"/>
<source>Google Translate</source> <source>Google Translate</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="1006"/> <location filename="../src/lib/webview/webview.cpp" line="1012"/>
<source>Dictionary</source> <source>Dictionary</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="1021"/> <location filename="../src/lib/webview/webview.cpp" line="1027"/>
<source>Go to &amp;web address</source> <source>Go to &amp;web address</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="1035"/> <location filename="../src/lib/webview/webview.cpp" line="1041"/>
<source>Search &quot;%1 ..&quot; with %2</source> <source>Search &quot;%1 ..&quot; with %2</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="1041"/> <location filename="../src/lib/webview/webview.cpp" line="1047"/>
<source>Search with...</source> <source>Search with...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="1068"/> <location filename="../src/lib/webview/webview.cpp" line="1074"/>
<source>&amp;Play</source> <source>&amp;Play</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="1068"/> <location filename="../src/lib/webview/webview.cpp" line="1074"/>
<source>&amp;Pause</source> <source>&amp;Pause</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="1069"/> <location filename="../src/lib/webview/webview.cpp" line="1075"/>
<source>Un&amp;mute</source> <source>Un&amp;mute</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="1069"/> <location filename="../src/lib/webview/webview.cpp" line="1075"/>
<source>&amp;Mute</source> <source>&amp;Mute</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="1071"/> <location filename="../src/lib/webview/webview.cpp" line="1077"/>
<source>&amp;Copy Media Address</source> <source>&amp;Copy Media Address</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="1072"/> <location filename="../src/lib/webview/webview.cpp" line="1078"/>
<source>&amp;Send Media Address</source> <source>&amp;Send Media Address</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="1073"/> <location filename="../src/lib/webview/webview.cpp" line="1079"/>
<source>Save Media To &amp;Disk</source> <source>Save Media To &amp;Disk</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="1082"/> <location filename="../src/lib/webview/webview.cpp" line="1088"/>
<source>Check &amp;Spelling</source> <source>Check &amp;Spelling</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lib/webview/webview.cpp" line="1087"/> <location filename="../src/lib/webview/webview.cpp" line="1093"/>
<source>Languages</source> <source>Languages</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>