diff options
author | Timothy Pearson <[email protected]> | 2013-01-27 15:11:21 -0600 |
---|---|---|
committer | Timothy Pearson <[email protected]> | 2013-01-27 15:11:21 -0600 |
commit | 472156a41b1348c714986c772759ad950fffbe75 (patch) | |
tree | 86369dab3bbe3d52c49051665bdfb49b9dfc16e3 /kcontrol/kio/kcookiespolicies.cpp | |
parent | 3e891e81335e5243583dab27faeebf001b8139a6 (diff) | |
download | tdebase-472156a41b1348c714986c772759ad950fffbe75.tar.gz tdebase-472156a41b1348c714986c772759ad950fffbe75.zip |
Rename kioslaves
Diffstat (limited to 'kcontrol/kio/kcookiespolicies.cpp')
-rw-r--r-- | kcontrol/kio/kcookiespolicies.cpp | 474 |
1 files changed, 0 insertions, 474 deletions
diff --git a/kcontrol/kio/kcookiespolicies.cpp b/kcontrol/kio/kcookiespolicies.cpp deleted file mode 100644 index ad32eef3e..000000000 --- a/kcontrol/kio/kcookiespolicies.cpp +++ /dev/null @@ -1,474 +0,0 @@ -/** - * kcookiespolicies.cpp - Cookies configuration - * - * Original Authors - * Copyright (c) Waldo Bastian <[email protected]> - * Copyright (c) 1999 David Faure <[email protected]> - * - * Re-written by: - * Copyright (c) 2000- Dawit Alemayehu <[email protected]> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -#include <tqheader.h> -#include <tqvbox.h> -#include <tqlayout.h> -#include <tqcheckbox.h> -#include <tqwhatsthis.h> -#include <tqpushbutton.h> -#include <tqradiobutton.h> -#include <tqtoolbutton.h> -#include <tqvbuttongroup.h> - -#include <kiconloader.h> -#include <kidna.h> -#include <kmessagebox.h> -#include <klistview.h> -#include <klistviewsearchline.h> -#include <klocale.h> -#include <tdeconfig.h> -#include <dcopref.h> - -#include "ksaveioconfig.h" - -#include "kcookiespolicies.h" -#include "kcookiespoliciesdlg_ui.h" - -KCookiesPolicies::KCookiesPolicies(TQWidget *parent) - :TDECModule(parent, "kcmkio") -{ - TQVBoxLayout *mainLayout = new TQVBoxLayout(this, 0, 0); - - dlg = new KCookiesPolicyDlgUI (this); - dlg->lvDomainPolicy->header()->setStretchEnabled(true, 0); - dlg->lvDomainPolicy->setColumnWidthMode(0, KListView::Manual); - dlg->lvDomainPolicy->setColumnWidthMode(1, KListView::Maximum); - dlg->tbClearSearchLine->setIconSet(SmallIconSet(TQApplication::reverseLayout() ? "clear_left" : "locationbar_erase")); - dlg->kListViewSearchLine->setListView(dlg->lvDomainPolicy); - TQValueList<int> columns; - columns.append(0); - dlg->kListViewSearchLine->setSearchColumns(columns); - - mainLayout->addWidget(dlg); - - load(); -} - -KCookiesPolicies::~KCookiesPolicies() -{ -} - -void KCookiesPolicies::configChanged () -{ - //kdDebug() << "KCookiesPolicies::configChanged..." << endl; - emit changed((d_configChanged=true)); -} - -void KCookiesPolicies::cookiesEnabled( bool enable ) -{ - dlg->bgDefault->setEnabled( enable ); - dlg->bgPreferences->setEnabled ( enable ); - dlg->gbDomainSpecific->setEnabled( enable ); - - if (enable) - { - ignoreCookieExpirationDate ( enable ); - autoAcceptSessionCookies ( enable ); - } -} - -void KCookiesPolicies::ignoreCookieExpirationDate ( bool enable ) -{ - bool isAutoAcceptChecked = dlg->cbAutoAcceptSessionCookies->isChecked(); - enable = (enable && isAutoAcceptChecked); - - dlg->bgDefault->setEnabled( !enable ); - dlg->gbDomainSpecific->setEnabled( !enable ); -} - -void KCookiesPolicies::autoAcceptSessionCookies ( bool enable ) -{ - bool isIgnoreExpirationChecked = dlg->cbIgnoreCookieExpirationDate->isChecked(); - enable = (enable && isIgnoreExpirationChecked); - - dlg->bgDefault->setEnabled( !enable ); - dlg->gbDomainSpecific->setEnabled( !enable ); -} - -void KCookiesPolicies::addNewPolicy(const TQString& domain) -{ - PolicyDlg pdlg (i18n("New Cookie Policy"), this); - pdlg.setEnableHostEdit (true, domain); - - if (dlg->rbPolicyAccept->isChecked()) - pdlg.setPolicy(KCookieAdvice::Reject); - else - pdlg.setPolicy(KCookieAdvice::Accept); - - if (pdlg.exec() && !pdlg.domain().isEmpty()) - { - TQString domain = KIDNA::toUnicode(pdlg.domain()); - int advice = pdlg.advice(); - - if ( !handleDuplicate(domain, advice) ) - { - const char* strAdvice = KCookieAdvice::adviceToStr(advice); - TQListViewItem* index = new TQListViewItem (dlg->lvDomainPolicy, - domain, i18n(strAdvice)); - m_pDomainPolicy.insert (index, strAdvice); - configChanged(); - } - } -} - - -void KCookiesPolicies::addPressed() -{ - addNewPolicy (TQString::null); -} - -void KCookiesPolicies::changePressed() -{ - TQListViewItem* index = dlg->lvDomainPolicy->currentItem(); - - if (!index) - return; - - TQString oldDomain = index->text(0); - - PolicyDlg pdlg (i18n("Change Cookie Policy"), this); - pdlg.setPolicy (KCookieAdvice::strToAdvice(m_pDomainPolicy[index])); - pdlg.setEnableHostEdit (true, oldDomain); - - if( pdlg.exec() && !pdlg.domain().isEmpty()) - { - TQString newDomain = KIDNA::toUnicode(pdlg.domain()); - int advice = pdlg.advice(); - if (newDomain == oldDomain || !handleDuplicate(newDomain, advice)) - { - m_pDomainPolicy[index] = KCookieAdvice::adviceToStr(advice); - index->setText(0, newDomain); - index->setText(1, i18n(m_pDomainPolicy[index]) ); - configChanged(); - } - } -} - -bool KCookiesPolicies::handleDuplicate( const TQString& domain, int advice ) -{ - TQListViewItem* item = dlg->lvDomainPolicy->firstChild(); - while ( item != 0 ) - { - if ( item->text(0) == domain ) - { - TQString msg = i18n("<qt>A policy already exists for" - "<center><b>%1</b></center>" - "Do you want to replace it?</qt>").arg(domain); - int res = KMessageBox::warningContinueCancel(this, msg, - i18n("Duplicate Policy"), - i18n("Replace")); - if ( res == KMessageBox::Continue ) - { - m_pDomainPolicy[item]= KCookieAdvice::adviceToStr(advice); - item->setText(0, domain); - item->setText(1, i18n(m_pDomainPolicy[item])); - configChanged(); - return true; - } - else - return true; // User Cancelled!! - } - item = item->nextSibling(); - } - return false; -} - -void KCookiesPolicies::deletePressed() -{ - TQListViewItem* nextItem = 0L; - TQListViewItem* item = dlg->lvDomainPolicy->firstChild (); - - while (item != 0L) - { - if (dlg->lvDomainPolicy->isSelected (item)) - { - nextItem = item->itemBelow(); - if ( !nextItem ) - nextItem = item->itemAbove(); - - delete item; - item = nextItem; - } - else - { - item = item->itemBelow(); - } - } - - if (nextItem) - dlg->lvDomainPolicy->setSelected (nextItem, true); - - updateButtons(); - configChanged(); -} - -void KCookiesPolicies::deleteAllPressed() -{ - m_pDomainPolicy.clear(); - dlg->lvDomainPolicy->clear(); - updateButtons(); - configChanged(); -} - -void KCookiesPolicies::updateButtons() -{ - bool hasItems = dlg->lvDomainPolicy->childCount() > 0; - - dlg->pbChange->setEnabled ((hasItems && d_itemsSelected == 1)); - dlg->pbDelete->setEnabled ((hasItems && d_itemsSelected > 0)); - dlg->pbDeleteAll->setEnabled ( hasItems ); -} - -void KCookiesPolicies::updateDomainList(const TQStringList &domainConfig) -{ - dlg->lvDomainPolicy->clear(); - - TQStringList::ConstIterator it = domainConfig.begin(); - for (; it != domainConfig.end(); ++it) - { - TQString domain; - KCookieAdvice::Value advice = KCookieAdvice::Dunno; - - splitDomainAdvice(*it, domain, advice); - - if (!domain.isEmpty()) - { - TQListViewItem* index = new TQListViewItem( dlg->lvDomainPolicy, KIDNA::toUnicode(domain), - i18n(KCookieAdvice::adviceToStr(advice)) ); - m_pDomainPolicy[index] = KCookieAdvice::adviceToStr(advice); - } - } -} - -void KCookiesPolicies::selectionChanged () -{ - TQListViewItem* item = dlg->lvDomainPolicy->firstChild (); - - d_itemsSelected = 0; - - while (item != 0L) - { - if (dlg->lvDomainPolicy->isSelected (item)) - d_itemsSelected++; - item = item->nextSibling (); - } - - updateButtons (); -} - -void KCookiesPolicies::load() -{ - d_itemsSelected = 0; - d_configChanged = false; - - TDEConfig cfg ("kcookiejarrc", true); - cfg.setGroup ("Cookie Policy"); - - bool enableCookies = cfg.readBoolEntry("Cookies", true); - dlg->cbEnableCookies->setChecked (enableCookies); - cookiesEnabled( enableCookies ); - - KCookieAdvice::Value advice = KCookieAdvice::strToAdvice (cfg.readEntry( - "CookieGlobalAdvice", "Ask")); - switch (advice) - { - case KCookieAdvice::Accept: - dlg->rbPolicyAccept->setChecked (true); - break; - case KCookieAdvice::Reject: - dlg->rbPolicyReject->setChecked (true); - break; - case KCookieAdvice::Ask: - case KCookieAdvice::Dunno: - default: - dlg->rbPolicyAsk->setChecked (true); - } - - bool enable = cfg.readBoolEntry("RejectCrossDomainCookies", true); - dlg->cbRejectCrossDomainCookies->setChecked (enable); - - bool sessionCookies = cfg.readBoolEntry("AcceptSessionCookies", true); - dlg->cbAutoAcceptSessionCookies->setChecked (sessionCookies); - bool cookieExpiration = cfg.readBoolEntry("IgnoreExpirationDate", false); - dlg->cbIgnoreCookieExpirationDate->setChecked (cookieExpiration); - updateDomainList(cfg.readListEntry("CookieDomainAdvice")); - - if (enableCookies) - { - ignoreCookieExpirationDate( cookieExpiration ); - autoAcceptSessionCookies( sessionCookies ); - updateButtons(); - } - - // Connect the main swicth :) Enable/disable cookie support - connect( dlg->cbEnableCookies, TQT_SIGNAL( toggled(bool) ), - TQT_SLOT( cookiesEnabled(bool) ) ); - connect( dlg->cbEnableCookies, TQT_SIGNAL( toggled(bool) ), - TQT_SLOT( configChanged() ) ); - - // Connect the preference check boxes... - connect ( dlg->cbRejectCrossDomainCookies, TQT_SIGNAL(clicked()), - TQT_SLOT(configChanged())); - connect ( dlg->cbAutoAcceptSessionCookies, TQT_SIGNAL(toggled(bool)), - TQT_SLOT(configChanged())); - connect ( dlg->cbIgnoreCookieExpirationDate, TQT_SIGNAL(toggled(bool)), - TQT_SLOT(configChanged())); - - connect ( dlg->cbAutoAcceptSessionCookies, TQT_SIGNAL(toggled(bool)), - TQT_SLOT(autoAcceptSessionCookies(bool))); - connect ( dlg->cbIgnoreCookieExpirationDate, TQT_SIGNAL(toggled(bool)), - TQT_SLOT(ignoreCookieExpirationDate(bool))); - - // Connect the default cookie policy radio buttons... - connect(dlg->bgDefault, TQT_SIGNAL(clicked(int)), TQT_SLOT(configChanged())); - - // Connect signals from the domain specific policy listview. - connect( dlg->lvDomainPolicy, TQT_SIGNAL(selectionChanged()), - TQT_SLOT(selectionChanged()) ); - connect( dlg->lvDomainPolicy, TQT_SIGNAL(doubleClicked (TQListViewItem *)), - TQT_SLOT(changePressed() ) ); - connect( dlg->lvDomainPolicy, TQT_SIGNAL(returnPressed ( TQListViewItem * )), - TQT_SLOT(changePressed() ) ); - - // Connect the buttons... - connect( dlg->pbNew, TQT_SIGNAL(clicked()), TQT_SLOT( addPressed() ) ); - connect( dlg->pbChange, TQT_SIGNAL( clicked() ), TQT_SLOT( changePressed() ) ); - connect( dlg->pbDelete, TQT_SIGNAL( clicked() ), TQT_SLOT( deletePressed() ) ); - connect( dlg->pbDeleteAll, TQT_SIGNAL( clicked() ), TQT_SLOT( deleteAllPressed() ) ); -} - -void KCookiesPolicies::save() -{ - // If nothing changed, ignore the save request. - if (!d_configChanged) - return; - - TDEConfig cfg ( "kcookiejarrc" ); - cfg.setGroup( "Cookie Policy" ); - - bool state = dlg->cbEnableCookies->isChecked(); - cfg.writeEntry( "Cookies", state ); - state = dlg->cbRejectCrossDomainCookies->isChecked(); - cfg.writeEntry( "RejectCrossDomainCookies", state ); - state = dlg->cbAutoAcceptSessionCookies->isChecked(); - cfg.writeEntry( "AcceptSessionCookies", state ); - state = dlg->cbIgnoreCookieExpirationDate->isChecked(); - cfg.writeEntry( "IgnoreExpirationDate", state ); - - TQString advice; - if (dlg->rbPolicyAccept->isChecked()) - advice = KCookieAdvice::adviceToStr(KCookieAdvice::Accept); - else if (dlg->rbPolicyReject->isChecked()) - advice = KCookieAdvice::adviceToStr(KCookieAdvice::Reject); - else - advice = KCookieAdvice::adviceToStr(KCookieAdvice::Ask); - - cfg.writeEntry("CookieGlobalAdvice", advice); - - TQStringList domainConfig; - TQListViewItem *at = dlg->lvDomainPolicy->firstChild(); - - while( at ) - { - domainConfig.append(TQString::fromLatin1("%1:%2").arg(KIDNA::toAscii(at->text(0))).arg(m_pDomainPolicy[at])); - at = at->nextSibling(); - } - - cfg.writeEntry("CookieDomainAdvice", domainConfig); - cfg.sync(); - - // Update the cookiejar... - if (!dlg->cbEnableCookies->isChecked()) - (void)DCOPRef("kded", "kcookiejar").send("shutdown"); - else - { - if (!DCOPRef("kded", "kcookiejar").send("reloadPolicy")) - KMessageBox::sorry(0, i18n("Unable to communicate with the cookie handler service.\n" - "Any changes you made will not take effect until the service " - "is restarted.")); - } - - // Force running io-slave to reload configurations... - KSaveIOConfig::updateRunningIOSlaves (this); - emit changed( false ); -} - - -void KCookiesPolicies::defaults() -{ - dlg->cbEnableCookies->setChecked( true ); - dlg->rbPolicyAsk->setChecked( true ); - dlg->rbPolicyAccept->setChecked( false ); - dlg->rbPolicyReject->setChecked( false ); - dlg->cbRejectCrossDomainCookies->setChecked( true ); - dlg->cbAutoAcceptSessionCookies->setChecked( true ); - dlg->cbIgnoreCookieExpirationDate->setChecked( false ); - dlg->lvDomainPolicy->clear(); - - cookiesEnabled( dlg->cbEnableCookies->isChecked() ); - updateButtons(); -} - -void KCookiesPolicies::splitDomainAdvice (const TQString& cfg, TQString &domain, - KCookieAdvice::Value &advice) -{ - int sepPos = cfg.findRev(':'); - - // Ignore any policy that does not contain a domain... - if ( sepPos <= 0 ) - return; - - domain = cfg.left(sepPos); - advice = KCookieAdvice::strToAdvice( cfg.mid( sepPos+1 ) ); -} - -TQString KCookiesPolicies::quickHelp() const -{ - return i18n("<h1>Cookies</h1> Cookies contain information that Konqueror" - " (or any other TDE application using the HTTP protocol) stores" - " on your computer from a remote Internet server. This means" - " that a web server can store information about you and your" - " browsing activities on your machine for later use. You might" - " consider this an invasion of privacy.<p>However, cookies are" - " useful in certain situations. For example, they are often used" - " by Internet shops, so you can 'put things into a shopping" - " basket'. Some sites require you have a browser that supports" - " cookies.<p>Because most people want a compromise between privacy" - " and the benefits cookies offer, TDE offers you the ability to" - " customize the way it handles cookies. You might, for example" - " want to set TDE's default policy to ask you whenever a server" - " wants to set a cookie or simply reject or accept everything." - " For example, you might choose to accept all cookies from your" - " favorite shopping web site. For this all you have to do is" - " either browse to that particular site and when you are presented" - " with the cookie dialog box, click on <i> This domain </i> under" - " the 'apply to' tab and choose accept or simply specify the name" - " of the site in the <i> Domain Specific Policy </i> tab and set" - " it to accept. This enables you to receive cookies from trusted" - " web sites without being asked every time TDE receives a cookie." - ); -} - -#include "kcookiespolicies.moc" |