Implement more functions for the Qt build
[WebKit-https.git] / WebKitQt / Api / qwebpagehistory.cpp
1 /*
2     Copyright (C) 2007 Trolltech ASA
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., 59 Temple Place - Suite 330,
17     Boston, MA 02111-1307, USA.
18
19     This class provides all functionality needed for loading images, style sheets and html
20     pages from the web. It has a memory cache for these objects.
21 */
22 #include "qwebpagehistory.h"
23 #include "qwebpagehistory_p.h"
24
25 #include "DeprecatedString.h"
26 #include "PlatformString.h"
27 #include "Image.h"
28
29 #include <QSharedData>
30
31 QWebHistoryItem::~QWebHistoryItem()
32 {
33 }
34
35 QUrl QWebHistoryItem::originalUrl() const
36 {
37     return QUrl(d->item->originalURL().url());
38 }
39
40
41 QUrl QWebHistoryItem::currentUrl() const
42 {
43     return QUrl(d->item->url().url());
44 }
45
46
47 QString QWebHistoryItem::title() const
48 {
49     return d->item->title();
50 }
51
52
53 QDateTime QWebHistoryItem::lastVisited() const
54 {
55     //FIXME : this will be wrong unless we correctly set lastVisitedTime ourselves
56     return QDateTime::fromTime_t((uint)d->item->lastVisitedTime());
57 }
58
59
60 QPixmap QWebHistoryItem::icon() const
61 {
62     return *d->item->icon()->getPixmap();
63 }
64
65
66 QWebHistoryItem::QWebHistoryItem(QWebHistoryItemPrivate *priv)
67 {
68     d = priv;
69 }
70
71 QWebPageHistory::QWebPageHistory(QWebPageHistoryPrivate *priv)
72 {
73     d = priv;
74 }
75
76 QWebHistoryItem QWebPageHistory::itemAtIndex(int i) const
77 {
78     WebCore::HistoryItem *item = d->lst->itemAtIndex(i);
79
80     QWebHistoryItemPrivate *priv = new QWebHistoryItemPrivate(item);
81     return QWebHistoryItem(priv);
82 }
83
84 QWebPageHistory::QWebPageHistory(const QWebPageHistory &other)
85 {
86     d = other.d;
87 }
88
89 QWebPageHistory::~QWebPageHistory()
90 {
91 }
92
93 QList<QWebHistoryItem> QWebPageHistory::items() const
94 {
95     const WebCore::HistoryItemVector &items = d->lst->entries();
96
97     QList<QWebHistoryItem> ret;
98     for (int i = 0; i < items.size(); ++i) {
99         QWebHistoryItemPrivate *priv = new QWebHistoryItemPrivate(items[i].get());
100         ret.append(QWebHistoryItem(priv));
101     }
102     return ret;
103 }
104
105 QList<QWebHistoryItem> QWebPageHistory::backItems(int maxItems) const
106 {
107     WebCore::HistoryItemVector items(maxItems);
108     d->lst->backListWithLimit(maxItems, items);
109
110     QList<QWebHistoryItem> ret;
111     for (int i = 0; i < items.size(); ++i) {
112         QWebHistoryItemPrivate *priv = new QWebHistoryItemPrivate(items[i].get());
113         ret.append(QWebHistoryItem(priv));
114     }
115     return ret;
116 }
117
118 QList<QWebHistoryItem> QWebPageHistory::forwardItems(int maxItems) const
119 {
120     WebCore::HistoryItemVector items(maxItems);
121     d->lst->forwardListWithLimit(maxItems, items);
122
123     QList<QWebHistoryItem> ret;
124     for (int i = 0; i < items.size(); ++i) {
125         QWebHistoryItemPrivate *priv = new QWebHistoryItemPrivate(items[i].get());
126         ret.append(QWebHistoryItem(priv));
127     }
128     return ret;
129 }
130
131 bool QWebPageHistory::canGoBack() const
132 {
133     return d->lst->backListCount() > 0;
134 }
135
136 bool QWebPageHistory::canGoForward() const
137 {
138     return d->lst->forwardListCount() > 0;
139 }
140
141 void QWebPageHistory::goBack()
142 {
143     d->lst->goBack();
144 }
145
146 void QWebPageHistory::goForward()
147 {
148     d->lst->goBack();
149 }
150
151 void QWebPageHistory::goToItem(QWebHistoryItem *item)
152 {
153     d->lst->goToItem(item->d->item);
154 }
155
156 QWebHistoryItem QWebPageHistory::backItem() const
157 {
158     WebCore::HistoryItem *i = d->lst->backItem();
159     QWebHistoryItemPrivate *priv = new QWebHistoryItemPrivate(i);
160     return QWebHistoryItem(priv);
161 }
162
163 QWebHistoryItem QWebPageHistory::currentItem() const
164 {
165     WebCore::HistoryItem *i = d->lst->currentItem();
166     QWebHistoryItemPrivate *priv = new QWebHistoryItemPrivate(i);
167     return QWebHistoryItem(priv);
168 }
169
170 QWebHistoryItem QWebPageHistory::forwardItem() const
171 {
172     WebCore::HistoryItem *i = d->lst->forwardItem();
173     QWebHistoryItemPrivate *priv = new QWebHistoryItemPrivate(i);
174     return QWebHistoryItem(priv);
175 }
176