Copyright (C) 2010 Ixonos Plc. Authors:
Henri Lampela - henri.lampela@ixonos.com
+ Sami Rämö - sami.ramo@ixonos.com
Situare is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
USA.
*/
-#include "networkcookiejar.h"
#include <QDebug>
+#include <QSettings>
-NetworkCookieJar::NetworkCookieJar(QObject *parent) :
- QNetworkCookieJar(parent)
-{
- m_cookieList.clear();
-}
+#include "common.h"
+
+#include "networkcookiejar.h"
-void NetworkCookieJar::setAllCookies(const QList<QNetworkCookie> &cookieList)
+NetworkCookieJar::NetworkCookieJar(QObject *parent)
+ : QNetworkCookieJar(parent)
{
- m_cookieList = cookieList;
+ qWarning() << __PRETTY_FUNCTION__;
+
+ loadCookies();
}
-QList<QNetworkCookie> NetworkCookieJar::allCookies() const
+NetworkCookieJar::~NetworkCookieJar()
{
- return m_cookieList;
+ qWarning() << __PRETTY_FUNCTION__;
+
+ saveCookies();
}
-bool NetworkCookieJar::setCookiesFromUrl(const QList<QNetworkCookie> &cookieList, const QUrl &url)
+void NetworkCookieJar::loadCookies()
{
- Q_UNUSED(url);
+ qWarning() << __PRETTY_FUNCTION__;
- QList<QNetworkCookie> cookies = allCookies();
- foreach(QNetworkCookie cookie, cookieList) {
- cookies += cookie;
- //qDebug() << cookie.toRawForm(QNetworkCookie::Full);
- }
- setAllCookies(cookies);
+ QSettings settings(DIRECTORY_NAME, FILE_NAME);
- return true;
+ QStringList list = settings.value(COOKIES, EMPTY).toStringList();
+
+ if(!list.isEmpty()) {
+ QList<QNetworkCookie> cookieList;
+ for(int i = 0; i < list.count(); i++) {
+ cookieList.append(QNetworkCookie::parseCookies(list.at(i).toAscii()));
+ }
+
+ setAllCookies(cookieList);
+ }
}
-QList<QNetworkCookie> NetworkCookieJar::cookiesForUrl ( const QUrl & url ) const
+void NetworkCookieJar::saveCookies()
{
- Q_UNUSED(url);
- return m_cookieList;
+ qWarning() << __PRETTY_FUNCTION__;
+
+ QList<QNetworkCookie> cookieList = allCookies();
+ QStringList list;
+
+ for(int i = 0; i < cookieList.count(); i++) {
+ QNetworkCookie cookie = cookieList.at(i);
+ QByteArray byteArray = cookie.toRawForm(QNetworkCookie::Full);
+ list.append(QString(byteArray));
+ }
+ list.removeDuplicates();
+
+ QSettings settings(DIRECTORY_NAME, FILE_NAME);
+ settings.setValue(COOKIES, list);
}