/* Copyright (C) 2007 Trolltech ASA This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. This class provides all functionality needed for loading images, style sheets and html pages from the web. It has a memory cache for these objects. */ #include "qwebpagehistory.h" #include "qwebpagehistory_p.h" #include "DeprecatedString.h" #include "PlatformString.h" #include "Image.h" #include QWebHistoryItem::QWebHistoryItem(const QWebHistoryItem &other) : d(other.d) { } QWebHistoryItem &QWebHistoryItem::operator=(const QWebHistoryItem &other) { d = other.d; return *this; } QWebHistoryItem::~QWebHistoryItem() { } QUrl QWebHistoryItem::originalUrl() const { return QUrl(d->item->originalURL().string()); } QUrl QWebHistoryItem::currentUrl() const { return QUrl(d->item->url().string()); } QString QWebHistoryItem::title() const { return d->item->title(); } QDateTime QWebHistoryItem::lastVisited() const { //FIXME : this will be wrong unless we correctly set lastVisitedTime ourselves return QDateTime::fromTime_t((uint)d->item->lastVisitedTime()); } QPixmap QWebHistoryItem::icon() const { return *d->item->icon()->getPixmap(); } QWebHistoryItem::QWebHistoryItem(QWebHistoryItemPrivate *priv) { d = priv; } QWebPageHistory::QWebPageHistory() : d(0) { } QWebPageHistory::~QWebPageHistory() { delete d; } void QWebPageHistory::clear() { RefPtr current = d->lst->currentItem(); int capacity = d->lst->capacity(); d->lst->setCapacity(0); d->lst->setCapacity(capacity); d->lst->addItem(current.get()); d->lst->goToItem(current.get()); } QList QWebPageHistory::items() const { const WebCore::HistoryItemVector &items = d->lst->entries(); QList ret; for (int i = 0; i < items.size(); ++i) { QWebHistoryItemPrivate *priv = new QWebHistoryItemPrivate(items[i].get()); ret.append(QWebHistoryItem(priv)); } return ret; } QList QWebPageHistory::backItems(int maxItems) const { WebCore::HistoryItemVector items(maxItems); d->lst->backListWithLimit(maxItems, items); QList ret; for (int i = 0; i < items.size(); ++i) { QWebHistoryItemPrivate *priv = new QWebHistoryItemPrivate(items[i].get()); ret.append(QWebHistoryItem(priv)); } return ret; } QList QWebPageHistory::forwardItems(int maxItems) const { WebCore::HistoryItemVector items(maxItems); d->lst->forwardListWithLimit(maxItems, items); QList ret; for (int i = 0; i < items.size(); ++i) { QWebHistoryItemPrivate *priv = new QWebHistoryItemPrivate(items[i].get()); ret.append(QWebHistoryItem(priv)); } return ret; } bool QWebPageHistory::canGoBack() const { return d->lst->backListCount() > 0; } bool QWebPageHistory::canGoForward() const { return d->lst->forwardListCount() > 0; } void QWebPageHistory::goBack() { d->lst->goBack(); } void QWebPageHistory::goForward() { d->lst->goBack(); } void QWebPageHistory::goToItem(const QWebHistoryItem &item) { d->lst->goToItem(item.d->item); } QWebHistoryItem QWebPageHistory::backItem() const { WebCore::HistoryItem *i = d->lst->backItem(); QWebHistoryItemPrivate *priv = new QWebHistoryItemPrivate(i); return QWebHistoryItem(priv); } QWebHistoryItem QWebPageHistory::currentItem() const { WebCore::HistoryItem *i = d->lst->currentItem(); QWebHistoryItemPrivate *priv = new QWebHistoryItemPrivate(i); return QWebHistoryItem(priv); } QWebHistoryItem QWebPageHistory::forwardItem() const { WebCore::HistoryItem *i = d->lst->forwardItem(); QWebHistoryItemPrivate *priv = new QWebHistoryItemPrivate(i); return QWebHistoryItem(priv); } QWebHistoryItem QWebPageHistory::itemAtIndex(int i) const { WebCore::HistoryItem *item = d->lst->itemAtIndex(i); QWebHistoryItemPrivate *priv = new QWebHistoryItemPrivate(item); return QWebHistoryItem(priv); }