diff -r 000000000000 -r dd21522fd290 webengine/osswebengine/WebKit/qt/Api/qwebpagehistory.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webengine/osswebengine/WebKit/qt/Api/qwebpagehistory.cpp Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,203 @@ +/* + 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().url()); +} + + +QUrl QWebHistoryItem::currentUrl() const +{ + return QUrl(d->item->url().url()); +} + + +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(QWebPageHistoryPrivate *priv) +{ + d = priv; +} + +QWebPageHistory::QWebPageHistory(const QWebPageHistory &other) +{ + d = other.d; +} + +QWebPageHistory &QWebPageHistory::operator=(const QWebPageHistory &other) +{ + d = other.d; + return *this; +} + +QWebPageHistory::~QWebPageHistory() +{ +} + +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(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); +} +