WebView::WebView(QWidget* parent) : QWebView(parent), possibleDragging(false), isLoading_(false) { settings()->setAttribute(QWebSettings::JavaEnabled, false); settings()->setAttribute(QWebSettings::PluginsEnabled, false); setAcceptDrops(false); page()->setNetworkAccessManager(NetworkAccessManager::instance()); page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks); connect(page(), SIGNAL(linkClicked(const QUrl&)), this, SLOT(linkClickedEvent(const QUrl&))); connect(page()->action(QWebPage::Copy), SIGNAL(triggered()), SLOT(textCopiedEvent())); connect(page()->action(QWebPage::Cut), SIGNAL(triggered()), SLOT(textCopiedEvent())); connect(page(), SIGNAL(loadStarted()), this, SLOT(loadStartedEvent())); connect(page(), SIGNAL(loadFinished(bool)), this, SLOT(loadFinishedEvent(bool))); }
void WebView::copySelected() { // use native selectedText w/o clipboard hacks. // ideally we should call something like hasSelection() but there is no such method in Qt API for webkit classes. if (page()->hasSelection()) { page()->triggerAction(QWebPage::Copy); textCopiedEvent(); } //qDebug("copied text: %s", qPrintable(QApplication::clipboard()->text(QClipboard::Clipboard))); }
WebView::WebView(QWidget* parent) : #ifdef WEBENGINE QWebEngineView(parent), #else QWebView(parent), #endif possibleDragging(false), isLoading_(false) { setAcceptDrops(false); #ifdef WEBENGINE settings()->setAttribute(QWebEngineSettings::PluginsEnabled, false); settings()->setAttribute(QWebEngineSettings::LocalStorageEnabled, false); // TODO cache cotrol // TODO network request interception // Review ink delegation (in other words all local links on page should work) connect(page()->action(QWebEnginePage::Copy), SIGNAL(triggered()), SLOT(textCopiedEvent())); connect(page()->action(QWebEnginePage::Cut), SIGNAL(triggered()), SLOT(textCopiedEvent())); #else settings()->setAttribute(QWebSettings::JavaEnabled, false); settings()->setAttribute(QWebSettings::PluginsEnabled, false); settings()->setAttribute(QWebSettings::LocalStorageEnabled, false); settings()->setMaximumPagesInCache( 0 ); settings()->setObjectCacheCapacities( 0, 0, 0 ); settings()->clearMemoryCaches( ); page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks); connect(page()->action(QWebPage::Copy), SIGNAL(triggered()), SLOT(textCopiedEvent())); connect(page()->action(QWebPage::Cut), SIGNAL(triggered()), SLOT(textCopiedEvent())); connect(page(), SIGNAL(linkClicked(const QUrl&)), this, SLOT(linkClickedEvent(const QUrl&))); // most likely we don't need this at all #endif connect(page(), SIGNAL(loadStarted()), this, SLOT(loadStartedEvent())); connect(page(), SIGNAL(loadFinished(bool)), this, SLOT(loadFinishedEvent(bool))); }