diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/application.cpp | 1 | ||||
-rw-r--r-- | src/cleardata.ui | 12 | ||||
-rw-r--r-- | src/mainwindow.cpp | 4 | ||||
-rw-r--r-- | src/networkmanager.cpp | 43 | ||||
-rw-r--r-- | src/networkmanager.h | 6 |
5 files changed, 58 insertions, 8 deletions
diff --git a/src/application.cpp b/src/application.cpp index 8581c56d..60d5ee48 100644 --- a/src/application.cpp +++ b/src/application.cpp @@ -131,7 +131,6 @@ void Application::postLaunch() } - void Application::slotSaveConfiguration() const { ReKonfig::self()->writeConfig(); diff --git a/src/cleardata.ui b/src/cleardata.ui index 217ef136..94a39c69 100644 --- a/src/cleardata.ui +++ b/src/cleardata.ui @@ -26,6 +26,9 @@ <property name="text"> <string>history</string> </property> + <property name="checked"> + <bool>true</bool> + </property> </widget> </item> <item> @@ -33,6 +36,9 @@ <property name="text"> <string>Cookies</string> </property> + <property name="checked"> + <bool>true</bool> + </property> </widget> </item> <item> @@ -40,6 +46,9 @@ <property name="text"> <string>Cached web pages</string> </property> + <property name="checked"> + <bool>true</bool> + </property> </widget> </item> <item> @@ -47,6 +56,9 @@ <property name="text"> <string>Website Icons</string> </property> + <property name="checked"> + <bool>true</bool> + </property> </widget> </item> <item> diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 2d809162..ea9f1fea 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -965,12 +965,12 @@ void MainWindow::clearPrivateData() if(clearWidget.clearCachedPages->isChecked()) { - Application::historyManager()->clear(); + Application::networkAccessManager()->resetDiskCache(); } if(clearWidget.clearWebIcons->isChecked()) { - Application::historyManager()->clear(); + QWebSettings::clearIconDatabase(); } } delete dialog; diff --git a/src/networkmanager.cpp b/src/networkmanager.cpp index 2cf65e1c..3d6df204 100644 --- a/src/networkmanager.cpp +++ b/src/networkmanager.cpp @@ -50,10 +50,12 @@ #include <QtNetwork/QNetworkReply> #include <QtNetwork/QNetworkRequest> #include <QtNetwork/QSslError> +#include <QtNetwork/QNetworkDiskCache> NetworkAccessManager::NetworkAccessManager(QObject *parent) : AccessManager(parent) + , m_diskCache(0) { connect(this, SIGNAL(authenticationRequired(QNetworkReply*, QAuthenticator*)), SLOT(authenticationRequired(QNetworkReply*, QAuthenticator*))); @@ -65,12 +67,11 @@ NetworkAccessManager::NetworkAccessManager(QObject *parent) SLOT(slotSSLErrors(QNetworkReply*, const QList<QSslError>&))); #endif + // load AccessManager Settings loadSettings(); - - QNetworkDiskCache *diskCache = new QNetworkDiskCache(this); - QString location = KStandardDirs::locateLocal("cache", "", true); - diskCache->setCacheDirectory(location); - setCache(diskCache); + + // resetting disk cache + resetDiskCache(); } @@ -97,6 +98,38 @@ void NetworkAccessManager::loadSettings() } +void NetworkAccessManager::resetDiskCache() +{ + if(!m_diskCache) + { + m_diskCache = new QNetworkDiskCache(this); + QString location = KStandardDirs::locateLocal("cache", "", true); + kDebug() << location; + + m_diskCache->setCacheDirectory(location); + setCache(m_diskCache); + } + else + { + QString location = m_diskCache->cacheDirectory(); +// setCache(0); +// delete m_diskCache; + + QDir cacheDir(location + QString("/http") ); + QStringList fileList = cacheDir.entryList(); + foreach(QString str, fileList) + { + QFile file(str); + file.remove(); + } + +// m_diskCache = new QNetworkDiskCache(this); +// m_diskCache->setCacheDirectory(location); +// setCache(m_diskCache); + } +} + + void NetworkAccessManager::authenticationRequired(QNetworkReply *reply, QAuthenticator *auth) { MainWindow *mainWindow = Application::instance()->mainWindow(); diff --git a/src/networkmanager.h b/src/networkmanager.h index 62c01e99..1f1af2ef 100644 --- a/src/networkmanager.h +++ b/src/networkmanager.h @@ -26,6 +26,7 @@ #include <KIO/AccessManager> // Forward Declarations +class QNetworkDiskCache; using namespace KIO; @@ -36,6 +37,8 @@ class NetworkAccessManager : public AccessManager public: NetworkAccessManager(QObject *parent = 0); + void resetDiskCache(); + public slots: void loadSettings(); @@ -47,6 +50,9 @@ private slots: void slotSSLErrors(QNetworkReply *reply, const QList<QSslError> &error); #endif +private: + QNetworkDiskCache *m_diskCache; + }; #endif // NETWORKMANAGER_H |