diff options
Diffstat (limited to 'kweather/kcmweatherservice.cpp')
-rw-r--r-- | kweather/kcmweatherservice.cpp | 140 |
1 files changed, 102 insertions, 38 deletions
diff --git a/kweather/kcmweatherservice.cpp b/kweather/kcmweatherservice.cpp index 81639df..cf0828c 100644 --- a/kweather/kcmweatherservice.cpp +++ b/kweather/kcmweatherservice.cpp @@ -1,72 +1,136 @@ -/* - This file is part of KWeather. - Copyright (c) 2003 Tobias Koenig <tokoe@kde.org> - - 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. - - As a special exception, permission is given to link this program - with any edition of TQt, and distribute the resulting executable, - without including the source code for TQt in the source distribution. -*/ +/* + This file is part of KWeather. + Copyright (c) 2003 Tobias Koenig <tokoe@kde.org> + 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. + + As a special exception, permission is given to link this program + with any edition of TQt, and distribute the resulting executable, + without including the source code for TQt in the source distribution. +*/ + +#include <tqbuttongroup.h> +#include <tqcheckbox.h> +#include <tqlabel.h> #include <tqlayout.h> #include <tdeaboutdata.h> +#include <tdeapplication.h> +#include <tdeconfig.h> #include <kdebug.h> #include <tdelocale.h> +#include <kurlrequester.h> +#include <kcombobox.h> +#include <kcolorbutton.h> -#include "serviceconfigwidget.h" +#include "dockwidget.h" +#include "serviceconfig.h" #include "kcmweatherservice.h" +#include "weatherservice_stub.h" extern "C" { - KDE_EXPORT TDECModule *create_weatherservice( TQWidget *parent, const char * ) { - return new KCMWeatherService( parent, "kweather" ); - } + KDE_EXPORT TDECModule *create_weatherservice( TQWidget *parent, const char * ) + { + return new KCMWeatherService( parent, "kweather" ); + } } KCMWeatherService::KCMWeatherService( TQWidget *parent, const char *name ) - : TDECModule( parent, name ) + : TDECModule( parent, name ) { - TQVBoxLayout *layout = new TQVBoxLayout( this ); - mWidget = new ServiceConfigWidget( this ); + mWeatherService = new WeatherService_stub( "KWeatherService", + "WeatherService" ); + TQVBoxLayout *layout = new TQVBoxLayout( this ); + mWidget = new serviceConfig( this ); + + layout->addWidget( mWidget ); + layout->addStretch(); + + load(); + connect( mWidget->m_enableLog, TQT_SIGNAL( toggled( bool ) ), + TQT_SLOT( enableLogWidgets( bool ) ) ); + connect( mWidget->m_iconTheme, TQT_SIGNAL( released( int ) ), + TQT_SLOT( changed() ) ); - // not needed, as a change immediately changes the service - //connect(mWidget, TQT_SIGNAL(changed(bool)), this, TQT_SIGNAL(changed(bool))); + TDEAboutData *about = new TDEAboutData( + I18N_NOOP( "kcmweatherservice" ), + I18N_NOOP( "KWeather Configure Dialog" ), + 0, 0, TDEAboutData::License_GPL, + I18N_NOOP( "(c), 2003 Tobias Koenig" ) ); + + about->addAuthor( "Tobias Koenig", 0, "tokoe@kde.org" ); + setAboutData(about); +} + +KCMWeatherService::~KCMWeatherService() +{ + delete mWeatherService; +} - layout->addWidget( mWidget ); - TDEAboutData *about = new TDEAboutData( "kcmweatherservice", - I18N_NOOP( "KWeather Configure Dialog" ), - 0, 0, TDEAboutData::License_GPL, - I18N_NOOP( "(c), 2003 Tobias Koenig" ) ); +void KCMWeatherService::enableLogWidgets( bool value ) +{ + mWidget->m_logFile->setEnabled( value ); + mWidget->m_labelLogFile->setEnabled( value ); - about->addAuthor( "Tobias Koenig", 0, "tokoe@kde.org" ); - setAboutData(about); + emit changed( true ); } void KCMWeatherService::load() { + kdDebug() << "Load" << endl; + TDEConfig config( "weather_panelappletrc" ); + + config.setGroup( "General Options" ); + bool enabled = config.readBoolEntry( "logging", false ); + mWidget->m_enableLog->setChecked( enabled ); + enableLogWidgets( enabled ); + + mWidget->m_logFile->setURL( config.readPathEntry( "log_file_name" ) ); + + mWidget->m_iconTheme->setButton( config.readBoolEntry("use_icon_theme", true) ? 0 : 1 ); + + emit changed( false ); } void KCMWeatherService::save() { + kdDebug() << "Save" << endl; + TDEConfig config( "weather_panelappletrc" ); + + config.setGroup( "General Options" ); + config.writeEntry( "logging", mWidget->m_enableLog->isChecked() ); + config.writeEntry( "log_file_name", mWidget->m_logFile->url() ); + + config.writeEntry( "use_icon_theme", mWidget->m_iconTheme->selectedId() == 0 ); + + config.sync(); + + emit changed( false ); } void KCMWeatherService::defaults() { + mWidget->m_enableLog->setChecked( false ); + enableLogWidgets( false ); + mWidget->m_logFile->setURL( "" ); + + mWidget->m_iconTheme->setButton(0); + + emit changed( true ); } #include "kcmweatherservice.moc" |