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.
tdebase/kcontrol/accessibility/accessibility.cpp

142 lines
4.9 KiB

/****************************************************************************
accessibility.cpp
KDE Control Accessibility module to control Bell, Keyboard and ?Mouse?
-------------------
Copyright : (c) 2000 Matthias H<EFBFBD>lzer-Kl<EFBFBD>pfel
-------------------
Original Author: Matthias H<EFBFBD>lzer-Kl<EFBFBD>pfel
Contributors: Jos<EFBFBD> Pablo Ezequiel "Pupeno" Fern<EFBFBD>ndez <pupeno@kde.org>
Current Maintainer: Jos<EFBFBD> Pablo Ezequiel "Pupeno" Fern<EFBFBD>ndez <pupeno@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. *
* *
****************************************************************************/
#include <tqcheckbox.h>
#include <tqradiobutton.h>
#include <tqtabwidget.h>
#include <kaboutdata.h>
#include <kcolorbutton.h>
#include <kconfig.h>
#include <kgenericfactory.h>
#include <knuminput.h>
#include <kurlrequester.h>
#include "accessibility.moc"
typedef KGenericFactory<AccessibilityConfig, TQWidget> AccessibilityFactory;
K_EXPORT_COMPONENT_FACTORY( kcm_accessibility, AccessibilityFactory("kcmaccessibility") )
/**
* This function checks if the kaccess daemon needs to be run
* This function will be deprecated since the kaccess daemon will be part of kded
*/
// static bool needToRunKAccessDaemon( KConfig *config ){
// KConfigGroup group( config, "Bell" );
//
// if(!group.readBoolEntry("SystemBell", true)){
// return true;
// }
// if(group.readBoolEntry("ArtsBell", false)){
// return true;
// }
// if(group.readBoolEntry("VisibleBell", false)){
// return true;
// }
// return false; // don't need it
// }
AccessibilityConfig::AccessibilityConfig(TQWidget *parent, const char *name, const TQStringList &)
: AccessibilityConfigWidget( parent, name){
KAboutData *about =
new KAboutData(I18N_NOOP("kcmaccessiblity"), I18N_NOOP("KDE Accessibility Tool"),
0, 0, KAboutData::License_GPL,
I18N_NOOP("(c) 2000, Matthias Hoelzer-Kluepfel"));
about->addAuthor("Matthias Hoelzer-Kluepfel", I18N_NOOP("Author") , "hoelzer@kde.org");
about->addAuthor("Jos<EFBFBD> Pablo Ezequiel Fern<72>ndez", I18N_NOOP("Author") , "pupeno@kde.org");
setAboutData( about );
kdDebug() << "Running: AccessibilityConfig::AccessibilityConfig(TQWidget *parent, const char *name, const TQStringList &)" << endl;
// TODO: set the KURL Dialog to open just audio files
connect( mainTab, TQT_SIGNAL(currentChanged(TQWidget*)), this, TQT_SIGNAL(quickHelpChanged()) );
load();
}
AccessibilityConfig::~AccessibilityConfig(){
kdDebug() << "Running: AccessibilityConfig::~AccessibilityConfig()" << endl;
}
void AccessibilityConfig::load()
{
load( false );
}
void AccessibilityConfig::load( bool useDefaults )
{
kdDebug() << "Running: AccessibilityConfig::load()" << endl;
KConfig *bell = new KConfig("bellrc", true);
bell->setReadDefaults( useDefaults );
bell->setGroup("General");
systemBell->setChecked(bell->readBoolEntry("SystemBell", false));
customBell->setChecked(bell->readBoolEntry("CustomBell", false));
visibleBell->setChecked(bell->readBoolEntry("VisibleBell", false));
bell->setGroup("CustomBell");
soundToPlay->setURL(bell->readPathEntry("Sound", ""));
bell->setGroup("Visible");
invertScreen->setChecked(bell->readBoolEntry("Invert", true));
flashScreen->setChecked(bell->readBoolEntry("Flash", false));
// TODO: There has to be a cleaner way.
TQColor *redColor = new TQColor(Qt::red);
flashScreenColor->setColor(bell->readColorEntry("FlashColor", redColor));
delete redColor;
visibleBellDuration->setValue(bell->readNumEntry("Duration", 500));
delete bell;
emit changed( useDefaults );
}
void AccessibilityConfig::save(){
kdDebug() << "Running: AccessibilityConfig::save()" << endl;
KConfig *bell = new KConfig("bellrc");
bell->setGroup("General");
bell->writeEntry("SystemBell", systemBell->isChecked());
bell->writeEntry("CustomBell", customBell->isChecked());
bell->writeEntry("VisibleBell", visibleBell->isChecked());
bell->setGroup("CustomBell");
bell->writePathEntry("Sound", soundToPlay->url());
bell->setGroup("Visible");
bell->writeEntry("Invert", invertScreen->isChecked());
bell->writeEntry("Flash", flashScreen->isChecked());
bell->writeEntry("FlashColor", flashScreenColor->color());
bell->writeEntry("Duration", visibleBellDuration->value());
bell->sync();
delete bell;
}
void AccessibilityConfig::defaults()
{
load( true );
}