VWebView: add Copy All without Background action

This commit is contained in:
Le Tan 2017-12-29 18:25:19 +08:00
parent db73ab6dfd
commit c4d72183b5
2 changed files with 23 additions and 3 deletions

View File

@ -101,6 +101,15 @@ void VWebView::contextMenuEvent(QContextMenuEvent *p_event)
} }
#endif #endif
// Add Copy All without Background action.
QAction *copyAllWithoutBgAct = new QAction(tr("Copy &All without Background"), menu);
copyAllWithoutBgAct->setToolTip(tr("Copy all contents without background styles"));
connect(copyAllWithoutBgAct, &QAction::triggered,
this, &VWebView::handleCopyAllWithoutBackgroundAction);
// Add it to the back.
menu->addSeparator();
menu->addAction(copyAllWithoutBgAct);
hideUnusedActions(menu); hideUnusedActions(menu);
menu->exec(p_event->globalPos()); menu->exec(p_event->globalPos());
@ -228,8 +237,17 @@ void VWebView::handleCopyWithoutBackgroundAction()
{ {
m_needRemoveBackground = true; m_needRemoveBackground = true;
QAction *copyAct = pageAction(QWebEnginePage::Copy); triggerPageAction(QWebEnginePage::Copy);
copyAct->trigger(); }
void VWebView::handleCopyAllWithoutBackgroundAction()
{
triggerPageAction(QWebEnginePage::SelectAll);
m_needRemoveBackground = true;
triggerPageAction(QWebEnginePage::Copy);
triggerPageAction(QWebEnginePage::Unselect);
} }
void VWebView::handleClipboardChanged(QClipboard::Mode p_mode) void VWebView::handleClipboardChanged(QClipboard::Mode p_mode)
@ -337,5 +355,5 @@ void VWebView::alterHtmlMimeData(QClipboard *p_clipboard,
data->setHtml(html); data->setHtml(html);
VClipboardUtils::setMimeDataToClipboard(p_clipboard, data, QClipboard::Clipboard); VClipboardUtils::setMimeDataToClipboard(p_clipboard, data, QClipboard::Clipboard);
qDebug() << "altered clipboard's Html" << html; qDebug() << "altered clipboard's Html";
} }

View File

@ -27,6 +27,8 @@ private slots:
void handleCopyWithoutBackgroundAction(); void handleCopyWithoutBackgroundAction();
void handleCopyAllWithoutBackgroundAction();
// Copy the clicked image. // Copy the clicked image.
// Used to replace the default CopyImageToClipboard action. // Used to replace the default CopyImageToClipboard action.
void copyImage(); void copyImage();