|
|
|
|
@ -61,6 +61,7 @@ WebView::WebView(QWidget* parent) |
|
|
|
|
, m_page(0) |
|
|
|
|
, m_firstLoad(false) |
|
|
|
|
, m_followLink(false) |
|
|
|
|
, m_currentLinkMarkerLabel() |
|
|
|
|
{ |
|
|
|
|
connect(this, &QWebEngineView::loadStarted, this, &WebView::slotLoadStarted); |
|
|
|
|
connect(this, &QWebEngineView::loadProgress, this, &WebView::slotLoadProgress); |
|
|
|
|
@ -1199,24 +1200,42 @@ void WebView::_keyReleaseEvent(QKeyEvent *event) |
|
|
|
|
event->accept(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
switch (event->key()) { |
|
|
|
|
case Qt::Key_Escape: |
|
|
|
|
if (isFullScreen()) { |
|
|
|
|
triggerPageAction(QWebEnginePage::ExitFullScreen); |
|
|
|
|
if (m_followLink) { |
|
|
|
|
// We are following links; therefore we need to process the
|
|
|
|
|
// key
|
|
|
|
|
switch (event->key()) { |
|
|
|
|
case Qt::Key_Space: |
|
|
|
|
// Accept current label
|
|
|
|
|
page()->followLinkMarker(m_currentLinkMarkerLabel); |
|
|
|
|
case Qt::Key_Escape: |
|
|
|
|
page()->hideLinkMarkers(); |
|
|
|
|
m_currentLinkMarkerLabel=QString(); |
|
|
|
|
m_followLink = false; |
|
|
|
|
event->accept(); |
|
|
|
|
break; |
|
|
|
|
|
|
|
|
|
default: |
|
|
|
|
m_currentLinkMarkerLabel += event->text(); |
|
|
|
|
qDebug() << "process letter" << m_currentLinkMarkerLabel; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case Qt::Key_F: |
|
|
|
|
if (!m_followLink) { |
|
|
|
|
} else { |
|
|
|
|
switch (event->key()) { |
|
|
|
|
case Qt::Key_Escape: |
|
|
|
|
if (isFullScreen()) { |
|
|
|
|
triggerPageAction(QWebEnginePage::ExitFullScreen); |
|
|
|
|
event->accept(); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case Qt::Key_F: |
|
|
|
|
page()->showLinkMarkers(); |
|
|
|
|
qDebug() << "markers activated"; |
|
|
|
|
m_followLink = true; |
|
|
|
|
} else { |
|
|
|
|
page()->hideLinkMarkers(); |
|
|
|
|
m_followLink = false; |
|
|
|
|
event->accept(); |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
event->accept(); |
|
|
|
|
default: |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|