[developerteam getadooble] SF.net SVN: dooble:[1980] trunk/browser
Brought to you by:
textfield
|
From: <tex...@us...> - 2011-02-19 19:58:01
|
Revision: 1980
http://dooble.svn.sourceforge.net/dooble/?rev=1980&view=rev
Author: textfield
Date: 2011-02-19 19:57:55 +0000 (Sat, 19 Feb 2011)
Log Message:
-----------
Must emit the cookieRemoved() signal.
Delete expired cookies, more.
I wonder if this will compile?
Must integrate changes into the Cookies window.
Charmingly chewy cookies.
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 18:28:00 UTC (rev 1979)
+++ trunk/browser/Include/dcookies.h 2011-02-19 19:57:55 UTC (rev 1980)
@@ -72,8 +72,10 @@
private:
void saveCookie(const QNetworkCookie &cookie);
void createCookieDatabase(void);
+ void deleteExpiredCookies(void);
signals:
+ void cookieRemoved(const QNetworkCookie &cookie);
void cookiesChanged(const QList<QNetworkCookie> &list);
};
Modified: trunk/browser/Source/dcookies.cc
===================================================================
--- trunk/browser/Source/dcookies.cc 2011-02-19 18:28:00 UTC (rev 1979)
+++ trunk/browser/Source/dcookies.cc 2011-02-19 19:57:55 UTC (rev 1980)
@@ -57,6 +57,12 @@
dcookies::dcookies(void):QNetworkCookieJar()
{
+ /*
+ ** settingsWindow/cookiesShouldBe
+ ** 0 - deleted upon exit
+ ** 1 - kept forever (that's a long time)
+ ** 2 - kept until they expire
+ */
}
dcookies::~dcookies()
@@ -67,11 +73,18 @@
0).toInt() == 0)
QFile::remove(QDir::homePath() + QDir::separator() +
".dooble" + QDir::separator() + "cookies.db");
+ else if(dooble::s_settings.value("settingsWindow/cookiesShouldBe",
+ 0).toInt() == 2)
+ deleteExpiredCookies();
}
QList<QNetworkCookie> dcookies::allCookies(void) const
{
- return QNetworkCookieJar::allCookies();
+ if(!dooble::s_settings.value("settingsWindow/cookiesEnabled",
+ true).toBool())
+ return QList<QNetworkCookie> ();
+ else
+ return QNetworkCookieJar::allCookies();
}
QList<QNetworkCookie> dcookies::cookiesForUrl(const QUrl &url) const
@@ -95,7 +108,11 @@
if(list.at(i).isSessionCookie())
continue;
else if(list.at(i).expirationDate().toLocalTime() < now)
- list.removeAt(i);
+ {
+ removeCookie(list.at(i));
+ emit cookieRemoved(list.at(i));
+ list.removeAt(i);
+ }
}
return list;
@@ -283,6 +300,7 @@
void dcookies::populate(void)
{
+ deleteExpiredCookies();
setAllCookies(QList<QNetworkCookie> ());
{
@@ -294,22 +312,6 @@
if(db.open())
{
QSqlQuery query(db);
-
- /*
- ** If necessary, delete expired cookies.
- */
-
- if(dooble::s_settings.value("settingsWindow/cookiesShouldBe",
- 0).toInt() == 2)
- {
- QDateTime now(QDateTime::currentDateTime());
-
- query.prepare("DELETE FROM cookies WHERE "
- "datetime(expiration_date) < ?");
- query.bindValue(0, now.toString(Qt::ISODate).replace("T", " "));
- query.exec();
- }
-
QList<QNetworkCookie> all;
if(query.exec("SELECT domain, name, path, expiration_date, "
@@ -391,3 +393,35 @@
QSqlDatabase::removeDatabase("cookies");
}
+
+void dcookies::deleteExpiredCookies(void)
+{
+ {
+ QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", "cookies");
+
+ db.setDatabaseName(QDir::homePath() + QDir::separator() +
+ ".dooble" + QDir::separator() + "cookies.db");
+
+ if(db.open())
+ {
+ QSqlQuery query(db);
+
+ /*
+ ** If necessary, delete expired cookies.
+ */
+
+ if(dooble::s_settings.value("settingsWindow/cookiesShouldBe",
+ 0).toInt() == 2)
+ {
+ QDateTime now(QDateTime::currentDateTime());
+
+ query.prepare("DELETE FROM cookies WHERE "
+ "datetime(expiration_date) < ?");
+ query.bindValue(0, now.toString(Qt::ISODate).replace("T", " "));
+ query.exec();
+ }
+ }
+ }
+
+ QSqlDatabase::removeDatabase("cookies");
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|