1 /*
2 Copyright (C) 2009 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 #include "config.h"
21 #include "HistoryItem.h"
22
23 #include "CString.h"
24 #include "FormData.h"
25
restoreState(QDataStream & in,int)26 bool WebCore::HistoryItem::restoreState(QDataStream& in, int /*version*/)
27 {
28 // there is no different version right now
29 // switch (version) {
30 WebCore::String url;
31 WebCore::String title;
32 WebCore::String altTitle;
33 WebCore::String orginalUrl;
34 WebCore::String referrer;
35 WebCore::String target;
36 WebCore::String parrent;
37 double lastVisitedTime;
38 bool validUserData;
39 WebCore::String parent;
40 bool lastVisitWasHTTPNonGet;
41 bool lastVisitWasFailure;
42 bool isTargetItem;
43 int visitCount;
44 WTF::Vector<WebCore::String> documentState;
45 WebCore::IntPoint scrollPoint;
46 WTF::Vector<int> weeklyVisitCounts;
47 WTF::Vector<int> dailyVisitCounts;
48 bool loadFormdata;
49 // WebCore::String formContentType;
50 // WTF::Vector<char> formData;
51
52 in >> url >> title >> altTitle >> lastVisitedTime >> orginalUrl >> referrer >> target >> parent;
53 in >> lastVisitWasHTTPNonGet >> lastVisitWasFailure >> isTargetItem >> visitCount >> documentState;
54 in >> scrollPoint >> dailyVisitCounts >> weeklyVisitCounts;
55 /*in >> loadFormdata;
56 if (loadFormdata) {
57 in >> formContentType >> formData;
58 // direct assigned (!)
59 m_formContentType = formContentType;
60 m_formData = FormData::create(CString(formData));
61 }*/
62 // use setters
63 adoptVisitCounts(dailyVisitCounts, weeklyVisitCounts);
64 setScrollPoint(scrollPoint);
65 setDocumentState(documentState);
66 setVisitCount(visitCount);
67 setIsTargetItem(isTargetItem);
68 setLastVisitWasFailure(lastVisitWasFailure);
69 setLastVisitWasHTTPNonGet(lastVisitWasHTTPNonGet);
70 setParent(parent);
71 setTarget(target);
72 setReferrer(referrer);
73 setOriginalURLString(orginalUrl);
74 setURLString(url);
75 setLastVisitedTime(lastVisitedTime);
76 setTitle(title);
77 setAlternateTitle(altTitle);
78
79 // at the end load userData
80 in >> validUserData;
81 if (validUserData) {
82 QVariant tmp;
83 in >> tmp;
84 setUserData(tmp);
85 }
86
87 return in.status() == QDataStream::Ok;
88 }
89
saveState(QDataStream & out,int) const90 QDataStream& WebCore::HistoryItem::saveState(QDataStream& out, int /*version*/) const
91 {
92 // there is no different version right now
93 // switch (version) {
94 out << urlString() << title() << alternateTitle() << lastVisitedTime();
95 out << originalURLString() << referrer() << target() << parent();
96 out << lastVisitWasHTTPNonGet() << lastVisitWasFailure() << isTargetItem();
97 out << visitCount() << documentState() << scrollPoint();
98 out << dailyVisitCounts() << weeklyVisitCounts();
99 /*if (m_formData) {
100 out << true;
101 out << formContentType();
102 out << m_formData->flatten();
103 } else {
104 out << false;
105 }*/
106 // save user data
107 if (userData().isValid())
108 out << true << userData();
109 else
110 out << false;
111
112 return out;
113 }
114
115