/* Copyright (C) 2002 Rik Hemsley (rikkus) Copyright (C) 2002 Benjamin Meyer Copyright (C) 2003 Richard Lärkäng 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 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "cddbconfigwidget.h" #include "kcmcddb.h" #include "libkcddb/lookup.h" #include "libkcddb/cache.h" #include "libkcddb/submit.h" typedef KGenericFactory KCDDBFactory; K_EXPORT_COMPONENT_FACTORY ( kcm_cddb, KCDDBFactory( "kcmcddb" ) ) CDDBModule::CDDBModule(TQWidget *parent, const char *name, const TQStringList &) : KCModule(parent, name) { KGlobal::locale()->insertCatalogue("libkcddb"); setButtons(Default | Apply); widget_ = new CDDBConfigWidget(this); KCDDB::Config* cfg = new KCDDB::Config(); cfg->readConfig(); addConfig(cfg, widget_); TQVBoxLayout * layout = new TQVBoxLayout(this, 0); layout->addWidget(widget_); layout->addStretch(); setQuickHelp(i18n("CDDB is used to get information like artist, title and song-names in CD's")); load(); } void CDDBModule::defaults() { KCModule::defaults(); updateWidgetsFromConfig(KCDDB::Config()); } void CDDBModule::checkSettings() const { KCDDB::Config config; config.readConfig(); if (config.smtpHostname().isEmpty() || config.emailAddress().isEmpty() || !config.emailAddress().contains("@") || (!config.replyTo().isEmpty() && !config.replyTo().contains("@"))) { if (config.submitTransport() == KCDDB::Submit::SMTP) { KMessageBox::sorry(widget_, i18n("freedb has been set to use HTTP for submissions " "because the email details you have entered are " "incomplete. Please review your email settings " "and try again."), i18n("Incorrect Email Settings")); config.setSubmitTransport(KCDDB::Submit::HTTP); config.writeConfig(); } } } void CDDBModule::updateWidgetsFromConfig(const KCDDB::Config & config) { bool smtpUserIsEmpty = config.smtpUsername().isEmpty(); widget_->needsAuthenticationBox->setChecked(!smtpUserIsEmpty); widget_->kcfg_smtpUsername->setEnabled(!smtpUserIsEmpty); } void CDDBModule::save() { KCModule::save(); checkSettings(); } void CDDBModule::load() { KCModule::load(); KCDDB::Config config; config.readConfig(); updateWidgetsFromConfig(config); } // vim:tabstop=2:shiftwidth=2:expandtab:cinoptions=(s,U1,m1 #include "kcmcddb.moc"