diff options
author | Andrea Diamantini <adjam7@gmail.com> | 2012-08-07 15:05:40 +0200 |
---|---|---|
committer | Andrea Diamantini <adjam7@gmail.com> | 2012-12-10 02:48:04 +0100 |
commit | bba7ddd2e05a548219dda89cdb5182f220f122d7 (patch) | |
tree | ef76e45f0f826476d27237ccb232e3891c25ae94 /src/application.cpp | |
parent | Add RekonqFactory to locally generate rekonq toolbars and menus by the (diff) | |
download | rekonq-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.cpp | 98 |
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(); +} |