void KCookiesManagement::save() { // If delete all cookies was requested! if(mDeleteAllFlag) { QDBusInterface kded("org.kde.kded", "/modules/kcookiejar", "org.kde.KCookieServer", QDBusConnection::sessionBus()); QDBusReply<void> reply = kded.call( "deleteAllCookies" ); if (!reply.isValid()) { QString caption = i18n ("D-Bus Communication Error"); QString message = i18n ("Unable to delete all the cookies as requested."); KMessageBox::sorry (this, message, caption); return; } mDeleteAllFlag = false; // deleted[Cookies|Domains] have been cleared yet } // Certain groups of cookies were deleted... QMutableStringListIterator it (mDeletedDomains); while (it.hasNext()) { QDBusInterface kded("org.kde.kded", "/modules/kcookiejar", "org.kde.KCookieServer", QDBusConnection::sessionBus()); QDBusReply<void> reply = kded.call( "deleteCookiesFromDomain",( it.next() ) ); if (!reply.isValid()) { QString caption = i18n ("D-Bus Communication Error"); QString message = i18n ("Unable to delete cookies as requested."); KMessageBox::sorry (this, message, caption); return; } it.remove(); } // Individual cookies were deleted... bool success = true; // Maybe we can go on... QMutableHashIterator<QString, CookiePropList> cookiesDom(mDeletedCookies); while(cookiesDom.hasNext()) { cookiesDom.next(); CookiePropList list = cookiesDom.value(); foreach(CookieProp *cookie, list) { QDBusInterface kded("org.kde.kded", "/modules/kcookiejar", "org.kde.KCookieServer", QDBusConnection::sessionBus()); QDBusReply<void> reply = kded.call( "deleteCookie", cookie->domain, cookie->host, cookie->path, cookie->name ); if (!reply.isValid()) { success = false; break; } list.removeOne(cookie); } if (!success) break; mDeletedCookies.remove(cookiesDom.key()); }
void KCookiesManagement::save() { // If delete all cookies was requested! if(m_bDeleteAll) { if(!DCOPRef("kded", "kcookiejar").send("deleteAllCookies")) { QString caption = i18n("DCOP Communication Error"); QString message = i18n("Unable to delete all the cookies as requested."); KMessageBox::sorry(this, message, caption); return; } m_bDeleteAll = false; // deleted[Cookies|Domains] have been cleared yet } // Certain groups of cookies were deleted... QStringList::Iterator dIt = deletedDomains.begin(); while(dIt != deletedDomains.end()) { QByteArray call; QByteArray reply; QCString replyType; QDataStream callStream(call, IO_WriteOnly); callStream << *dIt; if(!DCOPRef("kded", "kcookiejar").send("deleteCookiesFromDomain", (*dIt))) { QString caption = i18n("DCOP Communication Error"); QString message = i18n("Unable to delete cookies as requested."); KMessageBox::sorry(this, message, caption); return; } dIt = deletedDomains.remove(dIt); } // Individual cookies were deleted... bool success = true; // Maybe we can go on... QDictIterator< CookiePropList > cookiesDom(deletedCookies); while(cookiesDom.current()) { CookiePropList *list = cookiesDom.current(); QPtrListIterator< CookieProp > cookie(*list); while(*cookie) { if(!DCOPRef("kded", "kcookiejar").send("deleteCookie", (*cookie)->domain, (*cookie)->host, (*cookie)->path, (*cookie)->name)) { success = false; break; } list->removeRef(*cookie); } if(!success) break; deletedCookies.remove(cookiesDom.currentKey()); } emit changed(false); }