From b5fa490573eccbdea0118c26526b7867e66c3030 Mon Sep 17 00:00:00 2001 From: nowrep Date: Wed, 21 Dec 2011 20:58:02 +0100 Subject: [PATCH] [Fix] Click2Flash should now work properly on all pages. - using QWebHitTestResult mechanism to find html element associated to Click2Flash object (should work now 100%) > please let me know - added new context menu action to history manager = copy link address --- bin/locale/cs_CZ.qm | Bin 84410 -> 84497 bytes src/app/qupzilla.cpp | 2 +- src/bookmarks/bookmarkstoolbar.cpp | 4 +-- src/history/historymanager.cpp | 8 ++++++ src/history/historymanager.h | 1 + src/plugins/clicktoflash.cpp | 30 +++++++++++++++++++++- src/plugins/clicktoflash.h | 7 ++++++ src/plugins/webpluginfactory.cpp | 9 +++++-- src/sidebar/historysidebar.cpp | 1 + translations/cs_CZ.ts | 39 ++++++++++++++++++----------- translations/de_DE.ts | 35 +++++++++++++++----------- translations/empty.ts | 35 +++++++++++++++----------- translations/es_ES.ts | 35 +++++++++++++++----------- translations/it_IT.ts | 35 +++++++++++++++----------- translations/nl_NL.ts | 35 +++++++++++++++----------- translations/pl_PL.ts | 35 +++++++++++++++----------- translations/sk_SK.ts | 4 +++ translations/zh_CN.ts | 35 +++++++++++++++----------- 18 files changed, 224 insertions(+), 126 deletions(-) diff --git a/bin/locale/cs_CZ.qm b/bin/locale/cs_CZ.qm index 4f432848a36bbf058e527042367c7528fe5ba5b1..d63994e7b8fe455843eaf0da6c90a5521501aa72 100644 GIT binary patch delta 5887 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 F@;`s!^}_%F diff --git a/src/app/qupzilla.cpp b/src/app/qupzilla.cpp index 34206a0b1..3e4ce8091 100644 --- a/src/app/qupzilla.cpp +++ b/src/app/qupzilla.cpp @@ -964,7 +964,7 @@ void QupZilla::loadActionUrlInNewNotSelectedTab() } } -void QupZilla::loadFolderBookmarks(Menu *menu) +void QupZilla::loadFolderBookmarks(Menu* menu) { QString folder = BookmarksModel::fromTranslatedFolder(menu->title()); if (folder.isEmpty()) { diff --git a/src/bookmarks/bookmarkstoolbar.cpp b/src/bookmarks/bookmarkstoolbar.cpp index 42663aefb..788ea59ff 100644 --- a/src/bookmarks/bookmarkstoolbar.cpp +++ b/src/bookmarks/bookmarkstoolbar.cpp @@ -224,7 +224,7 @@ void BookmarksToolbar::loadFolderBookmarksInTabs() return; } - foreach (Bookmark b, m_bookmarksModel->folderBookmarks(folder)) { + foreach(Bookmark b, m_bookmarksModel->folderBookmarks(folder)) { p_QupZilla->tabWidget()->addView(b.url, b.title, TabWidget::NewNotSelectedTab); } } @@ -476,7 +476,7 @@ void BookmarksToolbar::aboutToShowFolderMenu() menu->clear(); QString folder = menu->title(); - foreach (Bookmark b, m_bookmarksModel->folderBookmarks(folder)) { + foreach(Bookmark b, m_bookmarksModel->folderBookmarks(folder)) { if (b.title.length() > 40) { b.title.truncate(40); b.title += ".."; diff --git a/src/history/historymanager.cpp b/src/history/historymanager.cpp index 5047cef40..740f5b35a 100644 --- a/src/history/historymanager.cpp +++ b/src/history/historymanager.cpp @@ -99,6 +99,7 @@ void HistoryManager::contextMenuRequested(const QPoint &position) menu.addAction(tr("Open link in actual tab"), getQupZilla(), SLOT(loadActionUrl()))->setData(link); menu.addAction(tr("Open link in new tab"), this, SLOT(loadInNewTab()))->setData(link); menu.addSeparator(); + menu.addAction(tr("Copy address"), this, SLOT(copyUrl()))->setData(link); //Prevent choosing first option with double rightclick QPoint pos = QCursor::pos(); @@ -106,6 +107,13 @@ void HistoryManager::contextMenuRequested(const QPoint &position) menu.exec(p); } +void HistoryManager::copyUrl() +{ + if (QAction* action = qobject_cast(sender())) { + QApplication::clipboard()->setText(action->data().toUrl().toEncoded()); + } +} + void HistoryManager::deleteItem() { foreach(QTreeWidgetItem * item, ui->historyTree->selectedItems()) { diff --git a/src/history/historymanager.h b/src/history/historymanager.h index ede4e3452..05540f6ad 100644 --- a/src/history/historymanager.h +++ b/src/history/historymanager.h @@ -52,6 +52,7 @@ private slots: void clearHistory(); void contextMenuRequested(const QPoint &position); void loadInNewTab(); + void copyUrl(); void historyEntryAdded(const HistoryModel::HistoryEntry &entry); void historyEntryDeleted(const HistoryModel::HistoryEntry &entry); diff --git a/src/plugins/clicktoflash.cpp b/src/plugins/clicktoflash.cpp index 595d7fb2e..4d7fbef25 100644 --- a/src/plugins/clicktoflash.cpp +++ b/src/plugins/clicktoflash.cpp @@ -49,6 +49,10 @@ #include "globalfunctions.h" #include "qupzilla.h" +QUrl ClickToFlash::acceptedUrl; +QStringList ClickToFlash::acceptedArgNames; +QStringList ClickToFlash::acceptedArgValues; + ClickToFlash::ClickToFlash(const QUrl &pluginUrl, const QStringList &argumentNames, const QStringList &argumentValues, WebPage* parentPage) : QWidget() , m_argumentNames(argumentNames) @@ -95,6 +99,13 @@ ClickToFlash::ClickToFlash(const QUrl &pluginUrl, const QStringList &argumentNam QTimer::singleShot(0, this, SLOT(ensurePluginVisible())); } +bool ClickToFlash::isAlreadyAccepted(const QUrl &url, const QStringList &argumentNames, const QStringList &argumentValues) +{ + return (url == acceptedUrl && + argumentNames == acceptedArgNames && + argumentValues == acceptedArgValues); +} + void ClickToFlash::ensurePluginVisible() { // Well, kind of a dirty workaround, but it works. @@ -158,8 +169,21 @@ void ClickToFlash::findElement() return; } + QPoint objectPos = view->mapFromGlobal(m_toolButton->mapToGlobal(m_toolButton->pos())); + QWebFrame* objectFrame = view->page()->frameAt(objectPos); + QWebHitTestResult hitResult = objectFrame->hitTestContent(objectPos); + QWebElement hitElement = hitResult.element(); + + if (!hitElement.isNull()) { + m_element = hitElement; + return; + } + + // HitTestResult failed, trying to find element by src + // attribute in elements at all frames on page (less accurate) + QList frames; - frames.append(view->page()->frameAt(view->mapFromGlobal(m_toolButton->mapToGlobal(m_toolButton->pos())))); + frames.append(objectFrame); m_mainFrame = view->page()->mainFrame(); frames.append(m_mainFrame); @@ -196,6 +220,10 @@ void ClickToFlash::load() QWebElement substitute = m_element.clone(); substitute.setAttribute(QLatin1String("type"), "application/futuresplash"); m_element.replace(substitute); + + acceptedUrl = m_url; + acceptedArgNames = m_argumentNames; + acceptedArgValues = m_argumentValues; } } diff --git a/src/plugins/clicktoflash.h b/src/plugins/clicktoflash.h index 88e00b391..775af958c 100644 --- a/src/plugins/clicktoflash.h +++ b/src/plugins/clicktoflash.h @@ -66,6 +66,8 @@ public: explicit ClickToFlash(const QUrl &pluginUrl, const QStringList &argumentNames, const QStringList &argumentValues, WebPage* parentPage); ~ClickToFlash(); + static bool isAlreadyAccepted(const QUrl &url, const QStringList &argumentNames, const QStringList &argumentValues); + private slots: void load(); void customContextMenuRequested(const QPoint &pos); @@ -94,6 +96,11 @@ private: */ const QUrl m_url; + static QUrl acceptedUrl; + static QStringList acceptedArgNames; + static QStringList acceptedArgValues; + + WebPage* m_page; }; diff --git a/src/plugins/webpluginfactory.cpp b/src/plugins/webpluginfactory.cpp index f34c2161b..53196e4f7 100644 --- a/src/plugins/webpluginfactory.cpp +++ b/src/plugins/webpluginfactory.cpp @@ -36,7 +36,7 @@ QObject* WebPluginFactory::create(const QString &mimeType, const QUrl &url, cons if (mime != "application/x-shockwave-flash") { if (mime != "application/futuresplash") { - qDebug() << "missing mimeType handler for: " << mime; + qDebug() << "WebPluginFactory::create missing mimeType handler for: " << mime; } return 0; } @@ -45,11 +45,16 @@ QObject* WebPluginFactory::create(const QString &mimeType, const QUrl &url, cons return 0; } - //Click2Flash whitelist + // Click2Flash whitelist QStringList whitelist = mApp->plugins()->c2f_getWhiteList(); if (whitelist.contains(url.host()) || whitelist.contains("www." + url.host()) || whitelist.contains(url.host().remove("www."))) { return 0; } + // Click2Flash already accepted + if (ClickToFlash::isAlreadyAccepted(url, argumentNames, argumentValues)) { + qDebug() << "already accepted"; + return 0; + } WebPluginFactory* factory = const_cast(this); if (!factory) { diff --git a/src/sidebar/historysidebar.cpp b/src/sidebar/historysidebar.cpp index 3da85bedb..51a926d48 100644 --- a/src/sidebar/historysidebar.cpp +++ b/src/sidebar/historysidebar.cpp @@ -92,6 +92,7 @@ void HistorySideBar::contextMenuRequested(const QPoint &position) QMenu menu; menu.addAction(tr("Open link in actual tab"), p_QupZilla, SLOT(loadActionUrl()))->setData(link); menu.addAction(tr("Open link in new tab"), this, SLOT(loadInNewTab()))->setData(link); + menu.addSeparator(); menu.addAction(tr("Copy address"), this, SLOT(copyAddress()))->setData(link); //Prevent choosing first option with double rightclick diff --git a/translations/cs_CZ.ts b/translations/cs_CZ.ts index 3c4afd63f..ea200ac55 100644 --- a/translations/cs_CZ.ts +++ b/translations/cs_CZ.ts @@ -1513,30 +1513,39 @@ nebyl nalezen! Otevřít odkaz v novém panelu - - + Copy url to clipboard + Kopírovat adresu + + + + Copy address + Kopírovat adresu + + + + Today Dnes - - + + This Week Tento týden - - + + This Month Tento měsíc - + Confirmation Potvrzení - + Are you sure to delete all history? Opravdu chcete vymazat celou historii? @@ -1642,25 +1651,25 @@ nebyl nalezen! Otevřít odkaz v novém panelu - + Copy address Kopírovat adresu - - + + Today Dnes - - + + This Week Tento týden - - + + This Month Tento měsíc diff --git a/translations/de_DE.ts b/translations/de_DE.ts index 28b13468f..6439558c1 100644 --- a/translations/de_DE.ts +++ b/translations/de_DE.ts @@ -1509,30 +1509,35 @@ Link in neuem Tab öffnen - - + + Copy address + Link-Adresse kopieren + + + + Today Heute - - + + This Week Diese Woche - - + + This Month Dieser Monat - + Confirmation Bestätigung - + Are you sure to delete all history? Möchten Sie wirklich den gesamten Verlauf löschen? @@ -1638,25 +1643,25 @@ Link in neuem Tab öffnen - + Copy address Link-Adresse kopieren - - + + Today Heute - - + + This Week Diese Woche - - + + This Month Dieser Monat diff --git a/translations/empty.ts b/translations/empty.ts index ed34b86b5..2cb068fb4 100644 --- a/translations/empty.ts +++ b/translations/empty.ts @@ -1454,30 +1454,35 @@ - - + + Copy address + + + + + Today - - + + This Week - - + + This Month - + Confirmation - + Are you sure to delete all history? @@ -1583,25 +1588,25 @@ - + Copy address - - + + Today - - + + This Week - - + + This Month diff --git a/translations/es_ES.ts b/translations/es_ES.ts index ca6e828c2..1de923cb6 100644 --- a/translations/es_ES.ts +++ b/translations/es_ES.ts @@ -1508,30 +1508,35 @@ Abrir enlace en una nueva pestaña - - + + Copy address + Copiar dirección + + + + Today Hoy - - + + This Week Esta semana - - + + This Month Este mes - + Confirmation Confirmación - + Are you sure to delete all history? ¿Está seguro de eliminar todo el historial? @@ -1637,25 +1642,25 @@ Abrir enlace en una nueva pestaña - + Copy address Copiar dirección - - + + Today Hoy - - + + This Week Esta semana - - + + This Month Este mes diff --git a/translations/it_IT.ts b/translations/it_IT.ts index 1c967525e..20ba1f3b3 100644 --- a/translations/it_IT.ts +++ b/translations/it_IT.ts @@ -1500,30 +1500,35 @@ Apri collegamento in una nuova scheda - - + + Copy address + Copia indirizzo + + + + Today Oggi - - + + This Week Questa Settimana - - + + This Month Questo Mese - + Confirmation Conferma - + Are you sure to delete all history? Sei sicuro di voler cancellare tutta la cronologia? @@ -1629,25 +1634,25 @@ Apri collegamento in una nuova scheda - + Copy address Copia indirizzo - - + + Today Oggi - - + + This Week Questa Settimana - - + + This Month Questo Mese diff --git a/translations/nl_NL.ts b/translations/nl_NL.ts index eb78361a6..c4aa3d182 100644 --- a/translations/nl_NL.ts +++ b/translations/nl_NL.ts @@ -1509,30 +1509,35 @@ werd niet gevonden! Open link in nieuw tabblad - - + + Copy address + Kopieer adres + + + + Today Vandaag - - + + This Week Deze week - - + + This Month Deze maand - + Confirmation Bevestiging - + Are you sure to delete all history? Weet u zeker dat u alle geschiedenis wilt verwijderen? @@ -1638,25 +1643,25 @@ werd niet gevonden! Open link in nieuw tabblad - + Copy address Kopieer adres - - + + Today Vandaag - - + + This Week Deze week - - + + This Month Deze maand diff --git a/translations/pl_PL.ts b/translations/pl_PL.ts index 0d4f359bc..12e93da6a 100644 --- a/translations/pl_PL.ts +++ b/translations/pl_PL.ts @@ -1560,30 +1560,35 @@ p, li { white-space: pre-wrap; } Otwórz link w nowej karcie - - + + Copy address + + + + + Today Dziś - - + + This Week W tym tygodniu - - + + This Month W tym miesiącu - + Confirmation Potwierdź - + Are you sure to delete all history? Czy na pewno chcesz usunąć całą historię? @@ -1689,25 +1694,25 @@ p, li { white-space: pre-wrap; } Otwórz link w nowej karcie - + Copy address - - + + Today Dziś - - + + This Week W tym tygodniu - - + + This Month W tym miesiącu diff --git a/translations/sk_SK.ts b/translations/sk_SK.ts index 8b7fad194..fc47a8e0c 100644 --- a/translations/sk_SK.ts +++ b/translations/sk_SK.ts @@ -1214,6 +1214,10 @@ History História + + Copy address + Kopírovať adresu + HistoryModel diff --git a/translations/zh_CN.ts b/translations/zh_CN.ts index c0a04e29f..eeb096414 100644 --- a/translations/zh_CN.ts +++ b/translations/zh_CN.ts @@ -1506,30 +1506,35 @@ 在新标签打开链接 - - + + Copy address + 复制地址 + + + + Today 到今天 - - + + This Week 本周 - - + + This Month 本月 - + Confirmation 确认 - + Are you sure to delete all history? 确定删除所有历史吗? @@ -1635,25 +1640,25 @@ 在新标签打开链接 - + Copy address 复制地址 - - + + Today 到今天 - - + + This Week 本周 - - + + This Month 本月