2008-10-23 Yael Aharon <yael.aharon@nokia.com>
[WebKit-https.git] / WebKit / qt / Api / qwebhistory.h
1 /*
2     Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
3
4     This library is free software; you can redistribute it and/or
5     modify it under the terms of the GNU Library General Public
6     License as published by the Free Software Foundation; either
7     version 2 of the License, or (at your option) any later version.
8
9     This library is distributed in the hope that it will be useful,
10     but WITHOUT ANY WARRANTY; without even the implied warranty of
11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12     Library General Public License for more details.
13
14     You should have received a copy of the GNU Library General Public License
15     along with this library; see the file COPYING.LIB.  If not, write to
16     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17     Boston, MA 02110-1301, USA.
18 */
19
20 #ifndef QWEBHISTORY_H
21 #define QWEBHISTORY_H
22
23 #include <QtCore/qurl.h>
24 #include <QtCore/qstring.h>
25 #include <QtGui/qicon.h>
26 #include <QtCore/qdatetime.h>
27 #include <QtCore/qshareddata.h>
28
29 #include "qwebkitglobal.h"
30
31 class QWebPage;
32
33 class QWebHistoryItemPrivate;
34 class QWEBKIT_EXPORT QWebHistoryItem
35 {
36 public:
37     QWebHistoryItem(const QWebHistoryItem &other);
38     QWebHistoryItem &operator=(const QWebHistoryItem &other);
39     ~QWebHistoryItem();
40
41     QUrl originalUrl() const;
42     QUrl url() const;
43
44     QString title() const;
45     QDateTime lastVisited() const;
46
47     QIcon icon() const;
48
49     bool isValid() const;
50
51 private:
52     QWebHistoryItem(QWebHistoryItemPrivate *priv);
53     friend class QWebHistory;
54     friend class QWebPage;
55     QExplicitlySharedDataPointer<QWebHistoryItemPrivate> d;
56 };
57
58 class QWebHistoryPrivate;
59 class QWEBKIT_EXPORT QWebHistory
60 {
61 public:
62     void clear();
63
64     QList<QWebHistoryItem> items() const;
65     QList<QWebHistoryItem> backItems(int maxItems) const;
66     QList<QWebHistoryItem> forwardItems(int maxItems) const;
67
68     bool canGoBack() const;
69     bool canGoForward() const;
70
71     void back();
72     void forward();
73     void goToItem(const QWebHistoryItem &item);
74
75     QWebHistoryItem backItem() const;
76     QWebHistoryItem currentItem() const;
77     QWebHistoryItem forwardItem() const;
78     QWebHistoryItem itemAt(int i) const;
79
80     int count() const;
81
82 private:
83     QWebHistory();
84     ~QWebHistory();
85
86     friend class QWebPage;
87     friend class QWebPagePrivate;
88
89     Q_DISABLE_COPY(QWebHistory)
90
91     QWebHistoryPrivate *d;
92 };
93
94 #endif