void NavigationBar::aboutToShowHistoryBackMenu() { if (!m_menuBack || !p_QupZilla->weView()) { return; } m_menuBack->clear(); QWebHistory* history = p_QupZilla->weView()->history(); int curindex = history->currentItemIndex(); int count = 0; for (int i = curindex - 1; i >= 0; i--) { QWebHistoryItem item = history->itemAt(i); if (item.isValid()) { QString title = titleForUrl(item.title(), item.url()); const QIcon &icon = iconForPage(item.url(), qIconProvider->standardIcon(QStyle::SP_ArrowBack)); Action* act = new Action(icon, title); act->setData(i); connect(act, SIGNAL(triggered()), this, SLOT(goAtHistoryIndex())); connect(act, SIGNAL(middleClicked()), this, SLOT(goAtHistoryIndexInNewTab())); m_menuBack->addAction(act); } count++; if (count == 20) { break; } } m_menuBack->addSeparator(); m_menuBack->addAction(tr("Clear history"), this, SLOT(clearHistory())); }
void NavigationBar::aboutToShowHistoryNextMenu() { if (!m_menuForward || !m_window->weView()) { return; } m_menuForward->clear(); QWebHistory* history = m_window->weView()->history(); int curindex = history->currentItemIndex(); int count = 0; for (int i = curindex + 1; i < history->count(); i++) { QWebHistoryItem 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 BackButton::updatePopupMenu() { m_popupMenu->clear(); QList<QWebHistoryItem> items = m_webView->history()->backItems(10); for(int i = items.size() - 1; i >= 0; i--) { QWebHistoryItem item = items.at(i); QIcon icon = Global::notEmpty(QWebSettings::iconForUrl(item.url())); QString title = Global::notEmpty(item.title()); QAction * action = m_popupMenu->addAction(icon, Global::notLong(title)); action->setToolTip(title + "\n" + item.url().toString()); action->setData(i - items.size()); connect(action, SIGNAL(triggered()), this, SLOT(goBack())); } }
WindowHistoryInformation QtWebKitWebWidget::getHistory() const { QVariantHash data; data[QLatin1String("position")] = m_webView->page()->mainFrame()->scrollPosition(); data[QLatin1String("zoom")] = getZoom(); m_webView->history()->currentItem().setUserData(data); QWebHistory *history = m_webView->history(); WindowHistoryInformation information; information.index = history->currentItemIndex(); for (int i = 0; i < history->count(); ++i) { const QWebHistoryItem item = history->itemAt(i); WindowHistoryEntry entry; entry.url = item.url().toString(); entry.title = item.title(); entry.position = item.userData().toHash().value(QLatin1String("position"), QPoint(0, 0)).toPoint(); entry.zoom = item.userData().toHash().value(QLatin1String("zoom")).toInt(); information.entries.append(entry); } return information; }
void MainWindow::openPrevious(Qt::MouseButtons mouseButtons, Qt::KeyboardModifiers keyboardModifiers) { QWebHistory *history = currentTab()->view()->history(); QWebHistoryItem *item = 0; if (currentTab()->page()->isOnRekonqPage()) { item = new QWebHistoryItem(history->currentItem()); } else { if (history->canGoBack()) { item = new QWebHistoryItem(history->backItem()); } } if(!item) return; if (mouseButtons == Qt::MidButton || keyboardModifiers == Qt::ControlModifier) { Application::instance()->loadUrl(item->url(), Rekonq::NewTab); } else { history->goToItem(*item); } updateActions(); }
bool historymanager::addhistory(QWebHistory * history) { for(int i = 0;i < history->count();i++) { const QWebHistoryItem item = history->itemAt(i); addhistory(item.title() , item.url().toString() , item.lastVisited()); } return true; }
void KWebKitPart::slotRestoreFrameState(QWebFrame *frame) { QWebPage* page = (frame ? frame->page() : 0); QWebHistory* history = (page ? page->history() : 0); // No history item... if (!history || history->count() < 1) return; QWebHistoryItem currentHistoryItem (history->currentItem()); // Update the scroll position if needed. See comment in slotSaveFrameState above. if (frame->baseUrl().resolved(frame->url()) == currentHistoryItem.url()) { const QPoint currentPos (frame->scrollPosition()); const QPoint desiredPos (currentHistoryItem.userData().toPoint()); if (currentPos.isNull() && !desiredPos.isNull()) { frame->setScrollPosition(desiredPos); } } }
static QString dumpHistoryItem(const QWebHistoryItem& item, int indent, bool current) { QString result; int start = 0; if (current) { result.append(QLatin1String("curr->")); start = 6; } for (int i = start; i < indent; i++) result.append(' '); QString url = item.url().toEncoded(); if (url.contains("file://")) { static QString layoutTestsString("/LayoutTests/"); static QString fileTestString("(file test):"); QString res = url.mid(url.indexOf(layoutTestsString) + layoutTestsString.length()); if (res.isEmpty()) return result; result.append(fileTestString); result.append(res); } else { result.append(url); } QString target = DumpRenderTreeSupportQt::historyItemTarget(item); if (!target.isEmpty()) result.append(QString(QLatin1String(" (in frame \"%1\")")).arg(target)); if (DumpRenderTreeSupportQt::isTargetItem(item)) result.append(QLatin1String(" **nav target**")); result.append(QLatin1String("\n")); QMap<QString, QWebHistoryItem> children = DumpRenderTreeSupportQt::getChildHistoryItems(item); foreach (QWebHistoryItem item, children) result += dumpHistoryItem(item, 12, false); return result; }