summaryrefslogtreecommitdiff
path: root/src/application.cpp
diff options
context:
space:
mode:
authorAndrea Diamantini <adjam7@gmail.com>2012-08-07 15:05:40 +0200
committerAndrea Diamantini <adjam7@gmail.com>2012-12-10 02:48:04 +0100
commitbba7ddd2e05a548219dda89cdb5182f220f122d7 (patch)
treeef76e45f0f826476d27237ccb232e3891c25ae94 /src/application.cpp
parentAdd RekonqFactory to locally generate rekonq toolbars and menus by the (diff)
downloadrekonq-bba7ddd2e05a548219dda89cdb5182f220f122d7.tar.xz
Add actions to the web window, STEP 1 (the easiest ones...)
Diffstat (limited to 'src/application.cpp')
-rw-r--r--src/application.cpp98
1 files changed, 92 insertions, 6 deletions
diff --git a/src/application.cpp b/src/application.cpp
index a3825f2c..57aaa0f8 100644
--- a/src/application.cpp
+++ b/src/application.cpp
@@ -39,12 +39,21 @@
// Local Manager(s) Includes
#include "adblockmanager.h"
+#include "downloadmanager.h"
#include "historymanager.h"
+#include "iconmanager.h"
#include "sessionmanager.h"
-// // KDE Includes
+// Ui Includes
+#include "ui_cleardata.h"
+
+// KDE Includes
#include <KCmdLineArgs>
+#include <KDialog>
+#include <KProcess>
+#include <KPushButton>
+#include <KStandardDirs>
#include <KWindowSystem>
#include <KWindowInfo>
#include <KStartupInfo>
@@ -58,11 +67,11 @@
// #include <KCharsets>
// #include <KPushButton>
// #include <KMimeType>
-//
-// // Qt Includes
-// #include <QVBoxLayout>
-// #include <QDir>
-// #include <QTimer>
+//
+
+// Qt Includes
+#include <QDBusInterface>
+#include <QDBusReply>
Application::Application()
@@ -534,3 +543,80 @@ void Application::queryQuit()
// in case of just one window...
quit();
}
+
+
+void Application::clearPrivateData()
+{
+ QPointer<KDialog> dialog = new KDialog(tabWindow());
+ dialog->setCaption(i18nc("@title:window", "Clear Private Data"));
+ dialog->setButtons(KDialog::Ok | KDialog::Cancel);
+
+ dialog->button(KDialog::Ok)->setIcon(KIcon("edit-clear"));
+ dialog->button(KDialog::Ok)->setText(i18n("Clear"));
+
+ Ui::ClearDataWidget clearWidget;
+ QWidget widget;
+ clearWidget.setupUi(&widget);
+ clearWidget.clearHistory->setChecked(ReKonfig::clearHistory());
+ clearWidget.clearDownloads->setChecked(ReKonfig::clearDownloads());
+ clearWidget.clearCookies->setChecked(ReKonfig::clearCookies());
+ clearWidget.clearCachedPages->setChecked(ReKonfig::clearCachedPages());
+ clearWidget.clearWebIcons->setChecked(ReKonfig::clearWebIcons());
+ clearWidget.homePageThumbs->setChecked(ReKonfig::clearHomePageThumbs());
+
+ dialog->setMainWidget(&widget);
+ dialog->exec();
+
+ if (dialog->result() == QDialog::Accepted)
+ {
+ //Save current state
+ ReKonfig::setClearHistory(clearWidget.clearHistory->isChecked());
+ ReKonfig::setClearDownloads(clearWidget.clearDownloads->isChecked());
+ ReKonfig::setClearCookies(clearWidget.clearDownloads->isChecked());
+ ReKonfig::setClearCachedPages(clearWidget.clearCachedPages->isChecked());
+ ReKonfig::setClearWebIcons(clearWidget.clearWebIcons->isChecked());
+ ReKonfig::setClearHomePageThumbs(clearWidget.homePageThumbs->isChecked());
+
+ if (clearWidget.clearHistory->isChecked())
+ {
+ HistoryManager::self()->clear();
+ }
+
+ if (clearWidget.clearDownloads->isChecked())
+ {
+ DownloadManager::self()->clearDownloadsHistory();
+ }
+
+ if (clearWidget.clearCookies->isChecked())
+ {
+ QDBusInterface kcookiejar("org.kde.kded", "/modules/kcookiejar", "org.kde.KCookieServer");
+ QDBusReply<void> reply = kcookiejar.call("deleteAllCookies");
+ }
+
+ if (clearWidget.clearCachedPages->isChecked())
+ {
+ KProcess::startDetached(KStandardDirs::findExe("kio_http_cache_cleaner"),
+ QStringList(QL1S("--clear-all")));
+ }
+
+ if (clearWidget.clearWebIcons->isChecked())
+ {
+ IconManager::self()->clearIconCache();
+ }
+
+ if (clearWidget.homePageThumbs->isChecked())
+ {
+ QString path = KStandardDirs::locateLocal("cache", QString("thumbs/rekonq"), true);
+ path.remove("rekonq");
+ QDir cacheDir(path);
+ QStringList fileList = cacheDir.entryList();
+ Q_FOREACH(const QString & str, fileList)
+ {
+ QFile file(path + str);
+ file.remove();
+ }
+ }
+ }
+
+ dialog->deleteLater();
+}