/* KNode, the KDE newsreader Copyright (c) 2004-2005 Volker Krause 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. 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, US */ #include #include #include #include #include "knglobals.h" #include "knconfig.h" #include "knconfigmanager.h" #include "knconfigpages.h" #include "knconfigwidgets.h" #include // // common config page with tabs (code mostly taken from kmail) // KNConfig::BasePageWithTabs::BasePageWithTabs( TQWidget * parent, const char * name ) : KCModule( parent, name ) { TQVBoxLayout *vlay = new TQVBoxLayout( this, 0, KDialog::spacingHint() ); mTabWidget = new TQTabWidget( this ); vlay->addWidget( mTabWidget ); } void KNConfig::BasePageWithTabs::addTab( KCModule* tab, const TQString & title ) { mTabWidget->addTab( tab, title ); connect( tab, TQT_SIGNAL(changed( bool )), this, TQT_SIGNAL(changed( bool )) ); } void KNConfig::BasePageWithTabs::load() { for ( int i = 0 ; i < mTabWidget->count() ; ++i ) { KCModule *tab = (KCModule*) mTabWidget->page(i); if ( tab ) tab->load(); } } void KNConfig::BasePageWithTabs::save() { for ( int i = 0 ; i < mTabWidget->count() ; ++i ) { KCModule *tab = (KCModule*) mTabWidget->page(i); if ( tab ) tab->save(); } } void KNConfig::BasePageWithTabs::defaults() { for ( int i = 0 ; i < mTabWidget->count() ; ++i ) { KCModule *tab = (KCModule*) mTabWidget->page(i); if ( tab ) tab->defaults(); } } // // identity page // extern "C" { KDE_EXPORT KCModule *create_knode_config_identity( TQWidget *parent, const char * ) { KNConfig::IdentityWidget *page = new KNConfig::IdentityWidget( knGlobals.configManager()->identity(), parent, "kcmknode_config_identity" ); return page; } } // // accounts page // extern "C" { KCModule *create_knode_config_accounts( TQWidget *parent, const char * ) { KNConfig::AccountsPage *page = new KNConfig::AccountsPage( parent, "kcmknode_config_accounts" ); return page; } } KNConfig::AccountsPage::AccountsPage(TQWidget *parent, const char *name) : BasePageWithTabs(parent, name) { addTab(new KNConfig::NntpAccountListWidget(this), i18n("Newsgroup Servers")); addTab(new KNConfig::SmtpAccountWidget(this), i18n("Mail Server (SMTP)")); } // // appearance page // extern "C" { KCModule *create_knode_config_appearance( TQWidget *parent, const char * ) { KNConfig::AppearanceWidget *page = new KNConfig::AppearanceWidget( parent, "kcmknode_config_appearance" ); return page; } } // // read news page // extern "C" { KCModule *create_knode_config_read_news( TQWidget *parent, const char * ) { KNConfig::ReadNewsPage *page = new KNConfig::ReadNewsPage( parent, "kcmknode_config_read_news" ); return page; } } KNConfig::ReadNewsPage::ReadNewsPage(TQWidget *parent, const char *name) : BasePageWithTabs(parent, name) { KNConfigManager *cfgMgr = knGlobals.configManager(); addTab(new KNConfig::ReadNewsGeneralWidget(cfgMgr->readNewsGeneral(), this), i18n("General")); addTab(new KNConfig::ReadNewsNavigationWidget(cfgMgr->readNewsNavigation(), this), i18n("Navigation")); addTab(new KNConfig::ScoringWidget(cfgMgr->scoring(), this), i18n("Scoring")); addTab(new KNConfig::FilterListWidget(this), i18n("Filters")); addTab(new KNConfig::DisplayedHeadersWidget(cfgMgr->displayedHeaders(), this), i18n("Headers")); addTab(new KNConfig::ReadNewsViewerWidget(cfgMgr->readNewsViewer(), this), i18n("Viewer")); } // // post news page // extern "C" { KCModule *create_knode_config_post_news( TQWidget *parent, const char * ) { KNConfig::PostNewsPage *page = new KNConfig::PostNewsPage( parent, "kcmknode_config_post_news" ); return page; } } KNConfig::PostNewsPage::PostNewsPage(TQWidget *parent, const char *name) : BasePageWithTabs(parent, name) { KNConfigManager *cfgMgr = knGlobals.configManager(); addTab(new KNConfig::PostNewsTechnicalWidget(cfgMgr->postNewsTechnical(), this), i18n("Technical")); addTab(new KNConfig::PostNewsComposerWidget(cfgMgr->postNewsComposer(), this), i18n("Composer")); addTab(new KNConfig::PostNewsSpellingWidget(this), i18n("Spelling")); } // // privacy page // extern "C" { KCModule *create_knode_config_privacy( TQWidget *parent, const char * ) { KNConfig::PrivacyWidget *page = new KNConfig::PrivacyWidget( parent, "kcmknode_config_privacy" ); return page; } } // // cleanup page // extern "C" { KCModule *create_knode_config_cleanup( TQWidget *parent, const char * ) { KNConfig::CleanupWidget *page = new KNConfig::CleanupWidget( parent, "kcmknode_config_cleanup" ); return page; } } #include "knconfigpages.moc"