diff options
Diffstat (limited to 'kcontrol/kio/cache.cpp')
| -rw-r--r-- | kcontrol/kio/cache.cpp | 127 | 
1 files changed, 127 insertions, 0 deletions
| diff --git a/kcontrol/kio/cache.cpp b/kcontrol/kio/cache.cpp new file mode 100644 index 000000000..8b730ae77 --- /dev/null +++ b/kcontrol/kio/cache.cpp @@ -0,0 +1,127 @@ +/* +   cache.cpp - Proxy configuration dialog + +   Copyright (C) 2001,02,03 Dawit Alemayehu <adawit@kde.org> + +   This library is free software; you can redistribute it and/or +   modify it under the terms of the GNU General Public +   License (GPL) version 2 as published by the Free Software +   Foundation. + +   This library 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 +   Library General Public License for more details. + +   You should have received a copy of the GNU General Public License +   along with this library; see the file COPYING.LIB.  If not, write to +   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +   Boston, MA 02110-1301, USA. +*/ + +#include <qlabel.h> +#include <qlayout.h> +#include <qcheckbox.h> +#include <qwhatsthis.h> +#include <qpushbutton.h> +#include <qbuttongroup.h> +#include <qradiobutton.h> + +#include <kdebug.h> +#include <klocale.h> +#include <kprocess.h> +#include <knuminput.h> + +#include "ksaveioconfig.h" +#include <kio/http_slave_defaults.h> + +#include "cache.h" +#include "cache_ui.h" + +KCacheConfigDialog::KCacheConfigDialog( QWidget* parent ) +                   :KCModule( parent, "kcmkio" ) +{ +  QVBoxLayout* mainLayout = new QVBoxLayout(this, 0, 0); +  m_dlg = new CacheDlgUI(this); +  mainLayout->addWidget(m_dlg); +  mainLayout->addStretch(); + +  load(); +} + +void KCacheConfigDialog::load() +{ +  m_dlg->cbUseCache->setChecked(KProtocolManager::useCache()); +  m_dlg->sbMaxCacheSize->setValue( KProtocolManager::maxCacheSize() ); + +  KIO::CacheControl cc = KProtocolManager::cacheControl(); + +  if (cc==KIO::CC_Verify) +      m_dlg->rbVerifyCache->setChecked( true ); +  else if (cc==KIO::CC_Refresh) +      m_dlg->rbVerifyCache->setChecked( true ); +  else if (cc==KIO::CC_CacheOnly) +      m_dlg->rbOfflineMode->setChecked( true ); +  else if (cc==KIO::CC_Cache) +      m_dlg->rbCacheIfPossible->setChecked( true ); + +  // Config changed notifications... +  connect ( m_dlg->cbUseCache, SIGNAL(toggled(bool)), SLOT(configChanged()) ); +  connect ( m_dlg->bgCachePolicy, SIGNAL(clicked (int)), SLOT(configChanged()) ); +  connect ( m_dlg->sbMaxCacheSize, SIGNAL(valueChanged(int)), SLOT(configChanged()) ); +  connect ( m_dlg->pbClearCache, SIGNAL(clicked()), SLOT(slotClearCache()) ); +  emit changed( false ); +}  + +void KCacheConfigDialog::save() +{ +  KSaveIOConfig::setUseCache( m_dlg->cbUseCache->isChecked() ); +  KSaveIOConfig::setMaxCacheSize( m_dlg->sbMaxCacheSize->value() ); + +  if ( !m_dlg->cbUseCache->isChecked() ) +      KSaveIOConfig::setCacheControl(KIO::CC_Refresh); +  else if ( m_dlg->rbVerifyCache->isChecked() ) +      KSaveIOConfig::setCacheControl(KIO::CC_Refresh); +  else if ( m_dlg->rbOfflineMode->isChecked() ) +      KSaveIOConfig::setCacheControl(KIO::CC_CacheOnly); +  else if ( m_dlg->rbCacheIfPossible->isChecked() ) +      KSaveIOConfig::setCacheControl(KIO::CC_Cache); + +  // Update running io-slaves... +  KSaveIOConfig::updateRunningIOSlaves (this); + +  emit changed( false ); +} + +void KCacheConfigDialog::defaults() +{ +  m_dlg->cbUseCache->setChecked( true ); +  m_dlg->rbVerifyCache->setChecked( true ); +  m_dlg->sbMaxCacheSize->setValue( DEFAULT_MAX_CACHE_SIZE ); +} + +QString KCacheConfigDialog::quickHelp() const +{ +  return i18n( "<h1>Cache</h1><p>This module lets you configure your cache settings.</p>" +                "<p>The cache is an internal memory in Konqueror where recently " +                "read web pages are stored. If you want to retrieve a web " +                "page again that you have recently read, it will not be " +                "downloaded from the Internet, but rather retrieved from the " +                "cache, which is a lot faster.</p>" ); +} + +void KCacheConfigDialog::configChanged() +{ +  emit changed( true ); +} + +void KCacheConfigDialog::slotClearCache() +{ +  KProcess process; +  process << "kio_http_cache_cleaner" << "--clear-all"; +  process.start(KProcess::DontCare); +  // Cleaning up might take a while. Better detach. +  process.detach(); +} + +#include "cache.moc" | 
