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 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 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 WebKitBrowserExtension::saveState(QDataStream &stream) { // TODO: Save information such as form data from the current page. QWebHistory* history = (view() ? view()->history() : 0); const int historyIndex = (history ? history->currentItemIndex() : -1); const KUrl historyUrl = (history ? KUrl(history->currentItem().url()) : m_part->url()); stream << historyUrl << static_cast<qint32>(xOffset()) << static_cast<qint32>(yOffset()) << historyIndex << m_historyData; }