annotate demos/browser/cookiejar.d @ 67:b5d10b2218da

more porting
author mandel
date Tue, 19 May 2009 20:07:48 +0000
parents 71b382c10ef6
children 7bfd46c330dc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
1 /****************************************************************************
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
2 **
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
4 ** Contact: Qt Software Information (qt-info@nokia.com)
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
5 **
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
6 ** This file is part of the demonstration applications of the Qt Toolkit.
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
7 **
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
8 ** $QT_BEGIN_LICENSE:LGPL$
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
9 ** Commercial Usage
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
10 ** Licensees holding valid Qt Commercial licenses may use this file in
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
11 ** accordance with the Qt Commercial License Agreement provided with the
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
12 ** Software or, alternatively, in accordance with the terms contained in
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
13 ** a written agreement between you and Nokia.
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
14 **
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
15 ** GNU Lesser General Public License Usage
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
16 ** Alternatively, this file may be used under the terms of the GNU Lesser
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
17 ** General Public License version 2.1 as published by the Free Software
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
18 ** Foundation and appearing in the file LICENSE.LGPL included in the
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
19 ** packaging of this file. Please review the following information to
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
20 ** ensure the GNU Lesser General Public License version 2.1 requirements
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
21 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
22 **
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
23 ** In addition, as a special exception, Nokia gives you certain
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
24 ** additional rights. These rights are described in the Nokia Qt LGPL
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
26 ** package.
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
27 **
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
28 ** GNU General Public License Usage
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
29 ** Alternatively, this file may be used under the terms of the GNU
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
30 ** General Public License version 3.0 as published by the Free Software
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
31 ** Foundation and appearing in the file LICENSE.GPL included in the
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
32 ** packaging of this file. Please review the following information to
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
33 ** ensure the GNU General Public License version 3.0 requirements will be
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
34 ** met: http://www.gnu.org/copyleft/gpl.html.
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
35 **
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
36 ** If you are unsure which license is appropriate for your use, please
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
37 ** contact the sales department at qt-sales@nokia.com.
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
38 ** $QT_END_LICENSE$
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
39 **
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
40 ****************************************************************************/
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
41 module cookiejar;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
42
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
43 import QtNetwork.QNetworkCookieJar;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
44
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
45 import QtCore.QAbstractItemModel;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
46 import QtCore.QStringList;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
47
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
48 import QtGui.QDialog;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
49 import QtGui.QTableView;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
50
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
51
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
52 import cookiejar;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
53 import autosaver;
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
54
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
55 import QtCore.QDateTime;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
56 import QtCore.QDir;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
57 import QtCore.QFile;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
58 import QtCore.QMetaEnum;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
59 import QtCore.QSettings;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
60 import QtCore.QUrl;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
61
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
62 import QtGui.QCompleter;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
63 import QtGui.QDesktopServices;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
64 import QtGui.QFont;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
65 import QtGui.QFontMetrics;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
66 import QtGui.QHeaderView;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
67 import QtGui.QKeyEvent;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
68 import QtGui.QSortFilterProxyModel;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
69
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
70 import QtWebKit.QWebSettings;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
71
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
72 import QtCore.QDebug;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
73
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
74 /*
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
75 QT_BEGIN_NAMESPACE
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
76 class QSortFilterProxyModel;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
77 class QKeyEvent;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
78 QT_END_NAMESPACE
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
79
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
80 class AutoSaver;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
81 */
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
82
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
83 static const unsigned int JAR_VERSION = 23;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
84
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
85 QDataStream &operator<<(QDataStream stream, QList<QNetworkCookie> list)
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
86 {
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
87 stream << JAR_VERSION;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
88 stream << quint32(list.size());
b5d10b2218da more porting
mandel
parents: 45
diff changeset
89 for (int i = 0; i < list.size(); ++i)
b5d10b2218da more porting
mandel
parents: 45
diff changeset
90 stream << list.at(i).toRawForm();
b5d10b2218da more porting
mandel
parents: 45
diff changeset
91 return stream;
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
92 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
93
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
94 QDataStream &operator>>(QDataStream stream, QList<QNetworkCookie> list)
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
95 {
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
96 list.clear();
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
97
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
98 quint32 version;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
99 stream >> version;
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
100
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
101 if (version != JAR_VERSION)
b5d10b2218da more porting
mandel
parents: 45
diff changeset
102 return stream;
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
103
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
104 quint32 count;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
105 stream >> count;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
106 for(quint32 i = 0; i < count; ++i)
b5d10b2218da more porting
mandel
parents: 45
diff changeset
107 {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
108 QByteArray value;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
109 stream >> value;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
110 QList<QNetworkCookie> newCookies = QNetworkCookie.parseCookies(value);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
111 if (newCookies.count() == 0 && value.length() != 0) {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
112 qWarning() << "CookieJar: Unable to parse saved cookie:" << value;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
113 }
b5d10b2218da more porting
mandel
parents: 45
diff changeset
114
b5d10b2218da more porting
mandel
parents: 45
diff changeset
115 for (int j = 0; j < newCookies.count(); ++j)
b5d10b2218da more porting
mandel
parents: 45
diff changeset
116 list.append(newCookies.at(j));
b5d10b2218da more porting
mandel
parents: 45
diff changeset
117
b5d10b2218da more porting
mandel
parents: 45
diff changeset
118 if (stream.atEnd())
b5d10b2218da more porting
mandel
parents: 45
diff changeset
119 break;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
120 }
b5d10b2218da more porting
mandel
parents: 45
diff changeset
121 return stream;
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
122 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
123
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
124
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
125 class CookieJar : public QNetworkCookieJar
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
126 {
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
127 mixin Signal!("cookiesChanged");
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
128
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
129 public:
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
130
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
131 enum AcceptPolicy {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
132 AcceptAlways,
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
133 AcceptNever,
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
134 AcceptOnlyFromSitesNavigatedTo
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
135 }
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
136
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
137 enum KeepPolicy {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
138 KeepUntilExpire,
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
139 KeepUntilExit,
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
140 KeepUntilTimeLimit
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
141 }
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
142
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
143 this(QObject parent = null)
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
144 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
145 super(parent);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
146 m_loaded = false;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
147 m_saveTimer = new AutoSaver(this);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
148 m_acceptCookies = AcceptOnlyFromSitesNavigatedTo;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
149 }
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
150
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
151 ~this()
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
152 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
153 if (m_keepCookies == KeepUntilExit)
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
154 clear();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
155 m_saveTimer.saveIfNeccessary();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
156 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
157
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
158 QList<QNetworkCookie> cookiesForUrl(QUrl url)
b5d10b2218da more porting
mandel
parents: 45
diff changeset
159 {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
160 CookieJar that = const_cast<CookieJar>(this);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
161 if (!m_loaded)
b5d10b2218da more porting
mandel
parents: 45
diff changeset
162 that.load();
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
163
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
164 QWebSettings globalSettings = QWebSettings.globalSettings();
b5d10b2218da more porting
mandel
parents: 45
diff changeset
165 if (globalSettings.testAttribute(QWebSettings.PrivateBrowsingEnabled)) {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
166 QList<QNetworkCookie> noCookies;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
167 return noCookies;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
168 }
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
169
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
170 return QNetworkCookieJar.cookiesForUrl(url);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
171 }
b5d10b2218da more porting
mandel
parents: 45
diff changeset
172
b5d10b2218da more porting
mandel
parents: 45
diff changeset
173 bool setCookiesFromUrl(QList<QNetworkCookie> cookieList, QUrl url)
b5d10b2218da more porting
mandel
parents: 45
diff changeset
174 {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
175 if (!m_loaded)
b5d10b2218da more porting
mandel
parents: 45
diff changeset
176 load();
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
177
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
178 QWebSettings globalSettings = QWebSettings.globalSettings();
b5d10b2218da more porting
mandel
parents: 45
diff changeset
179 if (globalSettings.testAttribute(QWebSettings.PrivateBrowsingEnabled))
b5d10b2218da more porting
mandel
parents: 45
diff changeset
180 return false;
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
181
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
182 QString host = url.host();
b5d10b2218da more porting
mandel
parents: 45
diff changeset
183 bool eBlock = qBinaryFind(m_exceptions_block.begin(), m_exceptions_block.end(), host) != m_exceptions_block.end();
b5d10b2218da more porting
mandel
parents: 45
diff changeset
184 bool eAllow = qBinaryFind(m_exceptions_allow.begin(), m_exceptions_allow.end(), host) != m_exceptions_allow.end();
b5d10b2218da more porting
mandel
parents: 45
diff changeset
185 bool eAllowSession = qBinaryFind(m_exceptions_allowForSession.begin(), m_exceptions_allowForSession.end(), host) != m_exceptions_allowForSession.end();
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
186
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
187 bool addedCookies = false;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
188 // pass exceptions
b5d10b2218da more porting
mandel
parents: 45
diff changeset
189 bool acceptInitially = (m_acceptCookies != AcceptNever);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
190 if ((acceptInitially && !eBlock) || (!acceptInitially && (eAllow || eAllowSession))) {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
191 // pass url domain == cookie domain
b5d10b2218da more porting
mandel
parents: 45
diff changeset
192 QDateTime soon = QDateTime.currentDateTime();
b5d10b2218da more porting
mandel
parents: 45
diff changeset
193 soon = soon.addDays(90);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
194 foreach(QNetworkCookie cookie, cookieList) {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
195 QList<QNetworkCookie> lst;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
196 if (m_keepCookies == KeepUntilTimeLimit && !cookie.isSessionCookie() && cookie.expirationDate() > soon) {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
197 cookie.setExpirationDate(soon);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
198 }
b5d10b2218da more porting
mandel
parents: 45
diff changeset
199 lst += cookie;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
200 if (QNetworkCookieJar.setCookiesFromUrl(lst, url)) {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
201 addedCookies = true;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
202 } else {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
203 // finally force it in if wanted
b5d10b2218da more porting
mandel
parents: 45
diff changeset
204 if (m_acceptCookies == AcceptAlways) {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
205 QList<QNetworkCookie> cookies = allCookies();
b5d10b2218da more porting
mandel
parents: 45
diff changeset
206 cookies += cookie;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
207 setAllCookies(cookies);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
208 addedCookies = true;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
209 }
b5d10b2218da more porting
mandel
parents: 45
diff changeset
210 /*
b5d10b2218da more porting
mandel
parents: 45
diff changeset
211 else
b5d10b2218da more porting
mandel
parents: 45
diff changeset
212 qWarning() << "setCookiesFromUrl failed" << url << cookieList.value(0).toRawForm();
b5d10b2218da more porting
mandel
parents: 45
diff changeset
213 */
b5d10b2218da more porting
mandel
parents: 45
diff changeset
214 }
b5d10b2218da more porting
mandel
parents: 45
diff changeset
215 }
b5d10b2218da more porting
mandel
parents: 45
diff changeset
216 }
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
217
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
218 if (addedCookies) {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
219 m_saveTimer.changeOccurred();
b5d10b2218da more porting
mandel
parents: 45
diff changeset
220 emit cookiesChanged();
b5d10b2218da more porting
mandel
parents: 45
diff changeset
221 }
b5d10b2218da more porting
mandel
parents: 45
diff changeset
222 return addedCookies;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
223 }
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
224
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
225 AcceptPolicy acceptPolicy()
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
226 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
227 if (!m_loaded)
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
228 (const_cast<CookieJar>(this)).load();
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
229 return m_acceptCookies;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
230 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
231
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
232 void setAcceptPolicy(AcceptPolicy policy)
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
233 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
234 if (!m_loaded)
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
235 load();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
236 if (policy == m_acceptCookies)
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
237 return;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
238 m_acceptCookies = policy;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
239 m_saveTimer.changeOccurred();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
240 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
241
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
242 KeepPolicy keepPolicy()
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
243 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
244 if (!m_loaded)
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
245 (const_cast<CookieJar>(this)).load();
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
246 return m_keepCookies;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
247 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
248
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
249 void setKeepPolicy(KeepPolicy policy)
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
250 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
251 if (!m_loaded)
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
252 load();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
253 if (policy == m_keepCookies)
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
254 return;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
255 m_keepCookies = policy;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
256 m_saveTimer.changeOccurred();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
257 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
258
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
259
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
260 QStringList blockedCookies()
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
261 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
262 if (!m_loaded)
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
263 (const_cast<CookieJar>(this)).load();
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
264 return m_exceptions_block;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
265 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
266
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
267 QStringList allowedCookies()
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
268 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
269 if (!m_loaded)
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
270 (const_cast<CookieJar>(this)).load();
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
271 return m_exceptions_allow;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
272 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
273
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
274 QStringList allowForSessionCookies()
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
275 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
276 if (!m_loaded)
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
277 (const_cast<CookieJar>(this)).load();
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
278 return m_exceptions_allowForSession;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
279 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
280
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
281 void setBlockedCookies(QStringList list)
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
282 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
283 if (!m_loaded)
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
284 load();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
285 m_exceptions_block = list;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
286 qSort(m_exceptions_block.begin(), m_exceptions_block.end());
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
287 m_saveTimer.changeOccurred();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
288 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
289
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
290 void setAllowedCookies(QStringList list)
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
291 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
292 if (!m_loaded)
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
293 load();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
294 m_exceptions_allow = list;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
295 qSort(m_exceptions_allow.begin(), m_exceptions_allow.end());
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
296 m_saveTimer.changeOccurred();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
297 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
298
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
299 void setAllowForSessionCookies(QStringList list)
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
300 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
301 if (!m_loaded)
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
302 load();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
303 m_exceptions_allowForSession = list;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
304 qSort(m_exceptions_allowForSession.begin(), m_exceptions_allowForSession.end());
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
305 m_saveTimer.changeOccurred();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
306 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
307
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
308 public slots:
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
309
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
310 void clear()
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
311 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
312 setAllCookies(QList<QNetworkCookie>());
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
313 m_saveTimer.changeOccurred();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
314 emit cookiesChanged();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
315 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
316
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
317 void loadSettings()
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
318 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
319 QSettings settings;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
320 settings.beginGroup(QLatin1String("cookies"));
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
321 QByteArray value = settings.value(QLatin1String("acceptCookies"),
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
322 QLatin1String("AcceptOnlyFromSitesNavigatedTo")).toByteArray();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
323 QMetaEnum acceptPolicyEnum = staticMetaObject.enumerator(staticMetaObject.indexOfEnumerator("AcceptPolicy"));
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
324 m_acceptCookies = acceptPolicyEnum.keyToValue(value) == -1 ?
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
325 AcceptOnlyFromSitesNavigatedTo :
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
326 static_cast<AcceptPolicy>(acceptPolicyEnum.keyToValue(value));
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
327
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
328 value = settings.value(QLatin1String("keepCookiesUntil"), QLatin1String("KeepUntilExpire")).toByteArray();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
329 QMetaEnum keepPolicyEnum = staticMetaObject.enumerator(staticMetaObject.indexOfEnumerator("KeepPolicy"));
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
330 m_keepCookies = keepPolicyEnum.keyToValue(value) == -1 ?
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
331 KeepUntilExpire :
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
332 static_cast<KeepPolicy>(keepPolicyEnum.keyToValue(value));
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
333
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
334 if (m_keepCookies == KeepUntilExit)
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
335 setAllCookies(QList<QNetworkCookie>());
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
336
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
337 m_loaded = true;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
338 emit cookiesChanged();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
339 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
340
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
341 private:
b5d10b2218da more porting
mandel
parents: 45
diff changeset
342 void save()
b5d10b2218da more porting
mandel
parents: 45
diff changeset
343 {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
344 if (!m_loaded)
b5d10b2218da more porting
mandel
parents: 45
diff changeset
345 return;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
346 purgeOldCookies();
b5d10b2218da more porting
mandel
parents: 45
diff changeset
347 QString directory = QDesktopServices.storageLocation(QDesktopServices.DataLocation);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
348 if (directory.isEmpty())
b5d10b2218da more porting
mandel
parents: 45
diff changeset
349 directory = QDir.homePath() + QLatin1String("/.") + QCoreApplication.applicationName();
b5d10b2218da more porting
mandel
parents: 45
diff changeset
350 if (!QFile.exists(directory)) {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
351 QDir dir;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
352 dir.mkpath(directory);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
353 }
b5d10b2218da more porting
mandel
parents: 45
diff changeset
354 QSettings cookieSettings(directory + QLatin1String("/cookies.ini"), QSettings.IniFormat);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
355 QList<QNetworkCookie> cookies = allCookies();
b5d10b2218da more porting
mandel
parents: 45
diff changeset
356 for (int i = cookies.count() - 1; i >= 0; --i) {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
357 if (cookies.at(i).isSessionCookie())
b5d10b2218da more porting
mandel
parents: 45
diff changeset
358 cookies.removeAt(i);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
359 }
b5d10b2218da more porting
mandel
parents: 45
diff changeset
360 cookieSettings.setValue(QLatin1String("cookies"), qVariantFromValue<QList<QNetworkCookie> >(cookies));
b5d10b2218da more porting
mandel
parents: 45
diff changeset
361 cookieSettings.beginGroup(QLatin1String("Exceptions"));
b5d10b2218da more porting
mandel
parents: 45
diff changeset
362 cookieSettings.setValue(QLatin1String("block"), m_exceptions_block);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
363 cookieSettings.setValue(QLatin1String("allow"), m_exceptions_allow);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
364 cookieSettings.setValue(QLatin1String("allowForSession"), m_exceptions_allowForSession);
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
365
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
366 // save cookie settings
b5d10b2218da more porting
mandel
parents: 45
diff changeset
367 QSettings settings;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
368 settings.beginGroup(QLatin1String("cookies"));
b5d10b2218da more porting
mandel
parents: 45
diff changeset
369 QMetaEnum acceptPolicyEnum = staticMetaObject.enumerator(staticMetaObject.indexOfEnumerator("AcceptPolicy"));
b5d10b2218da more porting
mandel
parents: 45
diff changeset
370 settings.setValue(QLatin1String("acceptCookies"), QLatin1String(acceptPolicyEnum.valueToKey(m_acceptCookies)));
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
371
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
372 QMetaEnum keepPolicyEnum = staticMetaObject.enumerator(staticMetaObject.indexOfEnumerator("KeepPolicy"));
b5d10b2218da more porting
mandel
parents: 45
diff changeset
373 settings.setValue(QLatin1String("keepCookiesUntil"), QLatin1String(keepPolicyEnum.valueToKey(m_keepCookies)));
b5d10b2218da more porting
mandel
parents: 45
diff changeset
374 }
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
375
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
376 private:
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
377
b5d10b2218da more porting
mandel
parents: 45
diff changeset
378 void purgeOldCookies()
b5d10b2218da more porting
mandel
parents: 45
diff changeset
379 {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
380 QList<QNetworkCookie> cookies = allCookies();
b5d10b2218da more porting
mandel
parents: 45
diff changeset
381 if (cookies.isEmpty())
b5d10b2218da more porting
mandel
parents: 45
diff changeset
382 return;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
383 int oldCount = cookies.count();
b5d10b2218da more porting
mandel
parents: 45
diff changeset
384 QDateTime now = QDateTime.currentDateTime();
b5d10b2218da more porting
mandel
parents: 45
diff changeset
385 for (int i = cookies.count() - 1; i >= 0; --i) {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
386 if (!cookies.at(i).isSessionCookie() && cookies.at(i).expirationDate() < now)
b5d10b2218da more porting
mandel
parents: 45
diff changeset
387 cookies.removeAt(i);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
388 }
b5d10b2218da more porting
mandel
parents: 45
diff changeset
389 if (oldCount == cookies.count())
b5d10b2218da more porting
mandel
parents: 45
diff changeset
390 return;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
391 setAllCookies(cookies);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
392 emit cookiesChanged();
b5d10b2218da more porting
mandel
parents: 45
diff changeset
393 }
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
394
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
395 void load()
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
396 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
397 if (m_loaded)
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
398 return;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
399 // load cookies and exceptions
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
400 qRegisterMetaTypeStreamOperators<QList<QNetworkCookie> >("QList<QNetworkCookie>");
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
401 auto cookieSettings = new QSettings(QDesktopServices.storageLocation(QDesktopServices.DataLocation) + QLatin1String("/cookies.ini"), QSettings.IniFormat);
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
402 setAllCookies(qvariant_cast<QList<QNetworkCookie> >(cookieSettings.value(QLatin1String("cookies"))));
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
403 cookieSettings.beginGroup(QLatin1String("Exceptions"));
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
404 m_exceptions_block = cookieSettings.value(QLatin1String("block")).toStringList();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
405 m_exceptions_allow = cookieSettings.value(QLatin1String("allow")).toStringList();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
406 m_exceptions_allowForSession = cookieSettings.value(QLatin1String("allowForSession")).toStringList();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
407 qSort(m_exceptions_block.begin(), m_exceptions_block.end());
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
408 qSort(m_exceptions_allow.begin(), m_exceptions_allow.end());
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
409 qSort(m_exceptions_allowForSession.begin(), m_exceptions_allowForSession.end());
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
410
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
411 loadSettings();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
412 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
413
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
414 bool m_loaded;
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
415 AutoSaver m_saveTimer;
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
416
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
417 AcceptPolicy m_acceptCookies;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
418 KeepPolicy m_keepCookies;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
419
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
420 QStringList m_exceptions_block;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
421 QStringList m_exceptions_allow;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
422 QStringList m_exceptions_allowForSession;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
423 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
424
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
425 class CookieModel : public QAbstractTableModel
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
426 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
427
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
428 public:
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
429
b5d10b2218da more porting
mandel
parents: 45
diff changeset
430 this(CookieJar jar, QObject parent = null)
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
431 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
432 super(parent);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
433 m_cookieJar = cookieJar;
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
434 m_cookieJar.cookiesChanged.connect(&this.cookiesChanged);
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
435 m_cookieJar.load();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
436 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
437
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
438 QVariant headerData(int section, Qt.Orientation orientation, int role)
b5d10b2218da more porting
mandel
parents: 45
diff changeset
439 {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
440 if (role == Qt.SizeHintRole) {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
441 QFont font;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
442 font.setPointSize(10);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
443 QFontMetrics fm(font);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
444 int height = fm.height() + fm.height()/3;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
445 int width = fm.width(headerData(section, orientation, Qt.DisplayRole).toString());
b5d10b2218da more porting
mandel
parents: 45
diff changeset
446 return QSize(width, height);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
447 }
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
448
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
449 if (orientation == Qt.Horizontal) {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
450 if (role != Qt.DisplayRole)
b5d10b2218da more porting
mandel
parents: 45
diff changeset
451 return QVariant();
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
452
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
453 switch (section) {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
454 case 0:
b5d10b2218da more porting
mandel
parents: 45
diff changeset
455 return tr("Website");
b5d10b2218da more porting
mandel
parents: 45
diff changeset
456 case 1:
b5d10b2218da more porting
mandel
parents: 45
diff changeset
457 return tr("Name");
b5d10b2218da more porting
mandel
parents: 45
diff changeset
458 case 2:
b5d10b2218da more porting
mandel
parents: 45
diff changeset
459 return tr("Path");
b5d10b2218da more porting
mandel
parents: 45
diff changeset
460 case 3:
b5d10b2218da more porting
mandel
parents: 45
diff changeset
461 return tr("Secure");
b5d10b2218da more porting
mandel
parents: 45
diff changeset
462 case 4:
b5d10b2218da more porting
mandel
parents: 45
diff changeset
463 return tr("Expires");
b5d10b2218da more porting
mandel
parents: 45
diff changeset
464 case 5:
b5d10b2218da more porting
mandel
parents: 45
diff changeset
465 return tr("Contents");
b5d10b2218da more porting
mandel
parents: 45
diff changeset
466 default:
b5d10b2218da more porting
mandel
parents: 45
diff changeset
467 return QVariant();
b5d10b2218da more porting
mandel
parents: 45
diff changeset
468 }
b5d10b2218da more porting
mandel
parents: 45
diff changeset
469 }
b5d10b2218da more porting
mandel
parents: 45
diff changeset
470 return QAbstractTableModel.headerData(section, orientation, role);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
471 }
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
472
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
473 QVariant data(QModelIndex index, int role = Qt.DisplayRole)
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
474 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
475 QList<QNetworkCookie> lst;
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
476
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
477 if (m_cookieJar)
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
478 lst = m_cookieJar.allCookies();
b5d10b2218da more porting
mandel
parents: 45
diff changeset
479
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
480 if (index.row() < 0 || index.row() >= lst.size())
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
481 return QVariant();
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
482
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
483 switch (role) {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
484 case Qt.DisplayRole:
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
485 case Qt.EditRole: {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
486 QNetworkCookie cookie = lst.at(index.row());
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
487 switch (index.column()) {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
488 case 0:
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
489 return cookie.domain();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
490 case 1:
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
491 return cookie.name();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
492 case 2:
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
493 return cookie.path();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
494 case 3:
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
495 return cookie.isSecure();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
496 case 4:
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
497 return cookie.expirationDate();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
498 case 5:
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
499 return cookie.value();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
500 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
501 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
502 case Qt.FontRole:{
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
503 QFont font;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
504 font.setPointSize(10);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
505 return font;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
506 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
507 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
508
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
509 return QVariant();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
510 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
511
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
512 int columnCount(QModelIndex parent = QModelIndex())
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
513 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
514 return (parent.isValid()) ? 0 : 6;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
515 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
516
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
517
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
518 int rowCount(QModelIndex parent = QModelIndex())
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
519 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
520 return (parent.isValid() || !m_cookieJar) ? 0 : m_cookieJar.allCookies().count();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
521 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
522
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
523
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
524 bool removeRows(int row, int count, QModelIndex parent = QModelIndex())
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
525 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
526 if (parent.isValid() || !m_cookieJar)
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
527 return false;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
528 int lastRow = row + count - 1;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
529 beginRemoveRows(parent, row, lastRow);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
530 QList<QNetworkCookie> lst = m_cookieJar.allCookies();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
531 for (int i = lastRow; i >= row; --i) {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
532 lst.removeAt(i);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
533 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
534 m_cookieJar.setAllCookies(lst);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
535 endRemoveRows();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
536 return true;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
537 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
538
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
539 private slots:
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
540
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
541 void cookiesChanged()
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
542 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
543 reset();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
544 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
545
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
546 private:
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
547 CookieJar m_cookieJar;
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
548 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
549
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
550
b5d10b2218da more porting
mandel
parents: 45
diff changeset
551 import ui_cookies;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
552 import ui_cookiesexceptions;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
553
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
554
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
555 class CookiesDialog : public QDialog, public Ui_CookiesDialog
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
556 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
557 public:
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
558
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
559 this(CookieJar cookieJar, QWidget parent = this) : QDialog(parent)
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
560 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
561 setupUi(this);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
562 setWindowFlags(Qt.Sheet);
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
563 CookieModel model = new CookieModel(cookieJar, this);
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
564 m_proxyModel = new QSortFilterProxyModel(this);
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
565 search.textChanged.connect(&m_proxyModel.setFilterFixedString);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
566 removeButton.clicked.connect(&cookiesTable.removeOne);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
567 removeAllButton.clicked.connect(&cookiesTable.removeAll);
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
568 m_proxyModel.setSourceModel(model);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
569 cookiesTable.verticalHeader().hide();
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
570 cookiesTable.setSelectionBehavior(QAbstractItemView.SelectRows);
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
571 cookiesTable.setModel(m_proxyModel);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
572 cookiesTable.setAlternatingRowColors(true);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
573 cookiesTable.setTextElideMode(Qt.ElideMiddle);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
574 cookiesTable.setShowGrid(false);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
575 cookiesTable.setSortingEnabled(true);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
576 QFont f = font();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
577 f.setPointSize(10);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
578 QFontMetrics fm(f);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
579 int height = fm.height() + fm.height()/3;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
580 cookiesTable.verticalHeader().setDefaultSectionSize(height);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
581 cookiesTable.verticalHeader().setMinimumSectionSize(-1);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
582 for (int i = 0; i < model.columnCount(); ++i){
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
583 int header = cookiesTable.horizontalHeader().sectionSizeHint(i);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
584 switch (i) {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
585 case 0:
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
586 header = fm.width(QLatin1String("averagehost.domain.com"));
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
587 break;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
588 case 1:
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
589 header = fm.width(QLatin1String("_session_id"));
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
590 break;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
591 case 4:
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
592 header = fm.width(QDateTime.currentDateTime().toString(Qt.LocalDate));
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
593 break;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
594 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
595 int buffer = fm.width(QLatin1String("xx"));
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
596 header += buffer;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
597 cookiesTable.horizontalHeader().resizeSection(i, header);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
598 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
599 cookiesTable.horizontalHeader().setStretchLastSection(true);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
600 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
601
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
602 private:
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
603
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
604 QSortFilterProxyModel m_proxyModel;
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
605 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
606
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
607 class CookieExceptionsModel : public QAbstractTableModel
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
608 {
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
609 public:
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
610
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
611 this(CookieJar cookieJar, QObject parent = null)
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
612 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
613 super(parent);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
614 m_cookieJar = cookiejar;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
615 m_allowedCookies = m_cookieJar.allowedCookies();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
616 m_blockedCookies = m_cookieJar.blockedCookies();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
617 m_sessionCookies = m_cookieJar.allowForSessionCookies();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
618 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
619
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
620 QVariant headerData(int section, Qt.Orientation orientation, int role)
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
621 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
622 if (role == Qt.SizeHintRole) {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
623 QFont font;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
624 font.setPointSize(10);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
625 QFontMetrics fm(font);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
626 int height = fm.height() + fm.height()/3;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
627 int width = fm.width(headerData(section, orientation, Qt.DisplayRole).toString());
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
628 return QSize(width, height);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
629 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
630
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
631 if (orientation == Qt.Horizontal && role == Qt.DisplayRole) {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
632 switch (section) {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
633 case 0:
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
634 return tr("Website");
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
635 case 1:
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
636 return tr("Status");
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
637 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
638 }
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
639 return QAbstractTableModel.headerData(section, orientation, role);
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
640 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
641
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
642 QVariant data(QModelIndex index, int role = Qt.DisplayRole)
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
643 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
644 if (index.row() < 0 || index.row() >= rowCount())
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
645 return QVariant();
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
646
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
647 switch (role) {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
648 case Qt.DisplayRole:
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
649 case Qt.EditRole: {
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
650 int row = index.row();
b5d10b2218da more porting
mandel
parents: 45
diff changeset
651 if (row < m_allowedCookies.count()) {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
652 switch (index.column()) {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
653 case 0:
b5d10b2218da more porting
mandel
parents: 45
diff changeset
654 return m_allowedCookies.at(row);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
655 case 1:
b5d10b2218da more porting
mandel
parents: 45
diff changeset
656 return tr("Allow");
b5d10b2218da more porting
mandel
parents: 45
diff changeset
657 }
b5d10b2218da more porting
mandel
parents: 45
diff changeset
658 }
b5d10b2218da more porting
mandel
parents: 45
diff changeset
659 row = row - m_allowedCookies.count();
b5d10b2218da more porting
mandel
parents: 45
diff changeset
660 if (row < m_blockedCookies.count()) {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
661 switch (index.column()) {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
662 case 0:
b5d10b2218da more porting
mandel
parents: 45
diff changeset
663 return m_blockedCookies.at(row);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
664 case 1:
b5d10b2218da more porting
mandel
parents: 45
diff changeset
665 return tr("Block");
b5d10b2218da more porting
mandel
parents: 45
diff changeset
666 }
b5d10b2218da more porting
mandel
parents: 45
diff changeset
667 }
b5d10b2218da more porting
mandel
parents: 45
diff changeset
668 row = row - m_blockedCookies.count();
b5d10b2218da more porting
mandel
parents: 45
diff changeset
669 if (row < m_sessionCookies.count()) {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
670 switch (index.column()) {
b5d10b2218da more porting
mandel
parents: 45
diff changeset
671 case 0:
b5d10b2218da more porting
mandel
parents: 45
diff changeset
672 return m_sessionCookies.at(row);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
673 case 1:
b5d10b2218da more porting
mandel
parents: 45
diff changeset
674 return tr("Allow For Session");
b5d10b2218da more porting
mandel
parents: 45
diff changeset
675 }
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
676 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
677 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
678 case Qt.FontRole:{
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
679 QFont font;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
680 font.setPointSize(10);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
681 return font;
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
682 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
683 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
684 return QVariant();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
685 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
686
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
687 int columnCount(QModelIndex parent = QModelIndex());
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
688 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
689 return (parent.isValid()) ? 0 : 2;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
690 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
691
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
692 int rowCount(QModelIndex parent = QModelIndex())
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
693 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
694 return (parent.isValid() || !m_cookieJar) ? 0 : m_allowedCookies.count() + m_blockedCookies.count() + m_sessionCookies.count();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
695 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
696
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
697 bool removeRows(int row, int count, QModelIndex parent)
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
698 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
699 if (parent.isValid() || !m_cookieJar)
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
700 return false;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
701
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
702 int lastRow = row + count - 1;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
703 beginRemoveRows(parent, row, lastRow);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
704 for (int i = lastRow; i >= row; --i) {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
705 if (i < m_allowedCookies.count()) {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
706 m_allowedCookies.removeAt(row);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
707 continue;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
708 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
709 i = i - m_allowedCookies.count();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
710 if (i < m_blockedCookies.count()) {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
711 m_blockedCookies.removeAt(row);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
712 continue;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
713 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
714 i = i - m_blockedCookies.count();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
715 if (i < m_sessionCookies.count()) {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
716 m_sessionCookies.removeAt(row);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
717 continue;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
718 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
719 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
720
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
721 m_cookieJar.setAllowedCookies(m_allowedCookies);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
722 m_cookieJar.setBlockedCookies(m_blockedCookies);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
723 m_cookieJar.setAllowForSessionCookies(m_sessionCookies);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
724 endRemoveRows();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
725 return true;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
726 }
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
727
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
728 private:
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
729
b5d10b2218da more porting
mandel
parents: 45
diff changeset
730 CookieJar m_cookieJar;
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
731
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
732 // Domains we allow, Domains we block, Domains we allow for this session
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
733 QStringList m_allowedCookies;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
734 QStringList m_blockedCookies;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
735 QStringList m_sessionCookies;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
736 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
737
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
738
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
739 class CookiesExceptionsDialog : public QDialog, public Ui_CookiesExceptionsDialog
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
740 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
741
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
742 public:
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
743
b5d10b2218da more porting
mandel
parents: 45
diff changeset
744 this(CookieJar cookieJar, QWidget parent = null)
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
745 : QDialog(parent)
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
746 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
747 m_cookieJar = cookieJar;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
748 setupUi(this);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
749 setWindowFlags(Qt.Sheet);
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
750 removeButton.clicked.connect(&exceptionTable.removeOne);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
751 removeAllButton.clicked.connect(&exceptionTable.removeAll);
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
752 exceptionTable.verticalHeader().hide();
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
753 exceptionTable.setSelectionBehavior(QAbstractItemView.SelectRows);
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
754 exceptionTable.setAlternatingRowColors(true);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
755 exceptionTable.setTextElideMode(Qt.ElideMiddle);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
756 exceptionTable.setShowGrid(false);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
757 exceptionTable.setSortingEnabled(true);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
758 m_exceptionsModel = new CookieExceptionsModel(cookieJar, this);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
759 m_proxyModel = new QSortFilterProxyModel(this);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
760 m_proxyModel.setSourceModel(m_exceptionsModel);
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
761 search.textChanged.connect(&m_proxyModel.setFilterFixedString);
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
762 exceptionTable.setModel(m_proxyModel);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
763
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
764 CookieModel cookieModel = new CookieModel(cookieJar, this);
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
765 domainLineEdit.setCompleter(new QCompleter(cookieModel, domainLineEdit));
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
766
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
767 domainLineEdit.textChanged.connect(&this.textChanged);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
768 blockButton.clicked.connect(&this.block);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
769 allowButton.clicked.connect(&this.allow);
b5d10b2218da more porting
mandel
parents: 45
diff changeset
770 allowForSessionButton.clicked.connect(&this.allowForSession);
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
771
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
772 QFont f = font();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
773 f.setPointSize(10);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
774 QFontMetrics fm(f);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
775 int height = fm.height() + fm.height()/3;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
776 exceptionTable.verticalHeader().setDefaultSectionSize(height);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
777 exceptionTable.verticalHeader().setMinimumSectionSize(-1);
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
778 for (int i = 0; i < m_exceptionsModel.columnCount(); ++i) {
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
779 int header = exceptionTable.horizontalHeader().sectionSizeHint(i);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
780 switch (i) {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
781 case 0:
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
782 header = fm.width(QLatin1String("averagebiglonghost.domain.com"));
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
783 break;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
784 case 1:
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
785 header = fm.width(QLatin1String("Allow For Session"));
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
786 break;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
787 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
788 int buffer = fm.width(QLatin1String("xx"));
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
789 header += buffer;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
790 exceptionTable.horizontalHeader().resizeSection(i, header);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
791 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
792 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
793
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
794 private:
b5d10b2218da more porting
mandel
parents: 45
diff changeset
795
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
796 void block()
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
797 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
798 if (domainLineEdit.text().isEmpty())
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
799 return;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
800 m_exceptionsModel.m_blockedCookies.append(domainLineEdit.text());
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
801 m_cookieJar.setBlockedCookies(m_exceptionsModel.m_blockedCookies);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
802 m_exceptionsModel.reset();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
803 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
804
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
805 void allow()
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
806 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
807 if (domainLineEdit.text().isEmpty())
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
808 return;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
809 m_exceptionsModel.m_allowedCookies.append(domainLineEdit.text());
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
810 m_cookieJar.setAllowedCookies(m_exceptionsModel.m_allowedCookies);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
811 m_exceptionsModel.reset();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
812 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
813 void allowForSession()
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
814 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
815 if (domainLineEdit.text().isEmpty())
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
816 return;
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
817 m_exceptionsModel.m_sessionCookies.append(domainLineEdit.text());
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
818 m_cookieJar.setAllowForSessionCookies(m_exceptionsModel.m_sessionCookies);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
819 m_exceptionsModel.reset();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
820 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
821
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
822 void textChanged(QString text)
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
823 {
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
824 bool enabled = !text.isEmpty();
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
825 blockButton.setEnabled(enabled);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
826 allowButton.setEnabled(enabled);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
827 allowForSessionButton.setEnabled(enabled);
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
828 }
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
829
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
830 private:
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
831
67
b5d10b2218da more porting
mandel
parents: 45
diff changeset
832 CookieExceptionsModel m_exceptionsModel;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
833 QSortFilterProxyModel m_proxyModel;
b5d10b2218da more porting
mandel
parents: 45
diff changeset
834 CookieJar m_cookieJar;
45
71b382c10ef6 add coarse and incomplete QT browser port
mandel
parents:
diff changeset
835 }