From e440ff5b1f1d742b59a20b65d11092403ae9b6b1 Mon Sep 17 00:00:00 2001 From: megabigbug Date: Tue, 22 Dec 2009 17:19:34 +0100 Subject: add options for kget in the config panel replace kio for download --- src/webpage.cpp | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index cdb72caa..14a96543 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -53,6 +53,8 @@ #include +#include + #include #include #include @@ -250,3 +252,76 @@ QString WebPage::errorPage(QNetworkReply *reply) ; return html; } + + +void WebPage::downloadRequest(const QNetworkRequest &request) +{ + if (ReKonfig::kgetDownload()) + { + //*Copy of kwebpage code (Shouldn't be done in kwepage ?) + + KUrl destUrl; + KUrl srcUrl (request.url()); + int result = KIO::R_OVERWRITE; + + do + { + destUrl = KFileDialog::getSaveFileName(srcUrl.fileName(), QString(), view()); + + if (destUrl.isLocalFile()) + { + QFileInfo finfo (destUrl.toLocalFile()); + if (finfo.exists()) + { + QDateTime now = QDateTime::currentDateTime(); + KIO::RenameDialog dlg (view(), i18n("Overwrite File?"), srcUrl, destUrl, + KIO::RenameDialog_Mode(KIO::M_OVERWRITE | KIO::M_SKIP), + -1, finfo.size(), + now.toTime_t(), finfo.created().toTime_t(), + now.toTime_t(), finfo.lastModified().toTime_t()); + result = dlg.exec(); + } + } + } + while (result == KIO::R_CANCEL && destUrl.isValid()); + + if (result == KIO::R_OVERWRITE && destUrl.isValid()) + { + //*End of copy code + + //KGet integration: + if(!QDBusConnection::sessionBus().interface()->isServiceRegistered("org.kde.kget")) + { + KToolInvocation::kdeinitExecWait("kget"); + } + QDBusInterface kget("org.kde.kget", "/KGet", "org.kde.kget.main"); + kget.call("addTransfer", srcUrl.prettyUrl(), destUrl.prettyUrl(), true); + } + } + else KWebPage::downloadRequest(request); +} + + +void WebPage::downloadAllContentsWithKGet() +{ + QList contentList; + + QWebElementCollection images = mainFrame()->documentElement().findAll("img"); + foreach(QWebElement img, images) + { + contentList.append(img.attribute("src")); + } + + QWebElementCollection links = mainFrame()->documentElement().findAll("a"); + foreach(QWebElement link, links) + { + contentList.append(link.attribute("href")); + } + + if(!QDBusConnection::sessionBus().interface()->isServiceRegistered("org.kde.kget")) + { + KToolInvocation::kdeinitExecWait("kget"); + } + QDBusInterface kget("org.kde.kget", "/KGet", "org.kde.kget.main"); + kget.call("importLinks", QVariant(contentList)); +} -- cgit v1.2.1