• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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