mirror of
https://gitee.com/vnotex/vnote.git
synced 2025-07-05 13:59:52 +08:00
WebView: fix context menu in preview mode
This commit is contained in:
parent
41bf2d9cec
commit
25ec41c3f0
@ -41,11 +41,6 @@ VWebView::VWebView(VFile *p_file, QWidget *p_parent)
|
|||||||
|
|
||||||
void VWebView::contextMenuEvent(QContextMenuEvent *p_event)
|
void VWebView::contextMenuEvent(QContextMenuEvent *p_event)
|
||||||
{
|
{
|
||||||
if (m_inPreview) {
|
|
||||||
QWebEngineView::contextMenuEvent(p_event);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
QMenu *menu = page()->createStandardContextMenu();
|
QMenu *menu = page()->createStandardContextMenu();
|
||||||
menu->setToolTipsVisible(true);
|
menu->setToolTipsVisible(true);
|
||||||
|
|
||||||
@ -69,7 +64,10 @@ void VWebView::contextMenuEvent(QContextMenuEvent *p_event)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!hasSelection() && m_file && m_file->isModifiable()) {
|
if (!hasSelection()
|
||||||
|
&& !m_inPreview
|
||||||
|
&& m_file
|
||||||
|
&& m_file->isModifiable()) {
|
||||||
QAction *editAct= new QAction(VIconUtils::menuIcon(":/resources/icons/edit_note.svg"),
|
QAction *editAct= new QAction(VIconUtils::menuIcon(":/resources/icons/edit_note.svg"),
|
||||||
tr("&Edit"), menu);
|
tr("&Edit"), menu);
|
||||||
editAct->setToolTip(tr("Edit current note"));
|
editAct->setToolTip(tr("Edit current note"));
|
||||||
@ -84,7 +82,7 @@ void VWebView::contextMenuEvent(QContextMenuEvent *p_event)
|
|||||||
|
|
||||||
// Add Copy As menu.
|
// Add Copy As menu.
|
||||||
QAction *copyAct = pageAction(QWebEnginePage::Copy);
|
QAction *copyAct = pageAction(QWebEnginePage::Copy);
|
||||||
if (actions.contains(copyAct)) {
|
if (actions.contains(copyAct) && !m_inPreview) {
|
||||||
initCopyAsMenu(copyAct, menu);
|
initCopyAsMenu(copyAct, menu);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -102,7 +100,7 @@ void VWebView::contextMenuEvent(QContextMenuEvent *p_event)
|
|||||||
defaultCopyImageAct->setVisible(false);
|
defaultCopyImageAct->setVisible(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!hasSelection()) {
|
if (!hasSelection() && !m_inPreview) {
|
||||||
QAction *savePageAct = new QAction(QWebEnginePage::tr("Save &Page"), menu);
|
QAction *savePageAct = new QAction(QWebEnginePage::tr("Save &Page"), menu);
|
||||||
connect(savePageAct, &QAction::triggered,
|
connect(savePageAct, &QAction::triggered,
|
||||||
this, &VWebView::requestSavePage);
|
this, &VWebView::requestSavePage);
|
||||||
@ -110,13 +108,26 @@ void VWebView::contextMenuEvent(QContextMenuEvent *p_event)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add Copy All As menu.
|
// Add Copy All As menu.
|
||||||
initCopyAllAsMenu(menu);
|
if (!m_inPreview) {
|
||||||
|
initCopyAllAsMenu(menu);
|
||||||
|
}
|
||||||
|
|
||||||
hideUnusedActions(menu);
|
hideUnusedActions(menu);
|
||||||
|
|
||||||
p_event->accept();
|
p_event->accept();
|
||||||
|
|
||||||
menu->exec(p_event->globalPos());
|
bool valid = false;
|
||||||
|
for (auto act : menu->actions()) {
|
||||||
|
if (act->isVisible()) {
|
||||||
|
valid = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (valid) {
|
||||||
|
menu->exec(p_event->globalPos());
|
||||||
|
}
|
||||||
|
|
||||||
delete menu;
|
delete menu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user