void NavigationBar::aboutToShowHistoryNextMenu() { if (!m_menuForward || !m_window->weView()) { return; } m_menuForward->clear(); QWebEngineHistory* history = m_window->weView()->history(); int curindex = history->currentItemIndex(); int count = 0; for (int i = curindex + 1; i < history->count(); i++) { QWebEngineHistoryItem item = history->itemAt(i); if (item.isValid()) { QString title = titleForUrl(item.title(), item.url()); const QIcon icon = iconForPage(item.url(), IconProvider::standardIcon(QStyle::SP_ArrowForward)); Action* act = new Action(icon, title); act->setData(i); connect(act, SIGNAL(triggered()), this, SLOT(loadHistoryIndex())); connect(act, SIGNAL(ctrlTriggered()), this, SLOT(loadHistoryIndexInNewTab())); m_menuForward->addAction(act); } count++; if (count == 20) { break; } } m_menuForward->addSeparator(); m_menuForward->addAction(tr("Clear history"), this, SLOT(clearHistory())); }
void WebEngineHelpViewer::addForwardHistoryItems(QMenu *forwardMenu) { if (QWebEngineHistory *history = m_widget->history()) { QList<QWebEngineHistoryItem> items = history->forwardItems(history->count()); for (int i = 0; i < items.count(); ++i) { QWebEngineHistoryItem item = items.at(i); auto action = new QAction(forwardMenu); action->setText(item.title()); connect(action, &QAction::triggered, this, [this,item]() { if (QWebEngineHistory *history = m_widget->history()) history->goToItem(item); }); forwardMenu->addAction(action); } } }
void WebEngineHelpViewer::addBackHistoryItems(QMenu *backMenu) { if (QWebEngineHistory *history = m_widget->history()) { QList<QWebEngineHistoryItem> items = history->backItems(history->count()); for (int i = items.count() - 1; i >= 0; --i) { QWebEngineHistoryItem item = items.at(i); auto action = new QAction(backMenu); action->setText(item.title()); connect(action, &QAction::triggered, this, [this,item]() { if (QWebEngineHistory *history = m_widget->history()) history->goToItem(item); }); backMenu->addAction(action); } } }