[developerteam getadooble] SF.net SVN: dooble:[1975] trunk/browser
Brought to you by:
textfield
|
From: <tex...@us...> - 2011-02-19 04:46:07
|
Revision: 1975
http://dooble.svn.sourceforge.net/dooble/?rev=1975&view=rev
Author: textfield
Date: 2011-02-19 04:46:01 +0000 (Sat, 19 Feb 2011)
Log Message:
-----------
Fixes to remove() methods.
Inspect settingsWindow/cookiesShouldBe.
Modified Paths:
--------------
trunk/browser/Include/dcookies.h
trunk/browser/Source/dcookies.cc
Modified: trunk/browser/Include/dcookies.h
===================================================================
--- trunk/browser/Include/dcookies.h 2011-02-19 02:13:36 UTC (rev 1974)
+++ trunk/browser/Include/dcookies.h 2011-02-19 04:46:01 UTC (rev 1975)
@@ -67,6 +67,7 @@
const QString &path);
void removeAllCookies(void);
QList<QNetworkCookie> allCookies(void) const;
+ QList<QNetworkCookie> cookiesForUrl(const QUrl &url) const;
private:
void saveCookie(const QNetworkCookie &cookie);
Modified: trunk/browser/Source/dcookies.cc
===================================================================
--- trunk/browser/Source/dcookies.cc 2011-02-19 02:13:36 UTC (rev 1974)
+++ trunk/browser/Source/dcookies.cc 2011-02-19 04:46:01 UTC (rev 1975)
@@ -62,7 +62,9 @@
dcookies::~dcookies()
{
if(!dooble::s_settings.value("settingsWindow/cookiesEnabled",
- true).toBool())
+ true).toBool() ||
+ dooble::s_settings.value("settingsWindow/cookiesShouldBe",
+ 0).toInt() == 0)
QFile::remove(QDir::homePath() + QDir::separator() +
".dooble" + QDir::separator() + "cookies.db");
}
@@ -72,6 +74,29 @@
return QNetworkCookieJar::allCookies();
}
+QList<QNetworkCookie> dcookies::cookiesForUrl(const QUrl &url) const
+{
+ QList<QNetworkCookie> list(QNetworkCookieJar::cookiesForUrl(url));
+
+ if(dooble::s_settings.value("settingsWindow/cookiesShouldBe",
+ 0).toInt() == 2)
+ {
+ QDateTime now(QDateTime::currentDateTime());
+
+ /*
+ ** Remove expired cookies.
+ */
+
+ for(int i = list.size() - 1; i >= 0; i--)
+ if(list.at(i).isSessionCookie())
+ continue;
+ else if(list.at(i).expirationDate().toLocalTime() < now)
+ list.removeAt(i);
+ }
+
+ return list;
+}
+
bool dcookies::setCookiesFromUrl(const QList<QNetworkCookie> &cookieList,
const QUrl &url)
{
@@ -80,10 +105,18 @@
else if(cookieList.isEmpty())
return false;
+ bool added = false;
+ QDateTime now(QDateTime::currentDateTime());
QList<QNetworkCookie> list;
for(int i = 0; i < cookieList.size(); i++)
{
+ if(dooble::s_settings.value("settingsWindow/cookiesShouldBe",
+ 0).toInt() == 2)
+ if(cookieList.at(i).expirationDate().toLocalTime() < now)
+ continue;
+
+ added = true;
list.append(cookieList.at(i));
if(!QNetworkCookieJar::setCookiesFromUrl(list, url))
@@ -95,12 +128,14 @@
all.clear();
}
- saveCookie(list.at(0));
+ if(!list.at(0).isSessionCookie())
+ saveCookie(list.at(0));
+
list.clear();
}
emit cookiesChanged(allCookies());
- return true;
+ return added;
}
void dcookies::removeCookie(const QString &domain)
@@ -109,10 +144,7 @@
for(int i = all.size() - 1; i >= 0; i--)
if(all.at(i).domain() == domain)
- {
- all.removeAt(i);
- break;
- }
+ all.removeAt(i);
setAllCookies(all);
all.clear();
@@ -150,7 +182,10 @@
if(all.at(i).domain() == domain &&
QVariant(all.at(i).name()).toString() == name &&
all.at(i).path() == path)
- all.removeAt(i);
+ {
+ all.removeAt(i);
+ break;
+ }
setAllCookies(all);
all.clear();
@@ -270,9 +305,6 @@
void dcookies::saveCookie(const QNetworkCookie &cookie)
{
- if(cookie.isSessionCookie())
- return;
-
createCookieDatabase();
{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|