From bba7ddd2e05a548219dda89cdb5182f220f122d7 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Tue, 7 Aug 2012 15:05:40 +0200 Subject: Add actions to the web window, STEP 1 (the easiest ones...) --- src/application.cpp | 98 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 92 insertions(+), 6 deletions(-) (limited to 'src/application.cpp') 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 +#include +#include +#include +#include #include #include #include @@ -58,11 +67,11 @@ // #include // #include // #include -// -// // Qt Includes -// #include -// #include -// #include +// + +// Qt Includes +#include +#include Application::Application() @@ -534,3 +543,80 @@ void Application::queryQuit() // in case of just one window... quit(); } + + +void Application::clearPrivateData() +{ + QPointer 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 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(); +} -- cgit v1.2.1