summaryrefslogtreecommitdiffstats
path: root/kcontrol/accessibility/accessibility.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kcontrol/accessibility/accessibility.cpp')
-rw-r--r--kcontrol/accessibility/accessibility.cpp141
1 files changed, 141 insertions, 0 deletions
diff --git a/kcontrol/accessibility/accessibility.cpp b/kcontrol/accessibility/accessibility.cpp
new file mode 100644
index 000000000..de7b9953b
--- /dev/null
+++ b/kcontrol/accessibility/accessibility.cpp
@@ -0,0 +1,141 @@
+/****************************************************************************
+ accessibility.cpp
+ KDE Control Accessibility module to control Bell, Keyboard and ?Mouse?
+ -------------------
+ Copyright : (c) 2000 Matthias Hölzer-Klüpfel
+ -------------------
+ Original Author: Matthias Hölzer-Klüpfel
+ Contributors: José Pablo Ezequiel "Pupeno" Fernández <pupeno@kde.org>
+ Current Maintainer: José Pablo Ezequiel "Pupeno" Ferná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 <qcheckbox.h>
+#include <qradiobutton.h>
+#include <qtabwidget.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, QWidget> 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(QWidget *parent, const char *name, const QStringList &)
+ : 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é Pablo Ezequiel Fernández", I18N_NOOP("Author") , "pupeno@kde.org");
+ setAboutData( about );
+
+ kdDebug() << "Running: AccessibilityConfig::AccessibilityConfig(QWidget *parent, const char *name, const QStringList &)" << endl;
+ // TODO: set the KURL Dialog to open just audio files
+ connect( mainTab, SIGNAL(currentChanged(QWidget*)), this, 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.
+ QColor *redColor = new QColor(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 );
+}