You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
199 lines
5.1 KiB
199 lines
5.1 KiB
/*
|
|
KNode, the KDE newsreader
|
|
Copyright (c) 2004-2005 Volker Krause <volker.krause@rwth-aachen.de>
|
|
|
|
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 <tqlayout.h>
|
|
|
|
#include <kcmodule.h>
|
|
#include <kdebug.h>
|
|
#include <klocale.h>
|
|
|
|
#include "knglobals.h"
|
|
#include "knconfig.h"
|
|
#include "knconfigmanager.h"
|
|
#include "knconfigpages.h"
|
|
#include "knconfigwidgets.h"
|
|
|
|
#include <tdepimmacros.h>
|
|
|
|
//
|
|
// 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"
|