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