--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/webengine/osswebengine/WebKit/qt/Api/qwebpagehistory.h Mon Mar 30 12:54:55 2009 +0300
@@ -0,0 +1,152 @@
+/*
+ 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.
+*/
+#ifndef QWEBPAGEHISTORY_H
+#define QWEBPAGEHISTORY_H
+
+#include <QUrl>
+#include <QString>
+#include <QIcon>
+#include <QDateTime>
+#include <QSharedData>
+
+#include <qwebkitglobal.h>
+
+#if QT_VERSION < 0x040300
+template <class T> class QExplicitlySharedDataPointer
+{
+public:
+ typedef T Type;
+
+ inline T &operator*() { return *d; }
+ inline const T &operator*() const { return *d; }
+ inline T *operator->() { return d; }
+ inline const T *operator->() const { return d; }
+ inline operator T *() { return d; }
+ inline operator const T *() const { return d; }
+ inline T *data() { return d; }
+ inline const T *data() const { return d; }
+ inline const T *constData() const { return d; }
+
+ //inline operator bool () const { return d != 0; }
+
+ inline bool operator==(const QExplicitlySharedDataPointer<T> &other) const { return d == other.d; }
+ inline bool operator!=(const QExplicitlySharedDataPointer<T> &other) const { return d != other.d; }
+ inline bool operator==(const T *ptr) const { return d == ptr; }
+ inline bool operator!=(const T *ptr) const { return d != ptr; }
+
+ inline QExplicitlySharedDataPointer() { d = 0; }
+ inline ~QExplicitlySharedDataPointer() { if (d && !d->ref.deref()) delete d; }
+
+ explicit QExplicitlySharedDataPointer(T *data);
+ inline QExplicitlySharedDataPointer(const QExplicitlySharedDataPointer<T> &o) : d(o.d) { if (d) d->ref.ref(); }
+ inline QExplicitlySharedDataPointer<T> & operator=(const QExplicitlySharedDataPointer<T> &o) {
+ if (o.d != d) {
+ T *x = o.d;
+ if (x) x->ref.ref();
+ x = qAtomicSetPtr(&d, x);
+ if (x && !x->ref.deref())
+ delete x;
+ }
+ return *this;
+ }
+ inline QExplicitlySharedDataPointer &operator=(T *o) {
+ if (o != d) {
+ T *x = o;
+ if (x) x->ref.ref();
+ x = qAtomicSetPtr(&d, x);
+ if (x && !x->ref.deref())
+ delete x;
+ }
+ return *this;
+ }
+
+ inline bool operator!() const { return !d; }
+
+private:
+
+ T *d;
+};
+template <class T>
+Q_INLINE_TEMPLATE QExplicitlySharedDataPointer<T>::QExplicitlySharedDataPointer(T *adata) : d(adata)
+{ if (d) d->ref.ref(); }
+#endif
+
+class QWebPage;
+
+class QWebHistoryItemPrivate;
+class QWEBKIT_EXPORT QWebHistoryItem
+{
+public:
+ QWebHistoryItem(const QWebHistoryItem &other);
+ QWebHistoryItem &operator=(const QWebHistoryItem &other);
+ ~QWebHistoryItem();
+
+ QList<QWebHistoryItem*> children() const;
+
+ QUrl originalUrl() const;
+ QUrl currentUrl() const;
+
+ QString title() const;
+ QDateTime lastVisited() const;
+
+ QPixmap icon() const;
+
+ QWebHistoryItem(QWebHistoryItemPrivate *priv);
+private:
+ friend class QWebPageHistory;
+ friend class QWebPage;
+ QExplicitlySharedDataPointer<QWebHistoryItemPrivate> d;
+};
+
+class QWebPageHistoryPrivate;
+class QWEBKIT_EXPORT QWebPageHistory
+{
+public:
+ QWebPageHistory(const QWebPageHistory &other);
+ QWebPageHistory &operator=(const QWebPageHistory &other);
+ ~QWebPageHistory();
+
+ void clear();
+
+ QList<QWebHistoryItem> items() const;
+ QList<QWebHistoryItem> backItems(int maxItems) const;
+ QList<QWebHistoryItem> forwardItems(int maxItems) const;
+
+ bool canGoBack() const;
+ bool canGoForward() const;
+
+ void goBack();
+ void goForward();
+ void goToItem(QWebHistoryItem *item);
+
+ QWebHistoryItem backItem() const;
+ QWebHistoryItem currentItem() const;
+ QWebHistoryItem forwardItem() const;
+ QWebHistoryItem itemAtIndex(int i) const;
+
+
+ QWebPageHistory(QWebPageHistoryPrivate *priv);
+private:
+ QExplicitlySharedDataPointer<QWebPageHistoryPrivate> d;
+};
+
+#endif