summaryrefslogtreecommitdiffstats
path: root/kcontrol
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit4aed2c8219774f5d797760606b8489a92ddc5163 (patch)
tree3f8c130f7d269626bf6a9447407ef6c35954426a /kcontrol
downloadtdebase-4aed2c8219774f5d797760606b8489a92ddc5163.tar.gz
tdebase-4aed2c8219774f5d797760606b8489a92ddc5163.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kcontrol')
-rw-r--r--kcontrol/Makefile.am39
-rw-r--r--kcontrol/TODO168
-rw-r--r--kcontrol/access/Makefile.am30
-rw-r--r--kcontrol/access/configure.in.in7
-rw-r--r--kcontrol/access/eventsrc1072
-rw-r--r--kcontrol/access/kaccess.cpp896
-rw-r--r--kcontrol/access/kaccess.desktop78
-rw-r--r--kcontrol/access/kaccess.h114
-rw-r--r--kcontrol/access/kcmaccess.cpp805
-rw-r--r--kcontrol/access/kcmaccess.desktop240
-rw-r--r--kcontrol/access/kcmaccess.h111
-rw-r--r--kcontrol/access/main.cpp49
-rw-r--r--kcontrol/accessibility/Makefile.am15
-rw-r--r--kcontrol/accessibility/accessibility.cpp141
-rw-r--r--kcontrol/accessibility/accessibility.desktop239
-rw-r--r--kcontrol/accessibility/accessibility.h71
-rw-r--r--kcontrol/accessibility/accessibilityconfigwidget.ui1630
-rw-r--r--kcontrol/accessibility/accessibilityconfigwidget.ui.h22
-rw-r--r--kcontrol/accessibility/configure.in.in3
-rw-r--r--kcontrol/accessibility/kcm_accessibility.kcfg67
-rw-r--r--kcontrol/accessibility/settings.kcfgc5
-rw-r--r--kcontrol/arts/Makefile.am15
-rw-r--r--kcontrol/arts/arts.cpp730
-rw-r--r--kcontrol/arts/arts.desktop240
-rw-r--r--kcontrol/arts/arts.h135
-rw-r--r--kcontrol/arts/generaltab.ui330
-rw-r--r--kcontrol/arts/hardwaretab.ui358
-rw-r--r--kcontrol/arts/krichtextlabel.cpp115
-rw-r--r--kcontrol/arts/krichtextlabel.h65
-rw-r--r--kcontrol/background/Makefile.am27
-rw-r--r--kcontrol/background/background.desktop240
-rw-r--r--kcontrol/background/bgadvanced.cpp507
-rw-r--r--kcontrol/background/bgadvanced.h121
-rw-r--r--kcontrol/background/bgadvanced_ui.ui462
-rw-r--r--kcontrol/background/bgdefaults.h38
-rw-r--r--kcontrol/background/bgdialog.cpp1279
-rw-r--r--kcontrol/background/bgdialog.h109
-rw-r--r--kcontrol/background/bgdialog_ui.ui722
-rw-r--r--kcontrol/background/bghash.h22
-rw-r--r--kcontrol/background/bgmonitor.cpp220
-rw-r--r--kcontrol/background/bgmonitor.h111
-rw-r--r--kcontrol/background/bgrender.cpp1359
-rw-r--r--kcontrol/background/bgrender.h182
-rw-r--r--kcontrol/background/bgsettings.cpp1267
-rw-r--r--kcontrol/background/bgsettings.h372
-rw-r--r--kcontrol/background/bgwallpaper.cpp238
-rw-r--r--kcontrol/background/bgwallpaper.h66
-rw-r--r--kcontrol/background/bgwallpaper_ui.ui167
-rw-r--r--kcontrol/background/main.cpp123
-rw-r--r--kcontrol/background/main.h40
-rw-r--r--kcontrol/background/pics/Makefile.am5
-rw-r--r--kcontrol/background/pics/monitor.pngbin0 -> 7542 bytes
-rw-r--r--kcontrol/bell/Makefile.am15
-rw-r--r--kcontrol/bell/bell.cpp256
-rw-r--r--kcontrol/bell/bell.desktop251
-rw-r--r--kcontrol/bell/bell.h54
-rw-r--r--kcontrol/clock/Makefile.am15
-rw-r--r--kcontrol/clock/clock.desktop250
-rw-r--r--kcontrol/clock/dtime.cpp449
-rw-r--r--kcontrol/clock/dtime.h125
-rw-r--r--kcontrol/clock/main.cpp95
-rw-r--r--kcontrol/clock/main.h47
-rw-r--r--kcontrol/clock/tzone.cpp200
-rw-r--r--kcontrol/clock/tzone.h55
-rw-r--r--kcontrol/clock/xpm/kcmclock.xpm47
-rw-r--r--kcontrol/clock/xpm/world.xpm190
-rw-r--r--kcontrol/colors/Makefile.am15
-rw-r--r--kcontrol/colors/colors.desktop252
-rw-r--r--kcontrol/colors/colorscm.cpp980
-rw-r--r--kcontrol/colors/colorscm.h90
-rw-r--r--kcontrol/colors/stdclient_bitmaps.h128
-rw-r--r--kcontrol/colors/widgetcanvas.cpp596
-rw-r--r--kcontrol/colors/widgetcanvas.h121
-rw-r--r--kcontrol/componentchooser/EXAMPLE.desktop159
-rw-r--r--kcontrol/componentchooser/Makefile.am15
-rw-r--r--kcontrol/componentchooser/browserconfig_ui.ui174
-rw-r--r--kcontrol/componentchooser/componentchooser.cpp530
-rw-r--r--kcontrol/componentchooser/componentchooser.desktop237
-rw-r--r--kcontrol/componentchooser/componentchooser.h154
-rw-r--r--kcontrol/componentchooser/componentchooser_ui.ui133
-rw-r--r--kcontrol/componentchooser/componentconfig_ui.ui63
-rw-r--r--kcontrol/componentchooser/componentservices/Makefile.am3
-rw-r--r--kcontrol/componentchooser/componentservices/kcm_browser.desktop149
-rw-r--r--kcontrol/componentchooser/componentservices/kcm_kemail.desktop158
-rw-r--r--kcontrol/componentchooser/componentservices/kcm_terminal.desktop157
-rw-r--r--kcontrol/componentchooser/emailclientconfig_ui.ui236
-rw-r--r--kcontrol/componentchooser/kcm_componentchooser.cpp64
-rw-r--r--kcontrol/componentchooser/kcm_componentchooser.h39
-rw-r--r--kcontrol/componentchooser/terminalemulatorconfig_ui.ui194
-rw-r--r--kcontrol/crypto/Makefile.am19
-rw-r--r--kcontrol/crypto/README2
-rw-r--r--kcontrol/crypto/certexport.cpp148
-rw-r--r--kcontrol/crypto/certexport.h55
-rw-r--r--kcontrol/crypto/certgen.ui513
-rw-r--r--kcontrol/crypto/configure.in.in1
-rw-r--r--kcontrol/crypto/crypto.cpp2458
-rw-r--r--kcontrol/crypto/crypto.desktop229
-rw-r--r--kcontrol/crypto/crypto.h362
-rw-r--r--kcontrol/crypto/kdatetimedlg.cpp118
-rw-r--r--kcontrol/crypto/kdatetimedlg.h60
-rw-r--r--kcontrol/css/Makefile.am16
-rw-r--r--kcontrol/css/cssconfig.ui242
-rw-r--r--kcontrol/css/csscustom.ui554
-rw-r--r--kcontrol/css/kcmcss.cpp385
-rw-r--r--kcontrol/css/kcmcss.desktop233
-rw-r--r--kcontrol/css/kcmcss.h60
-rw-r--r--kcontrol/css/preview.ui95
-rw-r--r--kcontrol/css/template.cpp45
-rw-r--r--kcontrol/css/template.css77
-rw-r--r--kcontrol/css/template.h21
-rw-r--r--kcontrol/display/Makefile.am16
-rw-r--r--kcontrol/display/display.cpp110
-rw-r--r--kcontrol/display/display.desktop154
-rw-r--r--kcontrol/display/display.h48
-rw-r--r--kcontrol/dnssd/Makefile.am12
-rw-r--r--kcontrol/dnssd/configdialog.ui304
-rw-r--r--kcontrol/dnssd/kcm_kdnssd.desktop154
-rw-r--r--kcontrol/dnssd/kcmdnssd.cpp142
-rw-r--r--kcontrol/dnssd/kcmdnssd.h49
-rw-r--r--kcontrol/ebrowsing/Makefile.am21
-rw-r--r--kcontrol/ebrowsing/ebrowsing.desktop237
-rw-r--r--kcontrol/ebrowsing/filteropts.cpp62
-rw-r--r--kcontrol/ebrowsing/filteropts.h49
-rw-r--r--kcontrol/ebrowsing/main.cpp131
-rw-r--r--kcontrol/ebrowsing/main.h51
-rw-r--r--kcontrol/ebrowsing/plugins/Makefile.am3
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/Makefile.am31
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/ikwsopts.cpp492
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/ikwsopts.h73
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/ikwsopts_ui.ui258
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/kuriikwsfilter.cpp81
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/kuriikwsfilter.desktop70
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/kuriikwsfilter.h48
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/kuriikwsfilter.upd7
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/kuriikwsfiltereng.cpp540
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/kuriikwsfiltereng.h77
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/kurisearchfilter.cpp90
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/kurisearchfilter.desktop68
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/kurisearchfilter.h50
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchprovider.cpp78
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchprovider.desktop91
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchprovider.h55
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviderdlg.cpp101
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviderdlg.h46
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviderdlg_ui.ui137
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/Makefile.am91
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/acronym.desktop83
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/alexa.desktop14
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/alexa_url.desktop43
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/alltheweb.desktop45
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/altavista.desktop23
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/amg.desktop49
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/appsy.desktop84
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/austronaut.desktop18
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/backports.desktop66
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/bugft.desktop81
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/bugno.desktop82
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/call.desktop70
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/cia.desktop45
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/citeseer.desktop72
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/cpan.desktop53
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/ctan.desktop54
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/ctan_cat.desktop77
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/dbug.desktop67
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/de2en.desktop69
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/de2fr.desktop72
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/deb.desktop72
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/dmoz.desktop51
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/docbook.desktop72
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/doi.desktop63
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/en2de.desktop73
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/en2es.desktop76
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/en2fr.desktop76
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/en2it.desktop76
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/es2en.desktop76
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/excite.desktop22
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/feedster.desktop18
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/foldoc.desktop72
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/fr2de.desktop72
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/fr2en.desktop76
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/freedb.desktop15
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/freshmeat.desktop19
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/froogle.desktop17
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/fsd.desktop66
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/google.desktop31
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/google_advanced.desktop95
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/google_groups.desktop89
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/google_images.desktop94
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/google_lucky.desktop94
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/google_movie.desktop76
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/google_news.desktop85
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/gracenote.desktop17
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/grec.desktop65
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/hotbot.desktop18
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/hyperdictionary.desktop12
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/hyperdictionary_thesaurus.desktop65
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/imdb.desktop74
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/it2en.desktop75
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/jeeves.desktop30
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/katatudo.desktop15
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/kde.desktop80
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/kde_websvn.desktop32
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/leo.desktop49
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/lycos.desktop17
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/mamma.desktop76
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/metacrawler.desktop20
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/msdn.desktop74
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/netcraft.desktop17
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/nl-telephone.desktop71
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/nl-teletekst.desktop74
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/pgpkeys.desktop83
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/php.desktop81
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/python.desktop84
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/qt.desktop78
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/qt3.desktop71
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/rae.desktop77
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/rfc.desktop57
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/rpmfind.desktop44
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/ruby_application_archive.desktop76
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/seek.desktop11
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/sourceforge.desktop19
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/technorati.desktop14
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/technoratitags.desktop55
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/thesaurus.desktop63
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/tvtome.desktop24
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/uspto.desktop74
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/vivisimo.desktop14
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/voila.desktop17
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/webster.desktop73
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/whatis.desktop71
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/wikipedia.desktop94
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/wiktionary.desktop85
-rw-r--r--kcontrol/ebrowsing/plugins/ikws/searchproviders/wordref.desktop78
-rw-r--r--kcontrol/ebrowsing/plugins/localdomain/Makefile.am20
-rw-r--r--kcontrol/ebrowsing/plugins/localdomain/klocaldomainurifilterhelper.c60
-rw-r--r--kcontrol/ebrowsing/plugins/localdomain/localdomainurifilter.cpp117
-rw-r--r--kcontrol/ebrowsing/plugins/localdomain/localdomainurifilter.desktop48
-rw-r--r--kcontrol/ebrowsing/plugins/localdomain/localdomainurifilter.h65
-rw-r--r--kcontrol/ebrowsing/plugins/shorturi/Makefile.am18
-rw-r--r--kcontrol/ebrowsing/plugins/shorturi/kshorturifilter.cpp554
-rw-r--r--kcontrol/ebrowsing/plugins/shorturi/kshorturifilter.desktop54
-rw-r--r--kcontrol/ebrowsing/plugins/shorturi/kshorturifilter.h111
-rw-r--r--kcontrol/ebrowsing/plugins/shorturi/kshorturifilterrc7
-rw-r--r--kcontrol/energy/Makefile.am18
-rw-r--r--kcontrol/energy/configure.in.in1
-rw-r--r--kcontrol/energy/energy.cpp442
-rw-r--r--kcontrol/energy/energy.desktop242
-rw-r--r--kcontrol/energy/energy.h68
-rw-r--r--kcontrol/energy/pics/Makefile.am5
-rw-r--r--kcontrol/energy/pics/energybig.pngbin0 -> 24161 bytes
-rw-r--r--kcontrol/energy/pics/lo-energy.pngbin0 -> 1977 bytes
-rw-r--r--kcontrol/filetypes/Makefile.am29
-rw-r--r--kcontrol/filetypes/control.cpp11
-rw-r--r--kcontrol/filetypes/filegroupdetails.cpp65
-rw-r--r--kcontrol/filetypes/filegroupdetails.h50
-rw-r--r--kcontrol/filetypes/filetypedetails.cpp299
-rw-r--r--kcontrol/filetypes/filetypedetails.h64
-rw-r--r--kcontrol/filetypes/filetypes.desktop235
-rw-r--r--kcontrol/filetypes/filetypesview.cpp440
-rw-r--r--kcontrol/filetypes/filetypesview.h73
-rw-r--r--kcontrol/filetypes/keditfiletype.cpp182
-rw-r--r--kcontrol/filetypes/keditfiletype.h54
-rw-r--r--kcontrol/filetypes/kservicelistwidget.cpp444
-rw-r--r--kcontrol/filetypes/kservicelistwidget.h77
-rw-r--r--kcontrol/filetypes/kserviceselectdlg.cpp66
-rw-r--r--kcontrol/filetypes/kserviceselectdlg.h47
-rw-r--r--kcontrol/filetypes/newtypedlg.cpp57
-rw-r--r--kcontrol/filetypes/newtypedlg.h28
-rw-r--r--kcontrol/filetypes/typeslistitem.cpp579
-rw-r--r--kcontrol/filetypes/typeslistitem.h118
-rw-r--r--kcontrol/fonts/Makefile.am21
-rw-r--r--kcontrol/fonts/configure.in.in57
-rw-r--r--kcontrol/fonts/fonts.cpp802
-rw-r--r--kcontrol/fonts/fonts.desktop239
-rw-r--r--kcontrol/fonts/fonts.h124
-rw-r--r--kcontrol/fonts/kxftconfig.cpp1544
-rw-r--r--kcontrol/fonts/kxftconfig.h277
-rw-r--r--kcontrol/icons/Makefile.am25
-rw-r--r--kcontrol/icons/icons.cpp666
-rw-r--r--kcontrol/icons/icons.desktop249
-rw-r--r--kcontrol/icons/icons.h152
-rw-r--r--kcontrol/icons/iconthemes.cpp452
-rw-r--r--kcontrol/icons/iconthemes.h72
-rw-r--r--kcontrol/icons/main.cpp105
-rw-r--r--kcontrol/icons/main.h55
-rw-r--r--kcontrol/icons/testicons.cpp13
-rw-r--r--kcontrol/icons/uninstall.desktop2
-rw-r--r--kcontrol/info/AUTHORS32
-rw-r--r--kcontrol/info/ChangeLog27
-rw-r--r--kcontrol/info/Makefile.am22
-rw-r--r--kcontrol/info/cdinfo.desktop166
-rw-r--r--kcontrol/info/configure.in.bot13
-rw-r--r--kcontrol/info/configure.in.in22
-rw-r--r--kcontrol/info/devices.desktop246
-rw-r--r--kcontrol/info/dma.desktop248
-rw-r--r--kcontrol/info/info.cpp495
-rw-r--r--kcontrol/info/info.h53
-rw-r--r--kcontrol/info/info_aix.cpp486
-rw-r--r--kcontrol/info/info_fbsd.cpp457
-rw-r--r--kcontrol/info/info_generic.cpp88
-rw-r--r--kcontrol/info/info_hpux.cpp785
-rw-r--r--kcontrol/info/info_linux.cpp595
-rw-r--r--kcontrol/info/info_netbsd.cpp353
-rw-r--r--kcontrol/info/info_openbsd.cpp313
-rw-r--r--kcontrol/info/info_osx.cpp176
-rw-r--r--kcontrol/info/info_sgi.cpp82
-rw-r--r--kcontrol/info/info_solaris.cpp705
-rw-r--r--kcontrol/info/info_svr4.cpp132
-rw-r--r--kcontrol/info/interrupts.desktop240
-rw-r--r--kcontrol/info/ioports.desktop242
-rw-r--r--kcontrol/info/main.cpp151
-rw-r--r--kcontrol/info/memory.cpp480
-rw-r--r--kcontrol/info/memory.desktop248
-rw-r--r--kcontrol/info/memory.h67
-rw-r--r--kcontrol/info/memory_fbsd.cpp89
-rw-r--r--kcontrol/info/memory_hpux.cpp92
-rw-r--r--kcontrol/info/memory_linux.cpp39
-rw-r--r--kcontrol/info/memory_netbsd.cpp114
-rw-r--r--kcontrol/info/memory_osx.cpp93
-rw-r--r--kcontrol/info/memory_sgi.cpp75
-rw-r--r--kcontrol/info/memory_solaris.cpp94
-rw-r--r--kcontrol/info/memory_tru64.cpp83
-rw-r--r--kcontrol/info/opengl.cpp673
-rw-r--r--kcontrol/info/opengl.desktop147
-rw-r--r--kcontrol/info/partitions.desktop246
-rw-r--r--kcontrol/info/pci.desktop180
-rw-r--r--kcontrol/info/processor.desktop249
-rw-r--r--kcontrol/info/scsi.desktop177
-rw-r--r--kcontrol/info/sound.desktop243
-rw-r--r--kcontrol/info/xserver.desktop227
-rw-r--r--kcontrol/input/AUTHORS7
-rw-r--r--kcontrol/input/ChangeLog11
-rw-r--r--kcontrol/input/Makefile.am47
-rw-r--r--kcontrol/input/configure.in.bot5
-rw-r--r--kcontrol/input/configure.in.in26
-rwxr-xr-xkcontrol/input/consoleUserPerms42
-rw-r--r--kcontrol/input/core/Makefile.am7
-rw-r--r--kcontrol/input/core/bitmaps.h146
-rw-r--r--kcontrol/input/core/themepage.cpp212
-rw-r--r--kcontrol/input/core/themepage.h55
-rw-r--r--kcontrol/input/cursor_large.bdf4447
-rw-r--r--kcontrol/input/cursor_large_black.pcf.gzbin0 -> 3636 bytes
-rw-r--r--kcontrol/input/cursor_large_white.pcf.gzbin0 -> 3784 bytes
-rw-r--r--kcontrol/input/cursor_small_white.pcf.gzbin0 -> 3770 bytes
-rw-r--r--kcontrol/input/kapplymousetheme.cpp92
-rw-r--r--kcontrol/input/kmousedlg.ui378
-rw-r--r--kcontrol/input/logitechmouse.cpp417
-rw-r--r--kcontrol/input/logitechmouse.h102
-rw-r--r--kcontrol/input/logitechmouse.usermap35
-rw-r--r--kcontrol/input/logitechmouse_base.ui153
-rw-r--r--kcontrol/input/main.cpp96
-rw-r--r--kcontrol/input/mouse.cpp838
-rw-r--r--kcontrol/input/mouse.desktop242
-rw-r--r--kcontrol/input/mouse.h156
-rw-r--r--kcontrol/input/mouse_cursor_theme.upd5
-rw-r--r--kcontrol/input/pics/Makefile.am3
-rw-r--r--kcontrol/input/pics/mouse_lh.pngbin0 -> 12981 bytes
-rw-r--r--kcontrol/input/pics/mouse_lh.svgzbin0 -> 4814 bytes
-rw-r--r--kcontrol/input/pics/mouse_rh.pngbin0 -> 13053 bytes
-rw-r--r--kcontrol/input/pics/mouse_rh.svgzbin0 -> 4709 bytes
-rw-r--r--kcontrol/input/xcursor/Makefile.am7
-rw-r--r--kcontrol/input/xcursor/previewwidget.cpp353
-rw-r--r--kcontrol/input/xcursor/previewwidget.h47
-rw-r--r--kcontrol/input/xcursor/themepage.cpp637
-rw-r--r--kcontrol/input/xcursor/themepage.h76
-rw-r--r--kcontrol/ioslaveinfo/Makefile.am21
-rw-r--r--kcontrol/ioslaveinfo/ioslaveinfo.desktop237
-rw-r--r--kcontrol/ioslaveinfo/kcmioslaveinfo.cpp148
-rw-r--r--kcontrol/ioslaveinfo/kcmioslaveinfo.h61
-rw-r--r--kcontrol/ioslaveinfo/uninstall.desktop2
-rw-r--r--kcontrol/joystick/Makefile.am17
-rw-r--r--kcontrol/joystick/caldialog.cpp193
-rw-r--r--kcontrol/joystick/caldialog.h54
-rw-r--r--kcontrol/joystick/configure.in.in7
-rw-r--r--kcontrol/joystick/joydevice.cpp397
-rw-r--r--kcontrol/joystick/joydevice.h110
-rw-r--r--kcontrol/joystick/joystick.cpp123
-rw-r--r--kcontrol/joystick/joystick.desktop177
-rw-r--r--kcontrol/joystick/joystick.h42
-rw-r--r--kcontrol/joystick/joywidget.cpp379
-rw-r--r--kcontrol/joystick/joywidget.h79
-rw-r--r--kcontrol/joystick/poswidget.cpp138
-rw-r--r--kcontrol/joystick/poswidget.h55
-rw-r--r--kcontrol/kcontrol/KControl.desktop93
-rw-r--r--kcontrol/kcontrol/KControl_NoDisplay.desktop93
-rw-r--r--kcontrol/kcontrol/Makefile.am53
-rw-r--r--kcontrol/kcontrol/about/Makefile.am6
-rw-r--r--kcontrol/kcontrol/about/kcontrol.css54
-rw-r--r--kcontrol/kcontrol/about/main.html64
-rw-r--r--kcontrol/kcontrol/about/top-right-kcontrol.pngbin0 -> 13794 bytes
-rw-r--r--kcontrol/kcontrol/aboutwidget.cpp204
-rw-r--r--kcontrol/kcontrol/aboutwidget.h68
-rw-r--r--kcontrol/kcontrol/cr128-app-kcontrol.pngbin0 -> 12149 bytes
-rw-r--r--kcontrol/kcontrol/cr16-app-kcontrol.pngbin0 -> 887 bytes
-rw-r--r--kcontrol/kcontrol/cr32-app-kcontrol.pngbin0 -> 2375 bytes
-rw-r--r--kcontrol/kcontrol/cr48-app-kcontrol.pngbin0 -> 4134 bytes
-rw-r--r--kcontrol/kcontrol/cr64-app-kcontrol.pngbin0 -> 5941 bytes
-rw-r--r--kcontrol/kcontrol/dockcontainer.cpp257
-rw-r--r--kcontrol/kcontrol/dockcontainer.h86
-rw-r--r--kcontrol/kcontrol/global.cpp116
-rw-r--r--kcontrol/kcontrol/global.h76
-rw-r--r--kcontrol/kcontrol/helpwidget.cpp96
-rw-r--r--kcontrol/kcontrol/helpwidget.h43
-rw-r--r--kcontrol/kcontrol/indexwidget.cpp142
-rw-r--r--kcontrol/kcontrol/indexwidget.h64
-rw-r--r--kcontrol/kcontrol/kcontrolui.rc20
-rw-r--r--kcontrol/kcontrol/kcrootonly.cpp38
-rw-r--r--kcontrol/kcontrol/kcrootonly.h12
-rw-r--r--kcontrol/kcontrol/kinfocenter.desktop109
-rw-r--r--kcontrol/kcontrol/kinfocenterui.rc20
-rw-r--r--kcontrol/kcontrol/main.cpp153
-rw-r--r--kcontrol/kcontrol/main.h42
-rw-r--r--kcontrol/kcontrol/moduleIface.cpp58
-rw-r--r--kcontrol/kcontrol/moduleIface.h54
-rw-r--r--kcontrol/kcontrol/moduleiconview.cpp170
-rw-r--r--kcontrol/kcontrol/moduleiconview.h86
-rw-r--r--kcontrol/kcontrol/modulemenu.cpp105
-rw-r--r--kcontrol/kcontrol/modulemenu.h65
-rw-r--r--kcontrol/kcontrol/modules.cpp345
-rw-r--r--kcontrol/kcontrol/modules.h136
-rw-r--r--kcontrol/kcontrol/moduletreeview.cpp377
-rw-r--r--kcontrol/kcontrol/moduletreeview.h95
-rw-r--r--kcontrol/kcontrol/proxywidget.cpp323
-rw-r--r--kcontrol/kcontrol/proxywidget.h82
-rw-r--r--kcontrol/kcontrol/searchwidget.cpp205
-rw-r--r--kcontrol/kcontrol/searchwidget.h78
-rw-r--r--kcontrol/kcontrol/toplevel.cpp526
-rw-r--r--kcontrol/kcontrol/toplevel.h106
-rw-r--r--kcontrol/kcontrol/version.h2
-rw-r--r--kcontrol/kded/Makefile.am15
-rw-r--r--kcontrol/kded/kcmkded.cpp363
-rw-r--r--kcontrol/kded/kcmkded.desktop236
-rw-r--r--kcontrol/kded/kcmkded.h78
-rw-r--r--kcontrol/kdm/AUTHORS6
-rw-r--r--kcontrol/kdm/ChangeLog16
-rw-r--r--kcontrol/kdm/Makefile.am19
-rw-r--r--kcontrol/kdm/background.cpp111
-rw-r--r--kcontrol/kdm/background.h50
-rw-r--r--kcontrol/kdm/kbackedcombobox.cpp40
-rw-r--r--kcontrol/kdm/kbackedcombobox.h38
-rw-r--r--kcontrol/kdm/kdm-appear.cpp516
-rw-r--r--kcontrol/kdm/kdm-appear.h95
-rw-r--r--kcontrol/kdm/kdm-conv.cpp362
-rw-r--r--kcontrol/kdm/kdm-conv.h84
-rw-r--r--kcontrol/kdm/kdm-font.cpp134
-rw-r--r--kcontrol/kdm/kdm-font.h57
-rw-r--r--kcontrol/kdm/kdm-shut.cpp227
-rw-r--r--kcontrol/kdm/kdm-shut.h64
-rw-r--r--kcontrol/kdm/kdm-users.cpp500
-rw-r--r--kcontrol/kdm/kdm-users.h106
-rw-r--r--kcontrol/kdm/kdm.desktop243
-rw-r--r--kcontrol/kdm/main.cpp336
-rw-r--r--kcontrol/kdm/main.h83
-rw-r--r--kcontrol/keys/ChangeLog26
-rw-r--r--kcontrol/keys/Makefile.am22
-rw-r--r--kcontrol/keys/README7
-rw-r--r--kcontrol/keys/commandShortcuts.cpp243
-rw-r--r--kcontrol/keys/commandShortcuts.h75
-rwxr-xr-xkcontrol/keys/convertShortcuts.pl58
-rw-r--r--kcontrol/keys/kaccel.upd3
-rw-r--r--kcontrol/keys/kaccelaction.h205
-rw-r--r--kcontrol/keys/kde3.kksrc192
-rw-r--r--kcontrol/keys/kde4.kksrc192
-rw-r--r--kcontrol/keys/keyconfig.cpp545
-rw-r--r--kcontrol/keys/keyconfig.h90
-rw-r--r--kcontrol/keys/keys.desktop239
-rw-r--r--kcontrol/keys/khotkeys.cpp121
-rw-r--r--kcontrol/keys/khotkeys.h41
-rw-r--r--kcontrol/keys/mac4.kksrc197
-rw-r--r--kcontrol/keys/main.cpp203
-rw-r--r--kcontrol/keys/main.h57
-rw-r--r--kcontrol/keys/modifiers.cpp354
-rw-r--r--kcontrol/keys/modifiers.h49
-rw-r--r--kcontrol/keys/shortcuts.cpp435
-rw-r--r--kcontrol/keys/shortcuts.h77
-rw-r--r--kcontrol/keys/treeview.cpp282
-rw-r--r--kcontrol/keys/treeview.h84
-rw-r--r--kcontrol/keys/unix3.kksrc198
-rw-r--r--kcontrol/keys/win3.kksrc198
-rw-r--r--kcontrol/keys/win4.kksrc198
-rw-r--r--kcontrol/keys/wm3.kksrc188
-rw-r--r--kcontrol/kfontinst/AUTHORS1
-rw-r--r--kcontrol/kfontinst/ChangeLog490
-rw-r--r--kcontrol/kfontinst/Makefile.am14
-rw-r--r--kcontrol/kfontinst/TODO1
-rw-r--r--kcontrol/kfontinst/configure.in.bot12
-rw-r--r--kcontrol/kfontinst/configure.in.in155
-rw-r--r--kcontrol/kfontinst/installfont.desktop79
-rw-r--r--kcontrol/kfontinst/kcmfontinst/KCmFontInst.cpp647
-rw-r--r--kcontrol/kfontinst/kcmfontinst/KCmFontInst.h116
-rw-r--r--kcontrol/kfontinst/kcmfontinst/KFileFontIconView.cpp88
-rw-r--r--kcontrol/kfontinst/kcmfontinst/KFileFontIconView.h55
-rw-r--r--kcontrol/kfontinst/kcmfontinst/KFileFontView.cpp645
-rw-r--r--kcontrol/kfontinst/kcmfontinst/KFileFontView.h219
-rw-r--r--kcontrol/kfontinst/kcmfontinst/Makefile.am31
-rw-r--r--kcontrol/kfontinst/kcmfontinst/PrintDialog.cpp74
-rw-r--r--kcontrol/kfontinst/kcmfontinst/PrintDialog.h56
-rw-r--r--kcontrol/kfontinst/kcmfontinst/SettingsDialog.cpp99
-rw-r--r--kcontrol/kfontinst/kcmfontinst/SettingsDialog.h57
-rw-r--r--kcontrol/kfontinst/kcmfontinst/cr16-action-newfont.pngbin0 -> 613 bytes
-rw-r--r--kcontrol/kfontinst/kcmfontinst/cr22-action-newfont.pngbin0 -> 951 bytes
-rw-r--r--kcontrol/kfontinst/kcmfontinst/cr32-action-newfont.pngbin0 -> 1821 bytes
-rw-r--r--kcontrol/kfontinst/kcmfontinst/kcmfontinst.desktop235
-rw-r--r--kcontrol/kfontinst/kfile-plugin/KFileFont.cpp422
-rw-r--r--kcontrol/kfontinst/kfile-plugin/KFileFont.h58
-rw-r--r--kcontrol/kfontinst/kfile-plugin/Makefile.am13
-rw-r--r--kcontrol/kfontinst/kfile-plugin/kfile_font.desktop86
-rw-r--r--kcontrol/kfontinst/kfontinst/FontEngine.cpp376
-rw-r--r--kcontrol/kfontinst/kfontinst/FontEngine.h142
-rw-r--r--kcontrol/kfontinst/kfontinst/Fontmap.cpp596
-rw-r--r--kcontrol/kfontinst/kfontinst/Fontmap.h79
-rw-r--r--kcontrol/kfontinst/kfontinst/GetPid.c519
-rw-r--r--kcontrol/kfontinst/kfontinst/Main.cpp335
-rw-r--r--kcontrol/kfontinst/kfontinst/Makefile.am16
-rw-r--r--kcontrol/kfontinst/kfontinst/XConfig.cpp760
-rw-r--r--kcontrol/kfontinst/kfontinst/XConfig.h114
-rw-r--r--kcontrol/kfontinst/kio/KioFonts.cpp2534
-rw-r--r--kcontrol/kfontinst/kio/KioFonts.h161
-rw-r--r--kcontrol/kfontinst/kio/Makefile.am20
-rw-r--r--kcontrol/kfontinst/kio/folder.desktop80
-rw-r--r--kcontrol/kfontinst/kio/fonts.desktop85
-rw-r--r--kcontrol/kfontinst/kio/fonts.protocol18
-rw-r--r--kcontrol/kfontinst/kio/package.desktop74
-rw-r--r--kcontrol/kfontinst/kio/system-folder.desktop79
-rw-r--r--kcontrol/kfontinst/lib/FcEngine.cpp1179
-rw-r--r--kcontrol/kfontinst/lib/FcEngine.h118
-rw-r--r--kcontrol/kfontinst/lib/KfiConstants.h73
-rw-r--r--kcontrol/kfontinst/lib/Makefile.am14
-rw-r--r--kcontrol/kfontinst/lib/Misc.cpp238
-rw-r--r--kcontrol/kfontinst/lib/Misc.h76
-rw-r--r--kcontrol/kfontinst/thumbnail/FontThumbnail.cpp73
-rw-r--r--kcontrol/kfontinst/thumbnail/FontThumbnail.h55
-rw-r--r--kcontrol/kfontinst/thumbnail/Makefile.am14
-rw-r--r--kcontrol/kfontinst/thumbnail/fontthumbnail.desktop85
-rw-r--r--kcontrol/kfontinst/viewpart/FontPreview.cpp118
-rw-r--r--kcontrol/kfontinst/viewpart/FontPreview.h83
-rw-r--r--kcontrol/kfontinst/viewpart/FontViewPart.cpp282
-rw-r--r--kcontrol/kfontinst/viewpart/FontViewPart.h85
-rw-r--r--kcontrol/kfontinst/viewpart/FontViewPartFactory.cpp86
-rw-r--r--kcontrol/kfontinst/viewpart/FontViewPartFactory.h60
-rw-r--r--kcontrol/kfontinst/viewpart/FontViewerApp.cpp130
-rw-r--r--kcontrol/kfontinst/viewpart/FontViewerApp.h68
-rw-r--r--kcontrol/kfontinst/viewpart/KfiPrint.cpp193
-rw-r--r--kcontrol/kfontinst/viewpart/KfiPrint.h49
-rw-r--r--kcontrol/kfontinst/viewpart/Makefile.am30
-rw-r--r--kcontrol/kfontinst/viewpart/kfontview.desktop100
-rw-r--r--kcontrol/kfontinst/viewpart/kfontviewpart.desktop86
-rw-r--r--kcontrol/kfontinst/viewpart/kfontviewpart.rc9
-rw-r--r--kcontrol/kfontinst/viewpart/kfontviewui.rc4
-rw-r--r--kcontrol/kicker/Makefile.am40
-rw-r--r--kcontrol/kicker/advancedDialog.cpp163
-rw-r--r--kcontrol/kicker/advancedDialog.h44
-rw-r--r--kcontrol/kicker/advancedOptions.ui321
-rw-r--r--kcontrol/kicker/applettab.ui227
-rw-r--r--kcontrol/kicker/applettab_impl.cpp239
-rw-r--r--kcontrol/kicker/applettab_impl.h68
-rw-r--r--kcontrol/kicker/extensionInfo.cpp259
-rw-r--r--kcontrol/kicker/extensionInfo.h85
-rw-r--r--kcontrol/kicker/hidingconfig.cpp94
-rw-r--r--kcontrol/kicker/hidingconfig.h44
-rw-r--r--kcontrol/kicker/hidingtab.ui761
-rw-r--r--kcontrol/kicker/hidingtab_impl.cpp280
-rw-r--r--kcontrol/kicker/hidingtab_impl.h64
-rw-r--r--kcontrol/kicker/kicker_config.desktop223
-rw-r--r--kcontrol/kicker/kicker_config_appearance.desktop229
-rw-r--r--kcontrol/kicker/kicker_config_arrangement.desktop212
-rw-r--r--kcontrol/kicker/kicker_config_hiding.desktop202
-rw-r--r--kcontrol/kicker/kicker_config_menus.desktop199
-rw-r--r--kcontrol/kicker/lookandfeelconfig.cpp94
-rw-r--r--kcontrol/kicker/lookandfeelconfig.h44
-rw-r--r--kcontrol/kicker/lookandfeeltab.ui635
-rw-r--r--kcontrol/kicker/lookandfeeltab_impl.cpp384
-rw-r--r--kcontrol/kicker/lookandfeeltab_impl.h70
-rw-r--r--kcontrol/kicker/lookandfeeltab_kcm.cpp94
-rw-r--r--kcontrol/kicker/lookandfeeltab_kcm.h44
-rw-r--r--kcontrol/kicker/main.cpp398
-rw-r--r--kcontrol/kicker/main.h84
-rw-r--r--kcontrol/kicker/menuconfig.cpp94
-rw-r--r--kcontrol/kicker/menuconfig.h44
-rw-r--r--kcontrol/kicker/menutab.ui407
-rw-r--r--kcontrol/kicker/menutab_impl.cpp181
-rw-r--r--kcontrol/kicker/menutab_impl.h72
-rw-r--r--kcontrol/kicker/panel.desktop224
-rw-r--r--kcontrol/kicker/positionconfig.cpp94
-rw-r--r--kcontrol/kicker/positionconfig.h44
-rw-r--r--kcontrol/kicker/positiontab.ui1129
-rw-r--r--kcontrol/kicker/positiontab_impl.cpp742
-rw-r--r--kcontrol/kicker/positiontab_impl.h77
-rw-r--r--kcontrol/kicker/uninstall.desktop11
-rw-r--r--kcontrol/kio/Makefile.am39
-rw-r--r--kcontrol/kio/UA-DESKTOP-FILE-HOWTO135
-rw-r--r--kcontrol/kio/cache.cpp127
-rw-r--r--kcontrol/kio/cache.desktop220
-rw-r--r--kcontrol/kio/cache.h50
-rw-r--r--kcontrol/kio/cache_ui.ui187
-rw-r--r--kcontrol/kio/cookies.desktop215
-rw-r--r--kcontrol/kio/envvarproxy_ui.ui175
-rw-r--r--kcontrol/kio/fakeuaprovider.cpp176
-rw-r--r--kcontrol/kio/fakeuaprovider.h57
-rw-r--r--kcontrol/kio/kcookiesmain.cpp99
-rw-r--r--kcontrol/kio/kcookiesmain.h37
-rw-r--r--kcontrol/kio/kcookiesmanagement.cpp489
-rw-r--r--kcontrol/kio/kcookiesmanagement.h101
-rw-r--r--kcontrol/kio/kcookiesmanagementdlg_ui.ui323
-rw-r--r--kcontrol/kio/kcookiespolicies.cpp474
-rw-r--r--kcontrol/kio/kcookiespolicies.h81
-rw-r--r--kcontrol/kio/kcookiespoliciesdlg_ui.ui323
-rw-r--r--kcontrol/kio/kenvvarproxydlg.cpp303
-rw-r--r--kcontrol/kio/kenvvarproxydlg.h57
-rw-r--r--kcontrol/kio/kio_ftprc.kcfg22
-rw-r--r--kcontrol/kio/kio_ftprc.kcfgc5
-rw-r--r--kcontrol/kio/kioslave.kcfg44
-rw-r--r--kcontrol/kio/kioslave.kcfgc5
-rw-r--r--kcontrol/kio/kmanualproxydlg.cpp498
-rw-r--r--kcontrol/kio/kmanualproxydlg.h77
-rw-r--r--kcontrol/kio/kproxydlg.cpp375
-rw-r--r--kcontrol/kio/kproxydlg.h82
-rw-r--r--kcontrol/kio/kproxydlg_ui.ui441
-rw-r--r--kcontrol/kio/kproxydlgbase.cpp74
-rw-r--r--kcontrol/kio/kproxydlgbase.h68
-rw-r--r--kcontrol/kio/ksaveioconfig.cpp260
-rw-r--r--kcontrol/kio/ksaveioconfig.h96
-rw-r--r--kcontrol/kio/lanbrowser.desktop226
-rw-r--r--kcontrol/kio/main.cpp158
-rw-r--r--kcontrol/kio/main.h46
-rw-r--r--kcontrol/kio/manualproxy_ui.ui317
-rw-r--r--kcontrol/kio/netpref.cpp138
-rw-r--r--kcontrol/kio/netpref.desktop205
-rw-r--r--kcontrol/kio/netpref.h44
-rw-r--r--kcontrol/kio/policydlg.cpp107
-rw-r--r--kcontrol/kio/policydlg.h87
-rw-r--r--kcontrol/kio/policydlg_ui.ui106
-rw-r--r--kcontrol/kio/proxy.desktop209
-rw-r--r--kcontrol/kio/smb.desktop233
-rw-r--r--kcontrol/kio/smbrodlg.cpp191
-rw-r--r--kcontrol/kio/smbrodlg.h55
-rw-r--r--kcontrol/kio/socks.cpp279
-rw-r--r--kcontrol/kio/socks.h73
-rw-r--r--kcontrol/kio/socks.upd8
-rw-r--r--kcontrol/kio/socksbase.ui335
-rw-r--r--kcontrol/kio/uagentproviderdlg.cpp149
-rw-r--r--kcontrol/kio/uagentproviderdlg.h68
-rw-r--r--kcontrol/kio/uagentproviderdlg_ui.ui207
-rw-r--r--kcontrol/kio/uasprovider.desktop98
-rw-r--r--kcontrol/kio/uasproviders/Makefile.am14
-rw-r--r--kcontrol/kio/uasproviders/firefox10oncurrent.desktop70
-rw-r--r--kcontrol/kio/uasproviders/firefox15oncurrent.desktop58
-rw-r--r--kcontrol/kio/uasproviders/googlebot.desktop44
-rw-r--r--kcontrol/kio/uasproviders/ie401onwinnt4.desktop80
-rw-r--r--kcontrol/kio/uasproviders/ie45onwinnt5.desktop80
-rw-r--r--kcontrol/kio/uasproviders/ie501onwinnt5.desktop79
-rw-r--r--kcontrol/kio/uasproviders/ie50onppc.desktop79
-rw-r--r--kcontrol/kio/uasproviders/ie55onwin98.desktop79
-rw-r--r--kcontrol/kio/uasproviders/ie55onwinnt5.desktop79
-rw-r--r--kcontrol/kio/uasproviders/ie60oncurrent.desktop69
-rw-r--r--kcontrol/kio/uasproviders/ie60onwinnt51.desktop81
-rw-r--r--kcontrol/kio/uasproviders/lynxoncurrent.desktop51
-rw-r--r--kcontrol/kio/uasproviders/mozoncurrent.desktop70
-rw-r--r--kcontrol/kio/uasproviders/mozoncurrent12.desktop76
-rw-r--r--kcontrol/kio/uasproviders/mozoncurrent16.desktop75
-rw-r--r--kcontrol/kio/uasproviders/mozonwin2000.desktop73
-rw-r--r--kcontrol/kio/uasproviders/mozonwinxp.desktop74
-rw-r--r--kcontrol/kio/uasproviders/nn301oncurrent.desktop78
-rw-r--r--kcontrol/kio/uasproviders/nn475oncurrent.desktop78
-rw-r--r--kcontrol/kio/uasproviders/nn475onwin95.desktop81
-rw-r--r--kcontrol/kio/uasproviders/nn476onppc.desktop82
-rw-r--r--kcontrol/kio/uasproviders/ns71oncurrent.desktop72
-rw-r--r--kcontrol/kio/uasproviders/ns71onwinnt51.desktop74
-rw-r--r--kcontrol/kio/uasproviders/op403onwinnt4.desktop80
-rw-r--r--kcontrol/kio/uasproviders/op75oncurrent.desktop69
-rw-r--r--kcontrol/kio/uasproviders/safari12.desktop73
-rw-r--r--kcontrol/kio/uasproviders/safari20.desktop59
-rw-r--r--kcontrol/kio/uasproviders/w3moncurrent.desktop50
-rw-r--r--kcontrol/kio/uasproviders/wgetoncurrent.desktop50
-rw-r--r--kcontrol/kio/uninstall.desktop2
-rw-r--r--kcontrol/kio/useragent.desktop232
-rw-r--r--kcontrol/kio/useragentdlg.cpp403
-rw-r--r--kcontrol/kio/useragentdlg.h83
-rw-r--r--kcontrol/kio/useragentdlg_ui.ui355
-rw-r--r--kcontrol/knotify/CHANGES0
-rw-r--r--kcontrol/knotify/Makefile.am27
-rw-r--r--kcontrol/knotify/README2
-rw-r--r--kcontrol/knotify/kcmnotify.desktop243
-rw-r--r--kcontrol/knotify/knotify.cpp328
-rw-r--r--kcontrol/knotify/knotify.h96
-rw-r--r--kcontrol/knotify/play.pngbin0 -> 277 bytes
-rw-r--r--kcontrol/knotify/playersettings.ui330
-rw-r--r--kcontrol/knotify/sounds/KDE_Beep.oggbin0 -> 4146 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Beep_Ahem.wavbin0 -> 11180 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Beep_Beep.wavbin0 -> 1078 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Beep_Bottles.wavbin0 -> 4972 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Beep_Car.oggbin0 -> 5829 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Beep_Classic.oggbin0 -> 5433 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Beep_ClassicBeep.wavbin0 -> 2480 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Beep_ClockChime.wavbin0 -> 4022 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Beep_Connect.oggbin0 -> 14392 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Beep_Connect.wavbin0 -> 12384 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Beep_Digital_1.oggbin0 -> 4569 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Beep_Digital_2.oggbin0 -> 5316 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Beep_Door.wavbin0 -> 7470 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Beep_Double.oggbin0 -> 4613 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Beep_Harsh.oggbin0 -> 4747 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Beep_Honk.wavbin0 -> 2802 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Beep_Lightning.wavbin0 -> 10220 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Beep_Phone_1.oggbin0 -> 5517 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Beep_Phone_2.oggbin0 -> 7067 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Beep_Pop.wavbin0 -> 414 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Beep_RimShot.wavbin0 -> 13996 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Beep_RingRing.wavbin0 -> 5932 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Beep_ShortBeep.wavbin0 -> 2270 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Beep_Yo.wavbin0 -> 4538 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Bottles.oggbin0 -> 13853 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Chimes_1.oggbin0 -> 29944 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Chimes_2.oggbin0 -> 23635 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Chimes_3.oggbin0 -> 31716 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Click.wavbin0 -> 1824 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Click_1.oggbin0 -> 4715 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Click_2.oggbin0 -> 5316 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Click_3.oggbin0 -> 4032 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Close_Window.wavbin0 -> 26270 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Critical_Error.wavbin0 -> 183496 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Desktop1.wavbin0 -> 4794 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Desktop2.wavbin0 -> 5178 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Desktop3.wavbin0 -> 5106 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Desktop4.wavbin0 -> 4962 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Desktop5.wavbin0 -> 5026 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Desktop6.wavbin0 -> 5122 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Desktop7.wavbin0 -> 5250 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Desktop8.wavbin0 -> 5218 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Desktop_1.oggbin0 -> 32355 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Desktop_2.oggbin0 -> 37561 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Desktop_3.oggbin0 -> 36602 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Desktop_4.oggbin0 -> 37532 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Desktop_5.oggbin0 -> 36807 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Desktop_6.oggbin0 -> 36079 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Desktop_7.oggbin0 -> 38732 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Desktop_8.oggbin0 -> 37169 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Dialog_Appear.oggbin0 -> 25042 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Dialog_Appear.wavbin0 -> 61084 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Dialog_Disappear.oggbin0 -> 26129 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Dialog_Disappear.wavbin0 -> 81506 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Door.oggbin0 -> 9694 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Drum_Break.oggbin0 -> 21007 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Error.wavbin0 -> 24970 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Error_1.oggbin0 -> 28249 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Error_2.oggbin0 -> 4933 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Error_3.oggbin0 -> 7124 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Event_1.oggbin0 -> 25813 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Event_2.oggbin0 -> 27085 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Event_3.oggbin0 -> 15743 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Event_4.oggbin0 -> 14400 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Event_5.oggbin0 -> 19325 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Glass_Break.oggbin0 -> 11005 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Keyboard_Key_1.oggbin0 -> 4672 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Logout.wavbin0 -> 132744 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Logout_1.oggbin0 -> 77261 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Logout_2.oggbin0 -> 43763 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Logout_3.oggbin0 -> 36215 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Notify.wavbin0 -> 90464 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Pop.oggbin0 -> 4305 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Star_Ship_1.oggbin0 -> 44075 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Startup.wavbin0 -> 365228 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Startup_1.oggbin0 -> 124445 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Startup_2.oggbin0 -> 141189 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Startup_3.oggbin0 -> 109393 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_TypeWriter_Bell.oggbin0 -> 9660 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_TypeWriter_End_Of_Line.oggbin0 -> 11187 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_TypeWriter_Key_1.oggbin0 -> 5701 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_TypeWriter_Key_2.oggbin0 -> 5428 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_TypeWriter_Reload.oggbin0 -> 11372 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_TypeWriter_Scroll.oggbin0 -> 6772 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Vox_Ahem.oggbin0 -> 13701 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Vox_Yo.oggbin0 -> 14071 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Warp.oggbin0 -> 3894 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Water_Drop.oggbin0 -> 8139 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Window_Close.oggbin0 -> 9230 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Window_Close.wavbin0 -> 202848 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Window_DeIconify.oggbin0 -> 13322 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Window_DeIconify.wavbin0 -> 26698 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Window_Hide.oggbin0 -> 22658 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Window_Iconify.oggbin0 -> 14211 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Window_Iconify.wavbin0 -> 26134 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Window_Maximize.wavbin0 -> 26402 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Window_Open.oggbin0 -> 9481 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Window_Open.wavbin0 -> 305432 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Window_Shade_Down.oggbin0 -> 26114 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Window_Shade_Down.wavbin0 -> 20522 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Window_Shade_Up.oggbin0 -> 27328 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Window_Shade_Up.wavbin0 -> 20578 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Window_Sticky.oggbin0 -> 7594 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Window_Sticky.wavbin0 -> 17706 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Window_UnHide.oggbin0 -> 23615 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Window_UnMaximize.wavbin0 -> 42092 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Window_UnSticky.oggbin0 -> 12300 bytes
-rw-r--r--kcontrol/knotify/sounds/KDE_Window_UnSticky.wavbin0 -> 20522 bytes
-rw-r--r--kcontrol/knotify/sounds/Makefile.am113
-rw-r--r--kcontrol/konq/Makefile.am30
-rw-r--r--kcontrol/konq/README19
-rw-r--r--kcontrol/konq/behaviour.cpp285
-rw-r--r--kcontrol/konq/behaviour.h75
-rw-r--r--kcontrol/konq/browser.cpp109
-rw-r--r--kcontrol/konq/browser.h50
-rw-r--r--kcontrol/konq/desktop.cpp246
-rw-r--r--kcontrol/konq/desktop.desktop236
-rw-r--r--kcontrol/konq/desktop.h57
-rw-r--r--kcontrol/konq/desktopbehavior.desktop236
-rw-r--r--kcontrol/konq/desktopbehavior.ui426
-rw-r--r--kcontrol/konq/desktopbehavior_impl.cpp466
-rw-r--r--kcontrol/konq/desktopbehavior_impl.h79
-rw-r--r--kcontrol/konq/desktoppath.desktop226
-rw-r--r--kcontrol/konq/fileappearance.desktop234
-rw-r--r--kcontrol/konq/filebehavior.desktop225
-rw-r--r--kcontrol/konq/filebrowser.desktop239
-rw-r--r--kcontrol/konq/filepreviews.desktop220
-rw-r--r--kcontrol/konq/fontopts.cpp387
-rw-r--r--kcontrol/konq/fontopts.h112
-rw-r--r--kcontrol/konq/main.cpp98
-rw-r--r--kcontrol/konq/onlyone.pngbin0 -> 7540 bytes
-rw-r--r--kcontrol/konq/overlapping.pngbin0 -> 10965 bytes
-rw-r--r--kcontrol/konq/previews.cpp219
-rw-r--r--kcontrol/konq/previews.h65
-rw-r--r--kcontrol/konq/rootopts.cpp345
-rw-r--r--kcontrol/konq/rootopts.h64
-rw-r--r--kcontrol/konq/webappearance.desktop234
-rw-r--r--kcontrol/konq/webbehavior.desktop234
-rw-r--r--kcontrol/konqhtml/Makefile.am26
-rw-r--r--kcontrol/konqhtml/advancedTabDialog.cpp121
-rw-r--r--kcontrol/konqhtml/advancedTabDialog.h45
-rw-r--r--kcontrol/konqhtml/advancedTabOptions.ui155
-rw-r--r--kcontrol/konqhtml/appearance.cpp417
-rw-r--r--kcontrol/konqhtml/appearance.h70
-rw-r--r--kcontrol/konqhtml/domainlistview.cpp230
-rw-r--r--kcontrol/konqhtml/domainlistview.h209
-rw-r--r--kcontrol/konqhtml/filteropts.cpp327
-rw-r--r--kcontrol/konqhtml/filteropts.h74
-rw-r--r--kcontrol/konqhtml/htmlopts.cpp365
-rw-r--r--kcontrol/konqhtml/htmlopts.h68
-rw-r--r--kcontrol/konqhtml/javaopts.cpp337
-rw-r--r--kcontrol/konqhtml/javaopts.h126
-rw-r--r--kcontrol/konqhtml/jsopts.cpp231
-rw-r--r--kcontrol/konqhtml/jsopts.h90
-rw-r--r--kcontrol/konqhtml/jspolicies.cpp407
-rw-r--r--kcontrol/konqhtml/jspolicies.h270
-rw-r--r--kcontrol/konqhtml/khtml_behavior.desktop231
-rw-r--r--kcontrol/konqhtml/khtml_filter.desktop145
-rw-r--r--kcontrol/konqhtml/khtml_fonts.desktop230
-rw-r--r--kcontrol/konqhtml/khtml_java_js.desktop211
-rw-r--r--kcontrol/konqhtml/khttpoptdlg.cpp81
-rw-r--r--kcontrol/konqhtml/khttpoptdlg.h49
-rw-r--r--kcontrol/konqhtml/main.cpp171
-rw-r--r--kcontrol/konqhtml/main.h60
-rw-r--r--kcontrol/konqhtml/nsconfigwidget.ui273
-rw-r--r--kcontrol/konqhtml/pluginopts.cpp659
-rw-r--r--kcontrol/konqhtml/pluginopts.h163
-rw-r--r--kcontrol/konqhtml/policies.cpp74
-rw-r--r--kcontrol/konqhtml/policies.h134
-rw-r--r--kcontrol/konqhtml/policydlg.cpp128
-rw-r--r--kcontrol/konqhtml/policydlg.h130
-rw-r--r--kcontrol/konqhtml/uninstall.desktop2
-rw-r--r--kcontrol/konsole/AUTHORS2
-rw-r--r--kcontrol/konsole/Makefile.am18
-rw-r--r--kcontrol/konsole/kcmkonsole.cpp191
-rw-r--r--kcontrol/konsole/kcmkonsole.desktop185
-rw-r--r--kcontrol/konsole/kcmkonsole.h46
-rw-r--r--kcontrol/konsole/kcmkonsoledialog.ui390
-rw-r--r--kcontrol/konsole/schemadialog.ui631
-rw-r--r--kcontrol/konsole/schemaeditor.cpp708
-rw-r--r--kcontrol/konsole/schemaeditor.h84
-rw-r--r--kcontrol/konsole/sessiondialog.ui446
-rw-r--r--kcontrol/konsole/sessioneditor.cpp383
-rw-r--r--kcontrol/konsole/sessioneditor.h68
-rw-r--r--kcontrol/krdb/AUTHORS9
-rw-r--r--kcontrol/krdb/Makefile.am15
-rw-r--r--kcontrol/krdb/ad/AAAAAAGeneral.ad2
-rw-r--r--kcontrol/krdb/ad/AAAMotif.ad74
-rw-r--r--kcontrol/krdb/ad/AAATk.ad107
-rw-r--r--kcontrol/krdb/ad/AAAXaw.ad36
-rw-r--r--kcontrol/krdb/ad/AcroRead.ad8
-rw-r--r--kcontrol/krdb/ad/Editres.ad5
-rw-r--r--kcontrol/krdb/ad/Emacs.ad17
-rw-r--r--kcontrol/krdb/ad/GV.ad1
-rw-r--r--kcontrol/krdb/ad/ML.ad36
-rw-r--r--kcontrol/krdb/ad/Makefile.am13
-rw-r--r--kcontrol/krdb/ad/Nedit.ad2
-rw-r--r--kcontrol/krdb/ad/Netscape.ad25
-rw-r--r--kcontrol/krdb/ad/README63
-rw-r--r--kcontrol/krdb/ad/RVPlayer.ad40
-rw-r--r--kcontrol/krdb/ad/WPerfect.ad69
-rw-r--r--kcontrol/krdb/ad/XCalc.ad7
-rw-r--r--kcontrol/krdb/ad/XOsview.ad5
-rw-r--r--kcontrol/krdb/ad/XTerm.ad4
-rw-r--r--kcontrol/krdb/ad/XV.ad2
-rw-r--r--kcontrol/krdb/ad/Xawtv.ad10
-rw-r--r--kcontrol/krdb/ad/Xdvi.ad1
-rw-r--r--kcontrol/krdb/ad/Xpdf.ad3
-rwxr-xr-xkcontrol/krdb/ad/krdb4
-rw-r--r--kcontrol/krdb/kcmdisplayrc.upd7
-rw-r--r--kcontrol/krdb/kcs/AtlasGreen.kcsrc83
-rw-r--r--kcontrol/krdb/kcs/BeOS.kcsrc26
-rw-r--r--kcontrol/krdb/kcs/BlackOnWhite.kcsrc89
-rw-r--r--kcontrol/krdb/kcs/BlueSlate.kcsrc87
-rw-r--r--kcontrol/krdb/kcs/CDE.kcsrc26
-rw-r--r--kcontrol/krdb/kcs/DarkBlue.kcsrc98
-rw-r--r--kcontrol/krdb/kcs/DesertRed.kcsrc89
-rw-r--r--kcontrol/krdb/kcs/DigitalCDE.kcsrc69
-rw-r--r--kcontrol/krdb/kcs/EveX.kcsrc27
-rw-r--r--kcontrol/krdb/kcs/KDEOne.kcsrc30
-rw-r--r--kcontrol/krdb/kcs/KDETwo.kcsrc28
-rw-r--r--kcontrol/krdb/kcs/Keramik.kcsrc49
-rw-r--r--kcontrol/krdb/kcs/KeramikEmerald.kcsrc73
-rw-r--r--kcontrol/krdb/kcs/KeramikWhite.kcsrc91
-rw-r--r--kcontrol/krdb/kcs/Makefile.am12
-rw-r--r--kcontrol/krdb/kcs/MediaPeach.kcsrc60
-rw-r--r--kcontrol/krdb/kcs/Next.kcsrc53
-rw-r--r--kcontrol/krdb/kcs/PaleGray.kcsrc90
-rw-r--r--kcontrol/krdb/kcs/Plastik.kcsrc55
-rw-r--r--kcontrol/krdb/kcs/PointReyesGreen.kcsrc75
-rw-r--r--kcontrol/krdb/kcs/Pumpkin.kcsrc87
-rw-r--r--kcontrol/krdb/kcs/SolarisCDE.kcsrc38
-rw-r--r--kcontrol/krdb/kcs/Storm.kcsrc84
-rw-r--r--kcontrol/krdb/kcs/System.kcsrc99
-rw-r--r--kcontrol/krdb/kcs/WhiteOnBlack.kcsrc88
-rw-r--r--kcontrol/krdb/kcs/Windows2000.kcsrc36
-rw-r--r--kcontrol/krdb/kcs/Windows95.kcsrc33
-rw-r--r--kcontrol/krdb/kcs/WindowsXP.kcsrc36
-rw-r--r--kcontrol/krdb/kcs/YellowOnBlue.kcsrc89
-rw-r--r--kcontrol/krdb/krdb.cpp612
-rw-r--r--kcontrol/krdb/krdb.h33
-rw-r--r--kcontrol/krdb/pics/Makefile.am6
-rw-r--r--kcontrol/krdb/pics/lo-energy.pngbin0 -> 2253 bytes
-rw-r--r--kcontrol/krdb/pics/logo.pngbin0 -> 950 bytes
-rw-r--r--kcontrol/krdb/pics/mini-world.pngbin0 -> 1036 bytes
-rw-r--r--kcontrol/krdb/themes/HighContrastDark-big/HighContrastDark-big.preview.pngbin0 -> 8114 bytes
-rw-r--r--kcontrol/krdb/themes/HighContrastDark-big/HighContrastDark-big.xml158
-rw-r--r--kcontrol/krdb/themes/HighContrastDark-big/Makefile.am6
-rw-r--r--kcontrol/krdb/themes/HighContrastDark/HighContrastDark.preview.pngbin0 -> 6458 bytes
-rw-r--r--kcontrol/krdb/themes/HighContrastDark/HighContrastDark.xml158
-rw-r--r--kcontrol/krdb/themes/HighContrastDark/Makefile.am6
-rw-r--r--kcontrol/krdb/themes/HighContrastLight-big/HighContrastLight-big.preview.pngbin0 -> 50340 bytes
-rw-r--r--kcontrol/krdb/themes/HighContrastLight-big/HighContrastLight-big.xml158
-rw-r--r--kcontrol/krdb/themes/HighContrastLight-big/Makefile.am6
-rw-r--r--kcontrol/krdb/themes/HighContrastLight/HighContrastLight.preview.pngbin0 -> 48622 bytes
-rw-r--r--kcontrol/krdb/themes/HighContrastLight/HighContrastLight.xml158
-rw-r--r--kcontrol/krdb/themes/HighContrastLight/Makefile.am6
-rw-r--r--kcontrol/krdb/themes/KDE_Classic/KDE_Classic.preview.pngbin0 -> 41158 bytes
-rw-r--r--kcontrol/krdb/themes/KDE_Classic/KDE_Classic.xml124
-rw-r--r--kcontrol/krdb/themes/KDE_Classic/Makefile.am6
-rw-r--r--kcontrol/krdb/themes/Keramik/Keramik.preview.pngbin0 -> 44723 bytes
-rw-r--r--kcontrol/krdb/themes/Keramik/Keramik.xml124
-rw-r--r--kcontrol/krdb/themes/Keramik/Makefile.am6
-rw-r--r--kcontrol/krdb/themes/Makefile.am4
-rw-r--r--kcontrol/krdb/themes/Plastik/Makefile.am6
-rw-r--r--kcontrol/krdb/themes/Plastik/Plastik.preview.pngbin0 -> 40876 bytes
-rw-r--r--kcontrol/krdb/themes/Plastik/Plastik.xml124
-rw-r--r--kcontrol/krdb/themes/Platinum/Makefile.am6
-rw-r--r--kcontrol/krdb/themes/Platinum/Platinum.preview.pngbin0 -> 35500 bytes
-rw-r--r--kcontrol/krdb/themes/Platinum/Platinum.xml124
-rw-r--r--kcontrol/krdb/themes/Redmond/Makefile.am6
-rw-r--r--kcontrol/krdb/themes/Redmond/Redmond.preview.pngbin0 -> 34212 bytes
-rw-r--r--kcontrol/krdb/themes/Redmond/Redmond.xml124
-rw-r--r--kcontrol/krdb/themes/Sunshine/Makefile.am6
-rw-r--r--kcontrol/krdb/themes/Sunshine/Sunshine.preview.pngbin0 -> 32852 bytes
-rw-r--r--kcontrol/krdb/themes/Sunshine/Sunshine.xml124
-rw-r--r--kcontrol/krdb/themes/YellowOnBlue-big/Makefile.am6
-rw-r--r--kcontrol/krdb/themes/YellowOnBlue-big/YellowOnBlue-big.preview.pngbin0 -> 60912 bytes
-rw-r--r--kcontrol/krdb/themes/YellowOnBlue-big/YellowOnBlue-big.xml158
-rw-r--r--kcontrol/krdb/themes/YellowOnBlue/Makefile.am6
-rw-r--r--kcontrol/krdb/themes/YellowOnBlue/YellowOnBlue.preview.pngbin0 -> 58587 bytes
-rw-r--r--kcontrol/krdb/themes/YellowOnBlue/YellowOnBlue.xml158
-rw-r--r--kcontrol/kthememanager/Makefile.am21
-rw-r--r--kcontrol/kthememanager/NEWS26
-rw-r--r--kcontrol/kthememanager/README99
-rw-r--r--kcontrol/kthememanager/TODO9
-rw-r--r--kcontrol/kthememanager/installktheme.desktop78
-rwxr-xr-xkcontrol/kthememanager/kdeinstallktheme14
-rw-r--r--kcontrol/kthememanager/knewthemedlg.cpp96
-rw-r--r--kcontrol/kthememanager/knewthemedlg.h58
-rw-r--r--kcontrol/kthememanager/ktheme.cpp897
-rw-r--r--kcontrol/kthememanager/ktheme.h224
-rw-r--r--kcontrol/kthememanager/kthemedlg.ui518
-rw-r--r--kcontrol/kthememanager/kthemedlg.ui.h49
-rw-r--r--kcontrol/kthememanager/kthememanager.cpp425
-rw-r--r--kcontrol/kthememanager/kthememanager.desktop220
-rw-r--r--kcontrol/kthememanager/kthememanager.h157
-rw-r--r--kcontrol/kthememanager/newthemewidget.ui130
-rw-r--r--kcontrol/kthememanager/x-ktheme.desktop84
-rw-r--r--kcontrol/launch/Makefile.am13
-rw-r--r--kcontrol/launch/kcmlaunch.cpp275
-rw-r--r--kcontrol/launch/kcmlaunch.desktop225
-rw-r--r--kcontrol/launch/kcmlaunch.h72
-rw-r--r--kcontrol/locale/AUTHORS2
-rw-r--r--kcontrol/locale/Makefile.am32
-rw-r--r--kcontrol/locale/TIMEZONES392
-rw-r--r--kcontrol/locale/default/Makefile.am2
-rw-r--r--kcontrol/locale/default/entry.desktop72
-rw-r--r--kcontrol/locale/kcmlocale.cpp473
-rw-r--r--kcontrol/locale/kcmlocale.h95
-rw-r--r--kcontrol/locale/klocalesample.cpp132
-rw-r--r--kcontrol/locale/klocalesample.h58
-rw-r--r--kcontrol/locale/language.desktop236
-rw-r--r--kcontrol/locale/localemon.cpp330
-rw-r--r--kcontrol/locale/localemon.h93
-rw-r--r--kcontrol/locale/localenum.cpp194
-rw-r--r--kcontrol/locale/localenum.h82
-rw-r--r--kcontrol/locale/localeother.cpp142
-rw-r--r--kcontrol/locale/localeother.h70
-rw-r--r--kcontrol/locale/localetime.cpp556
-rw-r--r--kcontrol/locale/localetime.h102
-rw-r--r--kcontrol/locale/main.cpp38
-rw-r--r--kcontrol/locale/pics/Makefile.am2
-rw-r--r--kcontrol/locale/pics/background.pngbin0 -> 28823 bytes
-rw-r--r--kcontrol/locale/toplevel.cpp276
-rw-r--r--kcontrol/locale/toplevel.h87
-rw-r--r--kcontrol/nics/AUTHORS2
-rw-r--r--kcontrol/nics/Makefile.am15
-rw-r--r--kcontrol/nics/configure.in.in4
-rw-r--r--kcontrol/nics/nic.cpp323
-rw-r--r--kcontrol/nics/nic.desktop173
-rw-r--r--kcontrol/nics/nic.h45
-rw-r--r--kcontrol/performance/Makefile.am20
-rw-r--r--kcontrol/performance/kcmkonqyperformance.desktop207
-rw-r--r--kcontrol/performance/kcmperformance.cpp126
-rw-r--r--kcontrol/performance/kcmperformance.desktop215
-rw-r--r--kcontrol/performance/kcmperformance.h61
-rw-r--r--kcontrol/performance/konqueror.cpp147
-rw-r--r--kcontrol/performance/konqueror.h46
-rw-r--r--kcontrol/performance/konqueror_ui.ui155
-rw-r--r--kcontrol/performance/system.cpp80
-rw-r--r--kcontrol/performance/system.h44
-rw-r--r--kcontrol/performance/system_ui.ui69
-rw-r--r--kcontrol/pics/Makefile.am1
-rw-r--r--kcontrol/pics/cr128-app-access.pngbin0 -> 7576 bytes
-rw-r--r--kcontrol/pics/cr128-app-arts.pngbin0 -> 10542 bytes
-rw-r--r--kcontrol/pics/cr128-app-background.pngbin0 -> 10885 bytes
-rw-r--r--kcontrol/pics/cr128-app-bell.pngbin0 -> 7039 bytes
-rw-r--r--kcontrol/pics/cr128-app-cache.pngbin0 -> 9342 bytes
-rw-r--r--kcontrol/pics/cr128-app-clock.pngbin0 -> 17753 bytes
-rw-r--r--kcontrol/pics/cr128-app-colors.pngbin0 -> 14715 bytes
-rw-r--r--kcontrol/pics/cr128-app-date.pngbin0 -> 14176 bytes
-rw-r--r--kcontrol/pics/cr128-app-energy.pngbin0 -> 13774 bytes
-rw-r--r--kcontrol/pics/cr128-app-energy_star.pngbin0 -> 11541 bytes
-rw-r--r--kcontrol/pics/cr128-app-filetypes.pngbin0 -> 10583 bytes
-rw-r--r--kcontrol/pics/cr128-app-fonts.pngbin0 -> 4531 bytes
-rw-r--r--kcontrol/pics/cr128-app-help_index.pngbin0 -> 12683 bytes
-rw-r--r--kcontrol/pics/cr128-app-hwinfo.pngbin0 -> 8659 bytes
-rw-r--r--kcontrol/pics/cr128-app-kcmdevices.pngbin0 -> 10903 bytes
-rw-r--r--kcontrol/pics/cr128-app-kcmdf.pngbin0 -> 11838 bytes
-rw-r--r--kcontrol/pics/cr128-app-kcmkwm.pngbin0 -> 6787 bytes
-rw-r--r--kcontrol/pics/cr128-app-kcmmemory.pngbin0 -> 14318 bytes
-rw-r--r--kcontrol/pics/cr128-app-kcmpartitions.pngbin0 -> 16732 bytes
-rw-r--r--kcontrol/pics/cr128-app-kcmpci.pngbin0 -> 5796 bytes
-rw-r--r--kcontrol/pics/cr128-app-kdmconfig.pngbin0 -> 15977 bytes
-rw-r--r--kcontrol/pics/cr128-app-key_bindings.pngbin0 -> 6037 bytes
-rw-r--r--kcontrol/pics/cr128-app-kscreensaver.pngbin0 -> 7140 bytes
-rw-r--r--kcontrol/pics/cr128-app-kthememgr.pngbin0 -> 10328 bytes
-rw-r--r--kcontrol/pics/cr128-app-locale.pngbin0 -> 12910 bytes
-rw-r--r--kcontrol/pics/cr128-app-looknfeel.pngbin0 -> 12473 bytes
-rw-r--r--kcontrol/pics/cr128-app-multimedia.pngbin0 -> 12886 bytes
-rw-r--r--kcontrol/pics/cr128-app-personal.pngbin0 -> 13247 bytes
-rw-r--r--kcontrol/pics/cr128-app-proxy.pngbin0 -> 12824 bytes
-rw-r--r--kcontrol/pics/cr128-app-samba.pngbin0 -> 7617 bytes
-rw-r--r--kcontrol/pics/cr128-app-stylesheet.pngbin0 -> 6513 bytes
-rw-r--r--kcontrol/pics/cr128-device-laptop.pngbin0 -> 13375 bytes
-rw-r--r--kcontrol/pics/cr16-app-access.pngbin0 -> 1022 bytes
-rw-r--r--kcontrol/pics/cr16-app-agent.pngbin0 -> 828 bytes
-rw-r--r--kcontrol/pics/cr16-app-arts.pngbin0 -> 898 bytes
-rw-r--r--kcontrol/pics/cr16-app-background.pngbin0 -> 733 bytes
-rw-r--r--kcontrol/pics/cr16-app-bell.pngbin0 -> 639 bytes
-rw-r--r--kcontrol/pics/cr16-app-cache.pngbin0 -> 823 bytes
-rw-r--r--kcontrol/pics/cr16-app-clock.pngbin0 -> 875 bytes
-rw-r--r--kcontrol/pics/cr16-app-colors.pngbin0 -> 857 bytes
-rw-r--r--kcontrol/pics/cr16-app-cookie.pngbin0 -> 840 bytes
-rw-r--r--kcontrol/pics/cr16-app-date.pngbin0 -> 871 bytes
-rw-r--r--kcontrol/pics/cr16-app-energy.pngbin0 -> 869 bytes
-rw-r--r--kcontrol/pics/cr16-app-energy_star.pngbin0 -> 708 bytes
-rw-r--r--kcontrol/pics/cr16-app-enhanced_browsing.pngbin0 -> 726 bytes
-rw-r--r--kcontrol/pics/cr16-app-filetypes.pngbin0 -> 954 bytes
-rw-r--r--kcontrol/pics/cr16-app-fonts.pngbin0 -> 718 bytes
-rw-r--r--kcontrol/pics/cr16-app-help_index.pngbin0 -> 975 bytes
-rw-r--r--kcontrol/pics/cr16-app-hwinfo.pngbin0 -> 1092 bytes
-rw-r--r--kcontrol/pics/cr16-app-icons.pngbin0 -> 927 bytes
-rw-r--r--kcontrol/pics/cr16-app-iconthemes.pngbin0 -> 828 bytes
-rw-r--r--kcontrol/pics/cr16-app-ieee1394.pngbin0 -> 668 bytes
-rw-r--r--kcontrol/pics/cr16-app-input_devices_settings.pngbin0 -> 1035 bytes
-rw-r--r--kcontrol/pics/cr16-app-kcmdevices.pngbin0 -> 879 bytes
-rw-r--r--kcontrol/pics/cr16-app-kcmkicker.pngbin0 -> 805 bytes
-rw-r--r--kcontrol/pics/cr16-app-kcmkwm.pngbin0 -> 714 bytes
-rw-r--r--kcontrol/pics/cr16-app-kcmmemory.pngbin0 -> 931 bytes
-rw-r--r--kcontrol/pics/cr16-app-kcmmidi.pngbin0 -> 582 bytes
-rw-r--r--kcontrol/pics/cr16-app-kcmpartitions.pngbin0 -> 882 bytes
-rw-r--r--kcontrol/pics/cr16-app-kcmpci.pngbin0 -> 836 bytes
-rw-r--r--kcontrol/pics/cr16-app-kcmprocessor.pngbin0 -> 400 bytes
-rw-r--r--kcontrol/pics/cr16-app-kcmscsi.pngbin0 -> 976 bytes
-rw-r--r--kcontrol/pics/cr16-app-kcmsound.pngbin0 -> 988 bytes
-rw-r--r--kcontrol/pics/cr16-app-kcmsystem.pngbin0 -> 903 bytes
-rw-r--r--kcontrol/pics/cr16-app-kcmx.pngbin0 -> 790 bytes
-rw-r--r--kcontrol/pics/cr16-app-kdmconfig.pngbin0 -> 868 bytes
-rw-r--r--kcontrol/pics/cr16-app-key_bindings.pngbin0 -> 710 bytes
-rw-r--r--kcontrol/pics/cr16-app-keyboard.pngbin0 -> 661 bytes
-rw-r--r--kcontrol/pics/cr16-app-keyboard_layout.pngbin0 -> 871 bytes
-rw-r--r--kcontrol/pics/cr16-app-knotify.pngbin0 -> 657 bytes
-rw-r--r--kcontrol/pics/cr16-app-kscreensaver.pngbin0 -> 707 bytes
-rw-r--r--kcontrol/pics/cr16-app-kthememgr.pngbin0 -> 939 bytes
-rw-r--r--kcontrol/pics/cr16-app-locale.pngbin0 -> 811 bytes
-rw-r--r--kcontrol/pics/cr16-app-looknfeel.pngbin0 -> 842 bytes
-rw-r--r--kcontrol/pics/cr16-app-multimedia.pngbin0 -> 830 bytes
-rw-r--r--kcontrol/pics/cr16-app-panel_settings.pngbin0 -> 933 bytes
-rw-r--r--kcontrol/pics/cr16-app-personal.pngbin0 -> 753 bytes
-rw-r--r--kcontrol/pics/cr16-app-proxy.pngbin0 -> 866 bytes
-rw-r--r--kcontrol/pics/cr16-app-samba.pngbin0 -> 652 bytes
-rw-r--r--kcontrol/pics/cr16-app-style.pngbin0 -> 907 bytes
-rw-r--r--kcontrol/pics/cr16-app-stylesheet.pngbin0 -> 810 bytes
-rw-r--r--kcontrol/pics/cr16-app-usb.pngbin0 -> 695 bytes
-rw-r--r--kcontrol/pics/cr16-device-laptop.pngbin0 -> 883 bytes
-rw-r--r--kcontrol/pics/cr22-app-access.pngbin0 -> 1030 bytes
-rw-r--r--kcontrol/pics/cr22-app-agent.pngbin0 -> 1241 bytes
-rw-r--r--kcontrol/pics/cr22-app-arts.pngbin0 -> 1244 bytes
-rw-r--r--kcontrol/pics/cr22-app-background.pngbin0 -> 980 bytes
-rw-r--r--kcontrol/pics/cr22-app-bell.pngbin0 -> 824 bytes
-rw-r--r--kcontrol/pics/cr22-app-cache.pngbin0 -> 1192 bytes
-rw-r--r--kcontrol/pics/cr22-app-colors.pngbin0 -> 1304 bytes
-rw-r--r--kcontrol/pics/cr22-app-cookie.pngbin0 -> 1157 bytes
-rw-r--r--kcontrol/pics/cr22-app-date.pngbin0 -> 1385 bytes
-rw-r--r--kcontrol/pics/cr22-app-energy.pngbin0 -> 1316 bytes
-rw-r--r--kcontrol/pics/cr22-app-enhanced_browsing.pngbin0 -> 948 bytes
-rw-r--r--kcontrol/pics/cr22-app-filetypes.pngbin0 -> 1163 bytes
-rw-r--r--kcontrol/pics/cr22-app-fonts.pngbin0 -> 952 bytes
-rw-r--r--kcontrol/pics/cr22-app-hwinfo.pngbin0 -> 1288 bytes
-rw-r--r--kcontrol/pics/cr22-app-icons.pngbin0 -> 1459 bytes
-rw-r--r--kcontrol/pics/cr22-app-iconthemes.pngbin0 -> 1164 bytes
-rw-r--r--kcontrol/pics/cr22-app-ieee1394.pngbin0 -> 953 bytes
-rw-r--r--kcontrol/pics/cr22-app-kcmdevices.pngbin0 -> 1110 bytes
-rw-r--r--kcontrol/pics/cr22-app-kcmkicker.pngbin0 -> 1017 bytes
-rw-r--r--kcontrol/pics/cr22-app-kcmkwm.pngbin0 -> 969 bytes
-rw-r--r--kcontrol/pics/cr22-app-kcmx.pngbin0 -> 1096 bytes
-rw-r--r--kcontrol/pics/cr22-app-kdmconfig.pngbin0 -> 1363 bytes
-rw-r--r--kcontrol/pics/cr22-app-key_bindings.pngbin0 -> 978 bytes
-rw-r--r--kcontrol/pics/cr22-app-keyboard.pngbin0 -> 914 bytes
-rw-r--r--kcontrol/pics/cr22-app-kscreensaver.pngbin0 -> 1058 bytes
-rw-r--r--kcontrol/pics/cr22-app-kthememgr.pngbin0 -> 1104 bytes
-rw-r--r--kcontrol/pics/cr22-app-locale.pngbin0 -> 1319 bytes
-rw-r--r--kcontrol/pics/cr22-app-personal.pngbin0 -> 1238 bytes
-rw-r--r--kcontrol/pics/cr22-app-proxy.pngbin0 -> 1500 bytes
-rw-r--r--kcontrol/pics/cr22-app-samba.pngbin0 -> 928 bytes
-rw-r--r--kcontrol/pics/cr22-app-style.pngbin0 -> 1098 bytes
-rw-r--r--kcontrol/pics/cr22-app-stylesheet.pngbin0 -> 1059 bytes
-rw-r--r--kcontrol/pics/cr22-device-laptop.pngbin0 -> 1383 bytes
-rw-r--r--kcontrol/pics/cr32-app-access.pngbin0 -> 1619 bytes
-rw-r--r--kcontrol/pics/cr32-app-agent.pngbin0 -> 2606 bytes
-rw-r--r--kcontrol/pics/cr32-app-arts.pngbin0 -> 2164 bytes
-rw-r--r--kcontrol/pics/cr32-app-background.pngbin0 -> 1787 bytes
-rw-r--r--kcontrol/pics/cr32-app-bell.pngbin0 -> 1496 bytes
-rw-r--r--kcontrol/pics/cr32-app-cache.pngbin0 -> 2063 bytes
-rw-r--r--kcontrol/pics/cr32-app-clock.pngbin0 -> 2458 bytes
-rw-r--r--kcontrol/pics/cr32-app-colors.pngbin0 -> 2295 bytes
-rw-r--r--kcontrol/pics/cr32-app-cookie.pngbin0 -> 2524 bytes
-rw-r--r--kcontrol/pics/cr32-app-date.pngbin0 -> 2478 bytes
-rw-r--r--kcontrol/pics/cr32-app-energy.pngbin0 -> 2218 bytes
-rw-r--r--kcontrol/pics/cr32-app-energy_star.pngbin0 -> 1935 bytes
-rw-r--r--kcontrol/pics/cr32-app-enhanced_browsing.pngbin0 -> 1706 bytes
-rw-r--r--kcontrol/pics/cr32-app-filetypes.pngbin0 -> 2130 bytes
-rw-r--r--kcontrol/pics/cr32-app-fonts.pngbin0 -> 1336 bytes
-rw-r--r--kcontrol/pics/cr32-app-help_index.pngbin0 -> 2130 bytes
-rw-r--r--kcontrol/pics/cr32-app-hwinfo.pngbin0 -> 1838 bytes
-rw-r--r--kcontrol/pics/cr32-app-icons.pngbin0 -> 2853 bytes
-rw-r--r--kcontrol/pics/cr32-app-iconthemes.pngbin0 -> 2386 bytes
-rw-r--r--kcontrol/pics/cr32-app-ieee1394.pngbin0 -> 1414 bytes
-rw-r--r--kcontrol/pics/cr32-app-input_devices_settings.pngbin0 -> 2815 bytes
-rw-r--r--kcontrol/pics/cr32-app-kcmdevices.pngbin0 -> 1825 bytes
-rw-r--r--kcontrol/pics/cr32-app-kcmdrkonqi.pngbin0 -> 1834 bytes
-rw-r--r--kcontrol/pics/cr32-app-kcmkicker.pngbin0 -> 1921 bytes
-rw-r--r--kcontrol/pics/cr32-app-kcmkwm.pngbin0 -> 1405 bytes
-rw-r--r--kcontrol/pics/cr32-app-kcmmemory.pngbin0 -> 2205 bytes
-rw-r--r--kcontrol/pics/cr32-app-kcmmidi.pngbin0 -> 1160 bytes
-rw-r--r--kcontrol/pics/cr32-app-kcmpartitions.pngbin0 -> 2481 bytes
-rw-r--r--kcontrol/pics/cr32-app-kcmpci.pngbin0 -> 1319 bytes
-rw-r--r--kcontrol/pics/cr32-app-kcmprocessor.pngbin0 -> 636 bytes
-rw-r--r--kcontrol/pics/cr32-app-kcmscsi.pngbin0 -> 2538 bytes
-rw-r--r--kcontrol/pics/cr32-app-kcmsound.pngbin0 -> 2465 bytes
-rw-r--r--kcontrol/pics/cr32-app-kcmsystem.pngbin0 -> 2381 bytes
-rw-r--r--kcontrol/pics/cr32-app-kcmx.pngbin0 -> 2169 bytes
-rw-r--r--kcontrol/pics/cr32-app-kdmconfig.pngbin0 -> 2280 bytes
-rw-r--r--kcontrol/pics/cr32-app-key_bindings.pngbin0 -> 1605 bytes
-rw-r--r--kcontrol/pics/cr32-app-keyboard.pngbin0 -> 1372 bytes
-rw-r--r--kcontrol/pics/cr32-app-keyboard_layout.pngbin0 -> 2413 bytes
-rw-r--r--kcontrol/pics/cr32-app-knotify.pngbin0 -> 1488 bytes
-rw-r--r--kcontrol/pics/cr32-app-kscreensaver.pngbin0 -> 1663 bytes
-rw-r--r--kcontrol/pics/cr32-app-kthememgr.pngbin0 -> 1966 bytes
-rw-r--r--kcontrol/pics/cr32-app-locale.pngbin0 -> 2252 bytes
-rw-r--r--kcontrol/pics/cr32-app-looknfeel.pngbin0 -> 2135 bytes
-rw-r--r--kcontrol/pics/cr32-app-multimedia.pngbin0 -> 1988 bytes
-rw-r--r--kcontrol/pics/cr32-app-personal.pngbin0 -> 1914 bytes
-rw-r--r--kcontrol/pics/cr32-app-proxy.pngbin0 -> 2225 bytes
-rw-r--r--kcontrol/pics/cr32-app-samba.pngbin0 -> 1521 bytes
-rw-r--r--kcontrol/pics/cr32-app-style.pngbin0 -> 1883 bytes
-rw-r--r--kcontrol/pics/cr32-app-stylesheet.pngbin0 -> 1837 bytes
-rw-r--r--kcontrol/pics/cr32-app-usb.pngbin0 -> 1889 bytes
-rw-r--r--kcontrol/pics/cr32-device-laptop.pngbin0 -> 2473 bytes
-rw-r--r--kcontrol/pics/cr48-app-access.pngbin0 -> 2605 bytes
-rw-r--r--kcontrol/pics/cr48-app-agent.pngbin0 -> 4149 bytes
-rw-r--r--kcontrol/pics/cr48-app-arts.pngbin0 -> 3746 bytes
-rw-r--r--kcontrol/pics/cr48-app-background.pngbin0 -> 3242 bytes
-rw-r--r--kcontrol/pics/cr48-app-bell.pngbin0 -> 2287 bytes
-rw-r--r--kcontrol/pics/cr48-app-cache.pngbin0 -> 3350 bytes
-rw-r--r--kcontrol/pics/cr48-app-clock.pngbin0 -> 4736 bytes
-rw-r--r--kcontrol/pics/cr48-app-colors.pngbin0 -> 4226 bytes
-rw-r--r--kcontrol/pics/cr48-app-cookie.pngbin0 -> 4296 bytes
-rw-r--r--kcontrol/pics/cr48-app-date.pngbin0 -> 4593 bytes
-rw-r--r--kcontrol/pics/cr48-app-energy.pngbin0 -> 3913 bytes
-rw-r--r--kcontrol/pics/cr48-app-energy_star.pngbin0 -> 3573 bytes
-rw-r--r--kcontrol/pics/cr48-app-enhanced_browsing.pngbin0 -> 2844 bytes
-rw-r--r--kcontrol/pics/cr48-app-filetypes.pngbin0 -> 3368 bytes
-rw-r--r--kcontrol/pics/cr48-app-fonts.pngbin0 -> 1833 bytes
-rw-r--r--kcontrol/pics/cr48-app-help_index.pngbin0 -> 3812 bytes
-rw-r--r--kcontrol/pics/cr48-app-hwinfo.pngbin0 -> 2955 bytes
-rw-r--r--kcontrol/pics/cr48-app-icons.pngbin0 -> 4794 bytes
-rw-r--r--kcontrol/pics/cr48-app-iconthemes.pngbin0 -> 3371 bytes
-rw-r--r--kcontrol/pics/cr48-app-ieee1394.pngbin0 -> 2158 bytes
-rw-r--r--kcontrol/pics/cr48-app-input_devices_settings.pngbin0 -> 3451 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmdevices.pngbin0 -> 3452 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmdf.pngbin0 -> 3510 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmdrkonqi.pngbin0 -> 2647 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmkwm.pngbin0 -> 2253 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmmemory.pngbin0 -> 4100 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmmidi.pngbin0 -> 1639 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmopengl.pngbin0 -> 1129 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmpartitions.pngbin0 -> 4689 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmpci.pngbin0 -> 2140 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmprocessor.pngbin0 -> 966 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmscsi.pngbin0 -> 3977 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmsystem.pngbin0 -> 4135 bytes
-rw-r--r--kcontrol/pics/cr48-app-kcmx.pngbin0 -> 3747 bytes
-rw-r--r--kcontrol/pics/cr48-app-kdmconfig.pngbin0 -> 4151 bytes
-rw-r--r--kcontrol/pics/cr48-app-key_bindings.pngbin0 -> 2569 bytes
-rw-r--r--kcontrol/pics/cr48-app-keyboard.pngbin0 -> 2195 bytes
-rw-r--r--kcontrol/pics/cr48-app-keyboard_layout.pngbin0 -> 4266 bytes
-rw-r--r--kcontrol/pics/cr48-app-knotify.pngbin0 -> 2357 bytes
-rw-r--r--kcontrol/pics/cr48-app-kscreensaver.pngbin0 -> 2777 bytes
-rw-r--r--kcontrol/pics/cr48-app-kthememgr.pngbin0 -> 3115 bytes
-rw-r--r--kcontrol/pics/cr48-app-locale.pngbin0 -> 4018 bytes
-rw-r--r--kcontrol/pics/cr48-app-looknfeel.pngbin0 -> 3829 bytes
-rw-r--r--kcontrol/pics/cr48-app-multimedia.pngbin0 -> 3703 bytes
-rw-r--r--kcontrol/pics/cr48-app-personal.pngbin0 -> 3404 bytes
-rw-r--r--kcontrol/pics/cr48-app-proxy.pngbin0 -> 3921 bytes
-rw-r--r--kcontrol/pics/cr48-app-samba.pngbin0 -> 2401 bytes
-rw-r--r--kcontrol/pics/cr48-app-style.pngbin0 -> 3110 bytes
-rw-r--r--kcontrol/pics/cr48-app-stylesheet.pngbin0 -> 3179 bytes
-rw-r--r--kcontrol/pics/cr48-app-usb.pngbin0 -> 3134 bytes
-rw-r--r--kcontrol/pics/cr48-device-laptop.pngbin0 -> 4220 bytes
-rw-r--r--kcontrol/pics/cr64-app-access.pngbin0 -> 3637 bytes
-rw-r--r--kcontrol/pics/cr64-app-arts.pngbin0 -> 5198 bytes
-rw-r--r--kcontrol/pics/cr64-app-background.pngbin0 -> 4447 bytes
-rw-r--r--kcontrol/pics/cr64-app-bell.pngbin0 -> 3238 bytes
-rw-r--r--kcontrol/pics/cr64-app-cache.pngbin0 -> 4681 bytes
-rw-r--r--kcontrol/pics/cr64-app-clock.pngbin0 -> 7240 bytes
-rw-r--r--kcontrol/pics/cr64-app-colors.pngbin0 -> 5874 bytes
-rw-r--r--kcontrol/pics/cr64-app-cookie.pngbin0 -> 5950 bytes
-rw-r--r--kcontrol/pics/cr64-app-date.pngbin0 -> 6801 bytes
-rw-r--r--kcontrol/pics/cr64-app-energy.pngbin0 -> 5681 bytes
-rw-r--r--kcontrol/pics/cr64-app-energy_star.pngbin0 -> 5336 bytes
-rw-r--r--kcontrol/pics/cr64-app-enhanced_browsing.pngbin0 -> 4165 bytes
-rw-r--r--kcontrol/pics/cr64-app-filetypes.pngbin0 -> 4782 bytes
-rw-r--r--kcontrol/pics/cr64-app-fonts.pngbin0 -> 2896 bytes
-rw-r--r--kcontrol/pics/cr64-app-help_index.pngbin0 -> 5648 bytes
-rw-r--r--kcontrol/pics/cr64-app-hwinfo.pngbin0 -> 4142 bytes
-rw-r--r--kcontrol/pics/cr64-app-icons.pngbin0 -> 7051 bytes
-rw-r--r--kcontrol/pics/cr64-app-ieee1394.pngbin0 -> 2891 bytes
-rw-r--r--kcontrol/pics/cr64-app-kcmdevices.pngbin0 -> 4255 bytes
-rw-r--r--kcontrol/pics/cr64-app-kcmdf.pngbin0 -> 5185 bytes
-rw-r--r--kcontrol/pics/cr64-app-kcmkwm.pngbin0 -> 3091 bytes
-rw-r--r--kcontrol/pics/cr64-app-kcmmemory.pngbin0 -> 6001 bytes
-rw-r--r--kcontrol/pics/cr64-app-kcmpartitions.pngbin0 -> 6844 bytes
-rw-r--r--kcontrol/pics/cr64-app-kcmpci.pngbin0 -> 2743 bytes
-rw-r--r--kcontrol/pics/cr64-app-kcmx.pngbin0 -> 5495 bytes
-rw-r--r--kcontrol/pics/cr64-app-kdmconfig.pngbin0 -> 6154 bytes
-rw-r--r--kcontrol/pics/cr64-app-key_bindings.pngbin0 -> 3430 bytes
-rw-r--r--kcontrol/pics/cr64-app-knotify.pngbin0 -> 3285 bytes
-rw-r--r--kcontrol/pics/cr64-app-kscreensaver.pngbin0 -> 3703 bytes
-rw-r--r--kcontrol/pics/cr64-app-kthememgr.pngbin0 -> 4511 bytes
-rw-r--r--kcontrol/pics/cr64-app-locale.pngbin0 -> 5906 bytes
-rw-r--r--kcontrol/pics/cr64-app-looknfeel.pngbin0 -> 5513 bytes
-rw-r--r--kcontrol/pics/cr64-app-multimedia.pngbin0 -> 5049 bytes
-rw-r--r--kcontrol/pics/cr64-app-personal.pngbin0 -> 5046 bytes
-rw-r--r--kcontrol/pics/cr64-app-proxy.pngbin0 -> 5870 bytes
-rw-r--r--kcontrol/pics/cr64-app-samba.pngbin0 -> 3319 bytes
-rw-r--r--kcontrol/pics/cr64-app-style.pngbin0 -> 5292 bytes
-rw-r--r--kcontrol/pics/cr64-app-stylesheet.pngbin0 -> 4585 bytes
-rw-r--r--kcontrol/pics/cr64-device-laptop.pngbin0 -> 5504 bytes
-rw-r--r--kcontrol/pics/crsc-app-access.svgzbin0 -> 2559 bytes
-rw-r--r--kcontrol/pics/crsc-app-arts.svgzbin0 -> 2884 bytes
-rw-r--r--kcontrol/pics/crsc-app-background.svgzbin0 -> 9032 bytes
-rw-r--r--kcontrol/pics/crsc-app-bell.svgzbin0 -> 3516 bytes
-rw-r--r--kcontrol/pics/crsc-app-cache.svgzbin0 -> 2696 bytes
-rw-r--r--kcontrol/pics/crsc-app-colors.svgzbin0 -> 7567 bytes
-rw-r--r--kcontrol/pics/crsc-app-date.svgzbin0 -> 12432 bytes
-rw-r--r--kcontrol/pics/crsc-app-energy.svgzbin0 -> 9841 bytes
-rw-r--r--kcontrol/pics/crsc-app-filetypes.svgzbin0 -> 3124 bytes
-rw-r--r--kcontrol/pics/crsc-app-fonts.svgzbin0 -> 4054 bytes
-rw-r--r--kcontrol/pics/crsc-app-hwinfo.svgzbin0 -> 5097 bytes
-rw-r--r--kcontrol/pics/crsc-app-ieee1394.svgzbin0 -> 3273 bytes
-rw-r--r--kcontrol/pics/crsc-app-kcmdevices.svgzbin0 -> 3194 bytes
-rw-r--r--kcontrol/pics/crsc-app-kcmkwm.svgzbin0 -> 3078 bytes
-rw-r--r--kcontrol/pics/crsc-app-kcmx.svgzbin0 -> 2005 bytes
-rw-r--r--kcontrol/pics/crsc-app-locale.svgzbin0 -> 5561 bytes
-rw-r--r--kcontrol/pics/crsc-app-samba.svgzbin0 -> 4802 bytes
-rw-r--r--kcontrol/pics/crsc-app-stylesheet.svgzbin0 -> 3348 bytes
-rw-r--r--kcontrol/pics/crsc-device-laptop.svgzbin0 -> 4418 bytes
-rw-r--r--kcontrol/privacy/Makefile.am16
-rw-r--r--kcontrol/privacy/kcmprivacydialog.ui201
-rw-r--r--kcontrol/privacy/kprivacymanager.cpp169
-rw-r--r--kcontrol/privacy/kprivacymanager.h55
-rw-r--r--kcontrol/privacy/kprivacysettings.ui308
-rw-r--r--kcontrol/privacy/privacy.cpp319
-rw-r--r--kcontrol/privacy/privacy.desktop204
-rw-r--r--kcontrol/privacy/privacy.h74
-rw-r--r--kcontrol/randr/Makefile.am36
-rw-r--r--kcontrol/randr/TODO14
-rw-r--r--kcontrol/randr/configure.in.in18
-rw-r--r--kcontrol/randr/krandrapp.cpp40
-rw-r--r--kcontrol/randr/krandrapp.h39
-rw-r--r--kcontrol/randr/krandrinithack.cpp0
-rw-r--r--kcontrol/randr/krandrmodule.cpp364
-rw-r--r--kcontrol/randr/krandrmodule.h68
-rw-r--r--kcontrol/randr/krandrpassivepopup.cpp118
-rw-r--r--kcontrol/randr/krandrpassivepopup.h47
-rw-r--r--kcontrol/randr/krandrtray.cpp253
-rw-r--r--kcontrol/randr/krandrtray.desktop141
-rw-r--r--kcontrol/randr/krandrtray.h60
-rw-r--r--kcontrol/randr/ktimerdialog.cpp205
-rw-r--r--kcontrol/randr/ktimerdialog.h170
-rw-r--r--kcontrol/randr/main.cpp51
-rw-r--r--kcontrol/randr/randr.cpp703
-rw-r--r--kcontrol/randr/randr.desktop216
-rw-r--r--kcontrol/randr/randr.h235
-rw-r--r--kcontrol/samba/AUTHORS32
-rw-r--r--kcontrol/samba/Makefile.am15
-rw-r--r--kcontrol/samba/kcmsambaimports.cpp95
-rw-r--r--kcontrol/samba/kcmsambaimports.h47
-rw-r--r--kcontrol/samba/kcmsambalog.cpp253
-rw-r--r--kcontrol/samba/kcmsambalog.h86
-rw-r--r--kcontrol/samba/kcmsambastatistics.cpp289
-rw-r--r--kcontrol/samba/kcmsambastatistics.h106
-rw-r--r--kcontrol/samba/ksmbstatus.cpp225
-rw-r--r--kcontrol/samba/ksmbstatus.h65
-rw-r--r--kcontrol/samba/main.cpp119
-rw-r--r--kcontrol/samba/smbstatus.desktop241
-rw-r--r--kcontrol/screensaver/Makefile.am20
-rw-r--r--kcontrol/screensaver/advanceddialog.cpp174
-rw-r--r--kcontrol/screensaver/advanceddialog.h61
-rw-r--r--kcontrol/screensaver/advanceddialogimpl.ui397
-rw-r--r--kcontrol/screensaver/category_list16
-rw-r--r--kcontrol/screensaver/configure.in.in8
-rw-r--r--kcontrol/screensaver/kssmonitor.h15
-rw-r--r--kcontrol/screensaver/kswidget.cpp71
-rw-r--r--kcontrol/screensaver/kswidget.h17
-rw-r--r--kcontrol/screensaver/saverconfig.cpp38
-rw-r--r--kcontrol/screensaver/saverconfig.h29
-rw-r--r--kcontrol/screensaver/saverlist.cpp13
-rw-r--r--kcontrol/screensaver/saverlist.h14
-rw-r--r--kcontrol/screensaver/screensaver.desktop240
-rw-r--r--kcontrol/screensaver/scrnsave.cpp862
-rw-r--r--kcontrol/screensaver/scrnsave.h113
-rw-r--r--kcontrol/screensaver/testwin.cpp13
-rw-r--r--kcontrol/screensaver/testwin.h14
-rw-r--r--kcontrol/smartcard/Makefile.am17
-rw-r--r--kcontrol/smartcard/configure.in.in3
-rw-r--r--kcontrol/smartcard/nosmartcardbase.ui81
-rw-r--r--kcontrol/smartcard/smartcard.cpp400
-rw-r--r--kcontrol/smartcard/smartcard.desktop212
-rw-r--r--kcontrol/smartcard/smartcard.h89
-rw-r--r--kcontrol/smartcard/smartcardbase.ui310
-rw-r--r--kcontrol/smserver/Makefile.am17
-rw-r--r--kcontrol/smserver/kcmsmserver.cpp134
-rw-r--r--kcontrol/smserver/kcmsmserver.desktop236
-rw-r--r--kcontrol/smserver/kcmsmserver.h46
-rw-r--r--kcontrol/smserver/smserverconfigdlg.ui248
-rw-r--r--kcontrol/smserver/smserverconfigimpl.cpp31
-rw-r--r--kcontrol/smserver/smserverconfigimpl.h41
-rw-r--r--kcontrol/spellchecking/Makefile.am16
-rw-r--r--kcontrol/spellchecking/spellchecking.cpp74
-rw-r--r--kcontrol/spellchecking/spellchecking.desktop232
-rw-r--r--kcontrol/spellchecking/spellchecking.h41
-rw-r--r--kcontrol/structure21
-rw-r--r--kcontrol/style/Makefile.am18
-rw-r--r--kcontrol/style/kcmstyle.cpp1070
-rw-r--r--kcontrol/style/kcmstyle.h163
-rw-r--r--kcontrol/style/keramik/Makefile.am12
-rw-r--r--kcontrol/style/keramik/keramikconf.cpp103
-rw-r--r--kcontrol/style/keramik/keramikconf.h62
-rw-r--r--kcontrol/style/main.cpp16
-rw-r--r--kcontrol/style/menupreview.cpp166
-rw-r--r--kcontrol/style/menupreview.h61
-rw-r--r--kcontrol/style/style.desktop234
-rw-r--r--kcontrol/style/styleconfdialog.cpp46
-rw-r--r--kcontrol/style/styleconfdialog.h46
-rw-r--r--kcontrol/style/stylepreview.ui285
-rw-r--r--kcontrol/style/stylepreview.ui.h69
-rw-r--r--kcontrol/taskbar/Makefile.am21
-rw-r--r--kcontrol/taskbar/kcmtaskbar.cpp291
-rw-r--r--kcontrol/taskbar/kcmtaskbar.desktop229
-rw-r--r--kcontrol/taskbar/kcmtaskbar.h79
-rw-r--r--kcontrol/taskbar/kcmtaskbarui.ui482
-rw-r--r--kcontrol/taskbar/uninstall.desktop2
-rw-r--r--kcontrol/usbview/Makefile.am21
-rw-r--r--kcontrol/usbview/classes.i18n48
-rw-r--r--kcontrol/usbview/configure.in.in16
-rw-r--r--kcontrol/usbview/kcmusb.cpp192
-rw-r--r--kcontrol/usbview/kcmusb.desktop240
-rw-r--r--kcontrol/usbview/kcmusb.h47
-rw-r--r--kcontrol/usbview/usb.ids6430
-rw-r--r--kcontrol/usbview/usbdb.cpp150
-rw-r--r--kcontrol/usbview/usbdb.h39
-rw-r--r--kcontrol/usbview/usbdevices.cpp431
-rw-r--r--kcontrol/usbview/usbdevices.h75
-rw-r--r--kcontrol/view1394/Makefile.am19
-rw-r--r--kcontrol/view1394/README13
-rw-r--r--kcontrol/view1394/configure.in.in15
-rw-r--r--kcontrol/view1394/kcmview1394.desktop219
-rw-r--r--kcontrol/view1394/oui.db7965
-rw-r--r--kcontrol/view1394/view1394.cpp334
-rw-r--r--kcontrol/view1394/view1394.h67
-rw-r--r--kcontrol/view1394/view1394widget.ui186
-rw-r--r--kcontrol/xinerama/Makefile.am18
-rw-r--r--kcontrol/xinerama/kcmxinerama.cpp254
-rw-r--r--kcontrol/xinerama/kcmxinerama.h62
-rw-r--r--kcontrol/xinerama/xinerama.desktop202
-rw-r--r--kcontrol/xinerama/xineramawidget.ui326
-rw-r--r--kcontrol/xinerama/xineramawidget.ui.h14
1428 files changed, 174423 insertions, 0 deletions
diff --git a/kcontrol/Makefile.am b/kcontrol/Makefile.am
new file mode 100644
index 000000000..50e8242de
--- /dev/null
+++ b/kcontrol/Makefile.am
@@ -0,0 +1,39 @@
+
+if include_kcontrol_access
+ACCESS_SUBDIR=access
+endif
+
+if include_kcontrol_kfontinst
+FONTINST_SUBDIR=kfontinst
+endif
+
+if include_kcontrol_smartcard
+KSMCARD_SUBDIR=smartcard
+endif
+
+if include_kcontrol_usbview
+USBVIEW_SUBDIR=usbview
+endif
+
+if include_kcontrol_view1394
+VIEW1394_SUBDIR=view1394
+endif
+
+if include_kcontrol_randr
+RANDR_SUBDIR=randr
+endif
+
+if include_kcontrol_joystick
+JOYSTICK_SUBDIR=joystick
+endif
+
+# 'colors' and 'fonts' should come after 'krdb'
+SUBDIRS = bell background dnssd filetypes samba krdb input info ioslaveinfo kdm\
+ kicker locale launch keys kio konq style kded \
+ konqhtml ebrowsing arts kcontrol knotify\
+ clock pics $(ACCESS_SUBDIR) colors energy fonts css \
+ icons screensaver taskbar crypto privacy smserver \
+ konsole spellchecking $(USBVIEW_SUBDIR) \
+ $(KSMCARD_SUBDIR) nics $(FONTINST_SUBDIR) $(RANDR_SUBDIR) \
+ componentchooser performance xinerama $(VIEW1394_SUBDIR) display kthememanager \
+ $(JOYSTICK_SUBDIR)
diff --git a/kcontrol/TODO b/kcontrol/TODO
new file mode 100644
index 000000000..b3b8d2971
--- /dev/null
+++ b/kcontrol/TODO
@@ -0,0 +1,168 @@
+
+Welcome to the this-is-another-kcontrol-reorganization-attempt-but-this-time-it-will-be-good file!
+
+This file contain a list of various major changes for KControl(reorganization, broad technical changes etc.) planned for KDE4. I think it is a good idea if small changes in each KCM is not listed(if they not have a meaning in the bigger picture) otherwise this list will grow too big.
+Feel free to discuss the ideas on kde-usability.
+Of course, nothing in this file is set in stone, or is "correct" or "true" for that matter.
+
+ ---These are only ideas.---
+
+ ---These are only ideas!---
+
+---------- Renaming
+
+* Rename "Appearance & Themes" to "Appearance"
+
+* Rename "System Administration" to "System".
+
+* Rename "Display" to "Monitor", see the KCM guidelines
+
+* Rename "Peripherals" to "Hardware".
+ - remove settings-peripherals.directory
+ - Update kde-settings.menu and remove the Peripherals menu
+ - Convert any kcmmodules that haven't already to X-KDE-settings-hardware
+
+* Rename password & User Account - "User Account"
+
+* Rename "Component Chooser" to "Default Applications" Users want to set the default application handlers, not Choose a component (which they wouldn't have a clue what it was anyway)?
+
+---------- Reorganization/Moving
+
+* Move Background, Splash Screen, And Screen Saver to Desktop
+
+* Move Theme manger out of KControl as a standalone app (can still be a kcm modules code wise of course).
+
+* Move "Power Control/Laptop Battery" to "Hardware" (the only KCM left in that category). Note this is in kdeutils. It will also remove the top level Power Control so remove that in the settings.menu file
+
+* Move the laptop KCMs to "Hardware", from "System Administration". Note these are in kdeutils.
+
+* Move "User Account to System
+
+* Move Launch Feedback into Desktop/Behavior kcm as another tab.
+
+---------- Removing
+
+* "KDE Components/File Manager" - It's Konqueror specific.
+
+* "Internet & Network/Web Browser/" - It's Konqueror specific. Those apps(such as Quanta) which needs the configuration functionality can load the specific KCMs into their own configuration dialogs.
+
+* Security & Privacy/Crypto - It's Konqueror specific.
+
+* "KDE Performance" - It's Konqueror Performance.
+
+* Spelling - It is application specific and if they need it they will include the kcm in their configure dialog most (all?) already do.
+
+* Security & Privacy/Privacy - It should be a seperate utility in kdeutils. It does stuff, not configuring stuff
+
+---------- Combining Modules
+
+* Combine Desktop/Behavior and Desktop/Multiple
+
+* Move ability to configure Bell to Accessibility then remove "Sound & Multimedia/Bell" since it is a duplicate of the accessibility KCM. How on earth does such a thing slip through? :)
+
+* Move Window-Specific Settings into Window Behavior as another tab or Advanced?
+
+* Make a new "User Account" group with
+ - Session Manager
+ - System Administration/Paths
+ - Component Chooser (after renamed to "Default Applications")
+
+* The following container:
+KCMODULECONTAINER("kcmfontinst, fonts", fonts )
+The desktop file is called "kcm_fonts" with "Name=Fonts" and "Categories=X-KDE-settings-appearance"
+
+
+---------- Various other stuff
+
+* In a lot of cases there's an unnecessary use of "Manager" and "Configuration". We should not state the obvious and remove those parts.
+
+* Rename "KDE Wallet" to "Wallet"(people can't differentiate nor care about what is KDE and what's not. It is also irrelevant for the context).
+
+* Remove old categories, for example X-KDE-settings-peripherals.
+
+* Convert all options in "Internet & Network/Preferences" to KConfigXT and then remove the KCM.
+
+* Remove "KDE Components" and put the KCMs elsewhere, most of them in "System". Wake up: a non KDE hacker can't differentiate between KDE and other parts of the system.
+
+* We must stop differentiating between KDE and System/whatever. People *can't* tell the difference and it only clutters up the interface. KDE is THE computer/system.
+
+// Not sure where these next three are is this OLD and from KDE2 and has already been done?
+
+* Remove "Internet & Network/Email". It is replaced by the new kcm_useraccount
+
+* Remove "System Administration/User Info". It is replaced by the new kcm_useraccount
+
+* Remove "Privacy & Crypto/Passwords". It is replaced by the new kcm_useraccount. Probably. (awaiting comment from Aaron)
+
+* Tell Konqi to go burn the 11 tabs of keyboard options(5 KCMs). Because it is.. bizarre. Two KCMs with two tabs each is absolute maximum. One KCM with three tabs is quite ok too.
+
+* Put some common sense into phrases used here and there, Comments fields for example. Don't use "etc", paranteses, exlamation marks, smilies(haven't found any though). Don't phrase things like "Y configurates code part X"......
+
+* Split "Sound & Multimedia/Sound System" into two KCMs(it currently consists of two tabs) and combine those two with "System Notifications" with the KCMODULECONTAINER macro into one KCM called "Sound System". Lots of the options in Sound System can be turned into KConfEdit options, mesa thinks.
+
+
+---------Various technical, broad design shifts: --------------------
+
+* Move the various KCMs in kdebase/kcontrol/* out to their respective app, as per the KCM Guidelines.
+
+* Convert KCMs to use ui Designer files
+
+* Namespace the KCMs desktop files to "kcm_*.desktop", as per KCM Guidelines.
+
+* A lot, perhaps even the majority, violate the HIG by not displaying
+properly in 800x600 (is it 800x600 or 1024x768?). For a start, someone needs to iterate through all KCMs and file bug reports for each missbehaving. See the KDE UI Guidelines.
+
+* KCMs needs to be converted to KConfigXT and use the global kdeglobals KConfigXT object.
+
+* Tons of KCMs and applications have options for selecting binaries which they use(frontends etc.). We need to be a little consistent here and adopt a general policy in this issue.
+If a binary is not in $PATH it is the distributors fault and not KDE. The reason we have a GUI is so people don't have to know about this kinds of internals. The options doesn't mean anything because users use KDE, they're not in run level 3("WTF? cdparanoia? diff? What's that?"). PATH options("Where to search for X") should be removed - it is up to the distributor. Options for selecting what binary to use should be moved out to KConfEdit - they have a use but are very rarely used.
+
+* Rewrite kcmshell to the new KCModuleProxy and fix bugs. Move it to kdelibs.
+
+--------------------------------------------------------------------------
+
+Below is some old stuff, which was in this file.
+
+
+File Browsing -> Filemanager
+----------------------------
+Appearance (Rik was right here and I was wrong): Getting rid of "Standard Font" and "Normal Text Color" by putting "Filemanager Text" into "Look&Feel -> Colors -> Widget color"
+Other: This tab should be removed: "Show network operations in a single window" should go either in "Behaviour" or into "Network -> KDE protocols Information". Also "Terminal program" appears for Konqueror-Settings as well as in the Kicker-Settings. There should only be one place which specifies which terminal should be used for all applications.
+
+
+Help -> Index
+-------------
+This looks a bit crowdy. Adding a second Tab "Program Locations" which appears behind the "General tab" might be a good idea as the paths should be set automagically and user-interaction concerning this should only be necessary in case of failure.
+
+Look & Feel -> Desktop
+----------------------
+Desktop: Looks overcrowded:
+"Show Preview for:" should go into a tab "Previews" in File-Browsing -> File Associations. Malte is probably already working on this.
+Appearance (Rik was right here): Getting rid of "Standard Font" and "Normal Text Color" by putting "Desktop Text" into "Look&Feel -> Colors -> Widget color"
+
+Groupboxes named "Behaviour", "Clicks on the desktop" and "Paths" would look much more tidy here ("path" could be removed from each item then and would make the dialog look more tidy).
+
+Look & Feel -> System-Notifications
+-----------------------------------
+The current dialog resembles a very good "advanced"-tab. It would be nice for the newbie if there was a
+Tab for newbies in the first place which only shows the available Notification-themes ("Minimalistic", "Visually impaired", "Aureal impaired", "KDE-Standard").
+The current dialog should appear as an advanced tab behind the "Theme"-tab.
+
+Network -> Talk Configuration
+-----------------------------
+Answering Machine: A groupbox around "Address:, Subject:, First Line:" would be nice. That way one wouldn't need to mention "Mail" each time. The Groupbox could be named something like "Anwering Mail".
+That way one would have a much cleaner layout and it would be much easier to see at once what the dialog is about.
+Forward: Way too much text here. I see the point of having a direct explanation in the dialog. But this could look much friendlier using the following solution:
+There should be a Textbox below the "Forward method"-Combobox. This Textbox only contains the information for the Forward-method which is currently selected (So the text changes each time a different Forward-method is selected).
+
+Sound -> Sound Server
+---------------------
+As soon as more stuff is being added, a tab "Quality" might be a good idea.
+
+Web Browsing -> User Agent
+--------------------------
+The Dialog suffers from the cockpit-dilemma.
+All the new "Add"-checkboxes are only there for finetuning. Most of the time the useragent-strings should work
+w/o the need to tune them this way. Better Solution: Remove the Customize-Group-box and simply add a Button "Customize ..." below the Text: "Current User Agent String: Mozilla/5.0 (comp.; Konq.orwhateveritis)".
+After pressing the "Customize"-Button a dialog should pop up which contains all the nice
+"Add"-checkboxes which have been added recently.
diff --git a/kcontrol/access/Makefile.am b/kcontrol/access/Makefile.am
new file mode 100644
index 000000000..f57c865b3
--- /dev/null
+++ b/kcontrol/access/Makefile.am
@@ -0,0 +1,30 @@
+
+AM_CPPFLAGS= $(all_includes)
+METASOURCES = AUTO
+
+bin_PROGRAMS =
+lib_LTLIBRARIES =
+kde_module_LTLIBRARIES = kcm_access.la
+kdeinit_LTLIBRARIES = kaccess.la
+
+kaccess_la_SOURCES = kaccess.cpp main.cpp
+kaccess_la_LDFLAGS = $(all_libraries) -module -avoid-version
+kaccess_la_LIBADD = $(LIB_KDEUI)
+
+kcm_access_la_SOURCES = kcmaccess.cpp
+kcm_access_la_LDFLAGS = $(all_libraries) -module -avoid-version -no-undefined
+kcm_access_la_LIBADD = $(LIB_KIO)
+
+noinst_HEADERS = kcmaccess.h
+
+xdg_apps_DATA = kcmaccess.desktop
+
+services_DATA = kaccess.desktop
+servicesdir = $(kde_servicesdir)
+
+eventsrcdir = $(kde_datadir)/kaccess/
+eventsrc_DATA = eventsrc
+
+messages:
+ $(XGETTEXT) $(kaccess_la_SOURCES) -o $(podir)/kaccess.pot
+ $(XGETTEXT) $(kcm_access_la_SOURCES) -o $(podir)/kcmaccess.pot
diff --git a/kcontrol/access/configure.in.in b/kcontrol/access/configure.in.in
new file mode 100644
index 000000000..170fc8dea
--- /dev/null
+++ b/kcontrol/access/configure.in.in
@@ -0,0 +1,7 @@
+ACCESS_SUBDIR=
+KDE_CHECK_HEADER(X11/extensions/XKBstr.h, ACCESS_SUBDIR=access, ,
+[
+#include <X11/Xlib.h>
+])
+
+AM_CONDITIONAL(include_kcontrol_access, test -n "$ACCESS_SUBDIR")
diff --git a/kcontrol/access/eventsrc b/kcontrol/access/eventsrc
new file mode 100644
index 000000000..185460ec4
--- /dev/null
+++ b/kcontrol/access/eventsrc
@@ -0,0 +1,1072 @@
+[!Global!]
+IconName=kaccess
+Comment=KDE Accessibility Tool
+Comment[af]=KDE toeganklikheid program
+Comment[be]=Інструмент даступнасці KDE
+Comment[bg]=Равностоен достъп
+Comment[bn]=কে.ডি.ই. সহায়ক প্রযুক্তি টুল
+Comment[br]=Ostilh haezadusted KDE
+Comment[bs]=KDE alat za pristupačnost
+Comment[ca]=Eina d'accessibilitat KDE
+Comment[cs]=KDE nástroj pro zpřístupnění
+Comment[csb]=Nôrzãdze pòmòcë przistãpù KDE
+Comment[cy]=Erfyn Hygyrchedd KDE
+Comment[da]=KDE Tilgængelighedsværktøj
+Comment[de]=KDE-Dienstprogramm für Zugangshilfen
+Comment[el]=Εργαλείο προσβασιμότητας του KDE
+Comment[eo]=KDE-ilo por Alirebleco
+Comment[es]=Herramienta de accesibilidad de KDE
+Comment[et]=KDE hõlbustusvahend
+Comment[eu]=KDEren erabilerraztasun tresna
+Comment[fa]=ابزار دستیابی‌پذیری KDE
+Comment[fi]=KDE:n helppokäyttötoiminnot
+Comment[fr]=Outil d'accessibilité de KDE
+Comment[fy]=KDE Tagonklikens
+Comment[ga]=Uirlis Inrochtaineachta KDE
+Comment[gl]=Ferramenta de Acesibilidade de KDE
+Comment[he]=כלי הנגישות של KDE
+Comment[hr]=KDE alat pristupačnosti
+Comment[hu]=KDE kezelési segédeszköz
+Comment[is]=KDE aðgengistól
+Comment[it]=Strumento per l'accessibilità di KDE
+Comment[ja]=KDE アクセシビリティ支援ツール
+Comment[ka]=KDE დამხმარე საშუალებები
+Comment[kk]=KDE арнайы мүмкіндіктері
+Comment[km]=ឧបករណ៍​មធ្យោបាយ​ងាយស្រួល KDE
+Comment[ko]=KDE 접근성 도구
+Comment[mk]=Алатка за пристапливост во KDE
+Comment[ms]=Alatan Kebolehcapaian KDE
+Comment[nb]=Tilgjengelighetsverktøy for KDE
+Comment[nds]=KDE-Warktüüch för Behinnerte
+Comment[ne]=KDE पहुँचयोग्य उपकरण
+Comment[nl]=KDE Toegankelijkheid
+Comment[nn]=Tilgjengeverktøy for KDE
+Comment[pa]=KDE ਸਹੂਲਤ ਸੰਦ
+Comment[pl]=Narzędzie ułatwień dostępu KDE
+Comment[pt]=Ferramenta de Acessibilidade do KDE
+Comment[pt_BR]=Ferramenta de Acessibilidade do KDE
+Comment[ro]=Utilitar de accesibilitate pentru KDE
+Comment[ru]=Специальные возможности
+Comment[se]=KDE reaidu álkkibut geavaheami várás
+Comment[sk]=Nástroj na sprístupnenie KDE
+Comment[sl]=Orodje za dostopnost KDE
+Comment[sr]=KDE алатка за приступачност
+Comment[sr@Latn]=KDE alatka za pristupačnost
+Comment[sv]=Handikappverktyg för KDE
+Comment[tg]=Барномаи Тавонёбии KDE
+Comment[th]=เครื่องมือช่วยใช้งานโปรแกรม KDE
+Comment[tr]=KDE Erişilebilirlik Aracı
+Comment[uk]=Засіб доступності для KDE
+Comment[uz]=KDE qulaylik vositasi
+Comment[uz@cyrillic]=KDE қулайлик воситаси
+Comment[vi]=Công cụ hỗ trợ người tàn tật cho KDE
+Comment[wa]=Usteye d' accessibilité KDE
+Comment[zh_CN]=KDE 辅助工具
+Comment[zh_TW]=KDE 無障礙工具
+
+[modifierkey-latched]
+Name=A modifier key has become active
+Name[af]='n Verandering sleutel was geaktiveer
+Name[be]=Задзейнічаная клавіша мадыфікацыі
+Name[bg]=Клавиш модификатор е активен
+Name[bn]=একটি মডিফায়ার কী সক্রিয় হয়েছে
+Name[bs]=Modifikatorska tipka je postala aktivna
+Name[ca]=S'ha activat una tecla modificadora
+Name[cs]=Modifikační klávesa se stala aktivní
+Name[csb]=Klawisza zjinaczi ùstôła włączonô
+Name[da]=En ændringstast er blevet aktiv
+Name[de]=Eine Sondertaste ist aktiv
+Name[el]=Ενεργοποιήθηκε ένα πλήκτρο τροποποιητή
+Name[eo]=Modifigita klavo aktiviĝis
+Name[es]=Se ha activado una tecla modificadora
+Name[et]=Muuteklahv muutus aktiivseks
+Name[eu]=Tekla aldatzaile bat aktibatu da
+Name[fa]=کلید تغییردهنده فعال شده است
+Name[fi]=Muunnosnäppäin on aktivoitunut
+Name[fr]=Une touche de modification est devenue active
+Name[fy]=In modifkaasjetoets wurdt aktyf
+Name[gl]=Activou-se unha tecla modificadora
+Name[hr]=Tipka modifikatora je aktivirana
+Name[hu]=Egy módosító billentyű aktívvá vált
+Name[is]=Breytilykill er nú virkur
+Name[it]=Un tasto modificatore è diventato attivo
+Name[ja]=修飾キーがアクティブになりました
+Name[kk]=Түрлендіру пернесі белсендірілді
+Name[km]=គ្រាប់ចុច​កែប្រែ​មួយ​សកម្ម
+Name[ko]=수정자 키가 활성화됨
+Name[lt]=Modifikavimo klavišas tapo aktyvus
+Name[mk]=Некое копче за модификација стана активно
+Name[nb]=En valgtast er tatt i bruk
+Name[nds]=En Sünnertast is nu aktiv
+Name[ne]=परिमार्जक कुञ्जी सक्रिय बनेको छ
+Name[nl]=Een modificatietoets is geactiveerd
+Name[nn]=Ein valtast er teken i bruk
+Name[pa]=ਇੱਕ ਸਵਿੱਚ ਸੋਧਕ ਸਰਗਰਮ ਹੋ ਗਿਆ ਹA
+Name[pl]=Klawisz modyfikujący został włączony
+Name[pt]=Uma tecla modificadora ficou activa
+Name[pt_BR]=Uma tecla modificadora tornou-se ativa
+Name[ro]=Un modificator de taste a devenit activ
+Name[ru]=Нажата клавиша модификатора
+Name[se]=Válljenboallu lea aktiverejuvvon
+Name[sk]=Modifikačný kláves je aktivovaný.
+Name[sl]=Spremenilna tipka je omogočena
+Name[sr]=Модификаторски тастер је активиран
+Name[sr@Latn]=Modifikatorski taster je aktiviran
+Name[sv]=En väljartangent har aktiverats
+Name[tg]=Калиди ислоҳгар фаъол карда шуд
+Name[th]=ปุ่มสำหรับเปลี่ยนหน้าที่ถูกเปิดใช้งาน
+Name[uk]=Клавішу-модифікатор активовано
+Name[vi]=Một phím bổ trợ đã được kích hoạt
+Name[wa]=Ene tape di candjmint s' a rtrové en alaedje
+Name[zh_CN]=修饰键变为激活
+Name[zh_TW]=輔助按鍵值已變為作用中
+Comment=A modifier key (e.g. Shift or Ctrl) has changed its state and is now active
+Comment[af]='n Verandering sleutel (bv. Shift of Control) se toestand het verander en is nou aktief
+Comment[be]=Клавіша мадыфікацыі (напр. Shift ці Ctrl) змяніла свой стан і зрабілася актыўнай
+Comment[bg]=Клавиш модификатор (Shift или Ctrl) си промени състоянието и е активен сега
+Comment[bn]=একটি মডিফায়ার কী (e.g. Shift বা Ctrl) অবস্থা পরিবর্তন করে এখন সক্রিয় হয়েছে
+Comment[bs]=Modifikatorska tipka (npr. Shift ili Ctrl) je promijenila stanje i postala je aktivna
+Comment[ca]=Una tecla modificadora (p.ex. Majús o Ctrl) ha canviat d'estat i ara està activa
+Comment[cs]=Modifikační kláves (např. Shift nebo Control) změnila svůj stav a je nyní aktivní.
+Comment[csb]=Klawisza zjinaczi (n.p. Shift czë Control) zmieniła stón ë je terô aktiwnô
+Comment[da]=En ændringstast (f.eks., Shift eller Ctrl) har ændret sin tilstand og er nu aktiv
+Comment[de]=Eine Sondertaste (z. B. Umschalt oder Strg) hat ihren Status geändert und ist jetzt aktiv
+Comment[el]=Άλλαξε η κατάσταση ενός πλήκτρου τροποποιητή (π.χ. Shift ή Control) και τώρα είναι ενεργό
+Comment[eo]=Modifa klavo (ekz. majuskliga klavo aŭ stirklavo) ŝanĝis sian staton kaj nun estas aktiva
+Comment[es]=Una tecla modificadora (p.ej. Mayúsculas o Control) ha cambiado su estado y está activa ahora
+Comment[et]=Muuteklahv (nt. Shift või Ctrl) muutis oma olekut ning on nüüd aktiivne
+Comment[eu]=Tekla aldatzaile bat (hau da, Shift edo Kontrol) egoeraz aldatu da eta orain aktiboa da
+Comment[fa]=یک کلید تغییردهنده )مثلاًً، تبدیل یا مهار( وضعیت خود را تغییر داده و اکنون فعال می‌باشد
+Comment[fi]=Muunnosnäppäin (esim. Shift tai Ctrl) on vaihtanut tilaa ja on nyt aktiivinen
+Comment[fr]=L'état d'une touche de modification (ex : Maj ou Ctrl) est modifié et elle est maintenant active
+Comment[fy]=De tastân fan in modifikaasjetoets (sa as Shift of Control) is feroare en is no aktyf.
+Comment[gl]=Unha tecla modificadora (ex. Alt ou Control) mudou de estado e agora está activa
+Comment[hr]=Tipka modifikatora (npr. Shift ili Ctrl) promijenila je svoje stanje i sad je aktivna
+Comment[hu]=Egy módosító billentyű (pl. a Shift vagy a Ctrl) állapota aktívvá változott
+Comment[is]=Breytilykill (Shift eða Ctrl) hefur breytt um stöðu og er nú virkur
+Comment[it]=Un tasto modificatore (es. Shift o Ctrl) ha cambiato stato ed è diventato attivo
+Comment[ja]=修飾キー (Shift や Ctrl など) の状態が変更され、アクティブになりました
+Comment[kk]=Түрледіру пернесі (Shift я Control секілді) күйін өзгертіп, енді белсенді
+Comment[km]=គ្រាប់ចុច​កែប្រែ​មួយ (ឧ. ប្តូរ ឬ ពាក្យ​បញ្ជា) បាន​ផ្លាស់ប្តូរ​សភាព​របស់​វា ហើយឥឡូវ​នេះ​សកម្ម
+Comment[ko]=Shift나 Control 키 같은 수정자 키의 상태가 바뀌었고 현재 사용 가능함
+Comment[lt]=Klavišo - modifikatoriaus (pvz., Lyg2(Shift) arba Vald(Ctrl)) būsena pakito ir jis dabar – aktyvus
+Comment[mk]=Некое копче за модификација (пр. Shift или Ctrl) си ја смени состојбата и сега е активно
+Comment[nb]=En valgtast (f.eks. «Shift» eller «Control») har endret status og er i bruk.
+Comment[nds]=En Sünnertast (t.B. Ümschalt oder Strg) hett den Tostand ännert un is nu aktiv
+Comment[ne]= परिमार्जक कुञ्जीले (जस्तै: Shift वा Ctrl) यसको स्थीति परिवर्तन गरेको छ र अहिले सक्रिय छ
+Comment[nl]=De status van een modificatietoets (zoals Shift of Control) is gewijzigd en is nu actief
+Comment[nn]=Ein valtast (t.d. «Shift» eller «Control») har endra statusen og er no i bruk
+Comment[pl]=Klawisz modyfikujący (np. Shift lub Ctrl) zmienił stan i jest teraz włączony
+Comment[pt]=Uma tecla modificadora (p.ex., o Shift ou o Ctrl) mudou o seu estado e ficou activa
+Comment[pt_BR]=Uma tecla modificadora (p.ex. Shift ou Ctrl) mudou seu estado e agora está ativa
+Comment[ro]=Un modificator de taste (cum ar fi Shift sau Ctrl) și-a schimbat starea și este acum activ
+Comment[ru]=Нажата клавиша модификатора (например, Shift или Ctrl)
+Comment[sk]=Modifikačný kláves (napr. Shift alebo Ctrl) zmenil svoj stav a je teraz aktívny.
+Comment[sl]=Spremenilna tipka (npr. Shift ali Ctrl) je spremenila svoje stanje in je sedaj omogočena
+Comment[sr]=Модификаторски тастер (нпр. Shift или Control) је променио стање и сада је активан
+Comment[sr@Latn]=Modifikatorski taster (npr. Shift ili Control) je promenio stanje i sada je aktivan
+Comment[sv]=En väljartangent (t.ex. Skift eller Ctrl) har ändrat tillstånd och är nu aktiv
+Comment[tg]=Калиди ислоҳгар (мисоли, Shift ё Ctrl) вазъияти худ иваз кард ва ҳозир фаъол аст
+Comment[th]=มีการเปลี่ยนสถานะปุ่มสำหรับเปลี่ยนหน้าที่ (เช่น Shift หรือ Control) และขณะนี้ เปิดใช้งาน
+Comment[uk]=Клавіша-модифікатор (напр., Shift або Control) змінила свій стан і тепер активна
+Comment[vi]=Một phím bổ trợ (như Shift hay Ctrl) đã thay đổi trạng thái và được kích hoạt
+Comment[wa]=Ene tape di candjmint (metans SHIFT ou CTRL) a candjî si-estat et est asteure en alaedje
+Comment[zh_CN]=修饰键(即 Shift 或 Ctrl)更改了其状态,现已激活
+Comment[zh_TW]=輔助按鍵 (例, Shift 或 Control) 已改變其狀態且目前為作用中
+default_sound=KDE_Click.wav
+default_presentation=0
+nopresentation=236
+
+[modifierkey-unlatched]
+Name=A modifier key has become inactive
+Name[af]='n Verandering sleutel was gedeaktiveer
+Name[be]=Клавіша мадыфікацыі зрабілася неактыўнай
+Name[bg]=Клавиш модификатор е неактивен
+Name[bn]=একটি মডিফায়ার কী নিষ্ক্রীয় হয়েছে
+Name[bs]=Modifikatorska tipka je postala neaktivna
+Name[ca]=S'ha desactivat una tecla modificadora
+Name[cs]=Modifikační klávesa se stala neaktivní
+Name[csb]=Klawisza zjinaczi òstałą włączonô
+Name[da]=En ændringstast er blevet deaktiveret
+Name[de]=Eine Sondertaste ist nicht mehr aktiv
+Name[el]=Απενεργοποιήθηκε ένα πλήκτρο τροποποιητή
+Name[eo]=Modifa klavo malaktiviĝis
+Name[es]=Se ha desactivado una tecla modificadora
+Name[et]=Muuteklahv muutus mitteaktiivseks
+Name[eu]=Tekla aldatzaile bat desaktibatu da
+Name[fa]=کلید تغییردهنده غیرفعال شده است
+Name[fi]=Muunnosnäppäin ei ole enää aktiivinen
+Name[fr]=Une touche de modification est devenue inactive
+Name[fy]=In modifikaasjetoets wurdt ynaktief
+Name[gl]=Unha tecla modificadora foi desactivada
+Name[hr]=Tipka modifikatora je deaktivirana
+Name[hu]=Egy módosító billentyű inaktívvá vált
+Name[is]=Breytilykill er nú óvirkur
+Name[it]=Un tasto modificatore è diventato inattivo
+Name[ja]=修飾キーが非アクティブになりました
+Name[kk]=Түрлендіру пернесі белсендігін жоғалтты
+Name[km]=គ្រាប់ចុច​កែប្រែ​មួយ​អសកម្ម​ហើយ
+Name[ko]=수정자 키가 비활성화됨
+Name[lt]=Klavišas - modifikatorius tapo neaktyvus
+Name[mk]=Некое копче за модификација стана неактивно
+Name[nb]=En valgtast er blitt skrudd av
+Name[nds]=En Sünnertast is nich mehr aktiv
+Name[ne]=परिमार्जक कुञ्जी निस्क्रिय बनेको छ
+Name[nl]=Een modificatietoets is gedeactiveerd
+Name[nn]=Ein valtast er slått av
+Name[pl]=Klawisz modyfikujący został wyłączony
+Name[pt]=Uma tecla modificadora ficou inactiva
+Name[pt_BR]=Uma tecla modificadora tornou-se inativa
+Name[ro]=Un modificator de taste a devenit inactiv
+Name[ru]=Отжата клавиша модификатора
+Name[se]=Válljenboallu ii leat šat aktiivalaš
+Name[sk]=Modifikačný kláves je neaktívny.
+Name[sl]=Spremenilna tipka je onemogočena
+Name[sr]=Модификаторски тастер је деактивиран
+Name[sr@Latn]=Modifikatorski taster je deaktiviran
+Name[sv]=En väljartangent har inaktiverats
+Name[tg]=Калиди ислоҳгар ғайри фаъол карда шуд
+Name[th]=ปุ่มสำหรับเปลี่ยนหน้าที่ถูกปิดการใช้งาน
+Name[uk]=Клавішу-модифікатор деактивовано
+Name[vi]=Một phím bổ trợ đã bị tắt
+Name[wa]=Ene tape di candjmint s' a rtrové dismetowe
+Name[zh_CN]=修饰键变为非激活
+Name[zh_TW]=輔助按鍵已變為非作用中
+Comment=A modifier key (e.g. Shift or Ctrl) has changed its state and is now inactive
+Comment[af]='n Verandering sleutel (bv. Shift of Contorl) se toestand het verander en is nou onaktief
+Comment[be]=Клавіша мадыфікацыі (напр. Shift ці Ctrl) змяніла свой стан і зрабілася неактыўнай
+Comment[bg]=Клавиш модификатор (Shift или Ctrl) си промени състоянието и е неактивен сега
+Comment[bn]=একটি মডিফায়ার কী (e.g. Shift বা Ctrl) অবস্থা পরিবর্তন করে এখন নিষ্ক্রীয় হয়েছে
+Comment[bs]=Modifikatorska tipka (npr. Shift ili Ctrl) je promijenila stanje i sada je neaktivna
+Comment[ca]=Una tecla modificadora (p.ex. Majús o Ctrl) ha canviat d'estat i ara està inactiva
+Comment[cs]=Modifikační kláves (např. Shift nebo Control) změnila svůj stav a je nyní neaktivní.
+Comment[csb]=Klawisza zjinaczi (n.p. Shift czë Control) zmieniła stón ë je terô aktiwnô
+Comment[da]=En ændringstast (f.eks., Shift eller Ctrl) har ændret sin tilstand og er nu inaktiv
+Comment[de]=Eine Sondertaste (z. B. Umschalt oder Strg) hat ihren Status geändert und ist jetzt inaktiv
+Comment[el]=Άλλαξε η κατάσταση ενός πλήκτρου τροποποιητή (π.χ. Shift ή Control) και τώρα είναι ανενεργό
+Comment[eo]=Modifa klavo (ekz. majuskliga klavo aŭ stirklavo) ŝanĝis sian staton kaj nun estas malaktiva
+Comment[es]=Una tecla modificadora (p.ej. Mayúsculas o Control) ha cambiado su estado y ahora está inactiva
+Comment[et]=Muuteklahv (nt. Shift või Ctrl) muutis oma olekut ning on nüüd mitteaktiivne
+Comment[eu]=Tekla aldatzaile bat (hau da, Shift edo Kontrol) egoeraz aldatu da eta orain inaktiboa da
+Comment[fa]=یک کلید تغییردهنده )مثلاً، تبدیل یا مهار( وضعیت خود را تغییر داده و اکنون غیر‌فعال می‌باشد
+Comment[fi]=Muunnosnäppäin (esim. Shift tai Ctrl) on vaihtanut tilaa eikä ole enää aktiivinen
+Comment[fr]=L'état d'une touche de modification (ex : Maj ou Ctrl) est modifié et elle est maintenant inactive
+Comment[fy]=De tastân fan in modifikaasjetoets (sa as Shift of Control) is feroare en is no ynaktyf.
+Comment[gl]=Unha tecla modificadora (ex. Alt ou Control) mudou de estado e agora está inactiva
+Comment[hr]=Tipka modifikatora (npr. Shift ili Ctrl) promijenila je svoje stanje i sad nije aktivna
+Comment[hu]=Egy módosító billentyű (pl. a Shift vagy a Ctrl) állapota inaktívvá változott
+Comment[is]=Breytilykill (Shift eða Ctrl) hefur breytt um stöðu og er nú óvirkur
+Comment[it]=Un tasto modificatore (es. Shift o Ctrl) ha cambiato stato ed è diventato inattivo
+Comment[ja]=修飾キー (Shift や Ctrl など) の状態が変更され、非アクティブになりました
+Comment[kk]=Түрледіру пернесі (Shift я Control секілді) күйін өзгертіп, енді белсенді емес
+Comment[km]=គ្រាប់​ចុច​កែប្រែ (ឧ. ប្តូរ ឬ បញ្ជា) បាន​ផ្លាស់ប្តូរ​សភាព​របស់វា ហើយ ឥឡូវ​នេះ​អសកម្ម
+Comment[ko]=Shift나 Control 키 같은 수정자 키의 상태가 바뀌었고 현재 사용 불가능함
+Comment[lt]=Klavišo - modifikatoriaus (pvz., Lyg2(Shift) arba Vald(Ctrl)) būsena pakito ir jis dabar - neaktyvus
+Comment[mk]=Некое копче за модификација (пр. Shift или Ctrl) си ја смени состојбата и сега е неактивно
+Comment[nb]=En valgtast (f.eks. «Shift» eller «Ctrl») har endret status og er ikke mer i bruk
+Comment[nds]=En Sünnertast (t.B. Ümschalt oder Strg) hett den Tostand ännert un is nu inaktiv
+Comment[ne]=परिमार्जक कुञ्जीले (जस्तै: Shift वा Ctrl) यसको स्थिति परिवर्तन गरेको छ र अहिले निस्क्रिय छ
+Comment[nl]=De status van een modificatietoets (zoals Shift of Control) is gewijzigd en is nu inactief
+Comment[nn]=Ein valtast (t.d. «Shift» eller «Ctrl») har endra statusen og er ikkje i bruk lenger
+Comment[pl]=Klawisz modyfikujący (np. Shift lub Ctrl) zmienił stan i jest teraz wyłączony
+Comment[pt]=Uma tecla modificadora (p.ex., o Shift ou o Ctrl) mudou o seu estado e ficou inactiva
+Comment[pt_BR]=Uma tecla modificadora (p.ex. Shift ou Ctrl) mudou seu estado e agora está inativa
+Comment[ro]=Un modificator de taste (cum ar fi Shift sau Ctrl) și-a schimbat starea și este acum inactiv
+Comment[ru]=Деактивирована клавиша модификатора (например, Shift или Ctrl)
+Comment[sk]=Modifikačný kláves (napr. Shift alebo Ctrl) zmenil svoj stav a je teraz neaktívny.
+Comment[sl]=Spremenilna tipka (npr. Shift ali Ctrl) je spremenila svoje stanje in je sedaj oneomogočena
+Comment[sr]=Модификаторски тастер (нпр. Shift или Control) је променио стање и више није активан
+Comment[sr@Latn]=Modifikatorski taster (npr. Shift ili Control) je promenio stanje i više nije aktivan
+Comment[sv]=En väljartangent (t.ex. Skift eller Ctrl) har ändrat tillstånd och är nu inaktiv
+Comment[tg]=Калиди ислоҳгар (мисоли, Shift ё Ctrl) вазъияти худ иваз кард ва ҳозир ғайри фаъол аст
+Comment[th]=มีการเปลี่ยนสถานะปุ่มสำหรับเปลี่ยนหน้าที่ (เช่น Shift หรือ Control) และขณะนี้ ถูกปิดการใช้งาน
+Comment[uk]=Клавіша-модифікатор (напр., Shift або Control) змінила свій стан і тепер неактивна
+Comment[vi]=Một phím bổ trợ (như Shift hay Ctrl) đã thay đổi trạng thái và đã bị tắt
+Comment[wa]=Ene tape di candjmint (metans SHIFT ou CTRL) a candjî si-estat et n' est asteure pus en alaedje
+Comment[zh_CN]=修饰键(即 Shift 或 Ctrl)更改了其状态,现已非激活
+Comment[zh_TW]=輔助按鍵 (例, Shift 或 Control) 已改變其狀態且目前為非作用中
+default_sound=KDE_Click.wav
+default_presentation=0
+nopresentation=236
+
+[modifierkey-locked]
+Name=A modifier key has been locked
+Name[af]='n Verandering sleutel was gesluit
+Name[be]=Клавіша мадыфікацыі заблакаваная
+Name[bg]=Клавиш модификатор е заключен
+Name[bn]=একটি মডিফায়ার কী লক করা হয়েছে
+Name[bs]=Modifikatorska tipka je zaključana
+Name[ca]=S'ha bloquejat una tecla modificadora
+Name[cs]=Modifikační klávesa byla zamčena
+Name[csb]=Klawisza zjinaczi òstała zablokòwónô
+Name[da]=En ændringstast er blevet låst
+Name[de]=Eine Sondertaste wurde eingerastet
+Name[el]=Ένα πλήκτρο τροποποιητή κλειδώθηκε
+Name[eo]=Modifa klavo ŝlosiĝis
+Name[es]=Se ha bloqueado una tecla modificadora
+Name[et]=Muuteklahv on lukustatud
+Name[eu]=Tekla aldatzaile bat blokeatu da
+Name[fa]=کلید تغییردهنده قفل شده است
+Name[fi]=Muunnosnäppäin on lukittu
+Name[fr]=Une touche de modification a été verrouillée
+Name[fy]=In modifikaasjetoets is beskoattele
+Name[gl]=Unha tecla modificadora foi bloqueada
+Name[hr]=Tipka modifikatora je zaključana
+Name[hu]=Egy módosító billentyű zárolódott
+Name[is]=Breytilykli hefur verið læst
+Name[it]=Un tasto modificatore è stato bloccato
+Name[ja]=修飾キーがロックされました
+Name[kk]=Түрлендіру пернесі қосулы
+Name[km]=គ្រាប់ចុច​កែប្រែ​មួយ​ត្រូវ​បាន​ចាក់សោ
+Name[ko]=수정자 키가 잠김
+Name[lt]=Klavišas - modifikatorius buvo užrakintas
+Name[mk]=Некое копче за модификација е заклучено
+Name[nb]=En valgtast er blitt låst
+Name[nds]=En Sünnertast wöör fastsett
+Name[ne]=परिमार्जक कुञ्जीमा ताल्चा लागेको छ
+Name[nl]=Een modificatietoets is vergrendeld
+Name[nn]=Ein valtast er blitt låst
+Name[pl]=Klawisz modyfikujący został zablokowany
+Name[pt]=Uma tecla modificadora ficou bloqueada
+Name[pt_BR]=Uma tecla modificadora foi bloqueada
+Name[ro]=Un modificator de taste a fost blocat
+Name[ru]=Клавиша модификатора зафиксирована
+Name[se]=Válljenboallu lea lohkaduvvon
+Name[sk]=Modifikačný kláves je zamknutý
+Name[sl]=Spremenilna tipka je zaklenjena
+Name[sr]=Модификаторски тастер је закључан
+Name[sr@Latn]=Modifikatorski taster je zaključan
+Name[sv]=En väljartangent har låsts
+Name[tg]=Калиди ислоҳгар қулф карда шуд
+Name[th]=ปุ่มเปลี่ยนหน้าที่ค้างอยู่
+Name[uk]=Клавішу-модифікатор заблоковано
+Name[vi]=Một phím bổ trợ đã được khoá
+Name[wa]=Ene tape di candjmint a stî serêye
+Name[zh_CN]=修饰键现已锁定
+Name[zh_TW]=輔助按鍵已經鎖定
+Comment=A modifier key (e.g. Shift or Ctrl) has been locked and is now active for all of the following keypresses
+Comment[af]='n Verandering sleutel (bv. Shift of Control) is gesluit en is nou aktief vir al die volgende sleutel ponse
+Comment[be]=Клавіша мадыфікацыі (напр. Shift ці Ctrl) была заблакаваная і цяпер актыўная для ўсіх наступных націскаў іншых клавішаў
+Comment[bg]=Клавиш модификатор е заключен и е активен за всички последващи клавиши
+Comment[bn]=একটি মডিফায়ার কী (e.g. Shift বা Ctrl) লক করা হয়েছে এবং পরবর্তী সবকটি কী-র (key) জন্য সক্রিয় থাকবে
+Comment[bs]=Modifikatorska tipka (npr. Shift ili Ctrl) je zaključana i sada je aktivna za sve naredne tipke
+Comment[ca]=Una tecla modificadora (p.ex. Majús o Ctrl) s'ha bloquejat i ara està activa per a totes les pulsacions següents
+Comment[cs]=Modifikační klávesa (např. Shift nebo Control) byla zamčena a je nyní aktivní pro všechny následující stisky kláves
+Comment[csb]=Klawisz zjinaczi (np. Shift czë Control) òstôła zablokòwónô ë bãdze altiwòwónô przë nôslédnym wcësniãcô klawiszë
+Comment[da]=En ændringstast (f.eks., Shift eller Ctrl) er blevet låst og er nu aktiv for alle følgende tastetryk
+Comment[de]=Eine Sondertaste (z. B. Umschalt oder Strg) wurde eingerastet und bleibt für alle folgenden Tastendrücke aktiv
+Comment[el]=Ένα πλήκτρο τροποποιητή (π.χ. Shift ή Control) κλειδώθηκε και είναι τώρα ενεργό για τα επόμενα πατήματα πλήκτρων
+Comment[eo]=Modifa klavo (ekz. majuskliga klavo aŭ stirklavo) ŝlosiĝis kaj nun estas aktiva por sekvantaj klavpremoj
+Comment[es]=Se ha bloqueado una tecla modificadora (p. ej. Mayúsculas o Control) y ahora está activa para el resto de las operaciones con el teclado
+Comment[et]=Muuteklahv (nt. Shift või Ctrl) on lukustatud ja on nüüd aktiivne kõikide järgnevate klahvivajutuste jaoks
+Comment[eu]=Tekla aldatzaile bat (hau da, Shift edo Kontrol) blokeatu da eta orain aktiboa da hurrengo tekla zapaketa guztiendako
+Comment[fa]=یک کلید تغییردهنده )مثلاً، تبدیل یا مهار( قفل شده و اکنون برای همۀ فشارهای کلید زیر فعال می‌باشد
+Comment[fi]=Muunnosnäppäin (esim. Shift tai Ctrl) on lukittu ja on nyt aktiivinen kaikille seuraaville näppäinpainalluksille
+Comment[fr]=Une touche de modification (ex : Maj ou Ctrl) a été verrouillée et est maintenant active pour toutes les touches suivantes
+Comment[fy]=In modifikaasjetoets (sa as Shift of Control) is beskoattele en is no aktyf foar de neikommende toetsoanslaggen
+Comment[gl]=Unha tecla modificadora (ex. Alt ou Control) foi bloqueada e agora está activa para as seguintes combinacións
+Comment[hr]=Tipka modifikatora (npr. Shift ili Ctrl) zaključana je i sad je aktivna tijekom svih sljedećih pritisaka na tipke
+Comment[hu]=Egy módosító billentyű (pl. a Shift vagy a Ctrl) zárolódott, és ezután minden billentyűlenyomásnál aktív lesz
+Comment[is]=Breytilykli (Shift eða Ctrl) hefur verið læst og er nú virkur fyrir eftirfarandi lyklaborðsaðgerðir
+Comment[it]=Un tasto modificatore (es. Shift o Ctrl) è stato bloccato e adesso è attivo per le prossime immissioni
+Comment[ja]=修飾キー (Shift や Ctrl など) がロックされ、続くキー押下のすべてに対してアクティブになりました
+Comment[kk]=Түрлендіру пернесі (Shift я Control секілді) қосылып, енді келесі басылатын пернесінің әсерін түрлендіруге дайын
+Comment[km]= គ្រាប់ចុច​កែប្រែ​មួយ (ឧ. ប្តូរ ឬ បញ្ជា) ត្រូវ​បាន​ចាក់សោ ហើយ ឥឡូវ​វាសកម្ម​សម្រាប់​ការសង្កត់​គ្រាប់ចុច​ខាងក្រោម​ទាំងអស់​ ។
+Comment[ko]=Shift나 Control 키 같은 수정자 키의 상태가 바뀌었고 현재 모든 키 입력에 대해서 활성화됨
+Comment[lt]=Klavišas - modifikatorius (pvz., Lyg2(Shift) arba Vald(Ctrl)) buvo užrakintas ir dabar visiems būsimiems klavišų paspaudimams yra aktyvus
+Comment[mk]=Некое копче за модификација (пр. Shift или Ctrl) беше заклучено и сега е активно за сите наредни притиснати копчиња
+Comment[nb]=En valgtast (f.eks. «Shift» eller «Ctrl») er blitt låst og er nå tilgjengelig for alle de følgende tastetrykkene
+Comment[nds]=En Sünnertast (t.B. Ümschalt oder Strg) wöör fastsett un is nu aktiv för dat Drücken vun all nakamen Tasten
+Comment[ne]=परिमार्जक कुञ्जीमा (जस्तै: Shift वा Ctrl) ताल्चा लागेको छ र अहिले निम्न कुञ्जी थिच्नेहरू सबैका लागि सक्रिय छन्
+Comment[nl]=Een modificatietoets (zoals Shift of Control) is vergrendeld en is nu actief voor de volgende toetsaanslagen
+Comment[nn]=Ein valtast (t.d. «Shift» eller «Ctrl») er blitt låst og vert no bruka saman med alle følgjande tastetrykk
+Comment[pl]=Klawisz modyfikujący (np. Shift lub Ctrl) został zablokowany i będzie włączony przy następnych naciśnięciach klawiszy
+Comment[pt]=Uma tecla modificadora (p.ex., o Shift ou o Ctrl) ficou bloqueada e está agora activa para todas as sequências de teclas seguintes
+Comment[pt_BR]=Uma tecla modificadora (p.ex. Shift ou Ctrl) foi bloqueada e agora está ativa para todas as seqüências de teclas seguintes
+Comment[ro]=Un modificator de taste (cum ar fi Shift sau Ctrl) a fost blocat și este acum activ pentru următoarele apăsări de taste
+Comment[ru]=Клавиша модификатора (например, Shift или Ctrl) зафиксирована и активна при нажатии любых других клавиш
+Comment[sk]=Modifikačný kláves (napr. Shift alebo Ctrl) je zamknutý a je teraz aktívny pre všetky nasledujúce stlačenia kláves
+Comment[sl]=Spremenilna tipka (npr. Shift ali Ctrl) je zaklenjena in je sedaj omogočena za vse tipkanje v nadaljnje
+Comment[sr]=Модификаторски тастер (нпр. Shift или Control) је закључан и сада је активан за све наредне притиске тастера
+Comment[sr@Latn]=Modifikatorski taster (npr. Shift ili Control) je zaključan i sada je aktivan za sve naredne pritiske tastera
+Comment[sv]=En väljartangent (t.ex. Skift eller Ctrl) har låsts och är nu aktiv för alla följande tangentnertryckningar
+Comment[tg]=Калиди ислоҳгар (мисоли, Shift ё Ctrl) қулф карда буд лекин ҳозир ин фаъол аст барои ҳамаи пахшзаданиҳои оянда
+Comment[th]=ปุ่มสำหรับเปลี่ยนหน้าที่ (เช่น Shift หรือ Control) ค้างอยู่ และขณะนี้จะถูกใช้งาน สำหรับการกดคีย์อื่นๆ ต่อจากนี้ทั้งหมด
+Comment[uk]=Клавіша-модифікатор (напр., Shift або Control) була заблокована і тепер активна для всіх наступних натискань клавіш
+Comment[vi]=Một phím bổ trợ (như Shift hay Ctrl) đã được khoá và từ giờ bạn có thể dùng nó khi gõ bàn phím
+Comment[wa]=Ene tape di candjmint (metans SHIFT ou CTRL) a stî serêye et est asteure en alaedje po tos les tapes di tchôkeyes.
+Comment[zh_CN]=修饰键(即 Shift 或 Ctrl)已被锁定,现在将适用于后续按键
+Comment[zh_TW]=輔助按鍵 (例, Shift 或 Control) 已經鎖定且目前對所有下列按下按鍵的動作為作用中
+default_sound=KDE_Click.wav
+default_presentation=0
+nopresentation=236
+
+[lockkey-locked]
+Name=A lock key has been activated
+Name[af]='n Sluit sleutel was geaktiveer
+Name[be]=Клавіша блакіроўкі задзейнічаная
+Name[bg]=Заключващ клавиш бе активиран
+Name[bs]=Aktivirana je tipka za zaključavanje
+Name[ca]=S'ha activat una tecla de bloqueig
+Name[cs]=Klávesa zámku byla aktivována
+Name[csb]=Klawisza blokadë je aktiwòwónô
+Name[da]=En låsetast er blevet aktiveret
+Name[de]=Eine Feststelltaste wurde aktiviert
+Name[el]=Ένα πλήκτρο τροποποιητή ξεκλειδώθηκε
+Name[eo]=Ŝlosa klavo aktiviĝis
+Name[es]=Una tecla de bloqueo se ha activado
+Name[et]=Lukustusklahv on aktiveeritud
+Name[eu]=Tekla blokeaketa aktibatu da
+Name[fa]=یک کلید قفل فعال شده است
+Name[fi]=Lukitusnäppäin on aktivoitu
+Name[fr]=Une touche de verrouillage a été activée
+Name[fy]=In beskoatteltoets is aktivearre
+Name[gl]=Activou-se unha tecla de bloqueo
+Name[he]=מקש ננעל הופעל
+Name[hr]=Tipka zaključavanja je aktivirana
+Name[hu]=Egy zároló billentyű aktívvá vált
+Name[is]=Læsilykill hefur verið virkjaður
+Name[it]=Un tasto di blocco è stato attivato
+Name[ja]=ロックキーがアクティブになりました
+Name[ka]=დაბლოკვის ღილაკი გააქტივებულია
+Name[kk]=Қосқыш перне белсенді
+Name[km]=ការ​ចាក់សោ​គ្រាប់​ចុច​ត្រូវ​បាន​ធ្វើ​ឲ្យ​សកម្ម
+Name[ko]=잠금 키가 활성화됨
+Name[lt]=Užrakto klavišas buvo aktyvuotas
+Name[mk]=Некое копче за заклучување беше активирано
+Name[nb]=En valgtast er blitt skrudd på
+Name[nds]=En Faststelltast is nu aktiv
+Name[ne]=एउटा ताल्चा लगाएको कुञ्जी सक्रिय पारिएको छ
+Name[nl]=Een vergrendeltoets is geactiveerd
+Name[nn]=Ein låsetast er blitt slått på
+Name[pl]=Klawisz blokujący został włączony
+Name[pt]=Uma tecla de bloqueio ficou activa
+Name[pt_BR]=Uma tecla de bloqueio foi ativada
+Name[ro]=O tastă de blocare a fost activată
+Name[ru]=Активирована клавиша переключения режимов
+Name[se]=Lohkadanboallu lea aktiverejuvvon
+Name[sk]=Zamykací kláves je aktivny.
+Name[sl]=Zaklenilna tipka je omogočena
+Name[sr]=Тастер за закључавање је активиран
+Name[sr@Latn]=Taster za zaključavanje je aktiviran
+Name[sv]=En låstangent har aktiverats
+Name[tg]=Калиди қулф фаъол карда шуд
+Name[th]=ปุ่มล็อคเปิดใช้งาน
+Name[uk]=Клавішу блокування активовано
+Name[vi]=Một phím khoá đã được kích hoạt
+Name[wa]=Ene tape po serer a stî metowe en alaedje
+Name[zh_CN]=锁定键现已激活
+Name[zh_TW]=鎖定鍵已作用
+Comment=A lock key (e.g. Caps Lock or Num Lock) has changed its state and is now active
+Comment[af]='n Sluit sleutel (bv. Caps Lock of Num Lock) se toestand het verander en is nou aktief
+Comment[be]=Клавіша блакіроўкі (напр. Caps Lock ці Num Lock) змяніла свой стан і зрабілася актыўнай
+Comment[bg]=Заключващ клавиш (Caps Lock или Num Lock) си промени състоянието и е неактивен сега
+Comment[bs]=Tipka za zaključavanje (npr. Caps Lock ili Num Lock) je promijenila stanje i sada je aktivna
+Comment[ca]=Una tecla de bloqueig (p.ex. BloqMajús o BloqNum) ha canviat d'estat i ara està activa
+Comment[cs]=Klávesa zámku (např. Caps Lock nebo Num Lock) změnila svůj stav a je nyní aktivní
+Comment[csb]=Klawisza blokadë (np. Caps Lock czë Num Lock) zmieniłą stón ë nie je terô aktiwnô
+Comment[da]=En låsetast (f.eks., Caps Lock eller Num Lock) har ændret sin tilstand og er nu aktiv
+Comment[de]=Eine Feststelltaste (z. B. die Hochstelltaste oder Num-Lock) hat ihren Status geändert und ist nun aktiv
+Comment[el]=Ένα πλήκτρο κλειδώματος (π.χ. Caps Lock ή Num Lock) άλλαξε κατάσταση και είναι τώρα ανενεργό
+Comment[eo]=Ŝlosa klavo (ekz. majuskla baskulo aŭ Cifera baskulo) ŝanĝis sian staton kaj nun estas aktiva
+Comment[es]=Una tecla de bloqueo (p. ej., Bloq Mayús o Bloq Num) ha cambiado su estado y ahora está inactiva
+Comment[et]=Lukustusklahv (nt. Caps Lock või Num Lock) muutis oma seisundit ning on nüüd mitteaktiivne
+Comment[eu]=Tekla blokeatzaile bat (hau da, blok. maius. edo blok. zenb.) egoeraz aldatu da eta orain aktiboa da
+Comment[fa]=یک کلید قفل )مثلاً ، قفل تبدیل یا قفل اعداد( وضعیت خود را تغییر داده و اکنون غیرفعال می‌باشد
+Comment[fi]=Lukitusnäppäin (esim. CapsLock tai NumLock) on vaihtanut tilaansa ja on nyt aktiivinen
+Comment[fr]=L'état d'une touche de verrouillage (ex : Verr. Maj ou Verr. Num.) est modifié et elle est maintenant inactive
+Comment[fy]=De tastân fan in beskoatteltoets (sa as kaptaalskoattel of Nûm skoattel) is wizige en is no ynaktyf.
+Comment[gl]=Unha tecla de bloqueo (ex., Bloq Maius ou Bloq Num) mudou de estado e agora está activa
+Comment[he]=מקש ננעל (למשל Caps Lock או Num Lock) שינה את מצבו והוא כעת פעיל
+Comment[hr]=Tipka zaključavanja (npr. CapsLock ili NumLock) promijenila je svoje stanje i sad je aktivna
+Comment[hu]=Egy zároló billentyű (pl. a Caps Lock vagy a Num Lock) állapota aktívvá vált
+Comment[is]=Læsilykill (Caps Lock eða Num Lock) hefur breytt um stöðu og er nú virkur
+Comment[it]=Un tasto di blocco (es. Bloc Maiusc o Bloc Num) ha cambiato stato e adesso è inattivo
+Comment[ja]=ロックキー (Caps Lock や Num Lock など) の状態が変更され、アクティブになりました
+Comment[kk]=Қосқыш перне (Caps Lock я Num Lock) күйін өзгертіп, енді белсенді
+Comment[km]=គ្រាប់​ចុច​ចាក់សោ (ឧ. ប្តូរ​ជាប់ ឬ Num Lock) បាន​ផ្លាស់ប្តូរ​សភាព​របស់​វា ហើយ ឥឡូវ​នេះ​វាអសកម្ម
+Comment[ko]=Caps Lock이나 Num Lock 키 같은 잠금 키의 상태가 바뀌었고 현재 활성화됨
+Comment[lt]=Užrakto klavišo (pvz., Didž(Caps Lock) arba Sk(Num Lock)) būsena pakito ir jis dabar - aktyvus
+Comment[mk]=Некое копче за заклучување (пр. Caps Lock или Num Lock) си ја смени состојбата и сега е неактивно
+Comment[nb]=En låsetast (f.eks. «Caps Lock» eller «Num lock») har endret status og er nå skrudd på.
+Comment[nds]=En Faststelltast (t.B. Tallenrast oder Grootschrieventast) hett den Tostand ännert un is nu aktiv
+Comment[ne]=एउटा ताल्चा लगाउने कुञ्जीले (जस्तै: Caps Lock वा Num Lock) यसको स्थिति परिवर्तन गरेको छ र अहिले सक्रिय छ
+Comment[nl]=De status van een vergrendeltoets (zoals Caps Lock of Num Lock) is gewijzigd en is nu inactief
+Comment[nn]=Ein låsetast (t.d. «Caps Lock» eller «Num lock») har endra statusen og er no slått på
+Comment[pl]=Klawisz blokujący (np. Caps Lock lub Num Lock) zmienił stan i jest teraz wyłączony
+Comment[pt]=Uma tecla de bloqueio (p.ex., o Caps Lock ou o Num Lock) mudou o seu estado e ficou activa
+Comment[pt_BR]=Uma tecla de bloqueio (p.ex. Caps Lock ou Num Lock) mudou seu estado e agora está ativa
+Comment[ro]=O tastă de blocare (cur ar fi Caps Lock sau Num Lock) și-a schimbat starea și este acum activă
+Comment[ru]=Активирована клавиша переключения режимов (например, Caps Lock или Num Lock)
+Comment[sk]=Zamykací kláves (napr. Caps Lock alebo Num Lock) zmenil svoj stav a je teraz aktívny.
+Comment[sl]=Zaklenilna tipka (npr. Caps Lock ali Num Lock) je spremenila svoje stanje in je sedaj omogočena
+Comment[sr]=Тастер за закључавање (нпр. Caps Lock или Num Lock) је променио стање и сада је активан
+Comment[sr@Latn]=Taster za zaključavanje (npr. Caps Lock ili Num Lock) je promenio stanje i sada je aktivan
+Comment[sv]=En låstangent (t.ex. Caps Lock eller Num Lock) har ändrat tillstånd och är nu aktiv
+Comment[tg]=Калиди қулф (мисоли, Caps Lock ё Num Lock) вазъияти худ иваз кард ва ҳозир фаъол аст
+Comment[th]=มีการเปลี่ยนสถานะปุ่มล็อค (เช่น Caps Lock หรือ Num Lock) และขณะนี้เปิดการใช้งาน
+Comment[uk]=Клавіша блокування (напр., Caps Lock або Num Lock) змінила свій стан і тепер активна
+Comment[vi]=Một phím khoá (như Caps Lock hay Num Lock) đã thay đổi trạng thái và được kích hoạt
+Comment[wa]=Ene tape po serer (metans CAPS LOCK ou NUM LOCK) a candjî d' esta et est asteure en alaedje
+Comment[zh_CN]=锁定键(如 Caps Lock 或 Num Lock)更改了其状态,现已非激活
+Comment[zh_TW]=鎖定按鍵(例, 大寫鎖定或數字鎖定)已改變其狀態且目前為作用中
+default_sound=KDE_Click.wav
+default_presentation=0
+nopresentation=236
+
+[lockkey-unlocked]
+Name=A lock key has been deactivated
+Name[af]='n Sluit sleutel was gedeaktiveer
+Name[be]=Клавіша блакіроўкі зрабілася неактыўнай
+Name[bg]=Заключващ клавиш бе деактивиран
+Name[bs]=Tipka za zaključavanje je deaktivirana
+Name[ca]=S'ha desactivat una tecla de bloqueig
+Name[cs]=Klávesa zámku byla deaktivována
+Name[csb]=Klawisza blokadë nie je aktiwnô
+Name[da]=En låsetast er blevet deaktiveret
+Name[de]=Eine Feststelltaste wurde deaktiviert
+Name[el]=Ένα πλήκτρο κλειδώματος απενεργοποιήθηκε
+Name[eo]=Ŝlosa klavo malaktiviĝis
+Name[es]=Una tecla de bloqueo se ha desactivado
+Name[et]=Lukustusklahv on nüüd mitteaktiivne
+Name[eu]=Tekla blokeaketa desaktibatu da
+Name[fa]=کلید قفل غیرفعال شده است
+Name[fi]=Lukitusnäppäin on nyt deaktivoitu
+Name[fr]=Une touche de verrouillage a été désactivée
+Name[fy]=In beskoatteltoets is ûntaktivearre
+Name[gl]=Unha tecla de bloqueo foi desactivada
+Name[he]=מקש ננעל נכבה
+Name[hr]=Tipka zaključavanja je deaktivirana
+Name[hu]=Egy zároló billentyű inaktívvá vált
+Name[is]=Læsilykill hefur verið aftengdur
+Name[it]=Un tasto di blocco è stato disattivato
+Name[ja]=ロックキーが非アクティブになりました
+Name[ka]=დაბლოკვის ღილაკი ამორთულია
+Name[kk]=Қосқыш перне өшіруілі
+Name[km]=គ្រាប់ចុច​ចាក់សោ​ត្រូវ​បាន​ធ្វើ​ឲ្យ​អសកម្ម
+Name[ko]=잠금 키가 비활성화됨
+Name[lt]=Užrakto klavišas buvo išjungtas
+Name[mk]=Некое копче за заклучување беше активирано
+Name[nb]=En låsetast er blitt skrudd av
+Name[nds]=En Faststelltast is nu nich mehr aktiv
+Name[ne]=एउटा ताल्चा लगाउने कुञ्जी निस्क्रिय पारिएको छ
+Name[nl]=Een vergrendeltoets is gedeactiveerd
+Name[nn]=Ein låsetast er blitt slått av
+Name[pl]=Klawisz blokujący został wyłączony
+Name[pt]=Uma tecla de bloqueio ficou inactiva
+Name[pt_BR]=Uma tecla de bloqueio foi desativada
+Name[ro]=O tastă de blocare a fost deactivată
+Name[ru]=Деактивирована клавиша переключения режимов
+Name[se]=Lohkadanboallu ii leat šat aktiivalaš
+Name[sk]=Zamykací kláves je neaktívny.
+Name[sl]=Zaklenilna tipka je onemogočena
+Name[sr]=Тастер за закључавање је деактивиран
+Name[sr@Latn]=Taster za zaključavanje je deaktiviran
+Name[sv]=En låstangent har inaktiverats
+Name[tg]=Калиди қулф ғайри фаъол карда буд
+Name[th]=ปุ่มล็อคถูกปิด
+Name[uk]=Клавішу блокування деактивовано
+Name[vi]=Một phím khoá đã bị tắt
+Name[wa]=Ene tape po serer a stî dismetowe
+Name[zh_CN]=锁定键现已非激活
+Name[zh_TW]=鎖定鍵已取消作用
+Comment=A lock key (e.g. Caps Lock or Num Lock) has changed its state and is now inactive
+Comment[af]='n Sluit sleutel (bv. Caps Lock of Num Lock) se toestand het verander en is nou onaktief
+Comment[be]=Клавіша блакіроўкі (напр. Caps Lock ці Num Lock) змяніла свой стан і зрабілася неактыўнай
+Comment[bg]=Заключващ клавиш (Caps Lock или Num Lock) си промени състоянието и е неактивен сега
+Comment[bs]=Tipka za zaključavanje (npr. Caps Lock ili Num Lock) je promijenila stanje i sada je neaktivna
+Comment[ca]=Una tecla de bloqueig (p.ex. BloqMajús o BloqNum) ha canviat d'estat i ara està inactiva
+Comment[cs]=Klávesa zámku (např. Caps Lock nebo Num Lock) změnila svůj stav a je nyní aktivní
+Comment[csb]=Klawisza blokadë (np. Caps Lock czë Num Lock) zmieniła stón ë nie je terô aktiwnô
+Comment[da]=En låsetast (f.eks., Caps Lock eller Num Lock) har ændret sin tilstand og er nu inaktiv
+Comment[de]=Eine Feststelltaste (z. B. die Hochstelltaste oder Num-Lock) hat ihren Status geändert und ist nun inaktiv
+Comment[el]=Ένα πλήκτρο κλειδώματος (π.χ. Caps Lock ή Num Lock) άλλαξε κατάσταση και είναι τώρα ανενεργό
+Comment[eo]=baskula klavo (ekz. majuskla baskulo aŭ nombra baskulo) ŝanĝis staton, kaj jam ne estas aktiva
+Comment[es]=Una tecla de bloqueo (p. ej., Bloq Mayús o Bloq Num) ha cambiado su estado y ahora está inactiva
+Comment[et]=Lukustusklahv (nt. Caps Lock või Num Lock) muutis oma seisundit ning on nüüd mitteaktiivne
+Comment[eu]=Tekla blokeatzaile bat (hau da, blok. maius. edo blok. zenb.) egoeraz aldatu da eta orain ez da aktiboa
+Comment[fa]=یک کلید قفل )مثلاً، قفل تبدیل یا قفل اعداد( وضعیت خود را تغییر داده و اکنون غیرفعال می‌باشد
+Comment[fi]=Lukitusnäppäin (esim. CapsLock tai NumLock) on vaihtanut tilaansa ja ei ole enää aktiivinen
+Comment[fr]=L'état d'une touche de verrouillage (ex : Verr. Maj ou Verr. Num.) est modifié et elle est maintenant inactive
+Comment[fy]=De tastân fan in beskoatteltoets (sa as kaptaalskoattel of Nûm skoattel) is wizige en is no ynaktyf.
+Comment[gl]=Unha tecla de bloqueo (ex., Bloq Maius ou Bloq Num) mudou de estado e agora está inactiva
+Comment[he]=מקש ננעל (למשל Caps Lock או Num Lock) שינה את מצבו והוא כעת לא פעיל (כבוי)
+Comment[hr]=Tipka zaključavanja (npr. CapsLock ili NumLock) promijenila je svoje stanje i sad nije aktivna
+Comment[hu]=Egy zároló billentyű (pl. a Caps Lock vagy a Num Lock) állapota inaktívvá vált
+Comment[is]=Læsilykill (Caps Lock eða Num Lock) hefur breytt um stöðu og er nú óvirkur
+Comment[it]=Un tasto di blocco (es. Bloc Maiusc o Bloc Num) ha cambiato stato e adesso è inattivo
+Comment[ja]=ロックキー (Caps Lock や Num Lock など) の状態が変更され、非アクティブになりました
+Comment[kk]=Қосқыш перне (Caps Lock я Num Lock) күйін өзгертіп, енді белсенді емес
+Comment[km]=គ្រាប់​ចុច​ចាក់សោ (ឧ. ប្តូរ​ជាប់ ឬ Num Lock) បាន​ផ្លាស់ប្តូរ​សភាព​របស់​វា ហើយ ឥឡូវ​នេះ​វាអសកម្ម
+Comment[ko]=Caps Lock이나 Num Lock 키 같은 잠금 키의 상태가 바뀌었고 현재 비활성화됨
+Comment[lt]=Užrakto klavišo (pvz., Didž(Caps Lock) arba Sk(Num Lock)) būsena pakito ir jis dabar - neaktyvus
+Comment[mk]=Некое копче за заклучување (пр. Caps Lock или Num Lock) си ја смени состојбата и сега е неактивно
+Comment[nb]=En låsetast (f.eks. «Caps Lock» eller «Num lock») har endret status og er nå skrudd av.
+Comment[nds]=En Faststelltast (t.B. Tallenrast oder Grootschrieventast) hett den Tostand ännert un is nu inaktiv
+Comment[ne]=एउटा ताल्चा लगाउने कुञ्जीले (जस्तै: Caps Lock वा Num Lock) यसको स्थिति परिवर्तन गरेको छ र अहिले निस्क्रिय छ
+Comment[nl]=De status van een vergrendeltoets (zoals Caps Lock of Num Lock) is gewijzigd en is nu inactief
+Comment[nn]=Ein låsetast (t.d. «Caps Lock» eller «Num lock») har endra statusen og er no slått av
+Comment[pl]=Klawisz blokujący (np. Caps Lock lub Num Lock) zmienił stan i jest teraz wyłączony
+Comment[pt]=Uma tecla de bloqueio (p.ex., o Caps Lock ou o Num Lock) mudou o seu estado e ficou inactiva
+Comment[pt_BR]=Uma tecla de bloqueio (p.ex. Caps Lock ou Num Lock) mudou seu estado e agora está inativa
+Comment[ro]=O tastă de blocare (cur ar fi Caps Lock sau Num Lock) și-a schimbat starea și este acum inactivă
+Comment[ru]=Деактивирована клавиша переключения режимов (например, Caps Lock или Num Lock)
+Comment[sk]=Zamykací kláves (napr. Caps Lock alebo Num Lock) zmenil svoj stav a je teraz neaktívny
+Comment[sl]=Zaklenilna tipka (npr. Caps Lock ali Num Lock) je spremenila svoje stanje in je sedaj onemogočena
+Comment[sr]=Тастер за закључавање (нпр. Caps Lock или Num Lock) је променио стање и више није активан
+Comment[sr@Latn]=Taster za zaključavanje (npr. Caps Lock ili Num Lock) je promenio stanje i više nije aktivan
+Comment[sv]=En låstangent (t.ex. Caps Lock eller Num Lock) har ändrat tillstånd och är nu inaktiv
+Comment[tg]=Калиди қулф (мисоли, Caps Lock ё Num Lock) вазъияти худ иваз кард ва ҳозир ғайри фаъол аст
+Comment[th]=มีการเปลี่ยนสถานะปุ่มล็อค (เช่น Caps Lock หรือ Num Lock) และขณะนี้ปิดการใช้งาน
+Comment[uk]=Клавіша блокування (напр., Caps Lock або Num Lock) змінила свій стан і тепер неактивна
+Comment[vi]=Một phím khoá (như Caps Lock hay Num Lock) đã thay đổi trạng thái và đã bị tắt
+Comment[wa]=Ene tape po serer (metans CAPS LOCK ou NUM LOCK) a candjî d' esta et est asteure dismetowe
+Comment[zh_CN]=锁定键(如 Caps Lock 或 Num Lock)更改了其状态,现已非激活
+Comment[zh_TW]=鎖定按鍵(例, 大寫鎖定或數字鎖定)已改變其狀態且目前為非作用中
+default_sound=KDE_Click.wav
+default_presentation=0
+nopresentation=236
+
+[stickykeys]
+Name=Sticky keys has been enabled or disabled
+Name[af]=Sticky sleutels was geaktiveer of gedeaktiveer
+Name[be]=Ліпучыя клавішы былі ўключаны ці выключаны
+Name[bg]=Залепващите клавиши бяха включени или изключени
+Name[bs]=Ljepljive tipke su uključene ili isključene
+Name[ca]=S'han habilitat o deshabilitat les tecles apegaloses
+Name[cs]=Sticky klávesy byly povoleny nebo zakázány
+Name[csb]=Klawisze przëlepieniô òstałë włączoné abò wëłączoné
+Name[da]=Klæbrige taster er aktiveret eller deaktiveret
+Name[de]=Klebende Tasten wurden aktiviert oder deaktiviert
+Name[el]=Τα κολλημένα πλήκτρα ενεργοποιήθηκαν ή απενεργοποιήθηκαν
+Name[eo]=Fiksaj klavoj validiĝis aŭ malvalidiĝis
+Name[es]=Se han activado o desactivado las teclas pegajosas
+Name[et]=Kleepuvad klahvid on keelatud või lubatud
+Name[eu]=Tekla itsakorrak gaitu edo desgaitu dira
+Name[fa]=کلیدهای چسبناک، فعال یا غیرفعال شده‌اند
+Name[fi]=Tahmeat näppäimet on otettu käyttöön tai poistettu käytöstä
+Name[fr]=L'automaintien des touches a été activé ou désactivé
+Name[fy]=Plakkende toetsen binne aktivearre of deaktivearre
+Name[gl]=As teclas pegadias foron ou activadas ou desactivadas
+Name[he]=מקשים דביקים הופעלו או בוטלו
+Name[hr]=Ljepljive tipke su omogućene ili onemogućene
+Name[hu]=Ragadós billentyűk átkapcsolva
+Name[is]=Slökkt eða kveikt hefur verið á klístruðum lyklum
+Name[it]=La permanenza dei tasti è stata abilitata o disabilitata
+Name[ja]=スティッキーキーを有効または無効にしました
+Name[kk]=Жабысқақ пернелер рұксат етілген не етілмеген
+Name[km]=គ្រាប់ចុច​ស្អិត​ត្រូវ​បានអនុញ្ញាត ឬ មិន​អនុញ្ញាត
+Name[ko]=끈적이 키가 활성화되거나 비활성화됨
+Name[lt]=Lipnūs klavišai buvo įgalinti arba išjungti
+Name[mk]=„Лепливи копчиња“ е овозможено или оневозможено
+Name[nb]=Faste valgtaster er blitt skrudd av eller på
+Name[nds]=De Metood "Backige Tasten" wöör an- oder utschalt
+Name[ne]=टाँसिने कुञ्जीहरू सक्षम वा अक्षम पारिएको छ
+Name[nl]=Plakkende toetsen zijn geactiveerd of gedeactiveerd
+Name[nn]=Faste valtastar er blitt slått av eller på
+Name[pl]=Lepkie klawisze zostały włączone lub wyłączone
+Name[pt]=As teclas fixas ficaram activas ou inactivas
+Name[pt_BR]=Teclas de aderência foram habilitadas ou desabilitadas
+Name[ro]=Taste lipicioase (Sticky keys) au fost activate sau deactivate
+Name[ru]=Включены или отключены "залипающие" клавиши
+Name[sk]=Lepkavé klávesy zmenili svoj stav.
+Name[sl]=Lepljive tipke so spremenile stanje
+Name[sr]=Лепљиви тастери су укључени или искључени
+Name[sr@Latn]=Lepljivi tasteri su uključeni ili isključeni
+Name[sv]=Klistriga tangenter har aktiverats eller inaktiverats
+Name[tg]=Калидҳои часпак фаъол ё ғайрифаъол мебошад
+Name[th]=ปุ่มติดหนึบได้ถูกใช้งาน หรือ ถูกปิด
+Name[uk]=Липкі клавіші було увімкнено або вимкнено
+Name[vi]=Các phím dính đã được bật hoặc đã được tắt
+Name[wa]=Les aclapantès tapes ont stî metowes en alaedje ou dismetowes
+Name[zh_CN]=启用或禁用了粘滞键
+Name[zh_TW]=相黏鍵已啟用或停用
+Comment=Sticky keys has been enabled or disabled
+Comment[af]=Sticky sleutels was geaktiveer of gedeaktiveer
+Comment[be]=Ліпучыя клавішы былі ўключаны ці выключаны
+Comment[bg]=Залепващите клавиши бяха включени или изключени
+Comment[bs]=Ljepljive tipke su uključene ili isključene
+Comment[ca]=S'han habilitat o deshabilitat les tecles apegaloses
+Comment[cs]=Sticky klávesy byly povoleny nebo zakázány
+Comment[csb]=Klawisze przëlemieniô òstałë włączoné abò wëłączoné
+Comment[da]=Klæbrige taster er aktiveret eller deaktiveret
+Comment[de]=Die Funktion "Klebende Tasten" wurde aktiviert bzw. deaktiviert
+Comment[el]=Τα κολλημένα πλήκτρα ενεργοποιήθηκαν ή απενεργοποιήθηκαν
+Comment[eo]=Fiksaj klavoj estas aktivigitaj aŭ malaktivigitaj
+Comment[es]=Se han activado o desactivado las teclas pegajosas
+Comment[et]=Kleepuvad klahvid on keelatud või lubatud
+Comment[eu]=Tekla itsakorrak gaitu edo desgaitu dira
+Comment[fa]=کلیدهای چسبناک، فعال یا غیرفعال شده‌اند
+Comment[fi]=Tahmeat näppäimet on otettu käyttöön tai poistettu käytöstä
+Comment[fr]=L'automaintien des touches a été activé ou désactivé
+Comment[fy]=Plakkende toetsen binne aktivearre of deaktivearre
+Comment[gl]=As teclas pegadias foron ou activadas ou desactivadas
+Comment[he]=מקשים דביקים הופעלו או בוטלו
+Comment[hr]=Ljepljive tipke su omogućene ili onemogućene
+Comment[hu]=A ragadós billentyűk használatát ki- vagy bekapcsolták
+Comment[is]=Slökkt eða kveikt hefur verið á klístruðum lyklum
+Comment[it]=La permanenza dei tasti è stata abilitata o disabilitata
+Comment[ja]=スティッキーキーを有効または無効にしました
+Comment[kk]=Жабысқақ пернелер рұксат етілген не етілмеген
+Comment[km]=គ្រាប់ចុច​ស្អិត​ត្រូវ​បាន​អនុញ្ញាត ឬ មិន​អនុញ្ញាត
+Comment[ko]=끈적이 키가 활성화되거나 비활성화됨
+Comment[lt]=Lipnūs klavišai buvo įjungti arba išjungti
+Comment[mk]=„Лепливи копчиња“ е овозможено или оневозможено
+Comment[nb]=Faste valgtaster er blitt skrudd av eller på
+Comment[nds]=De Metood "Backige Tasten" wöör an- oder utschalt
+Comment[ne]=टाँसिने कुञ्जीहरू सक्षम वा अक्षम पारिएको छ
+Comment[nl]=Plakkende toetsen zijn geactiveerd of gedeactiveerd
+Comment[nn]=Faste valtaster er blitt slått av eller på
+Comment[pl]=Lepkie klawisze zostały włączone lub wyłączone
+Comment[pt]=As teclas fixas ficaram activas ou inactivas
+Comment[pt_BR]=Teclas de aderência foram habilitadas ou desabilitadas
+Comment[ro]=Taste lipicioase (Sticky keys) au fost activate sau deactivate
+Comment[ru]=Включены или отключены "залипающие" клавиши
+Comment[sk]=Lepkavé klávesy zmenili svoj stav.
+Comment[sl]=Lepljive tipke so spremenile stanje in so sedaj omogočene ali onemogočene
+Comment[sr]=Лепљиви тастери су укључени или искључени
+Comment[sr@Latn]=Lepljivi tasteri su uključeni ili isključeni
+Comment[sv]=Klistriga tangenter har aktiverats eller inaktiverats
+Comment[tg]=Калидҳои часпак фаъол ё ғайрифаъол мебошад
+Comment[th]=ปุ่มติดหนึบได้ถูกใช้งาน หรือ ถูกปิด
+Comment[uk]=Липкі клавіші було увімкнено або вимкнено
+Comment[vi]=Các phím dính đã được bật hoặc đã được tắt
+Comment[wa]=Les aclapantès tapes ont stî metowes en alaedje ou dismetowes
+Comment[zh_CN]=启用或禁用了粘滞键
+Comment[zh_TW]=相黏鍵已經被啟用或停用
+default_sound=KDE_Click.wav
+default_presentation=16
+nopresentation=236
+
+[slowkeys]
+Name=Slow keys has been enabled or disabled
+Name[af]=Stadige sleutels was geaktiveer of gedeaktiveer
+Name[be]=Марудныя клавішы былі ўключаны ці выключаны
+Name[bg]=Бавните клавиши бяха включени или изключени
+Name[bs]=Spore tipke su uključene ili isključene
+Name[ca]=S'han habilitat o deshabilitat les tecles lentes
+Name[cs]=Pomalé klávesy byly povoleny nebo zakázány
+Name[csb]=Pòwólné klawisze òstałë włączoné abò wëłączone
+Name[da]=Langsomme taster er aktiveret eller deaktiveret
+Name[de]=Langsame Tasten wurden aktiviert oder deaktiviert
+Name[el]=Τα αργά πλήκτρα ενεργοποιήθηκαν ή απενεργοποιήθηκαν
+Name[eo]=Malrapidklavoj validiĝis aŭ malvalidiĝis
+Name[es]=Se han activado o desactivado las teclas lentas
+Name[et]=Aeglased klahvid on keelatud või lubatud
+Name[eu]=Tekla motelak gaitu edo desgaitu dira
+Name[fa]=کلیدهای کند، فعال یا غیرفعال شده‌اند
+Name[fi]=Hitaat näppäimet on otettu käyttöön tai poistettu käytöstä
+Name[fr]=Les touches lentes ont été activées ou désactivées
+Name[fy]=Trage toetsen binne aktivearre of ûntaktivearre
+Name[gl]=As teclas lentas foron ou activadas ou desactivadas
+Name[he]=מקשים אטיים הופעלו או בוטלו
+Name[hr]=Spore tipke su omogućene ili onemogućene
+Name[hu]=A lassú billentyűk használata átkapcsolva
+Name[is]=Slökkt eða kveikt hefur verið á hægum lyklum
+Name[it]=Il rallentamento dei tasti è stato abilitato o disabilitato
+Name[ja]=スローキーを有効または無効にしました
+Name[kk]=Баяу пернелер рұксат етілген не етілмеген
+Name[km]=គ្រាប់ចុច​យឺត​ត្រូវ​បាន​អនុញ្ញាត ឬ មិន​អនុញ្ញាត
+Name[ko]=느린 키가 활성화되거나 비활성화됨
+Name[lt]=Lėti klavišai buvo įgalinti arba išjungti
+Name[mk]=„Спори копчиња“ е овозможено или оневозможено
+Name[nb]=Trege taster er blitt skrudd av eller på
+Name[nds]=De Metood "Langsam Tasten" wöör an- oder utschalt
+Name[ne]=ढिलो कुञ्जीहरू सक्षम वा अक्षम पारिएको छ
+Name[nl]=Langzame toetsten is geactiveerd of gedeactiveerd
+Name[nn]=Trege tastar er blitt slått av eller på
+Name[pl]=Powolne klawisze zostały włączone lub wyłączone
+Name[pt]=As teclas lentas ficaram activas ou inactivas
+Name[pt_BR]=Teclas lentas foram habilitadas ou desabilitadas
+Name[ro]=Taste lente (Slow keys) au fost activate sau deactivate
+Name[ru]=Включены или отключены замедленные клавиши
+Name[sk]=Pomalé klávesy zmenili svoj stav.
+Name[sl]=Počasne tipke so spremenile stanje
+Name[sr]=Спори тастери су укључени или искључени
+Name[sr@Latn]=Spori tasteri su uključeni ili isključeni
+Name[sv]=Långsamma tangenter har aktiverats eller inaktiverats
+Name[tg]=калиди сусткор фаъол ё ғайрифаъол мебошад
+Name[th]=ปุ่มชะลอได้ถูกใช้งาน หรือถูกปิด
+Name[uk]=Повільні клавіші було увімкнено або вимкнено
+Name[vi]=Các phím chậm đã được bật hoặc đã được tắt
+Name[wa]=Les londjinnès tapes ont stî metowes en alaedje ou dismetowes
+Name[zh_CN]=启用或禁用了筛选键
+Name[zh_TW]=延遲鍵已啟用或停用
+Comment=Slow keys has been enabled or disabled
+Comment[af]=Stadige sleutels was geaktiveer of gedeaktiveer
+Comment[be]=Марудныя клавішы былі ўключаны ці выключаны
+Comment[bg]=Бавните клавиши бяха включени или изключени
+Comment[bs]=Spore tipke su uključene ili isključene
+Comment[ca]=S'han habilitat o deshabilitat les tecles lentes
+Comment[cs]=Pomalé klávesy byly povoleny nebo zakázány
+Comment[csb]=Pòwólné klawisze òstałë włączoné abò wëłączone
+Comment[da]=Langsomme taster er aktiveret eller deaktiveret
+Comment[de]=Die Funktion "Langsame Tasten" wurde aktiviert bzw. deaktiviert
+Comment[el]=Τα αργά πλήκτρα ενεργοποιήθηκαν ή απενεργοποιήθηκαν
+Comment[eo]=Malrapidklavoj estas aktivigitaj aŭ malaktivigitaj
+Comment[es]=Se han activado o desactivado las teclas pegajosas
+Comment[et]=Aeglased klahvid on keelatud või lubatud
+Comment[eu]=Tekla motelak gaitu edo desgaitu dira
+Comment[fa]=کلیدهای چسبناک، فعال یا غیرفعال شده‌اند
+Comment[fi]=Hitaat näppäimet on otettu käyttöön tai poistettu käytöstä
+Comment[fr]=Les touches lentes ont été activées ou désactivées
+Comment[fy]=Trage toetsen binne aktivearre of ûntaktivearre
+Comment[gl]=As teclas lentas foron ou activadas ou desactivadas
+Comment[he]=מקשים אטיים הופעלו או בוטלו
+Comment[hr]=Spore tipke su omogućene ili onemogućene
+Comment[hu]=A lassú billentyűk használatát ki- vagy bekapcsolták
+Comment[is]=Slökkt eða kveikt hefur verið á hægum lyklum
+Comment[it]=Il rallentamento dei tasti è stato abilitato o disabilitato
+Comment[ja]=スローキーを有効または無効にしました
+Comment[kk]=Баяу пернелер рұксат етілген не етілмеген
+Comment[km]=គ្រាប់ចុច​យឺត​ត្រូវ​បាន​អនុញ្ញាត ឬ មិន​អនុញ្ញាត
+Comment[ko]=느린 키가 활성화되거나 비활성화됨
+Comment[lt]=Lėti klavišai buvo įgalinti arba išjungti
+Comment[mk]=„Спори копчиња“ е овозможено или оневозможено
+Comment[nb]=Trege taster er blitt skrudd av eller på
+Comment[nds]=De Metood "Langsam Tasten" wöör an- oder utschalt
+Comment[ne]=ढिलो कुञ्जीहरू सक्षम वा अक्षम पारिएको छ
+Comment[nl]=Langzame toetsten is geactiveerd of gedeactiveerd
+Comment[nn]=Trege tastar er blitt slått av eller på
+Comment[pl]=Powolne klawisze zostały włączone lub wyłączone
+Comment[pt]=As teclas lentas ficaram activas ou inactivas
+Comment[pt_BR]=Teclas lentas foram habilitadas ou desabilitadas
+Comment[ro]=Taste lente (Slow keys) au fost activate sau deactivate
+Comment[ru]=Включены или отключены замедленные клавиши
+Comment[sk]=Pomalé klávesy zmenili svoj stav.
+Comment[sl]=Počasne tipke so spremenile stanje in so sedaj omogočene ali onemogočene
+Comment[sr]=Спори тастери су укључени или искључени
+Comment[sr@Latn]=Spori tasteri su uključeni ili isključeni
+Comment[sv]=Långsamma tangenter har aktiverats eller inaktiverats
+Comment[tg]=Калиди сусткор фаъол ё ғайрифаъол мебошад
+Comment[th]=ปุ่มชะลอได้ถูกใช้งาน หรือ ถูกปิด
+Comment[uk]=Повільні клавіші було увімкнено або вимкнено
+Comment[vi]=Các phím chậm đã được bật hoặc đã được tắt
+Comment[wa]=Les londjinnès tapes ont stî metowes en alaedje ou dismetowes
+Comment[zh_CN]=启用或禁用了筛选键
+Comment[zh_TW]=延遲鍵已經被啟用或停用
+default_sound=KDE_Click.wav
+default_presentation=16
+nopresentation=236
+
+[bouncekeys]
+Name=Bounce keys has been enabled or disabled
+Name[be]="Рухомыя"клавішы ўключаны ці выключаны
+Name[bg]=Подскачащите клавиши бяха включени или изключени
+Name[bs]=Odbijanje tipki je uključeno ili isključeno
+Name[ca]=S'han habilitat o deshabilitat les tecles de repetició
+Name[cs]=Vícenásobné opakování kláves bylo povoleno nebo zakázáno
+Name[csb]=Òdbijające klawisze òstałë włączoné abò wëłączoné
+Name[da]=Elastiske taster er aktiveret eller deaktiveret
+Name[de]=Zurückschnellende Tasten wurden aktiviert oder deaktiviert
+Name[el]=Τα πλήκτρα αναπήδησης ενεργοποιήθηκαν ή απενεργοποιήθηκαν
+Name[eo]=Prokrastaj klavoj validiĝis aŭ malvalidiĝis
+Name[es]=Se han activado o desactivado las teclas de rebote
+Name[et]=Põrkavad klahvid on keelatud või lubatud
+Name[eu]=Errebotatze-teklak gaitu edo desgaitu dira
+Name[fa]=کلیدهای واگشت، فعال یا غیرفعال شده‌اند
+Name[fi]=Kimpoavat näppäimet on otettu käyttöön tai poistettu käytöstä
+Name[fr]=Les touches non répétées ont été activées ou désactivées
+Name[fy]=Stuiterjende toetsen binne aktivearre of ûntaktivearre
+Name[gl]=As teclas de rebote foron ou activadas ou desactivadas
+Name[he]=מקשים קפיציים הופעלו או בוטלו
+Name[hr]=Obijanje tipki je omogućeno ili onemogućeno
+Name[hu]=A visszaugró billentyűk átkapcsolva
+Name[is]=Slökkt eða kveikt hefur verið á skoppandi lyklum
+Name[it]=La pressione ravvicinata dei tasti è stata abilitata o disabilitata
+Name[ja]=バウンスキーを有効または無効にしました
+Name[kk]=Қалшылға қарсы пернелер рұксат етілген не етілмеген
+Name[km]=គ្រាប់ចុច​លោត​ត្រូវ​បាន​អនុញ្ញាត ឬ មិន​អនុញ្ញាត
+Name[ko]=튕김 키가 활성화되거나 비활성화됨
+Name[lt]=Tamprūs klavišai buvo įgalinti arba išjungti
+Name[mk]=„Скокачки копчиња“ е овозможено или оневозможено
+Name[nb]=Filtertaster er blitt skrudd av eller på
+Name[nds]=De Metood "Springen Tasten" wöör an- oder utschalt
+Name[ne]=कुञ्जीहरू सक्षम वा अक्षम पारिएको छ
+Name[nl]=Stuiterende toetsen is geactiveerd of gedeactiveerd
+Name[nn]=Filtertastar er blitt slått av eller på
+Name[pl]=Odbijające klawisze zostały włączone lub wyłączone
+Name[pt]=As teclas sonoras ficaram activas ou inactivas
+Name[pt_BR]=Teclas lentas foram habilitadas ou desabilitadas
+Name[ro]=Taste săltărețe (Bounce keys) au fost activate sau deactivate
+Name[ru]=Включены или отключены "прыгающие" клавиши
+Name[sk]=Bounce klávesy zmenili svoj stav.
+Name[sl]=Odskočne tipke so spremenile stanje
+Name[sr]=Одскачући тастери су укључени или искључени
+Name[sr@Latn]=Odskačući tasteri su uključeni ili isključeni
+Name[sv]=Studsande tangenter har aktiverats eller inaktiverats
+Name[tg]=Калидҳои бонус фаъол ё ғайрифаъол мебошанд
+Name[th]=ปุ่มสะท้อน ได้ถูกใช้งาน หรือถูกปิด
+Name[uk]=Пружні клавіші було увімкнено або вимкнено
+Name[vi]=Các phím nảy đã được bật hoặc đã được tắt
+Name[wa]=Les tapes di ridjiblaedje ont stî metowes en alaedje ou dismetowes
+Name[zh_CN]=启用或禁用了撞击键
+Name[zh_TW]=彈跳鍵已啟用或停用
+Comment=Bounce keys has been enabled or disabled
+Comment[af]=Hop sleutels was geaktiveer of gedeaktiveer
+Comment[be]="Рухомыя"клавішы ўключаны ці выключаны
+Comment[bg]=Подскачащите клавиши бяха включени или изключени
+Comment[bs]=Odbijanje tipki je uključeno ili isključeno
+Comment[ca]=S'han habilitat o deshabilitat les tecles de repetició
+Comment[cs]=Vícenásobné opakování kláves bylo povoleno nebo zakázáno
+Comment[csb]=Òdbijające klawisze òstałë wëłączoné abò włączoné
+Comment[da]=Elastiske taster er aktiveret eller deaktiveret
+Comment[de]=Zurückschnellende Tasten wurden aktiviert oder deaktiviert
+Comment[el]=Τα πλήκτρα αναπήδησης ενεργοποιήθηκαν ή απενεργοποιήθηκαν
+Comment[eo]=Prokrastaj klavoj estas aktivigitaj aŭ malaktivigitaj
+Comment[es]=Se han activado o desactivado las teclas de rebote
+Comment[et]=Põrkavad klahvid on keelatud või lubatud
+Comment[eu]=Errebotatze-teklak gaitu edo desgaitu dira
+Comment[fa]=کلیدهای واگشت، فعال یا غیرفعال شده‌اند
+Comment[fi]=Kimpoavat näppäimet on otettu käyttöön tai poistettu käytöstä
+Comment[fr]=Les touches non répétées ont été activées ou désactivées
+Comment[fy]=Stuiterjende toetsen binne aktivearre of ûntaktivearre
+Comment[gl]=As teclas de rebote foron ou activadas ou desactivadas
+Comment[he]=מקשים קפיציים הופעלו או בוטלו
+Comment[hr]=Obijanje tipki je omogućeno ili onemogućeno
+Comment[hu]=A visszaugró billentyűk használatát ki- vagy bekapcsolták
+Comment[is]=Slökkt eða kveikt hefur verið á skoppandi lyklum
+Comment[it]=La pressione ravvicinata dei tasti è stata abilitata o disabilitata
+Comment[ja]=バウンスキーを有効または無効にしました
+Comment[kk]=Қалшылға қарсы пернелер рұксат етілген не етілмеген
+Comment[km]=គ្រាប់ចុច​លោត​ត្រូវ​បាន​អនុញ្ញាត ឬ មិន​អនុញ្ញាត
+Comment[ko]=튕김 키가 활성화되거나 비활성화됨
+Comment[lt]=Tamprūs klavišai buvo įgalinti arba išjungti
+Comment[mk]=„Скокачки копчиња“ е овозможено или оневозможено
+Comment[nb]=Filtertaster er blitt skrudd av eller på
+Comment[nds]=De Metood "Springen Tasten" wöör an- oder utschalt
+Comment[ne]=उफ्रिने कुञ्जीहरू सक्षम वा अक्षम पारिएको छ
+Comment[nl]=Stuiterende toetsen is geactiveerd of gedeactiveerd
+Comment[nn]=Filtertastar er blitt slått av eller på
+Comment[pl]=Powolne klawisze zostały włączone lub wyłączone
+Comment[pt]=As teclas sonoras ficaram activas ou inactivas
+Comment[pt_BR]=Teclas lentas foram habilitadas ou desabilitadas
+Comment[ro]=Taste săltărețe (Bounce keys) au fost activate sau deactivate
+Comment[ru]=Включены или отключены "прыгающие" клавиши
+Comment[sk]=Bounce klávesy zmenili svoj stav.
+Comment[sl]=Odskočne tipke so spremenile stanje in so sedaj omogočene ali onemogočene
+Comment[sr]=Одскачући тастери су укључени или искључени
+Comment[sr@Latn]=Odskačući tasteri su uključeni ili isključeni
+Comment[sv]=Studsande tangenter har aktiverats eller inaktiverats
+Comment[tg]=Калидҳои бонус фаъол ё ғайрифаъоланд
+Comment[th]=ปุ่มสะท้อนได้ถูกใช้งาน หรือ ถูกปิด
+Comment[uk]=Пружні клавіші було увімкнено або вимкнено
+Comment[vi]=Các phím nảy đã được bật hoặc đã được tắt
+Comment[wa]=Les tapes di ridjiblaedje ont stî metowes en alaedje ou dismetowes
+Comment[zh_CN]=启用或禁用了撞击键
+Comment[zh_TW]=彈跳鍵已經被啟用或停用
+default_sound=KDE_Click.wav
+default_presentation=16
+nopresentation=236
+
+[mousekeys]
+Name=Mouse keys has been enabled or disabled
+Name[af]=Muis sleutels was geaktiveer of gedeaktiveer
+Name[be]=Кнопкі мышы былі ўключаны ці выключаны
+Name[bg]=Клавишите за мишката бяха включени или изключени
+Name[bs]=Tipke miša su uključene ili isključene
+Name[ca]=S'han habilitat o deshabilitat les tecles de ratolí
+Name[cs]=Klávesy myši byly povoleny nebo zakázány
+Name[csb]=Klawisze mëszë òstałë włączoné abò wëłączoné
+Name[da]=Musetaster er aktiveret eller deaktiveret
+Name[de]=Maustasten wurden aktiviert oder deaktiviert
+Name[el]=Τα πλήκτρα ποντικιού ενεργοποιήθηκαν ή απενεργοποιήθηκαν
+Name[eo]=Musklavoj validiĝis aŭ malvalidiĝis
+Name[es]=Se han activado o desactivado las teclas de ratón
+Name[et]=Hiire klahvid on keelatud või lubatud
+Name[eu]=Saguaren teklak gaitu edo desgaitu egin dira
+Name[fa]=کلیدهای موشی، فعال یا غیرفعال شده‌اند
+Name[fi]=Hiiren näppäimet on otettu käyttöön tai poistettu käytöstä
+Name[fr]=Les touches gérant la souris ont été activées ou désactivées
+Name[fy]=Mûstoetsen binne aktivearre of ûntaktivearre
+Name[gl]=As teclas de rato foron ou activadas ou desactivadas
+Name[he]=מקשי העכבר בוטלו או הופעלו
+Name[hr]=Mišolike tipke su omogućene ili onemogućene
+Name[hu]=Az egérmozgató billentyűk átkapcsolva
+Name[is]=Slökkt eða kveikt hefur verið á músarlyklum
+Name[it]=Il mouse da tastiera è stato abilitato o disabilitato
+Name[ja]=マウスキーを有効または無効にしました
+Name[kk]=Тышқанды жылжытатын пернелер рұксат етілген не етілмеген
+Name[km]=គ្រាប់​ចុច​កណ្តុរ​ត្រូវ​បាន​អនុញ្ញាត ឬ មិន​អនុញ្ញាត
+Name[ko]=마우스 키가 활성화되거나 비활성화됨
+Name[lt]=Pelės klavišai buvo įgalinti arba išjungti
+Name[mk]=„Копчиња на глушецот“ е овозможено или оневозможено
+Name[nb]=Musetaster er blitt skrudd av eller på
+Name[nds]=De Metood "Muustasten" wöör an- oder utschalt
+Name[ne]=माउस कुञ्जीहरू सक्षम वा अक्षम पारिएको छ
+Name[nl]=Muistoetsen is geactiveerd of gedeactiveerd
+Name[nn]=Musetastar er blitt slått av eller på
+Name[pa]=ਮਾਊਸ ਸਵਿੱਚਾਂ ਨੂੰ ਯੋਗ ਜਾਂ ਅਯੋਗ ਕੀਤਾ ਗਿਆ ਹੈ
+Name[pl]=Klawisze myszy zostały włączone lub wyłączone
+Name[pt]=O rato por teclado ficou activo ou inactivo
+Name[pt_BR]=Teclas do mouse foram habilitadas ou desabilitadas
+Name[ro]=Taste de maus au fost activate sau deactivate
+Name[ru]=Нажаты или отжаты клавиши мыши
+Name[sk]=Mouse klávesy zmenili svoj stav.
+Name[sl]=Miškine tipke so spremenile stanje
+Name[sr]=Тастери за миш су укључени или искључени
+Name[sr@Latn]=Tasteri za miš su uključeni ili isključeni
+Name[sv]=Mustangenter har aktiverats eller inaktiverats
+Name[tg]=Тугмачаҳои мушуак фаъол ё ғайрифаъол мебошанд
+Name[th]=ปุ่มแทนเมาส์ได้ถูกใช้งาน หรือ ถูกปิด
+Name[uk]=Клавіші мишки було увімкнено або вимкнено
+Name[vi]=Các phím chuột đã được bật hoặc đã được tắt
+Name[wa]=Les tapes di sori ont stî metowes en alaedje ou dismetowes
+Name[zh_CN]=启用或禁用了鼠标键
+Name[zh_TW]=滑鼠按鍵已啟用或停用
+Comment=Mouse keys has been enabled or disabled
+Comment[af]=Muis sleutels was geaktiveer of gedeaktiveer
+Comment[be]=Кнопкі мышы былі ўключаны ці выключаны
+Comment[bg]=Клавишите за мишката бяха включени или изключени
+Comment[bs]=Tipke miša su uključene ili isključene
+Comment[ca]=S'han habilitat o deshabilitat les tecles de ratolí
+Comment[cs]=Klávesy myši byly povoleny nebo zakázány
+Comment[csb]=Klawisze mëszë òstałë włączoné abò wëłączoné
+Comment[da]=Musetaster er aktiveret eller deaktiveret
+Comment[de]=Die Funktion "Maustasten" wurde aktiviert oder deaktiviert
+Comment[el]=Τα πλήκτρα ποντικιού ενεργοποιήθηκαν ή απενεργοποιήθηκαν
+Comment[eo]=Musklavoj validiĝis aŭ malvalidiĝis
+Comment[es]==Se han activado o desactivado las teclas de ratón
+Comment[et]=Hiire klahvid on keelatud või lubatud
+Comment[eu]=Saguaren teklak gaitu edo desgaitu egin dira
+Comment[fa]=کلیدهای موشی، فعال یا غیرفعال شده‌اند
+Comment[fi]=Hiiren näppäimet on otettu käyttöön tai poistettu käytöstä
+Comment[fr]=Les touches gérant la souris ont été activées ou désactivées
+Comment[fy]=Mûstoetsen binne aktivearre of ûntaktivearre
+Comment[gl]=As teclas de rato foron ou activadas ou desactivadas
+Comment[he]=מקשי העכבר בוטלו או הופעלו
+Comment[hr]=Mišolike tipke su omogućene ili onemogućene
+Comment[hu]=Az egérmozgató billentyűk használatát ki- vagy bekapcsolták
+Comment[is]=Slökkt eða kveikt hefur verið á músarlyklum
+Comment[it]=Il mouse da tastiera è stato abilitato o disabilitato
+Comment[ja]=マウスキーを有効または無効にしました
+Comment[kk]=Тышқанды жылжытатын пернелер рұксат етілген не етілмеген
+Comment[km]=គ្រាប់ចុច​កណ្តុរ​ត្រូវ​បាន​អនុញ្ញាត ឬ មិន​អនុញ្ញាត
+Comment[ko]=마우스 키가 활성화되거나 비활성화됨
+Comment[lt]=Pelės mygtukai buvo įgalinti arba išjungti
+Comment[mk]=„Копчиња на глушецот“ е овозможено или оневозможено
+Comment[nb]=Musetaster er blitt skrudd av eller på
+Comment[nds]=De Metood "Muustasten" wöör an- oder utschalt
+Comment[ne]=माउस कुञ्जीहरू सक्षम वा अक्षम पारिएको छ
+Comment[nl]=Muistoetsen is geactiveerd of gedeactiveerd
+Comment[nn]=Musetastar er blitt slått av eller på
+Comment[pl]=Klawisze myszy zostały włączone lub wyłączone
+Comment[pt]=O rato por teclado ficou activo ou inactivo
+Comment[pt_BR]=Teclas do mouse foram habilitadas ou desabilitadas
+Comment[ro]=Taste de maus au fost activate sau deactivate
+Comment[ru]=Нажаты или отжаты клавиши мыши
+Comment[sk]=Mouse klávesy zmenili svoj stav.
+Comment[sl]=Miškine tipke so spremenile stanje in so sedaj omogočene ali onemogočene
+Comment[sr]=Тастери за миш су укључени или искључени
+Comment[sr@Latn]=Tasteri za miš su uključeni ili isključeni
+Comment[sv]=Mustangenter har aktiverats eller inaktiverats
+Comment[tg]=Тугмачаҳои мушуак фаъол ё ғайрифаъол мебошанд
+Comment[th]=ปุ่มแทนเมาส์ได้ถูกใช้งาน หรือ ถูกปิด
+Comment[uk]=Клавіші мишки було увімкнено або вимкнено
+Comment[vi]=Các phím chuột đã được bật hoặc đã được tắt
+Comment[wa]=Les tapes di sori ont stî metowes en alaedje ou dismetowes
+Comment[zh_CN]=启用或禁用了鼠标键
+Comment[zh_TW]=滑鼠按鍵已經被啟用或停用
+default_sound=KDE_Click.wav
+default_presentation=16
+nopresentation=236
diff --git a/kcontrol/access/kaccess.cpp b/kcontrol/access/kaccess.cpp
new file mode 100644
index 000000000..5956697b9
--- /dev/null
+++ b/kcontrol/access/kaccess.cpp
@@ -0,0 +1,896 @@
+#include <unistd.h>
+#include <stdlib.h>
+
+#include <qtimer.h>
+#include <qpainter.h>
+#include <qvbox.h>
+#include <qlayout.h>
+#include <qlabel.h>
+
+#include <kdialogbase.h>
+#include <kmessagebox.h>
+#include <kcombobox.h>
+#include <kiconloader.h>
+#include <kdebug.h>
+#include <kaudioplayer.h>
+#include <knotifyclient.h>
+#include <kconfig.h>
+#include <kglobal.h>
+#include <klocale.h>
+#include <netwm.h>
+#include <kshortcut.h>
+#include <kkeynative.h>
+#include <kwin.h>
+
+#include <X11/XKBlib.h>
+#define XK_MISCELLANY
+#define XK_XKB_KEYS
+#include <X11/keysymdef.h>
+
+
+#include "kaccess.moc"
+
+struct ModifierKey {
+ const unsigned int mask;
+ const KeySym keysym;
+ const char *name;
+ const char *lockedText;
+ const char *latchedText;
+ const char *unlatchedText;
+};
+
+static ModifierKey modifierKeys[] = {
+ { ShiftMask, 0, "Shift",
+ I18N_NOOP("The Shift key has been locked and is now active for all of the following keypresses."),
+ I18N_NOOP("The Shift key is now active."),
+ I18N_NOOP("The Shift key is now inactive.") },
+ { ControlMask, 0, "Control",
+ I18N_NOOP("The Ctrl key has been locked and is now active for all of the following keypresses."),
+ I18N_NOOP("The Ctrl key is now active."),
+ I18N_NOOP("The Ctrl key is now inactive.") },
+ { 0, XK_Alt_L, "Alt",
+ I18N_NOOP("The Alt key has been locked and is now active for all of the following keypresses."),
+ I18N_NOOP("The Alt key is now active."),
+ I18N_NOOP("The Alt key is now inactive.") },
+ { 0, 0, "Win",
+ I18N_NOOP("The Win key has been locked and is now active for all of the following keypresses."),
+ I18N_NOOP("The Win key is now active."),
+ I18N_NOOP("The Win key is now inactive.") },
+ { 0, XK_Meta_L, "Meta",
+ I18N_NOOP("The Meta key has been locked and is now active for all of the following keypresses."),
+ I18N_NOOP("The Meta key is now active."),
+ I18N_NOOP("The Meta key is now inactive.") },
+ { 0, XK_Super_L, "Super",
+ I18N_NOOP("The Super key has been locked and is now active for all of the following keypresses."),
+ I18N_NOOP("The Super key is now active."),
+ I18N_NOOP("The Super key is now inactive.") },
+ { 0, XK_Hyper_L, "Hyper",
+ I18N_NOOP("The Hyper key has been locked and is now active for all of the following keypresses."),
+ I18N_NOOP("The Hyper key is now active."),
+ I18N_NOOP("The Hyper key is now inactive.") },
+ { 0, 0, "Alt Graph",
+ I18N_NOOP("The Alt Gr key has been locked and is now active for all of the following keypresses."),
+ I18N_NOOP("The Alt Gr key is now active."),
+ I18N_NOOP("The Alt Gr key is now inactive.") },
+ { 0, XK_Num_Lock, "Num Lock",
+ I18N_NOOP("The Num Lock key has been activated."),
+ "",
+ I18N_NOOP("The Num Lock key is now inactive.") },
+ { LockMask, 0, "Caps Lock",
+ I18N_NOOP("The Caps Lock key has been activated."),
+ "",
+ I18N_NOOP("The Caps Lock key is now inactive.") },
+ { 0, XK_Scroll_Lock, "Scroll Lock",
+ I18N_NOOP("The Scroll Lock key has been activated."),
+ "",
+ I18N_NOOP("The Scroll Lock key is now inactive.") },
+ { 0, 0, "", "", "", "" }
+};
+
+
+/********************************************************************/
+
+
+KAccessApp::KAccessApp(bool allowStyles, bool GUIenabled)
+ : KUniqueApplication(allowStyles, GUIenabled), _artsBellBlocked(false),
+ overlay(0), wm(0, KWinModule::INFO_DESKTOP)
+{
+ _activeWindow = wm.activeWindow();
+ connect(&wm, SIGNAL(activeWindowChanged(WId)), this, SLOT(activeWindowChanged(WId)));
+
+ artsBellTimer = new QTimer( this );
+ connect( artsBellTimer, SIGNAL( timeout() ), SLOT( slotArtsBellTimeout() ));
+
+ features = 0;
+ requestedFeatures = 0;
+ dialog = 0;
+
+ initMasks();
+ XkbStateRec state_return;
+ XkbGetState (qt_xdisplay(), XkbUseCoreKbd, &state_return);
+ unsigned char latched = XkbStateMods (&state_return);
+ unsigned char locked = XkbModLocks (&state_return);
+ state = ((int)locked)<<8 | latched;
+}
+
+int KAccessApp::newInstance()
+{
+ KGlobal::config()->reparseConfiguration();
+ readSettings();
+ return 0;
+}
+
+void KAccessApp::readSettings()
+{
+ KConfig *config = KGlobal::config();
+
+ // bell ---------------------------------------------------------------
+
+ config->setGroup("Bell");
+ _systemBell = config->readBoolEntry("SystemBell", true);
+ _artsBell = config->readBoolEntry("ArtsBell", false);
+ _artsBellFile = config->readPathEntry("ArtsBellFile");
+ _visibleBell = config->readBoolEntry("VisibleBell", false);
+ _visibleBellInvert = config->readBoolEntry("VisibleBellInvert", false);
+ QColor def(Qt::red);
+ _visibleBellColor = config->readColorEntry("VisibleBellColor", &def);
+ _visibleBellPause = config->readNumEntry("VisibleBellPause", 500);
+
+ // select bell events if we need them
+ int state = (_artsBell || _visibleBell) ? XkbBellNotifyMask : 0;
+ XkbSelectEvents(qt_xdisplay(), XkbUseCoreKbd, XkbBellNotifyMask, state);
+
+ // deactivate system bell if not needed
+ if (!_systemBell)
+ XkbChangeEnabledControls(qt_xdisplay(), XkbUseCoreKbd, XkbAudibleBellMask, 0);
+ else
+ XkbChangeEnabledControls(qt_xdisplay(), XkbUseCoreKbd, XkbAudibleBellMask, XkbAudibleBellMask);
+
+ // keyboard -------------------------------------------------------------
+
+ config->setGroup("Keyboard");
+
+ // get keyboard state
+ XkbDescPtr xkb = XkbGetMap(qt_xdisplay(), 0, XkbUseCoreKbd);
+ if (!xkb)
+ return;
+ if (XkbGetControls(qt_xdisplay(), XkbAllControlsMask, xkb) != Success)
+ return;
+
+ // sticky keys
+ if (config->readBoolEntry("StickyKeys", false))
+ {
+ if (config->readBoolEntry("StickyKeysLatch", true))
+ xkb->ctrls->ax_options |= XkbAX_LatchToLockMask;
+ else
+ xkb->ctrls->ax_options &= ~XkbAX_LatchToLockMask;
+ if (config->readBoolEntry("StickyKeysAutoOff", false))
+ xkb->ctrls->ax_options |= XkbAX_TwoKeysMask;
+ else
+ xkb->ctrls->ax_options &= ~XkbAX_TwoKeysMask;
+ if (config->readBoolEntry("StickyKeysBeep", false))
+ xkb->ctrls->ax_options |= XkbAX_StickyKeysFBMask;
+ else
+ xkb->ctrls->ax_options &= ~XkbAX_StickyKeysFBMask;
+ xkb->ctrls->enabled_ctrls |= XkbStickyKeysMask;
+ }
+ else
+ xkb->ctrls->enabled_ctrls &= ~XkbStickyKeysMask;
+
+ // toggle keys
+ if (config->readBoolEntry("ToggleKeysBeep", false))
+ xkb->ctrls->ax_options |= XkbAX_IndicatorFBMask;
+ else
+ xkb->ctrls->ax_options &= ~XkbAX_IndicatorFBMask;
+
+ // slow keys
+ if (config->readBoolEntry("SlowKeys", false)) {
+ if (config->readBoolEntry("SlowKeysPressBeep", false))
+ xkb->ctrls->ax_options |= XkbAX_SKPressFBMask;
+ else
+ xkb->ctrls->ax_options &= ~XkbAX_SKPressFBMask;
+ if (config->readBoolEntry("SlowKeysAcceptBeep", false))
+ xkb->ctrls->ax_options |= XkbAX_SKAcceptFBMask;
+ else
+ xkb->ctrls->ax_options &= ~XkbAX_SKAcceptFBMask;
+ if (config->readBoolEntry("SlowKeysRejectBeep", false))
+ xkb->ctrls->ax_options |= XkbAX_SKRejectFBMask;
+ else
+ xkb->ctrls->ax_options &= ~XkbAX_SKRejectFBMask;
+ xkb->ctrls->enabled_ctrls |= XkbSlowKeysMask;
+ }
+ else
+ xkb->ctrls->enabled_ctrls &= ~XkbSlowKeysMask;
+ xkb->ctrls->slow_keys_delay = config->readNumEntry("SlowKeysDelay", 500);
+
+ // bounce keys
+ if (config->readBoolEntry("BounceKeys", false)) {
+ if (config->readBoolEntry("BounceKeysRejectBeep", false))
+ xkb->ctrls->ax_options |= XkbAX_BKRejectFBMask;
+ else
+ xkb->ctrls->ax_options &= ~XkbAX_BKRejectFBMask;
+ xkb->ctrls->enabled_ctrls |= XkbBounceKeysMask;
+ }
+ else
+ xkb->ctrls->enabled_ctrls &= ~XkbBounceKeysMask;
+ xkb->ctrls->debounce_delay = config->readNumEntry("BounceKeysDelay", 500);
+
+ // gestures for enabling the other features
+ _gestures = config->readBoolEntry("Gestures", true);
+ if (_gestures)
+ xkb->ctrls->enabled_ctrls |= XkbAccessXKeysMask;
+ else
+ xkb->ctrls->enabled_ctrls &= ~XkbAccessXKeysMask;
+
+ // timeout
+ if (config->readBoolEntry("AccessXTimeout", false))
+ {
+ xkb->ctrls->ax_timeout = config->readNumEntry("AccessXTimeoutDelay", 30)*60;
+ xkb->ctrls->axt_opts_mask = 0;
+ xkb->ctrls->axt_opts_values = 0;
+ xkb->ctrls->axt_ctrls_mask = XkbStickyKeysMask | XkbSlowKeysMask;
+ xkb->ctrls->axt_ctrls_values = 0;
+ xkb->ctrls->enabled_ctrls |= XkbAccessXTimeoutMask;
+ }
+ else
+ xkb->ctrls->enabled_ctrls &= ~XkbAccessXTimeoutMask;
+
+ // gestures for enabling the other features
+ if (_gestures && config->readBoolEntry("AccessXBeep", true))
+ xkb->ctrls->ax_options |= XkbAX_FeatureFBMask | XkbAX_SlowWarnFBMask;
+ else
+ xkb->ctrls->ax_options &= ~(XkbAX_FeatureFBMask | XkbAX_SlowWarnFBMask);
+
+ _gestureConfirmation = config->readBoolEntry("GestureConfirmation", true);
+
+ _kNotifyModifiers = config->readBoolEntry("kNotifyModifiers", false);
+ _kNotifyAccessX = config->readBoolEntry("kNotifyAccessX", false);
+
+ // mouse-by-keyboard ----------------------------------------------
+
+ config->setGroup("Mouse");
+
+ if (config->readBoolEntry("MouseKeys", false))
+ {
+ xkb->ctrls->mk_delay = config->readNumEntry("MKDelay", 160);
+
+ // Default for initial velocity: 200 pixels/sec
+ int interval = config->readNumEntry("MKInterval", 5);
+ xkb->ctrls->mk_interval = interval;
+
+ // Default time to reach maximum speed: 5000 msec
+ xkb->ctrls->mk_time_to_max = config->readNumEntry("MKTimeToMax",
+ (5000+interval/2)/interval);
+
+ // Default maximum speed: 1000 pixels/sec
+ // (The old default maximum speed from KDE <= 3.4
+ // (100000 pixels/sec) was way too fast)
+ xkb->ctrls->mk_max_speed = config->readNumEntry("MKMaxSpeed", interval);
+
+ xkb->ctrls->mk_curve = config->readNumEntry("MKCurve", 0);
+ xkb->ctrls->mk_dflt_btn = config->readNumEntry("MKDefaultButton", 0);
+
+ xkb->ctrls->enabled_ctrls |= XkbMouseKeysMask;
+ }
+ else
+ xkb->ctrls->enabled_ctrls &= ~XkbMouseKeysMask;
+
+ features = xkb->ctrls->enabled_ctrls & (XkbSlowKeysMask | XkbBounceKeysMask | XkbStickyKeysMask | XkbMouseKeysMask);
+ if (dialog == 0)
+ requestedFeatures = features;
+ // set state
+ XkbSetControls(qt_xdisplay(), XkbControlsEnabledMask | XkbMouseKeysAccelMask | XkbStickyKeysMask | XkbSlowKeysMask | XkbBounceKeysMask | XkbAccessXKeysMask | XkbAccessXTimeoutMask, xkb);
+
+ // select AccessX events
+ XkbSelectEvents(qt_xdisplay(), XkbUseCoreKbd, XkbAllEventsMask, XkbAllEventsMask);
+
+ if (!_artsBell && !_visibleBell && !_gestureConfirmation
+ && !_kNotifyModifiers && !_kNotifyAccessX) {
+
+ // We will exit, but the features need to stay configured
+ uint ctrls = XkbStickyKeysMask | XkbSlowKeysMask | XkbBounceKeysMask | XkbMouseKeysMask | XkbAudibleBellMask | XkbControlsNotifyMask;
+ uint values = xkb->ctrls->enabled_ctrls & ctrls;
+ XkbSetAutoResetControls(qt_xdisplay(), ctrls, &ctrls, &values);
+ exit(0);
+ } else {
+ // reset them after program exit
+ uint ctrls = XkbStickyKeysMask | XkbSlowKeysMask | XkbBounceKeysMask | XkbMouseKeysMask | XkbAudibleBellMask | XkbControlsNotifyMask;
+ uint values = XkbAudibleBellMask;
+ XkbSetAutoResetControls(qt_xdisplay(), ctrls, &ctrls, &values);
+ }
+
+ delete overlay;
+ overlay = 0;
+}
+
+static int maskToBit (int mask) {
+ for (int i = 0; i < 8; i++)
+ if (mask & (1 << i))
+ return i;
+ return -1;
+}
+
+void KAccessApp::initMasks() {
+ for (int i = 0; i < 8; i++)
+ keys [i] = -1;
+ state = 0;
+
+ for (int i = 0; strcmp (modifierKeys[i].name, "") != 0; i++) {
+ int mask = modifierKeys[i].mask;
+ if (mask == 0)
+ if (modifierKeys[i].keysym != 0)
+ mask = XkbKeysymToModifiers (qt_xdisplay(), modifierKeys[i].keysym);
+ else if (!strcmp(modifierKeys[i].name, "Win"))
+ mask = KKeyNative::modX(KKey::WIN);
+ else
+ mask = XkbKeysymToModifiers (qt_xdisplay(), XK_Mode_switch)
+ | XkbKeysymToModifiers (qt_xdisplay(), XK_ISO_Level3_Shift)
+ | XkbKeysymToModifiers (qt_xdisplay(), XK_ISO_Level3_Latch)
+ | XkbKeysymToModifiers (qt_xdisplay(), XK_ISO_Level3_Lock);
+
+ int bit = maskToBit (mask);
+ if (bit != -1 && keys[bit] == -1)
+ keys[bit] = i;
+ }
+}
+
+
+bool KAccessApp::x11EventFilter(XEvent *event)
+{
+ // handle XKB events
+ if (event->type == xkb_opcode)
+ {
+ XkbAnyEvent *ev = (XkbAnyEvent*) event;
+
+ switch (ev->xkb_type) {
+ case XkbStateNotify:
+ xkbStateNotify();
+ break;
+ case XkbBellNotify:
+ xkbBellNotify((XkbBellNotifyEvent*)event);
+ break;
+ case XkbControlsNotify:
+ xkbControlsNotify((XkbControlsNotifyEvent*)event);
+ break;
+ }
+ return true;
+ }
+
+ // process other events as usual
+ return KApplication::x11EventFilter(event);
+}
+
+
+void VisualBell::paintEvent(QPaintEvent *event)
+{
+ QWidget::paintEvent(event);
+ QTimer::singleShot(_pause, this, SLOT(hide()));
+}
+
+
+void KAccessApp::activeWindowChanged(WId wid)
+{
+ _activeWindow = wid;
+}
+
+
+void KAccessApp::xkbStateNotify () {
+ XkbStateRec state_return;
+ XkbGetState (qt_xdisplay(), XkbUseCoreKbd, &state_return);
+ unsigned char latched = XkbStateMods (&state_return);
+ unsigned char locked = XkbModLocks (&state_return);
+ int mods = ((int)locked)<<8 | latched;
+
+ if (state != mods) {
+ if (_kNotifyModifiers)
+ for (int i = 0; i < 8; i++) {
+ if (keys[i] != -1) {
+ if ( (!*modifierKeys[keys[i]].latchedText)
+ && ( (((mods >> i) & 0x101) != 0) != (((state >> i) & 0x101) != 0) ))
+ {
+ if ((mods >> i) & 1) {
+ KNotifyClient::event (0, "lockkey-locked", i18n(modifierKeys[keys[i]].lockedText));
+ }
+ else {
+ KNotifyClient::event (0, "lockkey-unlocked", i18n(modifierKeys[keys[i]].unlatchedText));
+ }
+ }
+ else if ((*modifierKeys[keys[i]].latchedText)
+ && ( ((mods >> i) & 0x101) != ((state >> i) & 0x101) ))
+ {
+ if ((mods >> i) & 0x100) {
+ KNotifyClient::event (0, "modifierkey-locked", i18n(modifierKeys[keys[i]].lockedText));
+ }
+ else if ((mods >> i) & 1) {
+ KNotifyClient::event (0, "modifierkey-latched", i18n(modifierKeys[keys[i]].latchedText));
+ }
+ else {
+ KNotifyClient::event (0, "modifierkey-unlatched", i18n(modifierKeys[keys[i]].unlatchedText));
+ }
+ }
+ }
+ }
+ state = mods;
+ }
+}
+
+void KAccessApp::xkbBellNotify(XkbBellNotifyEvent *event)
+{
+ // bail out if we should not really ring
+ if (event->event_only)
+ return;
+
+ // flash the visible bell
+ if (_visibleBell)
+ {
+ // create overlay widget
+ if (!overlay)
+ overlay = new VisualBell(_visibleBellPause);
+
+ WId id = _activeWindow;
+
+ NETRect frame, window;
+ NETWinInfo net(qt_xdisplay(), id, desktop()->winId(), 0);
+
+ net.kdeGeometry(frame, window);
+
+ overlay->setGeometry(window.pos.x, window.pos.y, window.size.width, window.size.height);
+
+ if (_visibleBellInvert)
+ {
+ QPixmap screen = QPixmap::grabWindow(id, 0, 0, window.size.width, window.size.height);
+ QPixmap invert(window.size.width, window.size.height);
+ QPainter p(&invert);
+ p.setRasterOp(QPainter::NotCopyROP);
+ p.drawPixmap(0, 0, screen);
+ overlay->setBackgroundPixmap(invert);
+ }
+ else
+ overlay->setBackgroundColor(_visibleBellColor);
+
+ // flash the overlay widget
+ overlay->raise();
+ overlay->show();
+ flushX();
+ }
+
+ // ask artsd to ring a nice bell
+ if (_artsBell && !_artsBellBlocked ) {
+ KAudioPlayer::play(_artsBellFile);
+ _artsBellBlocked = true;
+ artsBellTimer->start( 300, true );
+ }
+}
+
+QString mouseKeysShortcut (Display *display) {
+ // Calculate the keycode
+ KeySym sym = XK_MouseKeys_Enable;
+ KeyCode code = XKeysymToKeycode(display, sym);
+ if (code == 0) {
+ sym = XK_Pointer_EnableKeys;
+ code = XKeysymToKeycode(display, sym);
+ if (code == 0)
+ return ""; // No shortcut available?
+ }
+
+ // Calculate the modifiers by searching the keysym in the X keyboard mapping
+ XkbDescPtr xkbdesc = XkbGetMap(display, XkbKeyTypesMask | XkbKeySymsMask, XkbUseCoreKbd);
+
+ if (!xkbdesc)
+ return ""; // Failed to obtain the mapping from server
+
+ bool found = false;
+ unsigned char modifiers = 0;
+ int groups = XkbKeyNumGroups(xkbdesc, code);
+ for (int grp = 0; grp < groups && !found; grp++)
+ {
+ int levels = XkbKeyGroupWidth(xkbdesc, code, grp);
+ for (int level = 0; level < levels && !found; level++)
+ {
+ if (sym == XkbKeySymEntry(xkbdesc, code, level, grp))
+ {
+ // keysym found => determine modifiers
+ int typeIdx = xkbdesc->map->key_sym_map[code].kt_index[grp];
+ XkbKeyTypePtr type = &(xkbdesc->map->types[typeIdx]);
+ for (int i = 0; i < type->map_count && !found; i++)
+ {
+ if (type->map[i].active && (type->map[i].level == level))
+ {
+ modifiers = type->map[i].mods.mask;
+ found = true;
+ }
+ }
+ }
+ }
+ }
+ XkbFreeClientMap (xkbdesc, 0, true);
+
+ if (!found)
+ return ""; // Somehow the keycode -> keysym mapping is flawed
+
+ XEvent ev;
+ ev.xkey.display = display;
+ ev.xkey.keycode = code;
+ ev.xkey.state = 0;
+ KKey key = KKey(KKeyNative(&ev));
+ QString keyname = key.toString();
+
+ unsigned int AltMask = KKeyNative::modX(KKey::ALT);
+ unsigned int WinMask = KKeyNative::modX(KKey::WIN);
+ unsigned int NumMask = KKeyNative::modXNumLock();
+ unsigned int ScrollMask= KKeyNative::modXScrollLock();
+
+ unsigned int MetaMask = XkbKeysymToModifiers (display, XK_Meta_L);
+ unsigned int SuperMask = XkbKeysymToModifiers (display, XK_Super_L);
+ unsigned int HyperMask = XkbKeysymToModifiers (display, XK_Hyper_L);
+ unsigned int AltGrMask = XkbKeysymToModifiers (display, XK_Mode_switch)
+ | XkbKeysymToModifiers (display, XK_ISO_Level3_Shift)
+ | XkbKeysymToModifiers (display, XK_ISO_Level3_Latch)
+ | XkbKeysymToModifiers (display, XK_ISO_Level3_Lock);
+
+ unsigned int mods = ShiftMask | ControlMask | AltMask | WinMask
+ | LockMask | NumMask | ScrollMask;
+
+ AltGrMask &= ~mods;
+ MetaMask &= ~(mods | AltGrMask);
+ SuperMask &= ~(mods | AltGrMask | MetaMask);
+ HyperMask &= ~(mods | AltGrMask | MetaMask | SuperMask);
+
+ if ((modifiers & AltGrMask) != 0)
+ keyname = i18n("AltGraph") + "+" + keyname;
+ if ((modifiers & HyperMask) != 0)
+ keyname = i18n("Hyper") + "+" + keyname;
+ if ((modifiers & SuperMask) != 0)
+ keyname = i18n("Super") + "+" + keyname;
+ if ((modifiers & WinMask) != 0)
+ keyname = i18n("Meta") + "+" + keyname;
+ if ((modifiers & WinMask) != 0)
+ keyname = KKey::modFlagLabel(KKey::WIN) + "+" + keyname;
+ if ((modifiers & AltMask) != 0)
+ keyname = KKey::modFlagLabel(KKey::ALT) + "+" + keyname;
+ if ((modifiers & ControlMask) != 0)
+ keyname = KKey::modFlagLabel(KKey::CTRL) + "+" + keyname;
+ if ((modifiers & ShiftMask) != 0)
+ keyname = KKey::modFlagLabel(KKey::SHIFT) + "+" + keyname;
+
+ return keyname;
+}
+
+void KAccessApp::createDialogContents() {
+ if (dialog == 0) {
+ dialog = new KDialogBase(
+ i18n("Warning"),
+ KDialogBase::Yes | KDialogBase::No,
+ KDialogBase::Yes, KDialogBase::Close,
+ 0, "AccessXWarning", true, true,
+ KStdGuiItem::cont(), KStdGuiItem::cancel());
+
+ QVBox *topcontents = new QVBox (dialog);
+ topcontents->setSpacing(KDialog::spacingHint()*2);
+ topcontents->setMargin(KDialog::marginHint());
+
+ QWidget *contents = new QWidget(topcontents);
+ QHBoxLayout * lay = new QHBoxLayout(contents);
+ lay->setSpacing(KDialog::spacingHint());
+
+ QLabel *label1 = new QLabel( contents);
+ QPixmap pixmap = KApplication::kApplication()->iconLoader()->loadIcon("messagebox_warning", KIcon::NoGroup, KIcon::SizeMedium, KIcon::DefaultState, 0, true);
+ if (pixmap.isNull())
+ pixmap = QMessageBox::standardIcon(QMessageBox::Warning);
+ label1->setPixmap(pixmap);
+
+ lay->addWidget( label1, 0, Qt::AlignCenter );
+ lay->addSpacing(KDialog::spacingHint());
+
+ QVBoxLayout * vlay = new QVBoxLayout(lay);
+
+ featuresLabel = new QLabel( "", contents );
+ featuresLabel->setAlignment( WordBreak|AlignVCenter );
+ vlay->addWidget( featuresLabel );
+ vlay->addStretch();
+
+ QHBoxLayout * hlay = new QHBoxLayout(vlay);
+
+ QLabel *showModeLabel = new QLabel( i18n("&When a gesture was used:"), contents );
+ hlay->addWidget( showModeLabel );
+
+ showModeCombobox = new KComboBox (contents);
+ hlay->addWidget( showModeCombobox );
+ showModeLabel->setBuddy(showModeCombobox);
+ showModeCombobox->insertItem ( i18n("Change Settings Without Asking"), 0);
+ showModeCombobox->insertItem ( i18n("Show This Confirmation Dialog"), 1);
+ showModeCombobox->insertItem ( i18n("Deactivate All AccessX Features & Gestures"), 2);
+ showModeCombobox->setCurrentItem (1);
+
+ dialog->setMainWidget(topcontents);
+ dialog->enableButtonSeparator(false);
+
+ connect (dialog, SIGNAL(yesClicked()), this, SLOT(yesClicked()));
+ connect (dialog, SIGNAL(noClicked()), this, SLOT(noClicked()));
+ connect (dialog, SIGNAL(closeClicked()), this, SLOT(dialogClosed()));
+ }
+}
+
+void KAccessApp::xkbControlsNotify(XkbControlsNotifyEvent *event)
+{
+ unsigned int newFeatures = event->enabled_ctrls & (XkbSlowKeysMask | XkbBounceKeysMask | XkbStickyKeysMask | XkbMouseKeysMask);
+
+ if (newFeatures != features) {
+ unsigned int enabled = newFeatures & ~features;
+ unsigned int disabled = features & ~newFeatures;
+
+ if (!_gestureConfirmation) {
+ requestedFeatures = enabled | (requestedFeatures & ~disabled);
+ notifyChanges();
+ features = newFeatures;
+ }
+ else {
+ // set the AccessX features back to what they were. We will
+ // apply the changes later if the user allows us to do that.
+ readSettings();
+
+ requestedFeatures = enabled | (requestedFeatures & ~disabled);
+
+ enabled = requestedFeatures & ~features;
+ disabled = features & ~requestedFeatures;
+
+ QStringList enabledFeatures;
+ QStringList disabledFeatures;
+
+ if (enabled & XkbStickyKeysMask)
+ enabledFeatures << i18n("Sticky keys");
+ else if (disabled & XkbStickyKeysMask)
+ disabledFeatures << i18n("Sticky keys");
+
+ if (enabled & XkbSlowKeysMask)
+ enabledFeatures << i18n("Slow keys");
+ else if (disabled & XkbSlowKeysMask)
+ disabledFeatures << i18n("Slow keys");
+
+ if (enabled & XkbBounceKeysMask)
+ enabledFeatures << i18n("Bounce keys");
+ else if (disabled & XkbBounceKeysMask)
+ disabledFeatures << i18n("Bounce keys");
+
+ if (enabled & XkbMouseKeysMask)
+ enabledFeatures << i18n("Mouse keys");
+ else if (disabled & XkbMouseKeysMask)
+ disabledFeatures << i18n("Mouse keys");
+
+ QString question;
+ switch (enabledFeatures.count()) {
+ case 0: switch (disabledFeatures.count()) {
+ case 1: question = i18n("Do you really want to deactivate \"%1\"?")
+ .arg(disabledFeatures[0]);
+ break;
+ case 2: question = i18n("Do you really want to deactivate \"%1\" and \"%2\"?")
+ .arg(disabledFeatures[0]).arg(disabledFeatures[1]);
+ break;
+ case 3: question = i18n("Do you really want to deactivate \"%1\", \"%2\" and \"%3\"?")
+ .arg(disabledFeatures[0]).arg(disabledFeatures[1])
+ .arg(disabledFeatures[2]);
+ break;
+ case 4: question = i18n("Do you really want to deactivate \"%1\", \"%2\", \"%3\" and \"%4\"?")
+ .arg(disabledFeatures[0]).arg(disabledFeatures[1])
+ .arg(disabledFeatures[2]).arg(disabledFeatures[3]);
+ break;
+ }
+ break;
+ case 1: switch (disabledFeatures.count()) {
+ case 0: question = i18n("Do you really want to activate \"%1\"?")
+ .arg(enabledFeatures[0]);
+ break;
+ case 1: question = i18n("Do you really want to activate \"%1\" and to deactivate \"%2\"?")
+ .arg(enabledFeatures[0]).arg(disabledFeatures[0]);
+ break;
+ case 2: question = i18n("Do you really want to activate \"%1\" and to deactivate \"%2\" and \"%3\"?")
+ .arg(enabledFeatures[0]).arg(disabledFeatures[0])
+ .arg(disabledFeatures[1]);
+ break;
+ case 3: question = i18n("Do you really want to activate \"%1\" and to deactivate \"%2\", \"%3\" and \"%4\"?")
+ .arg(enabledFeatures[0]).arg(disabledFeatures[0])
+ .arg(disabledFeatures[1]).arg(disabledFeatures[2]);
+ break;
+ }
+ break;
+ case 2: switch (disabledFeatures.count()) {
+ case 0: question = i18n("Do you really want to activate \"%1\" and \"%2\"?")
+ .arg(enabledFeatures[0]).arg(enabledFeatures[1]);
+ break;
+ case 1: question = i18n("Do you really want to activate \"%1\" and \"%2\" and to deactivate \"%3\"?")
+ .arg(enabledFeatures[0]).arg(enabledFeatures[1])
+ .arg(disabledFeatures[0]);
+ break;
+ case 2: question = i18n("Do you really want to activate \"%1\", and \"%2\" and to deactivate \"%3\" and \"%4\"?")
+ .arg(enabledFeatures[0]).arg(enabledFeatures[1])
+ .arg(enabledFeatures[0]).arg(disabledFeatures[1]);
+ break;
+ }
+ break;
+ case 3: switch (disabledFeatures.count()) {
+ case 0: question = i18n("Do you really want to activate \"%1\", \"%2\" and \"%3\"?")
+ .arg(enabledFeatures[0]).arg(enabledFeatures[1])
+ .arg(enabledFeatures[2]);
+ break;
+ case 1: question = i18n("Do you really want to activate \"%1\", \"%2\" and \"%3\" and to deactivate \"%4\"?")
+ .arg(enabledFeatures[0]).arg(enabledFeatures[1])
+ .arg(enabledFeatures[2]).arg(disabledFeatures[0]);
+ break;
+ }
+ break;
+ case 4: question = i18n("Do you really want to activate \"%1\", \"%2\", \"%3\" and \"%4\"?")
+ .arg(enabledFeatures[0]).arg(enabledFeatures[1])
+ .arg(enabledFeatures[2]).arg(enabledFeatures[3]);
+ break;
+ }
+ QString explanation;
+ if (enabledFeatures.count()+disabledFeatures.count() == 1) {
+ explanation = i18n("An application has requested to change this setting.");
+
+ if (_gestures) {
+ if ((enabled | disabled) == XkbSlowKeysMask)
+ explanation = i18n("You held down the Shift key for 8 seconds or an application has requested to change this setting.");
+ else if ((enabled | disabled) == XkbStickyKeysMask)
+ explanation = i18n("You pressed the Shift key 5 consecutive times or an application has requested to change this setting.");
+ else if ((enabled | disabled) == XkbMouseKeysMask) {
+ QString shortcut = mouseKeysShortcut(qt_xdisplay());
+ if (!shortcut.isEmpty() && !shortcut.isNull())
+ explanation = i18n("You pressed %1 or an application has requested to change this setting.").arg(shortcut);
+ }
+ }
+ }
+ else {
+ if (_gestures)
+ explanation = i18n("An application has requested to change these settings, or you used a combination of several keyboard gestures.");
+ else
+ explanation = i18n("An application has requested to change these settings.");
+ }
+
+ createDialogContents();
+ featuresLabel->setText ( question+"\n\n"+explanation
+ +" "+i18n("These AccessX settings are needed for some users with motion impairments and can be configured in the KDE Control Center. You can also turn them on and off with standardized keyboard gestures.\n\nIf you do not need them, you can select \"Deactivate all AccessX features and gestures\".") );
+
+ KWin::setState( dialog->winId(), NET::KeepAbove );
+ kapp->updateUserTimestamp();
+ dialog->show();
+ }
+ }
+}
+
+void KAccessApp::notifyChanges() {
+ if (!_kNotifyAccessX)
+ return;
+
+ unsigned int enabled = requestedFeatures & ~features;
+ unsigned int disabled = features & ~requestedFeatures;
+
+ if (enabled & XkbSlowKeysMask)
+ KNotifyClient::event (0, "slowkeys", i18n("Slow keys has been enabled. From now on, you need to press each key for a certain length of time before it is accepted."));
+ else if (disabled & XkbSlowKeysMask)
+ KNotifyClient::event (0, "slowkeys", i18n("Slow keys has been disabled."));
+
+ if (enabled & XkbBounceKeysMask)
+ KNotifyClient::event (0, "bouncekeys", i18n("Bounce keys has been enabled. From now on, each key will be blocked for a certain length of time after it is used."));
+ else if (disabled & XkbBounceKeysMask)
+ KNotifyClient::event (0, "bouncekeys", i18n("Bounce keys has been disabled."));
+
+ if (enabled & XkbStickyKeysMask)
+ KNotifyClient::event (0, "stickykeys", i18n("Sticky keys has been enabled. From now on, modifier keys will stay latched after you have released them."));
+ else if (disabled & XkbStickyKeysMask)
+ KNotifyClient::event (0, "stickykeys", i18n("Sticky keys has been disabled."));
+
+ if (enabled & XkbMouseKeysMask)
+ KNotifyClient::event (0, "mousekeys", i18n("Mouse keys has been enabled. From now on, you can use the number pad of your keyboard in order to control the mouse."));
+ else if (disabled & XkbMouseKeysMask)
+ KNotifyClient::event (0, "mousekeys", i18n("Mouse keys has been disabled."));
+}
+
+void KAccessApp::applyChanges() {
+ notifyChanges();
+ unsigned int enabled = requestedFeatures & ~features;
+ unsigned int disabled = features & ~requestedFeatures;
+
+ KConfig *config = KGlobal::config();
+ config->setGroup("Keyboard");
+
+ if (enabled & XkbSlowKeysMask)
+ config->writeEntry("SlowKeys", true);
+ else if (disabled & XkbSlowKeysMask)
+ config->writeEntry("SlowKeys", false);
+
+ if (enabled & XkbBounceKeysMask)
+ config->writeEntry("BounceKeys", true);
+ else if (disabled & XkbBounceKeysMask)
+ config->writeEntry("BounceKeys", false);
+
+ if (enabled & XkbStickyKeysMask)
+ config->writeEntry("StickyKeys", true);
+ else if (disabled & XkbStickyKeysMask)
+ config->writeEntry("StickyKeys", false);
+
+ config->setGroup("Mouse");
+
+ if (enabled & XkbMouseKeysMask)
+ config->writeEntry("MouseKeys", true);
+ else if (disabled & XkbMouseKeysMask)
+ config->writeEntry("MouseKeys", false);
+
+ config->sync();
+}
+
+void KAccessApp::yesClicked() {
+ if (dialog != 0)
+ dialog->deleteLater();
+ dialog = 0;
+
+ KConfig *config = KGlobal::config();
+ config->setGroup("Keyboard");
+ switch (showModeCombobox->currentItem()) {
+ case 0:
+ config->writeEntry("Gestures", true);
+ config->writeEntry("GestureConfirmation", false);
+ break;
+ default:
+ config->writeEntry("Gestures", true);
+ config->writeEntry("GestureConfirmation", true);
+ break;
+ case 2:
+ requestedFeatures = 0;
+ config->writeEntry("Gestures", false);
+ config->writeEntry("GestureConfirmation", false);
+ }
+ config->sync();
+
+ if (features != requestedFeatures) {
+ notifyChanges();
+ applyChanges();
+ }
+ readSettings();
+}
+
+void KAccessApp::noClicked() {
+ if (dialog != 0)
+ dialog->deleteLater();
+ dialog = 0;
+ requestedFeatures = features;
+
+ KConfig *config = KGlobal::config();
+ config->setGroup("Keyboard");
+ switch (showModeCombobox->currentItem()) {
+ case 0:
+ config->writeEntry("Gestures", true);
+ config->writeEntry("GestureConfirmation", false);
+ break;
+ default:
+ config->writeEntry("Gestures", true);
+ config->writeEntry("GestureConfirmation", true);
+ break;
+ case 2:
+ requestedFeatures = 0;
+ config->writeEntry("Gestures", false);
+ config->writeEntry("GestureConfirmation", true);
+ }
+ config->sync();
+
+ if (features != requestedFeatures)
+ applyChanges();
+ readSettings();
+}
+
+void KAccessApp::dialogClosed() {
+ if (dialog != 0)
+ dialog->deleteLater();
+ dialog = 0;
+
+ requestedFeatures = features;
+}
+
+void KAccessApp::slotArtsBellTimeout()
+{
+ _artsBellBlocked = false;
+}
+
+void KAccessApp::setXkbOpcode(int opcode)
+{
+ xkb_opcode = opcode;
+}
diff --git a/kcontrol/access/kaccess.desktop b/kcontrol/access/kaccess.desktop
new file mode 100644
index 000000000..6fbd7f668
--- /dev/null
+++ b/kcontrol/access/kaccess.desktop
@@ -0,0 +1,78 @@
+[Desktop Entry]
+Type=Service
+Name=KDE Accessibility Tool
+Name[af]=KDE toeganklikheid program
+Name[ar]=أداة KDE لتسهيل الوصول
+Name[az]=KDE Yetişmə Qabiliyyəti Vasitəsi
+Name[be]=Інструмент даступнасці KDE
+Name[bg]=Равностоен достъп
+Name[bn]=কে.ডি.ই. সহায়ক প্রযুক্তি টুল
+Name[br]=Ostilh haezadusted KDE
+Name[bs]=KDE alat za pristupačnost
+Name[ca]=Eina d'accessibilitat KDE
+Name[cs]=Nástroj pro zpřístupnění prostředí KDE
+Name[csb]=Pòmòce przistãpù KDE
+Name[cy]=Erfyn Hygyrchedd KDE
+Name[da]=KDE Tilgængelighedsværktøj
+Name[de]=KDE-Zugangshilfe
+Name[el]=Εργαλείο προσιτότητας του KDE
+Name[eo]=KDE-ilo por Alirebleco
+Name[es]=Herramienta de accesibilidad de KDE
+Name[et]=KDE hõlbustusvahend
+Name[eu]=KDEren erabilerraztasun tresna
+Name[fa]=ابزار دستیابی‌پذیری KDE
+Name[fi]=KDE:n helppokäyttötoiminnot
+Name[fr]=Outil d'accessibilité de KDE
+Name[fy]=KDE Tagonklikens
+Name[ga]=Uirlis Inrochtaineachta KDE
+Name[gl]=Ferramenta de Acesibilidade de KDE
+Name[he]=כלי הנגישות של KDE
+Name[hi]=केडीई एक्सेसिबिलिटी औजार
+Name[hr]=KDE pristupačnost
+Name[hu]=KDE kezelési segédeszköz
+Name[is]=KDE aðgengistól
+Name[it]=Strumento per l'accessibilità di KDE
+Name[ja]=KDE アクセシビリティ支援ツール
+Name[ka]=KDE-ს სპეცეციალური შესაძლებლობების ხელსაწყოები
+Name[kk]=KDE арнайы мүмкіндіктер құралы
+Name[km]=ឧបករណ៍​មធ្យោបាយងាយស្រួល KDE
+Name[ko]=KDE 접근성 도구
+Name[lt]=KDE prieinamumo įrankis
+Name[lv]=KDE pieejamības rīks
+Name[mk]=Алатка за пристапливост во KDE
+Name[ms]=Alat Keaksesan KDE
+Name[mt]=Għodda KDE għall-aċċessibbiltà
+Name[nb]=Tilgjengelighetsverktøy for KDE
+Name[nds]=KDE-Warktüüch för Behinnerte
+Name[ne]=KDE पहुँचयोग्य उपकरण
+Name[nl]=KDE Toegankelijkheid
+Name[nn]=Tilgjengeverktøy for KDE
+Name[pa]=KDE ਸਹਾਇਕ ਸੰਦ
+Name[pl]=Ułatwienia dostępu KDE
+Name[pt]=Ferramenta de Acessibilidade do KDE
+Name[pt_BR]=Ferramenta de Acessibilidade do KDE
+Name[ro]=Utilitar de accesibilitate pentru KDE
+Name[ru]=Специальные возможности
+Name[rw]=Igikoresho cy'Ukugerwaho cya KDE
+Name[se]=KDE reaidu álkkibut geavaheami várás
+Name[sk]=KDE sprístupnenie
+Name[sl]=Orodje za dostopnost KDE
+Name[sr]=KDE алатка за приступачност
+Name[sr@Latn]=KDE alatka za pristupačnost
+Name[sv]=Handikappverktyg för KDE
+Name[ta]=KDE அணுகும் கருவி
+Name[tg]=Барномаи Тавонёбии KDE
+Name[th]=เครื่องมือปรับแต่งการช่วยใารใช้ของงาน KDE
+Name[tr]=KDE Erişilebilirlik Aracı
+Name[tt]=KDE'neñ Qulaylıq Qoralı
+Name[uk]=Утиліта керування доступності KDE
+Name[uz]=KDE qulaylik vositasi
+Name[uz@cyrillic]=KDE қулайлик воситаси
+Name[vi]=Công cụ hỗ trợ người tàn tật cho KDE
+Name[wa]=Usteye d' accessibilité KDE
+Name[zh_CN]=KDE 辅助工具
+Name[zh_TW]=KDE 無障礙工具
+Exec=kaccess
+X-DCOP-ServiceType=None
+X-KDE-ParentApp=kcontrol
+DocPath=kcontrol/kcmaccess/index.html
diff --git a/kcontrol/access/kaccess.h b/kcontrol/access/kaccess.h
new file mode 100644
index 000000000..d75d0bdb6
--- /dev/null
+++ b/kcontrol/access/kaccess.h
@@ -0,0 +1,114 @@
+#ifndef __K_ACCESS_H__
+#define __K_ACCESS_H__
+
+
+#include <qwidget.h>
+#include <qcolor.h>
+
+
+#include <kuniqueapplication.h>
+#include <kwinmodule.h>
+
+
+#include <X11/Xlib.h>
+#define explicit int_explicit // avoid compiler name clash in XKBlib.h
+#include <X11/XKBlib.h>
+#undef explicit
+
+class KDialogBase;
+class QLabel;
+class KComboBox;
+
+class KAccessApp : public KUniqueApplication
+{
+ Q_OBJECT
+
+public:
+
+ KAccessApp(bool allowStyles=true, bool GUIenabled=true);
+
+ bool x11EventFilter(XEvent *event);
+
+ int newInstance();
+
+ void setXkbOpcode(int opcode);
+
+protected:
+
+ void readSettings();
+
+ void xkbStateNotify();
+ void xkbBellNotify(XkbBellNotifyEvent *event);
+ void xkbControlsNotify(XkbControlsNotifyEvent *event);
+
+
+private slots:
+
+ void activeWindowChanged(WId wid);
+ void slotArtsBellTimeout();
+ void notifyChanges();
+ void applyChanges();
+ void yesClicked();
+ void noClicked();
+ void dialogClosed();
+
+private:
+ void createDialogContents();
+ void initMasks();
+
+ int xkb_opcode;
+ unsigned int features;
+ unsigned int requestedFeatures;
+
+ bool _systemBell, _artsBell, _visibleBell, _visibleBellInvert;
+ bool _artsBellBlocked;
+ QString _artsBellFile;
+ QColor _visibleBellColor;
+ int _visibleBellPause;
+
+ bool _gestures, _gestureConfirmation;
+ bool _kNotifyModifiers, _kNotifyAccessX;
+
+ QWidget *overlay;
+
+ QTimer *artsBellTimer;
+
+ KWinModule wm;
+
+ WId _activeWindow;
+
+ KDialogBase *dialog;
+ QLabel *featuresLabel;
+ KComboBox *showModeCombobox;
+
+ int keys[8];
+ int state;
+};
+
+
+class VisualBell : public QWidget
+{
+ Q_OBJECT
+
+public:
+
+ VisualBell(int pause)
+ : QWidget(0, 0, WX11BypassWM), _pause(pause)
+ {};
+
+
+protected:
+
+ void paintEvent(QPaintEvent *);
+
+
+private:
+
+ int _pause;
+
+};
+
+
+
+
+#endif
diff --git a/kcontrol/access/kcmaccess.cpp b/kcontrol/access/kcmaccess.cpp
new file mode 100644
index 000000000..661748e1d
--- /dev/null
+++ b/kcontrol/access/kcmaccess.cpp
@@ -0,0 +1,805 @@
+/**
+ * kcmaccess.cpp
+ *
+ * Copyright (c) 2000 Matthias H�zer-Klpfel
+ *
+ */
+
+
+#include <stdlib.h>
+#include <math.h>
+
+#include <dcopref.h>
+
+#include <qtabwidget.h>
+#include <qlayout.h>
+#include <qgroupbox.h>
+#include <qlabel.h>
+#include <qcheckbox.h>
+#include <qlineedit.h>
+#include <qradiobutton.h>
+#include <qwhatsthis.h>
+#include <qslider.h>
+#include <qspinbox.h>
+
+
+#include <kcombobox.h>
+#include <kstandarddirs.h>
+#include <kcolorbutton.h>
+#include <kfiledialog.h>
+#include <kapplication.h>
+#include <kaboutdata.h>
+#include <kshortcut.h>
+#include <kkeynative.h>
+#include <knotifydialog.h>
+
+#include <X11/Xlib.h>
+#include <X11/XKBlib.h>
+#define XK_MISCELLANY
+#define XK_XKB_KEYS
+#include <X11/keysymdef.h>
+
+#include "kcmaccess.moc"
+
+
+ExtendedIntNumInput::ExtendedIntNumInput
+ (QWidget* parent, const char* name)
+ : KIntNumInput(parent, name)
+{
+}
+
+ExtendedIntNumInput::~ExtendedIntNumInput () {
+}
+
+void ExtendedIntNumInput::setRange(int min, int max, int step, bool slider) {
+ KIntNumInput::setRange (min,max,step, slider);
+
+ if (slider) {
+ disconnect(m_slider, SIGNAL(valueChanged(int)),
+ m_spin, SLOT(setValue(int)));
+ disconnect(m_spin, SIGNAL(valueChanged(int)),
+ this, SLOT(spinValueChanged(int)));
+
+ this->min = min;
+ this->max = max;
+ sliderMax = (int)floor (0.5
+ + 2*(log(max)-log(min)) / (log(max)-log(max-1)));
+ m_slider->setRange(0, sliderMax);
+ m_slider->setSteps(step, sliderMax/10);
+ m_slider->setTickInterval(sliderMax/10);
+
+ double alpha = sliderMax / (log(max) - log(min));
+ double logVal = alpha * (log(value())-log(min));
+ m_slider->setValue ((int)floor (0.5 + logVal));
+
+ connect(m_slider, SIGNAL(valueChanged(int)),
+ this, SLOT(slotSliderValueChanged(int)));
+ connect(m_spin, SIGNAL(valueChanged(int)),
+ this, SLOT(slotSpinValueChanged(int)));
+ }
+}
+
+// Basically the slider values are logarithmic whereas
+// spinbox values are linear.
+
+void ExtendedIntNumInput::slotSpinValueChanged(int val)
+{
+
+ if(m_slider) {
+ double alpha = sliderMax / (log(max) - log(min));
+ double logVal = alpha * (log(val)-log(min));
+ m_slider->setValue ((int)floor (0.5 + logVal));
+ }
+
+ emit valueChanged(val);
+}
+
+void ExtendedIntNumInput::slotSliderValueChanged(int val)
+{
+ double alpha = sliderMax / (log(max) - log(min));
+ double linearVal = exp (val/alpha + log(min));
+ m_spin->setValue ((int)floor(0.5 + linearVal));
+}
+
+static bool needToRunKAccessDaemon( KConfig *config )
+{
+ // We always start the KAccess Daemon, if it is not needed,
+ // it will terminate itself after configuring the AccessX
+ // features.
+ return true;
+}
+
+QString mouseKeysShortcut (Display *display) {
+ // Calculate the keycode
+ KeySym sym = XK_MouseKeys_Enable;
+ KeyCode code = XKeysymToKeycode(display, sym);
+ if (code == 0) {
+ sym = XK_Pointer_EnableKeys;
+ code = XKeysymToKeycode(display, sym);
+ if (code == 0)
+ return ""; // No shortcut available?
+ }
+
+ // Calculate the modifiers by searching the keysym in the X keyboard mapping
+ XkbDescPtr xkbdesc = XkbGetMap(display, XkbKeyTypesMask | XkbKeySymsMask, XkbUseCoreKbd);
+ if (!xkbdesc)
+ return ""; // Failed to obtain the mapping from server
+
+ bool found = false;
+ unsigned char modifiers = 0;
+ int groups = XkbKeyNumGroups(xkbdesc, code);
+ for (int grp = 0; grp < groups && !found; grp++)
+ {
+ int levels = XkbKeyGroupWidth(xkbdesc, code, grp);
+ for (int level = 0; level < levels && !found; level++)
+ {
+ if (sym == XkbKeySymEntry(xkbdesc, code, level, grp))
+ {
+ // keysym found => determine modifiers
+ int typeIdx = xkbdesc->map->key_sym_map[code].kt_index[grp];
+ XkbKeyTypePtr type = &(xkbdesc->map->types[typeIdx]);
+ for (int i = 0; i < type->map_count && !found; i++)
+ {
+ if (type->map[i].active && (type->map[i].level == level))
+ {
+ modifiers = type->map[i].mods.mask;
+ found = true;
+ }
+ }
+ }
+ }
+ }
+ XkbFreeClientMap (xkbdesc, 0, true);
+
+ if (!found)
+ return ""; // Somehow the keycode -> keysym mapping is flawed
+
+ XEvent ev;
+ ev.xkey.display = display;
+ ev.xkey.keycode = code;
+ ev.xkey.state = 0;
+ KKey key = KKey(KKeyNative(&ev));
+ QString keyname = key.toString();
+
+ unsigned int AltMask = KKeyNative::modX(KKey::ALT);
+ unsigned int WinMask = KKeyNative::modX(KKey::WIN);
+ unsigned int NumMask = KKeyNative::modXNumLock();
+ unsigned int ScrollMask= KKeyNative::modXScrollLock();
+
+ unsigned int MetaMask = XkbKeysymToModifiers (display, XK_Meta_L);
+ unsigned int SuperMask = XkbKeysymToModifiers (display, XK_Super_L);
+ unsigned int HyperMask = XkbKeysymToModifiers (display, XK_Hyper_L);
+ unsigned int AltGrMask = XkbKeysymToModifiers (display, XK_Mode_switch)
+ | XkbKeysymToModifiers (display, XK_ISO_Level3_Shift)
+ | XkbKeysymToModifiers (display, XK_ISO_Level3_Latch)
+ | XkbKeysymToModifiers (display, XK_ISO_Level3_Lock);
+
+ unsigned int mods = ShiftMask | ControlMask | AltMask | WinMask
+ | LockMask | NumMask | ScrollMask;
+
+ AltGrMask &= ~mods;
+ MetaMask &= ~(mods | AltGrMask);
+ SuperMask &= ~(mods | AltGrMask | MetaMask);
+ HyperMask &= ~(mods | AltGrMask | MetaMask | SuperMask);
+
+ if ((modifiers & AltGrMask) != 0)
+ keyname = i18n("AltGraph") + "+" + keyname;
+ if ((modifiers & HyperMask) != 0)
+ keyname = i18n("Hyper") + "+" + keyname;
+ if ((modifiers & SuperMask) != 0)
+ keyname = i18n("Super") + "+" + keyname;
+ if ((modifiers & WinMask) != 0)
+ keyname = KKey::modFlagLabel(KKey::WIN) + "+" + keyname;
+ if ((modifiers & AltMask) != 0)
+ keyname = KKey::modFlagLabel(KKey::ALT) + "+" + keyname;
+ if ((modifiers & ControlMask) != 0)
+ keyname = KKey::modFlagLabel(KKey::CTRL) + "+" + keyname;
+ if ((modifiers & ShiftMask) != 0)
+ keyname = KKey::modFlagLabel(KKey::SHIFT) + "+" + keyname;
+
+ QString result;
+ if ((modifiers & ScrollMask) != 0)
+ if ((modifiers & LockMask) != 0)
+ if ((modifiers & NumMask) != 0)
+ result = i18n("Press %1 while NumLock, CapsLock and ScrollLock are active");
+ else
+ result = i18n("Press %1 while CapsLock and ScrollLock are active");
+ else if ((modifiers & NumMask) != 0)
+ result = i18n("Press %1 while NumLock and ScrollLock are active");
+ else
+ result = i18n("Press %1 while ScrollLock is active");
+ else if ((modifiers & LockMask) != 0)
+ if ((modifiers & NumMask) != 0)
+ result = i18n("Press %1 while NumLock and CapsLock are active");
+ else
+ result = i18n("Press %1 while CapsLock is active");
+ else if ((modifiers & NumMask) != 0)
+ result = i18n("Press %1 while NumLock is active");
+ else
+ result = i18n("Press %1");
+
+ return result.arg(keyname);
+}
+
+KAccessConfig::KAccessConfig(QWidget *parent, const char *)
+ : KCModule(parent, "kcmaccess")
+{
+
+ KAboutData *about =
+ new KAboutData(I18N_NOOP("kaccess"), 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");
+
+ setAboutData( about );
+
+ QVBoxLayout *main = new QVBoxLayout(this, 0, KDialogBase::spacingHint());
+ QTabWidget *tab = new QTabWidget(this);
+ main->addWidget(tab);
+
+ // bell settings ---------------------------------------
+ QWidget *bell = new QWidget(this);
+
+ QVBoxLayout *vbox = new QVBoxLayout(bell, KDialogBase::marginHint(),
+ KDialogBase::spacingHint());
+
+ QGroupBox *grp = new QGroupBox(i18n("Audible Bell"), bell);
+ grp->setColumnLayout( 0, Qt::Horizontal );
+ vbox->addWidget(grp);
+
+ QVBoxLayout *vvbox = new QVBoxLayout(grp->layout(),
+ KDialogBase::spacingHint());
+
+ systemBell = new QCheckBox(i18n("Use &system bell"), grp);
+ vvbox->addWidget(systemBell);
+ customBell = new QCheckBox(i18n("Us&e customized bell"), grp);
+ vvbox->addWidget(customBell);
+ QWhatsThis::add( systemBell, i18n("If this option is checked, the default system bell will be used. See the"
+ " \"System Bell\" control module for how to customize the system bell."
+ " Normally, this is just a \"beep\".") );
+ QWhatsThis::add( customBell, i18n("Check this option if you want to use a customized bell, playing"
+ " a sound file. If you do this, you will probably want to turn off the system bell.<p> Please note"
+ " that on slow machines this may cause a \"lag\" between the event causing the bell and the sound being played.") );
+
+ QHBoxLayout *hbox = new QHBoxLayout(vvbox, KDialogBase::spacingHint());
+ hbox->addSpacing(24);
+ soundEdit = new QLineEdit(grp);
+ soundLabel = new QLabel(soundEdit, i18n("Sound &to play:"), grp);
+ hbox->addWidget(soundLabel);
+ hbox->addWidget(soundEdit);
+ soundButton = new QPushButton(i18n("Browse..."), grp);
+ hbox->addWidget(soundButton);
+ QString wtstr = i18n("If the option \"Use customized bell\" is enabled, you can choose a sound file here."
+ " Click \"Browse...\" to choose a sound file using the file dialog.");
+ QWhatsThis::add( soundEdit, wtstr );
+ QWhatsThis::add( soundLabel, wtstr );
+ QWhatsThis::add( soundButton, wtstr );
+
+ connect(soundButton, SIGNAL(clicked()), this, SLOT(selectSound()));
+
+ connect(customBell, SIGNAL(clicked()), this, SLOT(checkAccess()));
+
+ connect(systemBell, SIGNAL(clicked()), this, SLOT(configChanged()));
+ connect(customBell, SIGNAL(clicked()), this, SLOT(configChanged()));
+ connect(soundEdit, SIGNAL(textChanged(const QString&)), this, SLOT(configChanged()));
+
+ // -----------------------------------------------------
+
+ // visible bell ----------------------------------------
+ grp = new QGroupBox(i18n("Visible Bell"), bell);
+ grp->setColumnLayout( 0, Qt::Horizontal );
+ vbox->addWidget(grp);
+
+ vvbox = new QVBoxLayout(grp->layout(), KDialog::spacingHint());
+
+ visibleBell = new QCheckBox(i18n("&Use visible bell"), grp);
+ vvbox->addWidget(visibleBell);
+ QWhatsThis::add( visibleBell, i18n("This option will turn on the \"visible bell\", i.e. a visible"
+ " notification shown every time that normally just a bell would occur. This is especially useful"
+ " for deaf people.") );
+
+ hbox = new QHBoxLayout(vvbox, KDialog::spacingHint());
+ hbox->addSpacing(24);
+ invertScreen = new QRadioButton(i18n("I&nvert screen"), grp);
+ hbox->addWidget(invertScreen);
+ hbox = new QHBoxLayout(vvbox, KDialog::spacingHint());
+ QWhatsThis::add( invertScreen, i18n("All screen colors will be inverted for the amount of time specified below.") );
+ hbox->addSpacing(24);
+ flashScreen = new QRadioButton(i18n("F&lash screen"), grp);
+ hbox->addWidget(flashScreen);
+ QWhatsThis::add( flashScreen, i18n("The screen will turn to a custom color for the amount of time specified below.") );
+ hbox->addSpacing(12);
+ colorButton = new KColorButton(grp);
+ colorButton->setFixedWidth(colorButton->sizeHint().height()*2);
+ hbox->addWidget(colorButton);
+ hbox->addStretch();
+ QWhatsThis::add( colorButton, i18n("Click here to choose the color used for the \"flash screen\" visible bell.") );
+
+ hbox = new QHBoxLayout(vvbox, KDialog::spacingHint());
+ hbox->addSpacing(24);
+
+ durationSlider = new ExtendedIntNumInput(grp);
+ durationSlider->setRange(100, 2000, 100);
+ durationSlider->setLabel(i18n("Duration:"));
+ durationSlider->setSuffix(i18n(" msec"));
+ hbox->addWidget(durationSlider);
+ QWhatsThis::add( durationSlider, i18n("Here you can customize the duration of the \"visible bell\" effect being shown.") );
+
+ connect(invertScreen, SIGNAL(clicked()), this, SLOT(configChanged()));
+ connect(flashScreen, SIGNAL(clicked()), this, SLOT(configChanged()));
+ connect(visibleBell, SIGNAL(clicked()), this, SLOT(configChanged()));
+ connect(visibleBell, SIGNAL(clicked()), this, SLOT(checkAccess()));
+ connect(colorButton, SIGNAL(clicked()), this, SLOT(changeFlashScreenColor()));
+
+ connect(invertScreen, SIGNAL(clicked()), this, SLOT(invertClicked()));
+ connect(flashScreen, SIGNAL(clicked()), this, SLOT(flashClicked()));
+
+ connect(durationSlider, SIGNAL(valueChanged(int)), this, SLOT(configChanged()));
+
+ vbox->addStretch();
+
+ // -----------------------------------------------------
+
+ tab->addTab(bell, i18n("&Bell"));
+
+
+ // modifier key settings -------------------------------
+ QWidget *modifiers = new QWidget(this);
+
+ vbox = new QVBoxLayout(modifiers, KDialog::marginHint(), KDialog::spacingHint());
+
+ grp = new QGroupBox(i18n("S&ticky Keys"), modifiers);
+ grp->setColumnLayout( 0, Qt::Horizontal );
+ vbox->addWidget(grp);
+
+ vvbox = new QVBoxLayout(grp->layout(), KDialog::spacingHint());
+
+ stickyKeys = new QCheckBox(i18n("Use &sticky keys"), grp);
+ vvbox->addWidget(stickyKeys);
+
+ hbox = new QHBoxLayout(vvbox, KDialog::spacingHint());
+ hbox->addSpacing(24);
+ stickyKeysLock = new QCheckBox(i18n("&Lock sticky keys"), grp);
+ hbox->addWidget(stickyKeysLock);
+
+ hbox = new QHBoxLayout(vvbox, KDialog::spacingHint());
+ hbox->addSpacing(24);
+ stickyKeysAutoOff = new QCheckBox(i18n("Turn sticky keys off when two keys are pressed simultaneously"), grp);
+ hbox->addWidget(stickyKeysAutoOff);
+
+ hbox = new QHBoxLayout(vvbox, KDialog::spacingHint());
+ hbox->addSpacing(24);
+ stickyKeysBeep = new QCheckBox(i18n("Use system bell whenever a modifier gets latched, locked or unlocked"), grp);
+ hbox->addWidget(stickyKeysBeep);
+
+ grp = new QGroupBox(i18n("Locking Keys"), modifiers);
+ grp->setColumnLayout( 0, Qt::Horizontal );
+ vbox->addWidget(grp);
+
+ vvbox = new QVBoxLayout(grp->layout(), KDialog::spacingHint());
+
+ toggleKeysBeep = new QCheckBox(i18n("Use system bell whenever a locking key gets activated or deactivated"), grp);
+ vvbox->addWidget(toggleKeysBeep);
+
+ kNotifyModifiers = new QCheckBox(i18n("Use KDE's system notification mechanism whenever a modifier or locking key changes its state"), grp);
+ vvbox->addWidget(kNotifyModifiers);
+
+ hbox = new QHBoxLayout(vvbox, KDialog::spacingHint());
+ hbox->addStretch(1);
+ kNotifyModifiersButton = new QPushButton(i18n("Configure System Notification..."), grp);
+ kNotifyModifiersButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+ hbox->addWidget(kNotifyModifiersButton);
+
+ connect(stickyKeys, SIGNAL(clicked()), this, SLOT(configChanged()));
+ connect(stickyKeysLock, SIGNAL(clicked()), this, SLOT(configChanged()));
+ connect(stickyKeysAutoOff, SIGNAL(clicked()), this, SLOT(configChanged()));
+ connect(stickyKeys, SIGNAL(clicked()), this, SLOT(checkAccess()));
+
+ connect(stickyKeysBeep, SIGNAL(clicked()), this, SLOT(configChanged()));
+ connect(toggleKeysBeep, SIGNAL(clicked()), this, SLOT(configChanged()));
+ connect(kNotifyModifiers, SIGNAL(clicked()), this, SLOT(configChanged()));
+ connect(kNotifyModifiers, SIGNAL(clicked()), this, SLOT(checkAccess()));
+ connect(kNotifyModifiersButton, SIGNAL(clicked()), this, SLOT(configureKNotify()));
+
+ vbox->addStretch();
+
+ tab->addTab(modifiers, i18n("&Modifier Keys"));
+
+ // key filter settings ---------------------------------
+ QWidget *filters = new QWidget(this);
+
+ vbox = new QVBoxLayout(filters, KDialog::marginHint(), KDialog::spacingHint());
+
+ grp = new QGroupBox(i18n("Slo&w Keys"), filters);
+ grp->setColumnLayout( 0, Qt::Horizontal );
+ vbox->addWidget(grp);
+
+ vvbox = new QVBoxLayout(grp->layout(), KDialog::spacingHint());
+
+ slowKeys = new QCheckBox(i18n("&Use slow keys"), grp);
+ vvbox->addWidget(slowKeys);
+
+ hbox = new QHBoxLayout(vvbox, KDialog::spacingHint());
+ hbox->addSpacing(24);
+ slowKeysDelay = new ExtendedIntNumInput(grp);
+ slowKeysDelay->setSuffix(i18n(" msec"));
+ slowKeysDelay->setRange(50, 10000, 100);
+ slowKeysDelay->setLabel(i18n("Acceptance dela&y:"));
+ hbox->addWidget(slowKeysDelay);
+
+ hbox = new QHBoxLayout(vvbox, KDialog::spacingHint());
+ hbox->addSpacing(24);
+ slowKeysPressBeep = new QCheckBox(i18n("&Use system bell whenever a key is pressed"), grp);
+ hbox->addWidget(slowKeysPressBeep);
+
+ hbox = new QHBoxLayout(vvbox, KDialog::spacingHint());
+ hbox->addSpacing(24);
+ slowKeysAcceptBeep = new QCheckBox(i18n("&Use system bell whenever a key is accepted"), grp);
+ hbox->addWidget(slowKeysAcceptBeep);
+
+ hbox = new QHBoxLayout(vvbox, KDialog::spacingHint());
+ hbox->addSpacing(24);
+ slowKeysRejectBeep = new QCheckBox(i18n("&Use system bell whenever a key is rejected"), grp);
+ hbox->addWidget(slowKeysRejectBeep);
+
+ grp = new QGroupBox(i18n("Bounce Keys"), filters);
+ grp->setColumnLayout( 0, Qt::Horizontal );
+ vbox->addWidget(grp);
+
+ vvbox = new QVBoxLayout(grp->layout(), KDialog::spacingHint());
+
+ bounceKeys = new QCheckBox(i18n("Use bou&nce keys"), grp);
+ vvbox->addWidget(bounceKeys);
+
+ hbox = new QHBoxLayout(vvbox, KDialog::spacingHint());
+ hbox->addSpacing(24);
+ bounceKeysDelay = new ExtendedIntNumInput(grp);
+ bounceKeysDelay->setSuffix(i18n(" msec"));
+ bounceKeysDelay->setRange(100, 5000, 100);
+ bounceKeysDelay->setLabel(i18n("D&ebounce time:"));
+ hbox->addWidget(bounceKeysDelay);
+
+ hbox = new QHBoxLayout(vvbox, KDialog::spacingHint());
+ hbox->addSpacing(24);
+ bounceKeysRejectBeep = new QCheckBox(i18n("Use the system bell whenever a key is rejected"), grp);
+ hbox->addWidget(bounceKeysRejectBeep);
+
+ connect(slowKeysDelay, SIGNAL(valueChanged(int)), this, SLOT(configChanged()));
+ connect(slowKeys, SIGNAL(clicked()), this, SLOT(configChanged()));
+ connect(slowKeys, SIGNAL(clicked()), this, SLOT(checkAccess()));
+
+ connect(slowKeysPressBeep, SIGNAL(clicked()), this, SLOT(configChanged()));
+ connect(slowKeysAcceptBeep, SIGNAL(clicked()), this, SLOT(configChanged()));
+ connect(slowKeysRejectBeep, SIGNAL(clicked()), this, SLOT(configChanged()));
+
+ connect(bounceKeysDelay, SIGNAL(valueChanged(int)), this, SLOT(configChanged()));
+ connect(bounceKeys, SIGNAL(clicked()), this, SLOT(configChanged()));
+ connect(bounceKeysRejectBeep, SIGNAL(clicked()), this, SLOT(configChanged()));
+ connect(bounceKeys, SIGNAL(clicked()), this, SLOT(checkAccess()));
+
+ vbox->addStretch();
+
+ tab->addTab(filters, i18n("&Keyboard Filters"));
+
+ // gestures --------------------------------------------
+ QWidget *features = new QWidget(this);
+
+ vbox = new QVBoxLayout(features, KDialog::marginHint(), KDialog::spacingHint());
+
+ grp = new QGroupBox(i18n("Activation Gestures"), features);
+ grp->setColumnLayout( 0, Qt::Horizontal );
+ vbox->addWidget(grp);
+
+ vvbox = new QVBoxLayout(grp->layout(), KDialog::spacingHint());
+
+ gestures = new QCheckBox(i18n("Use gestures for activating sticky keys and slow keys"), grp);
+ vvbox->addWidget(gestures);
+ QString shortcut = mouseKeysShortcut(this->x11Display());
+ if (shortcut.isEmpty())
+ QWhatsThis::add (gestures, i18n("Here you can activate keyboard gestures that turn on the following features: \n"
+ "Sticky keys: Press Shift key 5 consecutive times\n"
+ "Slow keys: Hold down Shift for 8 seconds"));
+ else
+ QWhatsThis::add (gestures, i18n("Here you can activate keyboard gestures that turn on the following features: \n"
+ "Mouse Keys: %1\n"
+ "Sticky keys: Press Shift key 5 consecutive times\n"
+ "Slow keys: Hold down Shift for 8 seconds").arg(shortcut));
+
+ timeout = new QCheckBox(i18n("Turn sticky keys and slow keys off after a certain period of inactivity"), grp);
+ vvbox->addWidget(timeout);
+
+ hbox = new QHBoxLayout(vvbox, KDialog::spacingHint());
+ hbox->addSpacing(24);
+ timeoutDelay = new KIntNumInput(grp);
+ timeoutDelay->setSuffix(i18n(" min"));
+ timeoutDelay->setRange(1, 30, 4);
+ timeoutDelay->setLabel(i18n("Timeout:"));
+ hbox->addWidget(timeoutDelay);
+
+ grp = new QGroupBox(i18n("Notification"), features);
+ grp->setColumnLayout( 0, Qt::Horizontal );
+ vbox->addWidget(grp);
+
+ vvbox = new QVBoxLayout(grp->layout(), KDialog::spacingHint());
+
+ accessxBeep = new QCheckBox(i18n("Use the system bell whenever a gesture is used to turn an accessibility feature on or off"), grp);
+ vvbox->addWidget(accessxBeep);
+
+ gestureConfirmation = new QCheckBox(i18n("Show a confirmation dialog whenever a keyboard accessibility feature is turned on or off"), grp);
+ vvbox->addWidget(gestureConfirmation);
+ QWhatsThis::add (gestureConfirmation, i18n("If this option is checked, KDE will show a confirmation dialog whenever a keyboard accessibility feature is turned on or off.\nBe sure you know what you are doing if you uncheck it, as the keyboard accessibility settings will then always be applied without confirmation.") );
+
+ kNotifyAccessX = new QCheckBox(i18n("Use KDE's system notification mechanism whenever a keyboard accessibility feature is turned on or off"), grp);
+ vvbox->addWidget(kNotifyAccessX);
+
+ hbox = new QHBoxLayout(vvbox, KDialog::spacingHint());
+ hbox->addStretch(1);
+ kNotifyAccessXButton = new QPushButton(i18n("Configure System Notification..."), grp);
+ kNotifyAccessXButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+ hbox->addWidget(kNotifyAccessXButton);
+
+ connect(gestures, SIGNAL(clicked()), this, SLOT(configChanged()));
+ connect(timeout, SIGNAL(clicked()), this, SLOT(configChanged()));
+ connect(timeout, SIGNAL(clicked()), this, SLOT(checkAccess()));
+ connect(timeoutDelay, SIGNAL(valueChanged(int)), this, SLOT(configChanged()));
+ connect(accessxBeep, SIGNAL(clicked()), this, SLOT(configChanged()));
+ connect(gestureConfirmation, SIGNAL(clicked()), this, SLOT(configChanged()));
+ connect(kNotifyAccessX, SIGNAL(clicked()), this, SLOT(configChanged()));
+ connect(kNotifyAccessX, SIGNAL(clicked()), this, SLOT(checkAccess()));
+ connect(kNotifyAccessXButton, SIGNAL(clicked()), this, SLOT(configureKNotify()));
+
+ vbox->addStretch();
+
+ tab->addTab(features, i18n("Activation Gestures"));
+
+ load();
+}
+
+
+KAccessConfig::~KAccessConfig()
+{
+}
+
+void KAccessConfig::configureKNotify()
+{
+ KAboutData about(I18N_NOOP("kaccess"),
+ I18N_NOOP("KDE Accessibility Tool"),
+ 0);
+ KNotifyDialog::configure (this, 0, &about);
+}
+
+void KAccessConfig::changeFlashScreenColor()
+{
+ invertScreen->setChecked(false);
+ flashScreen->setChecked(true);
+ configChanged();
+}
+
+void KAccessConfig::selectSound()
+{
+ QStringList list = KGlobal::dirs()->findDirs("sound", "");
+ QString start;
+ if (list.count()>0)
+ start = list[0];
+ // TODO: Why only wav's? How can I find out what artsd supports?
+ QString fname = KFileDialog::getOpenFileName(start, i18n("*.wav|WAV Files"));
+ if (!fname.isEmpty())
+ soundEdit->setText(fname);
+}
+
+
+void KAccessConfig::configChanged()
+{
+ emit changed(true);
+}
+
+
+void KAccessConfig::load()
+{
+ load( false );
+}
+
+void KAccessConfig::load( bool useDefaults )
+{
+ KConfig *config = new KConfig("kaccessrc", true, false);
+
+ config->setGroup("Bell");
+ config->setReadDefaults( useDefaults );
+
+ systemBell->setChecked(config->readBoolEntry("SystemBell", true));
+ customBell->setChecked(config->readBoolEntry("ArtsBell", false));
+ soundEdit->setText(config->readPathEntry("ArtsBellFile"));
+
+ visibleBell->setChecked(config->readBoolEntry("VisibleBell", false));
+ invertScreen->setChecked(config->readBoolEntry("VisibleBellInvert", true));
+ flashScreen->setChecked(!invertScreen->isChecked());
+ QColor def(Qt::red);
+ colorButton->setColor(config->readColorEntry("VisibleBellColor", &def));
+
+ durationSlider->setValue(config->readNumEntry("VisibleBellPause", 500));
+
+
+ config->setGroup("Keyboard");
+
+ stickyKeys->setChecked(config->readBoolEntry("StickyKeys", false));
+ stickyKeysLock->setChecked(config->readBoolEntry("StickyKeysLatch", true));
+ stickyKeysAutoOff->setChecked(config->readBoolEntry("StickyKeysAutoOff", false));
+ stickyKeysBeep->setChecked(config->readBoolEntry("StickyKeysBeep", true));
+ toggleKeysBeep->setChecked(config->readBoolEntry("ToggleKeysBeep", false));
+ kNotifyModifiers->setChecked(config->readBoolEntry("kNotifyModifiers", false));
+
+ slowKeys->setChecked(config->readBoolEntry("SlowKeys", false));
+ slowKeysDelay->setValue(config->readNumEntry("SlowKeysDelay", 500));
+ slowKeysPressBeep->setChecked(config->readBoolEntry("SlowKeysPressBeep", true));
+ slowKeysAcceptBeep->setChecked(config->readBoolEntry("SlowKeysAcceptBeep", true));
+ slowKeysRejectBeep->setChecked(config->readBoolEntry("SlowKeysRejectBeep", true));
+
+ bounceKeys->setChecked(config->readBoolEntry("BounceKeys", false));
+ bounceKeysDelay->setValue(config->readNumEntry("BounceKeysDelay", 500));
+ bounceKeysRejectBeep->setChecked(config->readBoolEntry("BounceKeysRejectBeep", true));
+
+ gestures->setChecked(config->readBoolEntry("Gestures", true));
+ timeout->setChecked(config->readBoolEntry("AccessXTimeout", false));
+ timeoutDelay->setValue(config->readNumEntry("AccessXTimeoutDelay", 30));
+
+ accessxBeep->setChecked(config->readBoolEntry("AccessXBeep", true));
+ gestureConfirmation->setChecked(config->readBoolEntry("GestureConfirmation", false));
+ kNotifyAccessX->setChecked(config->readBoolEntry("kNotifyAccessX", false));
+
+ delete config;
+
+ checkAccess();
+
+ emit changed(useDefaults);
+}
+
+
+void KAccessConfig::save()
+{
+ KConfig *config= new KConfig("kaccessrc", false);
+
+ config->setGroup("Bell");
+
+ config->writeEntry("SystemBell", systemBell->isChecked());
+ config->writeEntry("ArtsBell", customBell->isChecked());
+ config->writePathEntry("ArtsBellFile", soundEdit->text());
+
+ config->writeEntry("VisibleBell", visibleBell->isChecked());
+ config->writeEntry("VisibleBellInvert", invertScreen->isChecked());
+ config->writeEntry("VisibleBellColor", colorButton->color());
+
+ config->writeEntry("VisibleBellPause", durationSlider->value());
+
+
+ config->setGroup("Keyboard");
+
+ config->writeEntry("StickyKeys", stickyKeys->isChecked());
+ config->writeEntry("StickyKeysLatch", stickyKeysLock->isChecked());
+ config->writeEntry("StickyKeysAutoOff", stickyKeysAutoOff->isChecked());
+ config->writeEntry("StickyKeysBeep", stickyKeysBeep->isChecked());
+ config->writeEntry("ToggleKeysBeep", toggleKeysBeep->isChecked());
+ config->writeEntry("kNotifyModifiers", kNotifyModifiers->isChecked());
+
+ config->writeEntry("SlowKeys", slowKeys->isChecked());
+ config->writeEntry("SlowKeysDelay", slowKeysDelay->value());
+ config->writeEntry("SlowKeysPressBeep", slowKeysPressBeep->isChecked());
+ config->writeEntry("SlowKeysAcceptBeep", slowKeysAcceptBeep->isChecked());
+ config->writeEntry("SlowKeysRejectBeep", slowKeysRejectBeep->isChecked());
+
+
+ config->writeEntry("BounceKeys", bounceKeys->isChecked());
+ config->writeEntry("BounceKeysDelay", bounceKeysDelay->value());
+ config->writeEntry("BounceKeysRejectBeep", bounceKeysRejectBeep->isChecked());
+
+ config->writeEntry("Gestures", gestures->isChecked());
+ config->writeEntry("AccessXTimeout", timeout->isChecked());
+ config->writeEntry("AccessXTimeoutDelay", timeoutDelay->value());
+
+ config->writeEntry("AccessXBeep", accessxBeep->isChecked());
+ config->writeEntry("GestureConfirmation", gestureConfirmation->isChecked());
+ config->writeEntry("kNotifyAccessX", kNotifyAccessX->isChecked());
+
+
+ config->sync();
+
+ if (systemBell->isChecked() ||
+ customBell->isChecked() ||
+ visibleBell->isChecked())
+ {
+ KConfig cfg("kdeglobals", false, false);
+ cfg.setGroup("General");
+ cfg.writeEntry("UseSystemBell", true);
+ cfg.sync();
+ }
+
+ // make kaccess reread the configuration
+ // When turning things off, it needs to be done by kaccess,
+ // so don't actually kill it *shrug*.
+ if ( true /*needToRunKAccessDaemon( config )*/ )
+ kapp->startServiceByDesktopName("kaccess");
+
+ else // don't need it -> kill it
+ {
+ DCOPRef kaccess( "kaccess", "qt/kaccess" );
+ kaccess.send( "quit" );
+ }
+
+ delete config;
+
+ emit changed(false);
+}
+
+
+void KAccessConfig::defaults()
+{
+ load( true );
+}
+
+
+void KAccessConfig::invertClicked()
+{
+ flashScreen->setChecked(false);
+}
+
+
+void KAccessConfig::flashClicked()
+{
+ invertScreen->setChecked(false);
+}
+
+
+void KAccessConfig::checkAccess()
+{
+ bool custom = customBell->isChecked();
+ soundEdit->setEnabled(custom);
+ soundButton->setEnabled(custom);
+ soundLabel->setEnabled(custom);
+
+ bool visible = visibleBell->isChecked();
+ invertScreen->setEnabled(visible);
+ flashScreen->setEnabled(visible);
+ colorButton->setEnabled(visible);
+ durationSlider->setEnabled(visible);
+
+ bool sticky = stickyKeys->isChecked();
+ stickyKeysLock->setEnabled(sticky);
+ stickyKeysAutoOff->setEnabled(sticky);
+ stickyKeysBeep->setEnabled(sticky);
+
+ bool slow = slowKeys->isChecked();
+ slowKeysDelay->setEnabled(slow);
+ slowKeysPressBeep->setEnabled(slow);
+ slowKeysAcceptBeep->setEnabled(slow);
+ slowKeysRejectBeep->setEnabled(slow);
+
+ bool bounce = bounceKeys->isChecked();
+ bounceKeysDelay->setEnabled(bounce);
+ bounceKeysRejectBeep->setEnabled(bounce);
+
+ bool useTimeout = timeout->isChecked();
+ timeoutDelay->setEnabled(useTimeout);
+}
+
+extern "C"
+{
+ KDE_EXPORT KCModule *create_access(QWidget *parent, const char *name)
+ {
+ return new KAccessConfig(parent, name);
+ }
+
+ /* This one gets called by kcminit
+
+ */
+ KDE_EXPORT void init_access()
+ {
+ KConfig *config = new KConfig("kaccessrc", true, false);
+ bool run = needToRunKAccessDaemon( config );
+
+ delete config;
+ if (run)
+ kapp->startServiceByDesktopName("kaccess");
+ }
+}
+
+
diff --git a/kcontrol/access/kcmaccess.desktop b/kcontrol/access/kcmaccess.desktop
new file mode 100644
index 000000000..7980cadec
--- /dev/null
+++ b/kcontrol/access/kcmaccess.desktop
@@ -0,0 +1,240 @@
+[Desktop Entry]
+Icon=access
+Type=Application
+Exec=kcmshell kcmaccess
+DocPath=kcontrol/kcmaccess/index.html
+
+
+X-KDE-Library=access
+X-KDE-Init=access
+X-KDE-ParentApp=kcontrol
+
+Name=Accessibility
+Name[af]=Toeganklikheid
+Name[ar]=تسهيل الوصول
+Name[az]=Yetişmə Qabiliyyəti
+Name[be]=Даступнасць
+Name[bg]=Равностоен достъп
+Name[bn]=সহায়ক প্রযুক্তি
+Name[br]=Haezadusted
+Name[bs]=Pristupačnost
+Name[ca]=Accessibilitat
+Name[cs]=Zpřístupnění
+Name[csb]=Pòmòce przistãpù
+Name[cy]=Hygyrchedd
+Name[da]=Tilgængelighed
+Name[de]=Zugangshilfen
+Name[el]=Προσιτότητα
+Name[eo]=Alirebleco
+Name[es]=Accesibilidad
+Name[et]=Hõlbustus
+Name[eu]=Erabilerraztasuna
+Name[fa]=دستیابی‌پذیری
+Name[fi]=Helppokäyttötoiminnot
+Name[fr]=Accessibilité
+Name[fy]=Tagonklikens
+Name[ga]=Inrochtaineacht
+Name[gl]=Accesibilidade
+Name[he]=נגישות
+Name[hi]=पहुँच
+Name[hr]=Pristupačnost
+Name[hu]=Kezelési segítség
+Name[id]=Aksesibiliti
+Name[is]=Aðgengi
+Name[it]=Accessibilità
+Name[ja]=アクセシビリティ
+Name[ka]=სპეციალური შესაძლბლობები
+Name[kk]=Арнайы мүмкіндіктер
+Name[km]=ភាព​អាច​ចូល​ដំណើរការ​បាន
+Name[ko]=내게 필요한 설정
+Name[lo]=ຄວາມສາມາດໃນການໃຊ້ງານ
+Name[lt]=Prieinamumas
+Name[lv]=Pieejamība
+Name[mk]=Пристапливост
+Name[mn]=Хэрэглэх тохь
+Name[ms]=Kebolehcapaian
+Name[mt]=Aċċessibiltà
+Name[nb]=Tilgjengelighet
+Name[nds]=Behinnertenhülp
+Name[ne]=पहुँचता
+Name[nl]=Toegankelijkheid
+Name[nn]=Tilgjenge
+Name[nso]=Botsenelo
+Name[oc]=Accessibilitat
+Name[pa]=ਸਹੂਲਤਾਂ
+Name[pl]=Dostępność
+Name[pt]=Acessibilidade
+Name[pt_BR]=Acessibilidade
+Name[ro]=Accesibilitate
+Name[ru]=Специальные возможности
+Name[rw]=Ukugerwaho
+Name[se]=Álkkibut geavaheapmi
+Name[sk]=Prístupnosť
+Name[sl]=Dostopnost
+Name[sr]=Приступачност
+Name[sr@Latn]=Pristupačnost
+Name[ss]=Kutfolakala kalula
+Name[sv]=Handikappstöd
+Name[ta]=அணுகல்
+Name[te]=అందుబాటు
+Name[tg]=Имконпазирӣ
+Name[th]=ตัวช่วยในการใช้งาน
+Name[tr]=Erişilebilirlik
+Name[tt]=Qulaylıq
+Name[uk]=Доступність
+Name[uz]=Qulayliklar
+Name[uz@cyrillic]=Қулайликлар
+Name[ven]=Dzheneaho
+Name[vi]=Hỗ trợ người tàn tật
+Name[wa]=Accessibilité
+Name[xh]=Unikezelo
+Name[zh_CN]=辅助
+Name[zh_TW]=無障礙輔助
+Name[zu]=Ukungena
+
+Comment=Improve accessibility for disabled persons
+Comment[af]=Verbeter toeganklikheid vir gestremde persone
+Comment[ar]=تسهيل الاستخدام لذوي الاحتياجات الخاصة
+Comment[az]=Yetişmə qabiliyyəti zəyif olanların həyatını asanlaşdırar
+Comment[be]=Павялічвае даступнасць для людзей з фізічнымі адхіленнямі
+Comment[bg]=Настройване на достъпа за хора с увреждания
+Comment[bn]=অসমর্থ ব্যবহারকারীদের সহায়তা করার প্রযুক্তি
+Comment[bs]=Bolja pristupačnost za osobe sa nedostacima
+Comment[ca]=Accessibilitat millorada per a persones discapacitades
+Comment[cs]=Zlepšení přístupnosti pro osoby s postižením
+Comment[csb]=Pòprôwionô przistãpnosc dlô niefùlsprôwnëch lëdzi
+Comment[cy]=Gwella hygyrchedd i bobl anabl
+Comment[da]=Forbedr tilgængelighed for handicappede personer
+Comment[de]=Verbesserte Benutzbarkeit für behinderte Menschen
+Comment[el]=Βελτίωση της προσιτότητας για άτομα με ειδικές ανάγκες
+Comment[eo]=Plibonigita alirebleco por handikapitoj
+Comment[es]=Mejorar accesibilidad para discapacitados
+Comment[et]=Puuetega inimestele mõeldud seaded
+Comment[eu]=Erabilerraztasuna hobetzen du pertsona elbarrientzat
+Comment[fa]=بهبود دستیابی‌پذیری برای اشخاص ناتوان
+Comment[fi]=Käyttöä helpottavia asetuksia
+Comment[fr]=Accessibilité améliorée pour les personnes handicapées
+Comment[fy]=Ferbeterde tagonklikens foar brûkers mei in handikap
+Comment[ga]=Feabhsaigh an inrochtaineacht do dhaoine míchumasaithe
+Comment[gl]=Acesibilidade mellorada para persoas con discapacidades
+Comment[he]=שיפור הנגישות עבור אנשים עם מגבלות
+Comment[hi]=विकलांग व्यक्तियों के लिए पहुँच बेहतर बनाए
+Comment[hr]=Unaprijedite pristupačnost osobama s invaliditetom
+Comment[hu]=A számítógép kezelését segítő eszközök fogyatékosoknak
+Comment[is]=Endurbætt aðgengi fyrir þá sem þurfa
+Comment[it]=Accessibilità migliorata per le persone disabili
+Comment[ja]=障害のある方達のためのアクセス改善
+Comment[ka]=ფიზიკური ნაკლოვანებბის მქონი ხალხისთვის სპეციალური შესაძლბლობები
+Comment[kk]=Мүмкіншіліктері шектеулі адамдарға көмек
+Comment[km]=បង្កើន​មធ្យោបាយ​ងាយស្រួល​សម្រាប់​មនុស្ស​ពិការ
+Comment[ko]=장애인들을 위하여 접근성을 향상시킵니다
+Comment[lo]=ປັບຄ່າຄວາມສາມາດໃນການໃຊ້ງານສຳຫລັບຜູ້ທີ່ມີຄວາມສາມາດ
+Comment[lt]=Pagerintas prieinamumas neįgaliems asmenims
+Comment[lv]=Uzlabo pieejamību cilvekiem ar īpašām vajadzībām
+Comment[mk]=Ја подобрува пристапливоста за хендикепирани лица
+Comment[mn]=Гэмтэлтэй хүнд зориулан сайжруулсан хэрэглээ
+Comment[ms]=Tingkatkan keaksesan bagi orang kurang upaya
+Comment[mt]=Aċċessibbiltà aħjar għal persuni b'diżabilità
+Comment[nb]=Forbedret tilgjengelighet for funksjonshemmede
+Comment[nds]=Verbetert den Togang för Behinnerte
+Comment[ne]=अक्षम व्यक्तिका लागि पहुँच क्षमता सुधार गर्नुहोस्
+Comment[nl]=Verbeterde toegankelijkheid voor gebruikers met een handicap
+Comment[nn]=Forbetra tilgjenge for funksjonshemma personar
+Comment[nso]=Kaonafatsa botsenelo bja batho bao basa kgonego go itirela
+Comment[pa]=ਅਪੰਗ ਵਿਅਕਤੀ ਲਈ ਸੁਧਾਰੀ ਸਹਾਇਤਾ
+Comment[pl]=Poprawiona dostępność dla osób niepełnosprawnych
+Comment[pt]=Acessibilidade melhorada para pessoas com necessidades especiais
+Comment[pt_BR]=Melhora a acessibilidade para pessoas com deficiência
+Comment[ro]=Îmbunătățește accesibilitate KDE pentru persoanele cu handicap
+Comment[ru]=Специальные возможности для людей с физическими недостатками
+Comment[rw]=Kongera ukugerwaho kw'abantu bahagaritswe
+Comment[se]=Álkkibut geavaheapmi doaimmahehttejuvvon olbmuide
+Comment[sk]=Zlepšenie prístupnosti pre postihnutých používateľov
+Comment[sl]=Izboljšana dostopnost za prizadete osebe
+Comment[sr]=Унапређује приступачност за хендикепиране особе
+Comment[sr@Latn]=Unapređuje pristupačnost za hendikepirane osobe
+Comment[ss]=Phucula kufinyelela kwebantfu labachwalile
+Comment[sv]=Förbättrad tillgänglighet för handikappade personer
+Comment[ta]=பார்க்க முடியாதவர்களுக்கு அணுகலை அதிகப்படுத்தவும்
+Comment[tg]=Имкониятҳои махсус барои одамони нуқсони ҷисмонӣ
+Comment[th]=ทำให้ความสามารถในการใช้งาน สำหรับผู้พิการดีขึ้น
+Comment[tr]=Görme sorunu olanlar için erişilebilirlik seçenekleri
+Comment[tt]=Ğäriplär öçen uñaylıqlar
+Comment[uk]=Підвищення зручності для інвалідів
+Comment[uz]=Nogiron kishilar uchun qulayliklar
+Comment[uz@cyrillic]=Ногирон кишилар учун қулайликлар
+Comment[ven]=Khwinifhadzani madzhenele uitela vhathu vha zwihole
+Comment[vi]=Hỗ trợ người tàn tật
+Comment[wa]=Amidrêye l' accessibilité po les mesplotchès djins
+Comment[xh]=Phucula unikekezeleko lwabantu abakhubazekileyo
+Comment[zh_CN]=方便残疾人使用的辅助功能
+Comment[zh_TW]=方便傷殘人士使用
+Comment[zu]=Ukwenza ukungena kwabantu abakhubazekile kube lula
+
+Keywords=access,accessibility,deaf,impaired,bell,audible bell,visible bell,Keyboard,keys,sticky keys,bounce keys,slow keys,mouse navigation,num pad
+Keywords[af]=access,accessibility,deaf,impaired,bell,audible bell,visible bell,Keyboard,keys,sticky keys,bounce keys,slow keys,mouse navigation,num bordjie
+Keywords[az]=yetişmə,yetişmə qabiliyyəti,kar,əlil,çən,eşidilə bilən çən,görünür çən,Klaviatura,düymələr,yapışqan düymələr,hoppanan düymələr,yavaş düymələr,siçan yönləndirməsi,num pad
+Keywords[be]=доступ,даступнасць,званок,гукавы сігнал,бачны сігнал,клавіятура,клавішы,"ліпучыя" клавішы,"рухомыя" клавішы,марудныя клавішы,навігацыя мышшу,лічбавая клавіятура,access,accessibility,deaf,impaired,bell,audible bell,visible bell,Keyboard,keys,sticky keys,bounce keys,slow keys,mouse navigation,num pad
+Keywords[bg]=достъп, увреждания, равностоен, равноправен, зрителни, зрителен, без зрение, access, accessibility, deaf, impaired, bell, audible bell, visible bell, Keyboard, keys, sticky keys, bounce keys, slow keys, mouse navigation, num pad
+Keywords[ca]=accés,accessibilitat,sord,disminuït,timbre,timbre audible,timbre visible,Teclat,tecles,tecles apegaloses,tecles de repetició,tecles lentes,navegació del ratolí,teclat numèric
+Keywords[cs]=Zpřístupnění,Hluchý,Slepý,Postižený,Zvonek,Slyšitelný zvonek,Viditelný zvonek,Klávesnice,Pomalé klávesy,Navigace myši,Num pad
+Keywords[csb]=przistãp,przistãpnosc,głëchy,zwónk,słëszalny zwónk widzalny zwónk,klawiatura,klawisze,przëklejone klawisze,odbijanié klawiszów,pòwólné klawisze,nawigacëjô mëszą,numericznô klawiatura
+Keywords[cy]=mynediad,hygyrchedd,byddar,cloch,cloch clywadwy,cloch gweladwy,bysellfwrdd,allweddell,bysell,bysell gludog,bysell sponcio,bysell araf,llywio llygoden,pad rhif
+Keywords[da]=adgang,tilgængelighed,døv,handicappet,klokke,hørbar klokke,synlig klokke,Tastatur,taster,klæbrige taster,bounce-taster,langsomme taster,musenavigering,numerisk tastatur
+Keywords[de]=Behinderung,Maussteuerung,Signale,Tastatur,Tasten,Taubheit,Verlangsamte Tasten,Zahlenblock,Zugang,Zugangshilfen
+Keywords[el]=πρόσβαση,προσιτότητα,κωφός,impaired,κουδούνι,ακουστή ειδοποίηση,ορατή ειδοποίηση,Πληκτρολόγιο,πλήκτρα,κολλημένα πλήκτρα,πλήκτρα αναπήδησης,αργά πλήκτρα,πλοήγηση ποντικιού,αριθμητικό πληκτρολόγιο
+Keywords[eo]=aliro,handikapito,malhelpito,pepo,videbla pepo,klavaro,klavoj,klavfikso, musnavigado,nombroklavaro
+Keywords[es]=acceso,accesibilidad,sordo,disminuido,timbre,timbre audible,timbre visible,Teclado,teclas,teclas pegajosas,teclas de golpe,teclas lentas,navegación del ratón,teclado numérico
+Keywords[et]=juurdepääs,kurt,puue,puudega,signaal,kuuldav signaal,visuaalne signaal,klaviatuur,klahvid,kleepuvad klahvid,põrkavad klahvid,aeglased klahvid,hiire liigutamine,numbriklaviatuur
+Keywords[eu]=sarrera,erabilerraztasuna,gorra,elbarria,ezkila,ezkila entzungarria, ezkila ikusgarria,Teklatua,teklak,tekla itsaskorrak, bounce teklak,tekla geldoak,sagu bidezko arakaketa,tekla numerikoak
+Keywords[fa]=دستیابی، دستیابی‌پذیری، ناشنوا، معلول، زنگ، زنگ شنیدنی، زنگ مرئی، صفحه کلید، کلیدها، کلیدهای چسبناک، کلیدهای واگشت، کلیدهای کند، ناوش موشی، صفحه اعداد
+Keywords[fi]=käytettävyys,esteettömyys,kuuro,vammautunut,virheilmoitus,virheääni,näkyvä virheilmoitus,näppäimistö,näppäimet,alas jäävät näppäimet,toistavat näppäimet,hitaat näppäimet,hiirinavigointi,numeronäppäimistö
+Keywords[fr]=accès,accessibilité,surdité,sourd,cloche,son,cloche visuelle,cloche sonore,clavier,touches,souris,touches lentes,touches rémanentes,cloche auditive,touches répétées,répétition des touches,auto-maintien des touches,maintien des touches,navigation à la souris,pointeur de souris,émulation du clavier,clavier numérique
+Keywords[fy]=tagong,tagonklikens,dôf,handikap,beheind,bel,sinjalearing,sichtbermeldingen,Kaaiboerd,kaaien,kleef kaaien,kaaioanslag,Mûsnavigaasje,num pad,numeryske klavier
+Keywords[ga]=rochtain,inrochtaineacht,bodhar,clog,clog inchloiste,clog infheicthe,Méarchlár,eochracha,eochracha greamaitheacha,eochracha preabtha,eochracha go mall,nascleanúint luiche,eochaircheap uimhriúil
+Keywords[gl]=aceso,acesibilidade,impar,campá,badalada audíbel,badalada visíbel,teclado,teclas,teclas pegadias,teclas de repetición,teclas lentas,navegación do rato,teclado numérico
+Keywords[he]=גישה,נגישות,חירשים,לקויים,פעמון,פעמון נשמע,פעמון חזותי,לוח,מקשים ,מקלדת ,מקשים,מקשים דביקים,מקשים מוקפצים,מקשים אטיים,ניווט עכבר,מקשי מספרים, access,accessibility,deaf,impaired,bell,audible bell,visible bell,Keyboard,keys,sticky keys,bounce keys,slow keys,mouse navigation,num pad
+Keywords[hi]=एक्सेस, पहुँच,बघिर,दुर्बल,घंटी,सुनने योग्य घंटी,दिखने योग्य घंटी,कुंजीपट,कुंजियाँ, चिपकी (स्टिकी) कुंजी,बाउंस कुंजी,धीमी कुंजी,माउस नेविगेशन,न्यूम पैड
+Keywords[hr]=access,accessibility,deaf,impaired,bell,audible bell,visible bell,Keyboard,keys,sticky keys,bounce keys,slow keys,mouse navigation,num pad,pristup,pristupačnost,gluh,gluhoća,oštećenje,zvono,zvuk zvona,vidljivo zvono,tipkovnica,tipke,odbijanje tipki,spore tipke,navigacija mišem,numeričke tipke
+Keywords[hu]=hozzáférés,segédeszközök,süket,fogyatékos,csengő,hallható csengetés,látható csengetés,billentyűzet,billentyűk,ragadós billentyűk,visszaugró billentyűk,lassú billentyűk,egérkezelés,numerikus billentyűzet
+Keywords[is]=aðgangur,aðgengi,heyrnarlaus,fatlaður,píp,bjalla,sjáanleg bjalla,lyklaborð,takkar,músarnotkun,talnaborð
+Keywords[it]=accesso,accessibilità,non udenti,portatori di handicap,campanella,campanella udibile,campanella visibile,tastiera,tasti,permanenza dei tasti,pressione ravvicinata dei tasti,rallentamento dei tasti,navigazione mouse,tastierino numerico
+Keywords[ja]=アクセス,アクセシビリティ,聾唖,障害,ベル,音声ベル,視覚ベル,キーボート,キー,スティッキーキー,バウンスキー,スローキー,マウス補助,数字パッド
+Keywords[km]=ចូល​ដំណើរការ,មធ្យោបាយ​ងាយស្រួល,ថ្លង់,ពិការ,កណ្ដឹង,កណ្ដឹង​ឭ,កណ្ដឹង​មើល​ឃើញ,ក្ដារចុច,គ្រាប់ចុច,គ្រាប់ចុច​ស្អិត,គ្រាប់ចុច​លោត,គ្រាប់ចុច​យឺត,ការ​រុករក​កណ្ដុរ,បន្ទះ​លេខ
+Keywords[lt]=prieinamumas,kurčias,kurčnebylys,neįgalus,skambutis,girdimas,matomas skambutis,klaviatūra,mygtukai,prisegti mygtukai,lėti mygtukai,navigacija su pele
+Keywords[lv]=pieeja,pieejamība,kurls,vājināts,zvans,dzirdams zvans,redzams zvans,Tastatūra,taustiņi,salīmētie taustiņi,elastīgie taustiņi,lēnie taustiņi,peles navigācija,num pads
+Keywords[mk]=access,accessibility,deaf,impaired,bell,audible bell,visible bell,Keyboard,keys,sticky keys,bounce keys,slow keys,mouse navigation,num pad,пристап,пристапност,глув,хендикепиран,ѕвонче,звучно ѕвонче,визуелно ѕвонче,Тастатура,копчиња,лепливи копчиња,отскочни копчиња,бавни копчиња,навигација со глушецот,тастатура со бројки
+Keywords[mn]=Гар,Гэмтэл,Дүлий,Сигнал,Товчилуур,Тооны хэсэг,Хандалт,Хулганы жолоодлого,Хэрэглэх тохь, Удаашруулсан товчилуур
+Keywords[mt]=access,accessibility,aċċessibbiltà,deaf,trux,truxa,torox,impaired,ħadikappat,bell,audible bell,visible bell,Keyboard,keys,sticky keys,bounce keys,slow keys,mouse navigation,num pad
+Keywords[nb]=tilgang,tilgjengelighet,døv,handikappet,lyd,signal,bjelle,synlig signal,tastatur,taster,faste valgtaster,trege taster,filtertaster,musnavigering,numerisk tastatur
+Keywords[nds]=Togang,accessibility,doof,Behinnerte,Pingel,höörbore Pingel,Ogenpingel,Tastatuur,Tasten,backige Tasten,springen Tasten,langsam Tasten,Muusnavigatschoon,Tallenblock
+Keywords[ne]=पहुँच, पहुँचयोग्यता, डिफ, बिग्रेको, बेल, सुन्न सकिने बेल, हेर्न सकिने बेल, कुञ्जीपाटी, कुञ्जीहरू, टाँसिने कुञ्जीहरू, उफ्रिने कुञ्जीहरू, ढिलो कुञ्जीहरू, माउस नेभिगेसन, नम प्याड
+Keywords[nl]=toegang,toegankelijkheid,doof,handicap,gehandicapt,bel,signalering,zichtbare meldingen,Keyboard,toetsenbord,keys,toetsen,vastgeplakte toetsen,toetsenaanslag,muisnavigatie,num pad,numerieke klavier
+Keywords[nn]=tilgang,tilgjenge,døv,handikappa,lyd,signal,bjelle,synleg signal,tastatur,tastar,faste modifikasjonstastar,trege tastar,filtertastar,musnavigering,numerisk tastatur
+Keywords[nso]=tsenelo,botsenelo,sefofu,kelekantswe,bell,bell yeo e kwagalago, bell yeo e bonagalago,Keyboard,ditobetswa,ditobetswa tseo di tiilego,ditobetswa tsago pampa,ditobetswa tsago nanya,navigation ya legotlo,num pad
+Keywords[pa]=access,accessibility,deaf,impaired,bell,audible bell,visible bell,ਕੀ-ਬੋਰਡ,keys,sticky keys,bounce keys,slow keys,mouse navigation,num pad
+Keywords[pl]=dostęp,dostępność,głuchy,upośledzony,dzwonek,słyszalny dzwonek widzialny dzwonek,klawiatura,klawisze,klejące klawisze,odbijanie klawiszy,powolne klawisze,nawigacja myszą,klawiatura numeryczna
+Keywords[pt]=acesso,acessibilidade,surdo,deficiente,campainha,campainha audível,campainha visível,teclado,teclas,teclas 'sticky',teclas 'bounce',teclas lentas,navegação com o rato,num pad
+Keywords[pt_BR]=acesso,acessibilidade,surdo,deficiente,campainha,audível,campainha visível, teclado,teclas,teclas persistentes,teclas repetidas,teclas lentas,navegação do mouse,teclado numérico
+Keywords[ro]=acces,accesibilitate,surd,handicap,difuzor,audibil,sunet vizibil,tastatură,taste,taste comutator,taste fără repetiție,taste lente,navigare mouse,tastatura numerică
+Keywords[ru]=access,accessibility,deaf,impaired,bell,audible bell,visible bell,Keyboard,keys,sticky keys,bounce keys,slow keys,mouse navigation,num pad,залипающие клавиши,специальные возможности,клавиши
+Keywords[rw]=kugera,ukugerwaho,ikitumva,cyononekaye,inzogera,inzogera yumvikana,inzogera igaragara,mwandikisho,buto,buto zifashe,buto zidunda,iyega ry'imbeba,agacemibare
+Keywords[se]=álkkibut,bealljeheapmi,doaimmahehttejuvvon,jietna,signála,oaidnus signála,boallobeavdi,boalut,giddes boalut,sáhpannavigašuvdna,numerálaš boallobeavdi
+Keywords[sk]=prístup,prístupnosť,hluchý,postihnutý,zvonček,hlasný zvonček,viditeľný zvonček, klávesnica,klávesy,lepivé klávesy,odrážané klávesy,pomalé klávesy,navigácia myšou,číslice
+Keywords[sl]=dostop,dostopnost,gluh,gluhota,prizadetost,zvonec,vidni zvonec,zvonček,tipkovnica,tipke,lepljive tipke,počasne tipke,navigacija miške,numerična tipkovnica,invalidnost,invalid
+Keywords[sr]=приступ,приступачност,глув,хендикепиран,звоно,звучно звоно,визуелно звоно,тастатура,тастери,лепљиви тастери,спори тастери,померање миша,нумеричка тастатура
+Keywords[sr@Latn]=pristup,pristupačnost,gluv,hendikepiran,zvono,zvučno zvono,vizuelno zvono,tastatura,tasteri,lepljivi tasteri,spori tasteri,pomeranje miša,numerička tastatura
+Keywords[sv]=tillgång,tillgänglighet,döv,handikappad,signal,ljudsignal,visuell signal,Tangentbord,tangenter,klistriga tangenter,studsande tangenter,långsamma tangenter,musnavigering,numeriskt tangentbord
+Keywords[ta]=அணுகல்,அணுகும் முறை,காது கேளாத,ஆற்றல் குறைந்த,மணியோசை,காதால் கேட்கும் அளவிற்கு மணியோசை,தெரியும் மணியோசை,விசைபலகை,விசைகள்,ஒட்டும் விசைகள்,மீளும் தன்மையுடைய விசைகள்,மெதுவான விசைகள்,சுட்டிநாவிகேஷன்,எண்ணிக்கை அட்டை
+Keywords[th]=การเข้าถึง,ความง่ายในการใช้งาน,หูหนวก,บกพร่อง,ออด, ออดใช้ฟัง,ออดใช้ดู,แป้นพิมพ์,ปุ่ม,ปุ่มติดหนึบ,ปุ่มสะท้อน, ปุ่มชะลอ,นำทางโดยเมาส์,แผงปุ่มตัวเลข
+Keywords[tr]=erişim,erişilebilirlik,sağır,özürlü,zil,duyulabilir zil,görünür zil,Klavye,tuşlar,yapışkan tuşlar,zıplayan tuşlar,yavaş tuşlar,fare yönlendirmesi,num pad
+Keywords[uk]=доступ,доступність,глухий,каліка,дзвінок,аудіодзвінок,відеодзвінок,клавіатура,клавіші,липкі клавіші,пружні клавіші,повільні клавіші,навігація миші,цифрова клавіатура
+Keywords[ven]=dzhena,dzheneaho,dzingandevhe,bele,bele i pfalaho,bele i vhonalaho,khiibodo,khii,khii i nambatelaho,khii i fhufhaho,khii i lengaho,lwendo lwa mausu,num pad
+Keywords[vi]=truy cập,hỗ trợ người tàn tật,điếc,bị thương,chuông,chuông kêu,chuông rung,bàn phím,phím,phím dính,phím nảy,phím chậm,di chuyển chuột,bàn phím số
+Keywords[wa]=accès,accessibilité,sourd,mesplotche,cloke,clotche,veyåve,taprece,tapes,aclapantès tapes,tapes di ridjiblaedje,londjinnès tapes,naiviaedje al sori,num pad,xhilete,etindåve xhilete,veyåve xhilete
+Keywords[xh]=nikezela,unikezelo,ayiva,yonakalisiwe,intsimbi,intsimbi evakalayo, intsimbi ebonakalayo,ibhodi yezitshixo,izitshixo,isithixo esincangathi, izitshixo ezilungisiweyo,izitshixo ezinengxolo,izitshixo ezicothayo,indlela yokubeka i mouse endaweni,inkatha ye num
+Keywords[zh_CN]=access,accessibility,deaf,impaired,bell,audible bell,visible bell,Keyboard,keys,sticky keys,bounce keys,slow keys,mouse navigation,num pad,辅助功能,聋,键盘,粘滞键,撞击键,筛选键,鼠标导航,可视铃声,小键盘
+Keywords[zh_TW]=access,accessibility,deaf,impaired,bell,audible bell,visible bell,Keyboard,keys,sticky keys,bounce keys,slow keys,mouse navigation,num pad,使用,聾,鈴聲,聽得見的鈴,看得見的鈴,鍵盤,按鍵,滑鼠導向,數字鍵
+Keywords[zu]=ngena,ukungena,okuthuli,kukhubazekile,insimbi,insimbiezwakalayo, insimbi ebonakalayo,okhiye,okhiye abanamathelayo,okhiyeababhampayo,okhiye abahamba kancane,ukuzula kwe-mouse,num pad
+
+Categories=Qt;KDE;X-KDE-settings-accessibility;
diff --git a/kcontrol/access/kcmaccess.h b/kcontrol/access/kcmaccess.h
new file mode 100644
index 000000000..c40152324
--- /dev/null
+++ b/kcontrol/access/kcmaccess.h
@@ -0,0 +1,111 @@
+/**
+ * kcmaccess.h
+ *
+ * Copyright (c) 2000 Matthias H�zer-Klpfel <hoelzer@kde.org>
+ *
+ */
+
+#ifndef __kcmaccess_h__
+#define __kcmaccess_h__
+
+
+#include <kcmodule.h>
+#include <knuminput.h>
+
+
+class QCheckBox;
+class QComboBox;
+class QLabel;
+class QLineEdit;
+class QPushButton;
+class QRadioButton;
+class KColorButton;
+class QSlider;
+class KNumInput;
+class KAboutData;
+
+class ExtendedIntNumInput : public KIntNumInput
+{
+ Q_OBJECT
+
+ public:
+ /**
+ * Constructs an input control for integer values
+ * with base 10 and initial value 0.
+ */
+ ExtendedIntNumInput(QWidget *parent=0, const char *name=0);
+
+ /**
+ * Destructor
+ */
+ virtual ~ExtendedIntNumInput();
+
+ /**
+ * @param min minimum value
+ * @param max maximum value
+ * @param step step size for the QSlider
+ * @param slider whether the slider is created or not
+ */
+ void setRange(int min, int max, int step=1, bool slider=true);
+
+ private slots:
+ void slotSpinValueChanged(int);
+ void slotSliderValueChanged(int);
+
+ private:
+ int min, max;
+ int sliderMax;
+};
+
+class KAccessConfig : public KCModule
+{
+ Q_OBJECT
+
+public:
+
+ KAccessConfig(QWidget *parent = 0L, const char *name = 0L);
+ virtual ~KAccessConfig();
+
+ void load();
+ void load(bool useDefaults);
+ void save();
+ void defaults();
+
+protected slots:
+
+ void configChanged();
+ void checkAccess();
+ void invertClicked();
+ void flashClicked();
+ void selectSound();
+ void changeFlashScreenColor();
+ void configureKNotify();
+
+private:
+
+ QCheckBox *systemBell, *customBell, *visibleBell;
+ QRadioButton *invertScreen, *flashScreen;
+ QLabel *soundLabel, *colorLabel;
+ QLineEdit *soundEdit;
+ QPushButton *soundButton;
+ KColorButton *colorButton;
+ ExtendedIntNumInput *durationSlider;
+
+ QCheckBox *stickyKeys, *stickyKeysLock, *stickyKeysAutoOff;
+ QCheckBox *stickyKeysBeep, *toggleKeysBeep, *kNotifyModifiers;
+ QPushButton *kNotifyModifiersButton;
+
+ QCheckBox *slowKeys, *bounceKeys;
+ ExtendedIntNumInput *slowKeysDelay, *bounceKeysDelay;
+ QCheckBox *slowKeysPressBeep, *slowKeysAcceptBeep;
+ QCheckBox *slowKeysRejectBeep, *bounceKeysRejectBeep;
+
+ QCheckBox *gestures, *gestureConfirmation;
+ QCheckBox *timeout;
+ KIntNumInput *timeoutDelay;
+ QCheckBox *accessxBeep, *kNotifyAccessX;
+ QPushButton *kNotifyAccessXButton;
+};
+
+
+#endif
diff --git a/kcontrol/access/main.cpp b/kcontrol/access/main.cpp
new file mode 100644
index 000000000..a2dd0d5c7
--- /dev/null
+++ b/kcontrol/access/main.cpp
@@ -0,0 +1,49 @@
+
+#include "kaccess.h"
+#include <kaboutdata.h>
+#include <kcmdlineargs.h>
+#include <kdebug.h>
+
+extern "C" KDE_EXPORT int kdemain(int argc, char * argv[] )
+{
+ KAboutData about(I18N_NOOP("kaccess"), 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");
+
+ KCmdLineArgs::init( argc, argv, &about );
+
+ if (!KAccessApp::start())
+ return 0;
+
+ // verify the Xlib has matching XKB extension
+ int major = XkbMajorVersion;
+ int minor = XkbMinorVersion;
+ if (!XkbLibraryVersion(&major, &minor))
+ {
+ kdError() << "Xlib XKB extension does not match" << endl;
+ return 1;
+ }
+ kdDebug() << "Xlib XKB extension major=" << major << " minor=" << minor << endl;
+
+ // we need an application object for qt_xdisplay()
+ KAccessApp app;
+
+ // verify the X server has matching XKB extension
+ // if yes, the XKB extension is initialized
+ int opcode_rtrn;
+ int error_rtrn;
+ int xkb_opcode;
+ if (!XkbQueryExtension(qt_xdisplay(), &opcode_rtrn, &xkb_opcode, &error_rtrn,
+ &major, &minor))
+ {
+ kdError() << "X server has not matching XKB extension" << endl;
+ return 1;
+ }
+ kdDebug() << "X server XKB extension major=" << major << " minor=" << minor << endl;
+
+ app.setXkbOpcode(xkb_opcode);
+ app.disableSessionManagement();
+ return app.exec();
+}
diff --git a/kcontrol/accessibility/Makefile.am b/kcontrol/accessibility/Makefile.am
new file mode 100644
index 000000000..67eb8957a
--- /dev/null
+++ b/kcontrol/accessibility/Makefile.am
@@ -0,0 +1,15 @@
+AM_CPPFLAGS = $(all_includes)
+METASOURCES = AUTO
+
+kde_module_LTLIBRARIES = kcm_accessibility.la
+
+kcm_accessibility_la_SOURCES = accessibility.cpp accessibilityconfigwidget.ui
+kcm_accessibility_la_LDFLAGS = $(all_libraries) -module -avoid-version -no-undefined
+kcm_accessibility_la_LIBADD = $(LIB_KIO)
+
+noinst_HEADERS = accessibility.h
+
+xdg_apps_DATA = accessibility.desktop
+
+messages: rc.cpp
+ $(XGETTEXT) *.cpp -o $(podir)/kcmaccessibility.pot
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 Hlzer-Klpfel
+ -------------------
+ Original Author: Matthias Hlzer-Klpfel
+ Contributors: Jos Pablo Ezequiel "Pupeno" Fernndez <pupeno@kde.org>
+ Current Maintainer: Jos Pablo Ezequiel "Pupeno" Fernndez <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 Fernndez", 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 );
+}
diff --git a/kcontrol/accessibility/accessibility.desktop b/kcontrol/accessibility/accessibility.desktop
new file mode 100644
index 000000000..2295b85c6
--- /dev/null
+++ b/kcontrol/accessibility/accessibility.desktop
@@ -0,0 +1,239 @@
+[Desktop Entry]
+Exec=kcmshell accessibility
+Icon=access
+Type=Application
+
+
+X-KDE-Library=accessibility
+X-KDE-Factoryname=accessibility
+X-KDE-ParentApp=kcontrol
+
+Name=Accessibility
+Name[af]=Toeganklikheid
+Name[ar]=تسهيل الوصول
+Name[az]=Yetişmə Qabiliyyəti
+Name[be]=Даступнасць
+Name[bg]=Равностоен достъп
+Name[bn]=সহায়ক প্রযুক্তি
+Name[br]=Haezadusted
+Name[bs]=Pristupačnost
+Name[ca]=Accessibilitat
+Name[cs]=Zpřístupnění
+Name[csb]=Pòmòce przistãpù
+Name[cy]=Hygyrchedd
+Name[da]=Tilgængelighed
+Name[de]=Zugangshilfen
+Name[el]=Προσιτότητα
+Name[eo]=Alirebleco
+Name[es]=Accesibilidad
+Name[et]=Hõlbustus
+Name[eu]=Erabilerraztasuna
+Name[fa]=دستیابی‌پذیری
+Name[fi]=Helppokäyttötoiminnot
+Name[fr]=Accessibilité
+Name[fy]=Tagonklikens
+Name[ga]=Inrochtaineacht
+Name[gl]=Accesibilidade
+Name[he]=נגישות
+Name[hi]=पहुँच
+Name[hr]=Pristupačnost
+Name[hu]=Kezelési segítség
+Name[id]=Aksesibiliti
+Name[is]=Aðgengi
+Name[it]=Accessibilità
+Name[ja]=アクセシビリティ
+Name[ka]=სპეციალური შესაძლბლობები
+Name[kk]=Арнайы мүмкіндіктер
+Name[km]=ភាព​អាច​ចូល​ដំណើរការ​បាន
+Name[ko]=내게 필요한 설정
+Name[lo]=ຄວາມສາມາດໃນການໃຊ້ງານ
+Name[lt]=Prieinamumas
+Name[lv]=Pieejamība
+Name[mk]=Пристапливост
+Name[mn]=Хэрэглэх тохь
+Name[ms]=Kebolehcapaian
+Name[mt]=Aċċessibiltà
+Name[nb]=Tilgjengelighet
+Name[nds]=Behinnertenhülp
+Name[ne]=पहुँचता
+Name[nl]=Toegankelijkheid
+Name[nn]=Tilgjenge
+Name[nso]=Botsenelo
+Name[oc]=Accessibilitat
+Name[pa]=ਸਹੂਲਤਾਂ
+Name[pl]=Dostępność
+Name[pt]=Acessibilidade
+Name[pt_BR]=Acessibilidade
+Name[ro]=Accesibilitate
+Name[ru]=Специальные возможности
+Name[rw]=Ukugerwaho
+Name[se]=Álkkibut geavaheapmi
+Name[sk]=Prístupnosť
+Name[sl]=Dostopnost
+Name[sr]=Приступачност
+Name[sr@Latn]=Pristupačnost
+Name[ss]=Kutfolakala kalula
+Name[sv]=Handikappstöd
+Name[ta]=அணுகல்
+Name[te]=అందుబాటు
+Name[tg]=Имконпазирӣ
+Name[th]=ตัวช่วยในการใช้งาน
+Name[tr]=Erişilebilirlik
+Name[tt]=Qulaylıq
+Name[uk]=Доступність
+Name[uz]=Qulayliklar
+Name[uz@cyrillic]=Қулайликлар
+Name[ven]=Dzheneaho
+Name[vi]=Hỗ trợ người tàn tật
+Name[wa]=Accessibilité
+Name[xh]=Unikezelo
+Name[zh_CN]=辅助
+Name[zh_TW]=無障礙輔助
+Name[zu]=Ukungena
+
+Comment=Improve accessibility for disabled persons
+Comment[af]=Verbeter toeganklikheid vir gestremde persone
+Comment[ar]=تسهيل الاستخدام لذوي الاحتياجات الخاصة
+Comment[az]=Yetişmə qabiliyyəti zəyif olanların həyatını asanlaşdırar
+Comment[be]=Павялічвае даступнасць для людзей з фізічнымі адхіленнямі
+Comment[bg]=Настройване на достъпа за хора с увреждания
+Comment[bn]=অসমর্থ ব্যবহারকারীদের সহায়তা করার প্রযুক্তি
+Comment[bs]=Bolja pristupačnost za osobe sa nedostacima
+Comment[ca]=Accessibilitat millorada per a persones discapacitades
+Comment[cs]=Zlepšení přístupnosti pro osoby s postižením
+Comment[csb]=Pòprôwionô przistãpnosc dlô niefùlsprôwnëch lëdzi
+Comment[cy]=Gwella hygyrchedd i bobl anabl
+Comment[da]=Forbedr tilgængelighed for handicappede personer
+Comment[de]=Verbesserte Benutzbarkeit für behinderte Menschen
+Comment[el]=Βελτίωση της προσιτότητας για άτομα με ειδικές ανάγκες
+Comment[eo]=Plibonigita alirebleco por handikapitoj
+Comment[es]=Mejorar accesibilidad para discapacitados
+Comment[et]=Puuetega inimestele mõeldud seaded
+Comment[eu]=Erabilerraztasuna hobetzen du pertsona elbarrientzat
+Comment[fa]=بهبود دستیابی‌پذیری برای اشخاص ناتوان
+Comment[fi]=Käyttöä helpottavia asetuksia
+Comment[fr]=Accessibilité améliorée pour les personnes handicapées
+Comment[fy]=Ferbeterde tagonklikens foar brûkers mei in handikap
+Comment[ga]=Feabhsaigh an inrochtaineacht do dhaoine míchumasaithe
+Comment[gl]=Acesibilidade mellorada para persoas con discapacidades
+Comment[he]=שיפור הנגישות עבור אנשים עם מגבלות
+Comment[hi]=विकलांग व्यक्तियों के लिए पहुँच बेहतर बनाए
+Comment[hr]=Unaprijedite pristupačnost osobama s invaliditetom
+Comment[hu]=A számítógép kezelését segítő eszközök fogyatékosoknak
+Comment[is]=Endurbætt aðgengi fyrir þá sem þurfa
+Comment[it]=Accessibilità migliorata per le persone disabili
+Comment[ja]=障害のある方達のためのアクセス改善
+Comment[ka]=ფიზიკური ნაკლოვანებბის მქონი ხალხისთვის სპეციალური შესაძლბლობები
+Comment[kk]=Мүмкіншіліктері шектеулі адамдарға көмек
+Comment[km]=បង្កើន​មធ្យោបាយ​ងាយស្រួល​សម្រាប់​មនុស្ស​ពិការ
+Comment[ko]=장애인들을 위하여 접근성을 향상시킵니다
+Comment[lo]=ປັບຄ່າຄວາມສາມາດໃນການໃຊ້ງານສຳຫລັບຜູ້ທີ່ມີຄວາມສາມາດ
+Comment[lt]=Pagerintas prieinamumas neįgaliems asmenims
+Comment[lv]=Uzlabo pieejamību cilvekiem ar īpašām vajadzībām
+Comment[mk]=Ја подобрува пристапливоста за хендикепирани лица
+Comment[mn]=Гэмтэлтэй хүнд зориулан сайжруулсан хэрэглээ
+Comment[ms]=Tingkatkan keaksesan bagi orang kurang upaya
+Comment[mt]=Aċċessibbiltà aħjar għal persuni b'diżabilità
+Comment[nb]=Forbedret tilgjengelighet for funksjonshemmede
+Comment[nds]=Verbetert den Togang för Behinnerte
+Comment[ne]=अक्षम व्यक्तिका लागि पहुँच क्षमता सुधार गर्नुहोस्
+Comment[nl]=Verbeterde toegankelijkheid voor gebruikers met een handicap
+Comment[nn]=Forbetra tilgjenge for funksjonshemma personar
+Comment[nso]=Kaonafatsa botsenelo bja batho bao basa kgonego go itirela
+Comment[pa]=ਅਪੰਗ ਵਿਅਕਤੀ ਲਈ ਸੁਧਾਰੀ ਸਹਾਇਤਾ
+Comment[pl]=Poprawiona dostępność dla osób niepełnosprawnych
+Comment[pt]=Acessibilidade melhorada para pessoas com necessidades especiais
+Comment[pt_BR]=Melhora a acessibilidade para pessoas com deficiência
+Comment[ro]=Îmbunătățește accesibilitate KDE pentru persoanele cu handicap
+Comment[ru]=Специальные возможности для людей с физическими недостатками
+Comment[rw]=Kongera ukugerwaho kw'abantu bahagaritswe
+Comment[se]=Álkkibut geavaheapmi doaimmahehttejuvvon olbmuide
+Comment[sk]=Zlepšenie prístupnosti pre postihnutých používateľov
+Comment[sl]=Izboljšana dostopnost za prizadete osebe
+Comment[sr]=Унапређује приступачност за хендикепиране особе
+Comment[sr@Latn]=Unapređuje pristupačnost za hendikepirane osobe
+Comment[ss]=Phucula kufinyelela kwebantfu labachwalile
+Comment[sv]=Förbättrad tillgänglighet för handikappade personer
+Comment[ta]=பார்க்க முடியாதவர்களுக்கு அணுகலை அதிகப்படுத்தவும்
+Comment[tg]=Имкониятҳои махсус барои одамони нуқсони ҷисмонӣ
+Comment[th]=ทำให้ความสามารถในการใช้งาน สำหรับผู้พิการดีขึ้น
+Comment[tr]=Görme sorunu olanlar için erişilebilirlik seçenekleri
+Comment[tt]=Ğäriplär öçen uñaylıqlar
+Comment[uk]=Підвищення зручності для інвалідів
+Comment[uz]=Nogiron kishilar uchun qulayliklar
+Comment[uz@cyrillic]=Ногирон кишилар учун қулайликлар
+Comment[ven]=Khwinifhadzani madzhenele uitela vhathu vha zwihole
+Comment[vi]=Hỗ trợ người tàn tật
+Comment[wa]=Amidrêye l' accessibilité po les mesplotchès djins
+Comment[xh]=Phucula unikekezeleko lwabantu abakhubazekileyo
+Comment[zh_CN]=方便残疾人使用的辅助功能
+Comment[zh_TW]=方便傷殘人士使用
+Comment[zu]=Ukwenza ukungena kwabantu abakhubazekile kube lula
+
+Keywords=access,accessibility,deaf,impaired,bell,audible bell,visible bell,Keyboard,keys,sticky keys,bounce keys,slow keys,mouse navigation,num pad
+Keywords[af]=access,accessibility,deaf,impaired,bell,audible bell,visible bell,Keyboard,keys,sticky keys,bounce keys,slow keys,mouse navigation,num bordjie
+Keywords[az]=yetişmə,yetişmə qabiliyyəti,kar,əlil,çən,eşidilə bilən çən,görünür çən,Klaviatura,düymələr,yapışqan düymələr,hoppanan düymələr,yavaş düymələr,siçan yönləndirməsi,num pad
+Keywords[be]=доступ,даступнасць,званок,гукавы сігнал,бачны сігнал,клавіятура,клавішы,"ліпучыя" клавішы,"рухомыя" клавішы,марудныя клавішы,навігацыя мышшу,лічбавая клавіятура,access,accessibility,deaf,impaired,bell,audible bell,visible bell,Keyboard,keys,sticky keys,bounce keys,slow keys,mouse navigation,num pad
+Keywords[bg]=достъп, увреждания, равностоен, равноправен, зрителни, зрителен, без зрение, access, accessibility, deaf, impaired, bell, audible bell, visible bell, Keyboard, keys, sticky keys, bounce keys, slow keys, mouse navigation, num pad
+Keywords[ca]=accés,accessibilitat,sord,disminuït,timbre,timbre audible,timbre visible,Teclat,tecles,tecles apegaloses,tecles de repetició,tecles lentes,navegació del ratolí,teclat numèric
+Keywords[cs]=Zpřístupnění,Hluchý,Slepý,Postižený,Zvonek,Slyšitelný zvonek,Viditelný zvonek,Klávesnice,Pomalé klávesy,Navigace myši,Num pad
+Keywords[csb]=przistãp,przistãpnosc,głëchy,zwónk,słëszalny zwónk widzalny zwónk,klawiatura,klawisze,przëklejone klawisze,odbijanié klawiszów,pòwólné klawisze,nawigacëjô mëszą,numericznô klawiatura
+Keywords[cy]=mynediad,hygyrchedd,byddar,cloch,cloch clywadwy,cloch gweladwy,bysellfwrdd,allweddell,bysell,bysell gludog,bysell sponcio,bysell araf,llywio llygoden,pad rhif
+Keywords[da]=adgang,tilgængelighed,døv,handicappet,klokke,hørbar klokke,synlig klokke,Tastatur,taster,klæbrige taster,bounce-taster,langsomme taster,musenavigering,numerisk tastatur
+Keywords[de]=Behinderung,Maussteuerung,Signale,Tastatur,Tasten,Taubheit,Verlangsamte Tasten,Zahlenblock,Zugang,Zugangshilfen
+Keywords[el]=πρόσβαση,προσιτότητα,κωφός,impaired,κουδούνι,ακουστή ειδοποίηση,ορατή ειδοποίηση,Πληκτρολόγιο,πλήκτρα,κολλημένα πλήκτρα,πλήκτρα αναπήδησης,αργά πλήκτρα,πλοήγηση ποντικιού,αριθμητικό πληκτρολόγιο
+Keywords[eo]=aliro,handikapito,malhelpito,pepo,videbla pepo,klavaro,klavoj,klavfikso, musnavigado,nombroklavaro
+Keywords[es]=acceso,accesibilidad,sordo,disminuido,timbre,timbre audible,timbre visible,Teclado,teclas,teclas pegajosas,teclas de golpe,teclas lentas,navegación del ratón,teclado numérico
+Keywords[et]=juurdepääs,kurt,puue,puudega,signaal,kuuldav signaal,visuaalne signaal,klaviatuur,klahvid,kleepuvad klahvid,põrkavad klahvid,aeglased klahvid,hiire liigutamine,numbriklaviatuur
+Keywords[eu]=sarrera,erabilerraztasuna,gorra,elbarria,ezkila,ezkila entzungarria, ezkila ikusgarria,Teklatua,teklak,tekla itsaskorrak, bounce teklak,tekla geldoak,sagu bidezko arakaketa,tekla numerikoak
+Keywords[fa]=دستیابی، دستیابی‌پذیری، ناشنوا، معلول، زنگ، زنگ شنیدنی، زنگ مرئی، صفحه کلید، کلیدها، کلیدهای چسبناک، کلیدهای واگشت، کلیدهای کند، ناوش موشی، صفحه اعداد
+Keywords[fi]=käytettävyys,esteettömyys,kuuro,vammautunut,virheilmoitus,virheääni,näkyvä virheilmoitus,näppäimistö,näppäimet,alas jäävät näppäimet,toistavat näppäimet,hitaat näppäimet,hiirinavigointi,numeronäppäimistö
+Keywords[fr]=accès,accessibilité,surdité,sourd,cloche,son,cloche visuelle,cloche sonore,clavier,touches,souris,touches lentes,touches rémanentes,cloche auditive,touches répétées,répétition des touches,auto-maintien des touches,maintien des touches,navigation à la souris,pointeur de souris,émulation du clavier,clavier numérique
+Keywords[fy]=tagong,tagonklikens,dôf,handikap,beheind,bel,sinjalearing,sichtbermeldingen,Kaaiboerd,kaaien,kleef kaaien,kaaioanslag,Mûsnavigaasje,num pad,numeryske klavier
+Keywords[ga]=rochtain,inrochtaineacht,bodhar,clog,clog inchloiste,clog infheicthe,Méarchlár,eochracha,eochracha greamaitheacha,eochracha preabtha,eochracha go mall,nascleanúint luiche,eochaircheap uimhriúil
+Keywords[gl]=aceso,acesibilidade,impar,campá,badalada audíbel,badalada visíbel,teclado,teclas,teclas pegadias,teclas de repetición,teclas lentas,navegación do rato,teclado numérico
+Keywords[he]=גישה,נגישות,חירשים,לקויים,פעמון,פעמון נשמע,פעמון חזותי,לוח,מקשים ,מקלדת ,מקשים,מקשים דביקים,מקשים מוקפצים,מקשים אטיים,ניווט עכבר,מקשי מספרים, access,accessibility,deaf,impaired,bell,audible bell,visible bell,Keyboard,keys,sticky keys,bounce keys,slow keys,mouse navigation,num pad
+Keywords[hi]=एक्सेस, पहुँच,बघिर,दुर्बल,घंटी,सुनने योग्य घंटी,दिखने योग्य घंटी,कुंजीपट,कुंजियाँ, चिपकी (स्टिकी) कुंजी,बाउंस कुंजी,धीमी कुंजी,माउस नेविगेशन,न्यूम पैड
+Keywords[hr]=access,accessibility,deaf,impaired,bell,audible bell,visible bell,Keyboard,keys,sticky keys,bounce keys,slow keys,mouse navigation,num pad,pristup,pristupačnost,gluh,gluhoća,oštećenje,zvono,zvuk zvona,vidljivo zvono,tipkovnica,tipke,odbijanje tipki,spore tipke,navigacija mišem,numeričke tipke
+Keywords[hu]=hozzáférés,segédeszközök,süket,fogyatékos,csengő,hallható csengetés,látható csengetés,billentyűzet,billentyűk,ragadós billentyűk,visszaugró billentyűk,lassú billentyűk,egérkezelés,numerikus billentyűzet
+Keywords[is]=aðgangur,aðgengi,heyrnarlaus,fatlaður,píp,bjalla,sjáanleg bjalla,lyklaborð,takkar,músarnotkun,talnaborð
+Keywords[it]=accesso,accessibilità,non udenti,portatori di handicap,campanella,campanella udibile,campanella visibile,tastiera,tasti,permanenza dei tasti,pressione ravvicinata dei tasti,rallentamento dei tasti,navigazione mouse,tastierino numerico
+Keywords[ja]=アクセス,アクセシビリティ,聾唖,障害,ベル,音声ベル,視覚ベル,キーボート,キー,スティッキーキー,バウンスキー,スローキー,マウス補助,数字パッド
+Keywords[km]=ចូល​ដំណើរការ,មធ្យោបាយ​ងាយស្រួល,ថ្លង់,ពិការ,កណ្ដឹង,កណ្ដឹង​ឭ,កណ្ដឹង​មើល​ឃើញ,ក្ដារចុច,គ្រាប់ចុច,គ្រាប់ចុច​ស្អិត,គ្រាប់ចុច​លោត,គ្រាប់ចុច​យឺត,ការ​រុករក​កណ្ដុរ,បន្ទះ​លេខ
+Keywords[lt]=prieinamumas,kurčias,kurčnebylys,neįgalus,skambutis,girdimas,matomas skambutis,klaviatūra,mygtukai,prisegti mygtukai,lėti mygtukai,navigacija su pele
+Keywords[lv]=pieeja,pieejamība,kurls,vājināts,zvans,dzirdams zvans,redzams zvans,Tastatūra,taustiņi,salīmētie taustiņi,elastīgie taustiņi,lēnie taustiņi,peles navigācija,num pads
+Keywords[mk]=access,accessibility,deaf,impaired,bell,audible bell,visible bell,Keyboard,keys,sticky keys,bounce keys,slow keys,mouse navigation,num pad,пристап,пристапност,глув,хендикепиран,ѕвонче,звучно ѕвонче,визуелно ѕвонче,Тастатура,копчиња,лепливи копчиња,отскочни копчиња,бавни копчиња,навигација со глушецот,тастатура со бројки
+Keywords[mn]=Гар,Гэмтэл,Дүлий,Сигнал,Товчилуур,Тооны хэсэг,Хандалт,Хулганы жолоодлого,Хэрэглэх тохь, Удаашруулсан товчилуур
+Keywords[mt]=access,accessibility,aċċessibbiltà,deaf,trux,truxa,torox,impaired,ħadikappat,bell,audible bell,visible bell,Keyboard,keys,sticky keys,bounce keys,slow keys,mouse navigation,num pad
+Keywords[nb]=tilgang,tilgjengelighet,døv,handikappet,lyd,signal,bjelle,synlig signal,tastatur,taster,faste valgtaster,trege taster,filtertaster,musnavigering,numerisk tastatur
+Keywords[nds]=Togang,accessibility,doof,Behinnerte,Pingel,höörbore Pingel,Ogenpingel,Tastatuur,Tasten,backige Tasten,springen Tasten,langsam Tasten,Muusnavigatschoon,Tallenblock
+Keywords[ne]=पहुँच, पहुँचयोग्यता, डिफ, बिग्रेको, बेल, सुन्न सकिने बेल, हेर्न सकिने बेल, कुञ्जीपाटी, कुञ्जीहरू, टाँसिने कुञ्जीहरू, उफ्रिने कुञ्जीहरू, ढिलो कुञ्जीहरू, माउस नेभिगेसन, नम प्याड
+Keywords[nl]=toegang,toegankelijkheid,doof,handicap,gehandicapt,bel,signalering,zichtbare meldingen,Keyboard,toetsenbord,keys,toetsen,vastgeplakte toetsen,toetsenaanslag,muisnavigatie,num pad,numerieke klavier
+Keywords[nn]=tilgang,tilgjenge,døv,handikappa,lyd,signal,bjelle,synleg signal,tastatur,tastar,faste modifikasjonstastar,trege tastar,filtertastar,musnavigering,numerisk tastatur
+Keywords[nso]=tsenelo,botsenelo,sefofu,kelekantswe,bell,bell yeo e kwagalago, bell yeo e bonagalago,Keyboard,ditobetswa,ditobetswa tseo di tiilego,ditobetswa tsago pampa,ditobetswa tsago nanya,navigation ya legotlo,num pad
+Keywords[pa]=access,accessibility,deaf,impaired,bell,audible bell,visible bell,ਕੀ-ਬੋਰਡ,keys,sticky keys,bounce keys,slow keys,mouse navigation,num pad
+Keywords[pl]=dostęp,dostępność,głuchy,upośledzony,dzwonek,słyszalny dzwonek widzialny dzwonek,klawiatura,klawisze,klejące klawisze,odbijanie klawiszy,powolne klawisze,nawigacja myszą,klawiatura numeryczna
+Keywords[pt]=acesso,acessibilidade,surdo,deficiente,campainha,campainha audível,campainha visível,teclado,teclas,teclas 'sticky',teclas 'bounce',teclas lentas,navegação com o rato,num pad
+Keywords[pt_BR]=acesso,acessibilidade,surdo,deficiente,campainha,audível,campainha visível, teclado,teclas,teclas persistentes,teclas repetidas,teclas lentas,navegação do mouse,teclado numérico
+Keywords[ro]=acces,accesibilitate,surd,handicap,difuzor,audibil,sunet vizibil,tastatură,taste,taste comutator,taste fără repetiție,taste lente,navigare mouse,tastatura numerică
+Keywords[ru]=access,accessibility,deaf,impaired,bell,audible bell,visible bell,Keyboard,keys,sticky keys,bounce keys,slow keys,mouse navigation,num pad,залипающие клавиши,специальные возможности,клавиши
+Keywords[rw]=kugera,ukugerwaho,ikitumva,cyononekaye,inzogera,inzogera yumvikana,inzogera igaragara,mwandikisho,buto,buto zifashe,buto zidunda,iyega ry'imbeba,agacemibare
+Keywords[se]=álkkibut,bealljeheapmi,doaimmahehttejuvvon,jietna,signála,oaidnus signála,boallobeavdi,boalut,giddes boalut,sáhpannavigašuvdna,numerálaš boallobeavdi
+Keywords[sk]=prístup,prístupnosť,hluchý,postihnutý,zvonček,hlasný zvonček,viditeľný zvonček, klávesnica,klávesy,lepivé klávesy,odrážané klávesy,pomalé klávesy,navigácia myšou,číslice
+Keywords[sl]=dostop,dostopnost,gluh,gluhota,prizadetost,zvonec,vidni zvonec,zvonček,tipkovnica,tipke,lepljive tipke,počasne tipke,navigacija miške,numerična tipkovnica,invalidnost,invalid
+Keywords[sr]=приступ,приступачност,глув,хендикепиран,звоно,звучно звоно,визуелно звоно,тастатура,тастери,лепљиви тастери,спори тастери,померање миша,нумеричка тастатура
+Keywords[sr@Latn]=pristup,pristupačnost,gluv,hendikepiran,zvono,zvučno zvono,vizuelno zvono,tastatura,tasteri,lepljivi tasteri,spori tasteri,pomeranje miša,numerička tastatura
+Keywords[sv]=tillgång,tillgänglighet,döv,handikappad,signal,ljudsignal,visuell signal,Tangentbord,tangenter,klistriga tangenter,studsande tangenter,långsamma tangenter,musnavigering,numeriskt tangentbord
+Keywords[ta]=அணுகல்,அணுகும் முறை,காது கேளாத,ஆற்றல் குறைந்த,மணியோசை,காதால் கேட்கும் அளவிற்கு மணியோசை,தெரியும் மணியோசை,விசைபலகை,விசைகள்,ஒட்டும் விசைகள்,மீளும் தன்மையுடைய விசைகள்,மெதுவான விசைகள்,சுட்டிநாவிகேஷன்,எண்ணிக்கை அட்டை
+Keywords[th]=การเข้าถึง,ความง่ายในการใช้งาน,หูหนวก,บกพร่อง,ออด, ออดใช้ฟัง,ออดใช้ดู,แป้นพิมพ์,ปุ่ม,ปุ่มติดหนึบ,ปุ่มสะท้อน, ปุ่มชะลอ,นำทางโดยเมาส์,แผงปุ่มตัวเลข
+Keywords[tr]=erişim,erişilebilirlik,sağır,özürlü,zil,duyulabilir zil,görünür zil,Klavye,tuşlar,yapışkan tuşlar,zıplayan tuşlar,yavaş tuşlar,fare yönlendirmesi,num pad
+Keywords[uk]=доступ,доступність,глухий,каліка,дзвінок,аудіодзвінок,відеодзвінок,клавіатура,клавіші,липкі клавіші,пружні клавіші,повільні клавіші,навігація миші,цифрова клавіатура
+Keywords[ven]=dzhena,dzheneaho,dzingandevhe,bele,bele i pfalaho,bele i vhonalaho,khiibodo,khii,khii i nambatelaho,khii i fhufhaho,khii i lengaho,lwendo lwa mausu,num pad
+Keywords[vi]=truy cập,hỗ trợ người tàn tật,điếc,bị thương,chuông,chuông kêu,chuông rung,bàn phím,phím,phím dính,phím nảy,phím chậm,di chuyển chuột,bàn phím số
+Keywords[wa]=accès,accessibilité,sourd,mesplotche,cloke,clotche,veyåve,taprece,tapes,aclapantès tapes,tapes di ridjiblaedje,londjinnès tapes,naiviaedje al sori,num pad,xhilete,etindåve xhilete,veyåve xhilete
+Keywords[xh]=nikezela,unikezelo,ayiva,yonakalisiwe,intsimbi,intsimbi evakalayo, intsimbi ebonakalayo,ibhodi yezitshixo,izitshixo,isithixo esincangathi, izitshixo ezilungisiweyo,izitshixo ezinengxolo,izitshixo ezicothayo,indlela yokubeka i mouse endaweni,inkatha ye num
+Keywords[zh_CN]=access,accessibility,deaf,impaired,bell,audible bell,visible bell,Keyboard,keys,sticky keys,bounce keys,slow keys,mouse navigation,num pad,辅助功能,聋,键盘,粘滞键,撞击键,筛选键,鼠标导航,可视铃声,小键盘
+Keywords[zh_TW]=access,accessibility,deaf,impaired,bell,audible bell,visible bell,Keyboard,keys,sticky keys,bounce keys,slow keys,mouse navigation,num pad,使用,聾,鈴聲,聽得見的鈴,看得見的鈴,鍵盤,按鍵,滑鼠導向,數字鍵
+Keywords[zu]=ngena,ukungena,okuthuli,kukhubazekile,insimbi,insimbiezwakalayo, insimbi ebonakalayo,okhiye,okhiye abanamathelayo,okhiyeababhampayo,okhiye abahamba kancane,ukuzula kwe-mouse,num pad
+
+Categories=Qt;KDE;X-KDE-settings-accessibility;
diff --git a/kcontrol/accessibility/accessibility.h b/kcontrol/accessibility/accessibility.h
new file mode 100644
index 000000000..ad94dcdcc
--- /dev/null
+++ b/kcontrol/accessibility/accessibility.h
@@ -0,0 +1,71 @@
+/****************************************************************************
+ accessibility.h
+ KDE Control Accessibility module to control Bell, Keyboard and ?Mouse?
+ -------------------
+ Copyright : (c) 2000 Matthias Hlzer-Klpfel
+ -------------------
+ Original Author: Matthias Hlzer-Klpfel
+ Contributors: Jos Pablo Ezequiel "Pupeno" Fernndez <pupeno@kde.org>
+ Current Maintainer: Jos Pablo Ezequiel "Pupeno" Fernndez <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. *
+ * *
+ ****************************************************************************/
+
+#ifndef _ACCESSIBILITY_H_
+#define _ACCESSIBILITY_H_
+
+#include <kdebug.h>
+
+#include "accessibilityconfigwidget.h"
+
+class AccessibilityConfig : public AccessibilityConfigWidget {
+ Q_OBJECT
+
+ public:
+ /**
+ * Constructor
+ */
+ AccessibilityConfig(QWidget *parent = 0L, const char *name = 0L, const QStringList &foo = QStringList());
+
+ /**
+ * Destructor
+ */
+ virtual ~AccessibilityConfig();
+
+ /**
+ * This method is invoked whenever the module should read its
+ * configuration (most of the times from a config file) and update the
+ * user interface. This happens when the user clicks the "Reset" button in
+ * the control center, to undo all of his changes and restore the currently
+ * valid settings. NOTE that this is not called after the modules is loaded,
+ * so you probably want to call this method in the constructor.
+ */
+ void load();
+ void load( bool useDefaults );
+
+ /**
+ * This function gets called when the user wants to save the settings in
+ * the user interface, updating the config files or wherever the
+ * configuration is stored. The method is called when the user clicks "Apply"
+ * or "Ok".
+ */
+ void save();
+
+ /**
+ * This function is called to set the settings in the module to sensible
+ * default values. It gets called when hitting the "Default" button. The
+ * default values should probably be the same as the ones the application
+ * uses when started without a config file.
+ */
+ void defaults();
+
+};
+
+#endif // _ACCESSIBILITY_H_
diff --git a/kcontrol/accessibility/accessibilityconfigwidget.ui b/kcontrol/accessibility/accessibilityconfigwidget.ui
new file mode 100644
index 000000000..5d0069a09
--- /dev/null
+++ b/kcontrol/accessibility/accessibilityconfigwidget.ui
@@ -0,0 +1,1630 @@
+<!DOCTYPE UI><UI version="3.1" stdsetdef="1">
+<class>AccessibilityConfigWidget</class>
+<author>José Pablo Ezequiel Fernández &lt;pupeno@kde.org&gt;</author>
+<widget class="KCModule">
+ <property name="name">
+ <cstring>AccessibilityConfigWidget</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>552</width>
+ <height>419</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>Accessibility</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <widget class="QTabWidget">
+ <property name="name">
+ <cstring>mainTab</cstring>
+ </property>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>tab</cstring>
+ </property>
+ <attribute name="title">
+ <string>&amp;Bell</string>
+ </attribute>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>audibleBellGroup</cstring>
+ </property>
+ <property name="title">
+ <string>&amp;Audible Bell</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>This is the configuration of the Audible Bell.&lt;br&gt;
+It could be the system bell and/or a custom bell.</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>systemBell</cstring>
+ </property>
+ <property name="text">
+ <string>Use &amp;system bell</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>If this option is checked, the default system bell will be used. See the "System Bell" control module for how to customize the system bell.&lt;br&gt;
+Normally, this is just a "beep".</string>
+ </property>
+ </widget>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>customBell</cstring>
+ </property>
+ <property name="text">
+ <string>Use &amp;customized bell</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Check this option if you want to use a customized bell, playing a sound file. If you do this, you will probably want to turn off the system bell.&lt;br&gt;
+Please note that on slow machines this may cause a "lag" between the event causing the bell and the sound being played.</string>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>soundToPlayLayout</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>soundToPlaySpacer</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Fixed</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLabel">
+ <property name="name">
+ <cstring>soundToPlayLabel</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Sound &amp;to play:</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>soundToPlay</cstring>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>If the option "Use customized bell" is enabled, you can choose a sound file here.</string>
+ </property>
+ </widget>
+ <widget class="KURLRequester">
+ <property name="name">
+ <cstring>soundToPlay</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>visibleBellGroup</cstring>
+ </property>
+ <property name="title">
+ <string>&amp;Visible Bell</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>visibleBell</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Use visible bell</string>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>layout9</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QLayoutWidget" row="1" column="1">
+ <property name="name">
+ <cstring>visibleBellDurationLayout</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="KIntSpinBox" row="1" column="0">
+ <property name="name">
+ <cstring>visibleBellDuration</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="suffix">
+ <string> msec</string>
+ </property>
+ <property name="maxValue">
+ <number>2000</number>
+ </property>
+ <property name="minValue">
+ <number>100</number>
+ </property>
+ <property name="lineStep">
+ <number>100</number>
+ </property>
+ <property name="value">
+ <number>500</number>
+ </property>
+ </widget>
+ <widget class="QSlider" row="1" column="1">
+ <property name="name">
+ <cstring>visibleBellDurationSlider</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="minValue">
+ <number>100</number>
+ </property>
+ <property name="maxValue">
+ <number>2000</number>
+ </property>
+ <property name="lineStep">
+ <number>100</number>
+ </property>
+ <property name="pageStep">
+ <number>100</number>
+ </property>
+ <property name="value">
+ <number>500</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>Right</enum>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="0">
+ <property name="name">
+ <cstring>visibleBellDurationLabel</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>&amp;Duration:</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>visibleBellDuration</cstring>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <spacer row="0" column="0">
+ <property name="name">
+ <cstring>visibleBellOptionsSpacer</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Fixed</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QButtonGroup" row="0" column="1">
+ <property name="name">
+ <cstring>inverFlashScreenButtonGroup</cstring>
+ </property>
+ <property name="frameShape">
+ <enum>NoFrame</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Plain</enum>
+ </property>
+ <property name="lineWidth">
+ <number>0</number>
+ </property>
+ <property name="title">
+ <string></string>
+ </property>
+ <property name="flat">
+ <bool>true</bool>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>invertScreen</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>I&amp;nvert screen</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>flashScreenLayout</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QRadioButton">
+ <property name="name">
+ <cstring>flashScreen</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>F&amp;lash screen:</string>
+ </property>
+ </widget>
+ <widget class="KColorButton">
+ <property name="name">
+ <cstring>flashScreenColor</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="color">
+ <color>
+ <red>255</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>flashScreenSpacer</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>0</width>
+ <height>15</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ </vbox>
+ </widget>
+ </grid>
+ </widget>
+ </vbox>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>bellSpacer</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>0</height>
+ </size>
+ </property>
+ </spacer>
+ </vbox>
+ </widget>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>tab</cstring>
+ </property>
+ <attribute name="title">
+ <string>&amp;Keyboard</string>
+ </attribute>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>stickyKeysGroup</cstring>
+ </property>
+ <property name="title">
+ <string>S&amp;ticky Keys</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>stickyKeys</cstring>
+ </property>
+ <property name="text">
+ <string>Use &amp;sticky keys</string>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>lockWithStickyKeysLayout</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>lockWithStickyKeysSpacer</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Fixed</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>lockWithStickyKeys</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>&amp;Lock with sticky keys</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>slowKeysGroup</cstring>
+ </property>
+ <property name="title">
+ <string>Slo&amp;w Keys</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>slowKeys</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Use slow keys</string>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>slowKeysDelayLayout</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="KIntSpinBox" row="1" column="1">
+ <property name="name">
+ <cstring>slowKeysDelay</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="suffix">
+ <string> msec</string>
+ </property>
+ <property name="maxValue">
+ <number>2000</number>
+ </property>
+ <property name="minValue">
+ <number>100</number>
+ </property>
+ <property name="lineStep">
+ <number>100</number>
+ </property>
+ <property name="value">
+ <number>500</number>
+ </property>
+ </widget>
+ <widget class="QSlider" row="1" column="2">
+ <property name="name">
+ <cstring>slowKeysDelaySlider</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="minValue">
+ <number>100</number>
+ </property>
+ <property name="maxValue">
+ <number>2000</number>
+ </property>
+ <property name="lineStep">
+ <number>100</number>
+ </property>
+ <property name="pageStep">
+ <number>100</number>
+ </property>
+ <property name="value">
+ <number>500</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>Right</enum>
+ </property>
+ </widget>
+ <spacer row="0" column="0">
+ <property name="name">
+ <cstring>slowKeysSpacer</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Fixed</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QLabel" row="0" column="1">
+ <property name="name">
+ <cstring>slowKeysDelayLabel</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>&amp;Duration:</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>slowKeysDelay</cstring>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ </vbox>
+ </widget>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>bounceKeysGroup</cstring>
+ </property>
+ <property name="title">
+ <string>&amp;Bounce Keys</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>bounceKeys</cstring>
+ </property>
+ <property name="text">
+ <string>Use bou&amp;nce keys</string>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>bounceKeysDelayLayout</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QSlider" row="1" column="2">
+ <property name="name">
+ <cstring>bounceKeysDelaySlider</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="minValue">
+ <number>100</number>
+ </property>
+ <property name="maxValue">
+ <number>2000</number>
+ </property>
+ <property name="lineStep">
+ <number>100</number>
+ </property>
+ <property name="pageStep">
+ <number>100</number>
+ </property>
+ <property name="value">
+ <number>500</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>Right</enum>
+ </property>
+ </widget>
+ <spacer row="0" column="0">
+ <property name="name">
+ <cstring>bounceKeysDelaySpacer</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Fixed</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="KIntSpinBox" row="1" column="1">
+ <property name="name">
+ <cstring>bounceKeysDelay</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="suffix">
+ <string> msec</string>
+ </property>
+ <property name="maxValue">
+ <number>2000</number>
+ </property>
+ <property name="minValue">
+ <number>100</number>
+ </property>
+ <property name="lineStep">
+ <number>100</number>
+ </property>
+ <property name="value">
+ <number>500</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="1">
+ <property name="name">
+ <cstring>bounceKeysDelayLabel</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Du&amp;ration:</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>bounceKeysDelay</cstring>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ </vbox>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>keyboardSpacer</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>21</width>
+ <height>61</height>
+ </size>
+ </property>
+ </spacer>
+ </vbox>
+ </widget>
+ <widget class="QWidget">
+ <property name="name">
+ <cstring>tab</cstring>
+ </property>
+ <attribute name="title">
+ <string>&amp;Mouse</string>
+ </attribute>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QGroupBox">
+ <property name="name">
+ <cstring>mouseNavigationGroup</cstring>
+ </property>
+ <property name="title">
+ <string>&amp;Navigation</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="QCheckBox">
+ <property name="name">
+ <cstring>moveWithKeyboard</cstring>
+ </property>
+ <property name="text">
+ <string>Mo&amp;ve mouse with keyboard</string>
+ </property>
+ </widget>
+ <widget class="QLayoutWidget">
+ <property name="name">
+ <cstring>moveWithKeyboardLayout</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="KIntSpinBox" row="2" column="2">
+ <property name="name">
+ <cstring>accelerationTime</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="maxValue">
+ <number>5000</number>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ <property name="lineStep">
+ <number>250</number>
+ </property>
+ <property name="value">
+ <number>1000</number>
+ </property>
+ </widget>
+ <widget class="QSlider" row="2" column="3">
+ <property name="name">
+ <cstring>accelerationTimeSlider</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ <property name="maxValue">
+ <number>5000</number>
+ </property>
+ <property name="lineStep">
+ <number>250</number>
+ </property>
+ <property name="pageStep">
+ <number>2500</number>
+ </property>
+ <property name="value">
+ <number>1000</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>Right</enum>
+ </property>
+ </widget>
+ <widget class="QLabel" row="3" column="1">
+ <property name="name">
+ <cstring>maximumSpeedLabel</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Ma&amp;ximum speed:</string>
+ </property>
+ <property name="alignment">
+ <set>AlignVCenter|AlignRight</set>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>maximumSpeed</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel" row="2" column="1">
+ <property name="name">
+ <cstring>accelerationTimeLabel</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Acceleration &amp;time:</string>
+ </property>
+ <property name="alignment">
+ <set>AlignVCenter|AlignRight</set>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>accelerationTime</cstring>
+ </property>
+ </widget>
+ <widget class="QSlider" row="0" column="3">
+ <property name="name">
+ <cstring>accelerationDelaySlider</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ <property name="maxValue">
+ <number>1000</number>
+ </property>
+ <property name="lineStep">
+ <number>50</number>
+ </property>
+ <property name="pageStep">
+ <number>500</number>
+ </property>
+ <property name="value">
+ <number>160</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>Right</enum>
+ </property>
+ </widget>
+ <widget class="KIntSpinBox" row="3" column="2">
+ <property name="name">
+ <cstring>maximumSpeed</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="maxValue">
+ <number>1000</number>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ <property name="lineStep">
+ <number>10</number>
+ </property>
+ <property name="value">
+ <number>500</number>
+ </property>
+ </widget>
+ <widget class="KIntSpinBox" row="1" column="2">
+ <property name="name">
+ <cstring>repeatInterval</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="suffix">
+ <string> msec</string>
+ </property>
+ <property name="maxValue">
+ <number>1000</number>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ <property name="lineStep">
+ <number>10</number>
+ </property>
+ <property name="value">
+ <number>5</number>
+ </property>
+ </widget>
+ <spacer row="0" column="0">
+ <property name="name">
+ <cstring>moveWithKeyboardSpacer</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Fixed</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="QSlider" row="3" column="3">
+ <property name="name">
+ <cstring>maximumSpeedSlider</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ <property name="maxValue">
+ <number>1000</number>
+ </property>
+ <property name="lineStep">
+ <number>10</number>
+ </property>
+ <property name="pageStep">
+ <number>100</number>
+ </property>
+ <property name="value">
+ <number>500</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>Right</enum>
+ </property>
+ <property name="tickInterval">
+ <number>50</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="1" column="1">
+ <property name="name">
+ <cstring>repeatIntervalLabel</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>&amp;Repeat interval:</string>
+ </property>
+ <property name="alignment">
+ <set>AlignVCenter|AlignRight</set>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>repeatInterval</cstring>
+ </property>
+ </widget>
+ <widget class="KIntSpinBox" row="0" column="2">
+ <property name="name">
+ <cstring>accelerationDelay</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="suffix">
+ <string> msec</string>
+ </property>
+ <property name="maxValue">
+ <number>1000</number>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ <property name="lineStep">
+ <number>50</number>
+ </property>
+ <property name="value">
+ <number>160</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="4" column="1">
+ <property name="name">
+ <cstring>accelerationProfileLabel</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Acceleration &amp;profile:</string>
+ </property>
+ <property name="alignment">
+ <set>AlignVCenter|AlignRight</set>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>accelerationProfile</cstring>
+ </property>
+ </widget>
+ <widget class="KIntSpinBox" row="4" column="2">
+ <property name="name">
+ <cstring>accelerationProfile</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="maxValue">
+ <number>1000</number>
+ </property>
+ <property name="minValue">
+ <number>-1000</number>
+ </property>
+ <property name="lineStep">
+ <number>100</number>
+ </property>
+ </widget>
+ <widget class="QSlider" row="4" column="3">
+ <property name="name">
+ <cstring>accelerationProfileSlider</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="minValue">
+ <number>-1000</number>
+ </property>
+ <property name="maxValue">
+ <number>1000</number>
+ </property>
+ <property name="lineStep">
+ <number>100</number>
+ </property>
+ <property name="pageStep">
+ <number>1000</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>Right</enum>
+ </property>
+ <property name="tickInterval">
+ <number>100</number>
+ </property>
+ </widget>
+ <widget class="QSlider" row="1" column="3">
+ <property name="name">
+ <cstring>repeatInternalSlider</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ <property name="maxValue">
+ <number>1000</number>
+ </property>
+ <property name="lineStep">
+ <number>10</number>
+ </property>
+ <property name="pageStep">
+ <number>100</number>
+ </property>
+ <property name="value">
+ <number>5</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="tickmarks">
+ <enum>Right</enum>
+ </property>
+ <property name="tickInterval">
+ <number>50</number>
+ </property>
+ </widget>
+ <widget class="QLabel" row="0" column="1">
+ <property name="name">
+ <cstring>accelerationDelayLabel</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>&amp;Acceleration delay:</string>
+ </property>
+ <property name="alignment">
+ <set>AlignVCenter|AlignRight</set>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>accelerationDelay</cstring>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ </vbox>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>mouseSpacer</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>1</height>
+ </size>
+ </property>
+ </spacer>
+ </vbox>
+ </widget>
+ </widget>
+ </vbox>
+</widget>
+<connections>
+ <connection>
+ <sender>customBell</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>soundToPlay</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>customBell</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>soundToPlayLabel</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>visibleBellDuration</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>visibleBellDurationSlider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>visibleBellDurationSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>visibleBellDuration</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>slowKeysDelay</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>slowKeysDelaySlider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>slowKeysDelaySlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>slowKeysDelay</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>bounceKeysDelay</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>bounceKeysDelaySlider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>bounceKeysDelaySlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>bounceKeysDelay</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>visibleBell</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>invertScreen</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>visibleBell</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>flashScreen</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>visibleBell</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>updateFlashScreenColor()</slot>
+ </connection>
+ <connection>
+ <sender>visibleBell</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>visibleBellDuration</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>visibleBell</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>visibleBellDurationLabel</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>visibleBell</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>visibleBellDurationSlider</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>flashScreen</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>flashScreenColor</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>stickyKeys</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>lockWithStickyKeys</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>slowKeys</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>slowKeysDelayLabel</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>slowKeys</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>slowKeysDelay</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>slowKeys</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>slowKeysDelaySlider</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>bounceKeys</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>bounceKeysDelayLabel</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>bounceKeys</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>bounceKeysDelay</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>bounceKeys</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>bounceKeysDelaySlider</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>accelerationDelay</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>accelerationDelaySlider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>accelerationDelaySlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>accelerationDelay</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>repeatInterval</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>repeatInternalSlider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>repeatInternalSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>repeatInterval</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>accelerationTime</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>accelerationTimeSlider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>accelerationTimeSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>accelerationTime</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>maximumSpeed</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>maximumSpeedSlider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>maximumSpeedSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>maximumSpeed</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>accelerationProfile</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>accelerationProfileSlider</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>accelerationProfileSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>accelerationProfile</receiver>
+ <slot>setValue(int)</slot>
+ </connection>
+ <connection>
+ <sender>moveWithKeyboard</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>accelerationDelayLabel</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>moveWithKeyboard</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>accelerationDelay</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>moveWithKeyboard</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>accelerationDelaySlider</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>moveWithKeyboard</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>repeatIntervalLabel</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>moveWithKeyboard</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>repeatInterval</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>moveWithKeyboard</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>repeatInternalSlider</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>moveWithKeyboard</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>accelerationTimeLabel</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>moveWithKeyboard</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>accelerationTime</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>moveWithKeyboard</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>accelerationTimeSlider</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>moveWithKeyboard</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>maximumSpeedLabel</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>moveWithKeyboard</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>maximumSpeed</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>moveWithKeyboard</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>maximumSpeedSlider</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>moveWithKeyboard</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>accelerationProfileLabel</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>moveWithKeyboard</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>accelerationProfile</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>moveWithKeyboard</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>accelerationProfileSlider</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>systemBell</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>customBell</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>soundToPlay</sender>
+ <signal>textChanged(const QString&amp;)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>visibleBell</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>invertScreen</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>flashScreen</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>flashScreenColor</sender>
+ <signal>changed(const QColor&amp;)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>visibleBellDuration</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>visibleBellDurationSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>stickyKeys</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>lockWithStickyKeys</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>slowKeys</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>slowKeysDelay</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>slowKeysDelaySlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>bounceKeys</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>bounceKeysDelay</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>bounceKeysDelaySlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>moveWithKeyboard</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>accelerationDelay</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>accelerationDelaySlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>repeatInterval</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>repeatInternalSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>accelerationTime</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>accelerationTimeSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>maximumSpeed</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>maximumSpeedSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>accelerationProfile</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+ <connection>
+ <sender>accelerationProfileSlider</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>AccessibilityConfigWidget</receiver>
+ <slot>changed(bool)</slot>
+ </connection>
+</connections>
+<tabstops>
+ <tabstop>mainTab</tabstop>
+ <tabstop>systemBell</tabstop>
+ <tabstop>customBell</tabstop>
+ <tabstop>soundToPlay</tabstop>
+ <tabstop>visibleBell</tabstop>
+ <tabstop>invertScreen</tabstop>
+ <tabstop>flashScreen</tabstop>
+ <tabstop>flashScreenColor</tabstop>
+ <tabstop>visibleBellDuration</tabstop>
+ <tabstop>visibleBellDurationSlider</tabstop>
+ <tabstop>stickyKeys</tabstop>
+ <tabstop>lockWithStickyKeys</tabstop>
+ <tabstop>slowKeys</tabstop>
+ <tabstop>slowKeysDelay</tabstop>
+ <tabstop>slowKeysDelaySlider</tabstop>
+ <tabstop>bounceKeys</tabstop>
+ <tabstop>bounceKeysDelay</tabstop>
+ <tabstop>bounceKeysDelaySlider</tabstop>
+ <tabstop>moveWithKeyboard</tabstop>
+ <tabstop>accelerationDelay</tabstop>
+ <tabstop>accelerationDelaySlider</tabstop>
+ <tabstop>repeatInterval</tabstop>
+ <tabstop>repeatInternalSlider</tabstop>
+ <tabstop>accelerationTime</tabstop>
+ <tabstop>accelerationTimeSlider</tabstop>
+ <tabstop>maximumSpeed</tabstop>
+ <tabstop>maximumSpeedSlider</tabstop>
+ <tabstop>accelerationProfile</tabstop>
+ <tabstop>accelerationProfileSlider</tabstop>
+</tabstops>
+<includes>
+ <include location="local" impldecl="in implementation">accessibilityconfigwidget.ui.h</include>
+ <include location="local" impldecl="in implementation">kdialog.h</include>
+</includes>
+<slots>
+ <slot access="private" specifier="non virtual">updateFlashScreenColor()</slot>
+</slots>
+<layoutdefaults spacing="3" margin="6"/>
+<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
+<includehints>
+ <includehint>kcmodule.h</includehint>
+ <includehint>kurlrequester.h</includehint>
+ <includehint>klineedit.h</includehint>
+ <includehint>kpushbutton.h</includehint>
+ <includehint>knuminput.h</includehint>
+ <includehint>kcolorbutton.h</includehint>
+ <includehint>knuminput.h</includehint>
+ <includehint>knuminput.h</includehint>
+ <includehint>knuminput.h</includehint>
+ <includehint>knuminput.h</includehint>
+ <includehint>knuminput.h</includehint>
+ <includehint>knuminput.h</includehint>
+ <includehint>knuminput.h</includehint>
+</includehints>
+</UI>
diff --git a/kcontrol/accessibility/accessibilityconfigwidget.ui.h b/kcontrol/accessibility/accessibilityconfigwidget.ui.h
new file mode 100644
index 000000000..38d44a502
--- /dev/null
+++ b/kcontrol/accessibility/accessibilityconfigwidget.ui.h
@@ -0,0 +1,22 @@
+/****************************************************************************
+** ui.h extension file, included from the uic-generated form implementation.
+**
+** If you wish to add, delete or rename functions or slots use
+** Qt Designer which will update this file, preserving your code. Create an
+** init() function in place of a constructor, and a destroy() function in
+** place of a destructor.
+*****************************************************************************/
+
+void AccessibilityConfigWidget::updateFlashScreenColor(){
+ flashScreenColor->setEnabled(flashScreen->isChecked());
+}
+
+
+void AccessibilityConfigWidget::configChanged()
+{
+
+}
+
+
+
+
diff --git a/kcontrol/accessibility/configure.in.in b/kcontrol/accessibility/configure.in.in
new file mode 100644
index 000000000..c3f539bd5
--- /dev/null
+++ b/kcontrol/accessibility/configure.in.in
@@ -0,0 +1,3 @@
+ACCESSIBILITY_SUBDIR=
+KDE_CHECK_HEADER(X11/extensions/XKBstr.h, ACCESSIBILITY_SUBDIR=accessibility)
+AM_CONDITIONAL(include_kcontrol_accessibility, test -n "$ACCESSIBILITY_SUBDIR")
diff --git a/kcontrol/accessibility/kcm_accessibility.kcfg b/kcontrol/accessibility/kcm_accessibility.kcfg
new file mode 100644
index 000000000..ad9d0d450
--- /dev/null
+++ b/kcontrol/accessibility/kcm_accessibility.kcfg
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
+ http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" >
+ <kcfgfile name="bellrc"/>
+ <group name="General">
+ <entry name="SystemBell" type="Bool">
+ <label>If the simple PC speaker should be used</label>
+ <default>false</default>
+ </entry>
+ <entry name="CustomBell" type="Bool">
+ <label>Whether a custom sound should be used as bell</label>
+ <default>false</default>
+ </entry>
+ <entry name="Visiblebell" type="Bool">
+ <label>If the screen should blink when the bell is sounded</label>
+ <default>false</default>
+ </entry>
+ </group>
+ <group name="CustomBell">
+ <entry name="Sound" type="Path">
+ <label>The path to the custom sound, if it is used</label>
+ </entry>
+ </group>
+ <group name="Visible">
+ <entry name="Flash" type="Bool">
+ <label>If the screen should be flashed</label>
+ <default>false</default>
+ </entry>
+ <entry name="Invert" type="Bool">
+ <label>If the screen image should be inverted</label>
+ <default>true</default>
+ </entry>
+ <entry name="FlashColor" type="Color">
+ <label>The color to flash the screen with</label>
+ <default>#FF0000</default>
+ </entry>
+ <entry name="Duration" type="UInt">
+ <label>For how long the flash is active</label>
+ <default>500</default>
+ <max>3000</max>
+ </entry>
+ </group>
+ <!--
+ // keyboard
+ // sticky keys
+ stickykeys->setchecked(false);
+ lockwithstickykeys->setchecked(true);
+
+ // slow keys
+ slowkeys->setchecked(false);
+ slowkeysdelay->setvalue(500);
+
+ // bounce keys
+ bouncekeys->setchecked(false);
+ bouncekeysdelay->setvalue(500);
+
+ // mouse
+ // navigation
+ accelerationdelay->setvalue(160);
+ repeatinterval->setvalue(5);
+ accelerationtime->setvalue(1000);
+ maximumspeed->setvalue(500);
+ accelerationProfile->setValue(0);
+ -->
+</kcfg>
diff --git a/kcontrol/accessibility/settings.kcfgc b/kcontrol/accessibility/settings.kcfgc
new file mode 100644
index 000000000..b0b7a9407
--- /dev/null
+++ b/kcontrol/accessibility/settings.kcfgc
@@ -0,0 +1,5 @@
+File=kcm_accessibility.kcfg
+ClassName=Settings
+Singleton=true
+Mutators=true
+
diff --git a/kcontrol/arts/Makefile.am b/kcontrol/arts/Makefile.am
new file mode 100644
index 000000000..f4b68cfa1
--- /dev/null
+++ b/kcontrol/arts/Makefile.am
@@ -0,0 +1,15 @@
+kde_module_LTLIBRARIES = kcm_arts.la
+
+kcm_arts_la_SOURCES = arts.cpp generaltab.ui hardwaretab.ui krichtextlabel.cpp
+
+kcm_arts_la_LDFLAGS = $(all_libraries) -module -avoid-version -no-undefined
+kcm_arts_la_LIBADD = $(LIB_KIO) $(LIB_KUTILS) -lkmid
+
+AM_CPPFLAGS = -I$(kde_includes)/arts $(all_includes)
+
+METASOURCES = AUTO
+
+messages: rc.cpp
+ $(XGETTEXT) *.cpp -o $(podir)/kcmarts.pot
+
+xdg_apps_DATA = arts.desktop
diff --git a/kcontrol/arts/arts.cpp b/kcontrol/arts/arts.cpp
new file mode 100644
index 000000000..a8edb30a2
--- /dev/null
+++ b/kcontrol/arts/arts.cpp
@@ -0,0 +1,730 @@
+/*
+
+ Copyright (C) 2000 Stefan Westerfeld
+ stefan@space.twc.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.
+
+ 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.
+
+ Permission is also granted to link this program with the Qt
+ library, treating Qt like a library that normally accompanies the
+ operating system kernel, whether or not that is in fact the case.
+
+*/
+
+#include <unistd.h>
+
+#include <qcombobox.h>
+#include <qdir.h>
+#include <qlayout.h>
+#include <qpushbutton.h>
+#include <qregexp.h>
+#include <qslider.h>
+#include <qtabwidget.h>
+#include <qwhatsthis.h>
+
+#include <dcopref.h>
+
+#include <kaboutdata.h>
+#include <kapplication.h>
+#include <kcmoduleloader.h>
+#include <kdebug.h>
+#include <kdialog.h>
+#include <klineedit.h>
+#include <kmessagebox.h>
+#include <kprocess.h>
+#include <krichtextlabel.h>
+#include <ksimpleconfig.h>
+#include <kstandarddirs.h>
+#include <kurlrequester.h>
+#include <libkmid/deviceman.h>
+
+#include "arts.h"
+
+extern "C" {
+ KDE_EXPORT void init_arts();
+
+ KDE_EXPORT KCModule *create_arts(QWidget *parent, const char* /*name*/)
+ {
+ KGlobal::locale()->insertCatalogue("kcmarts");
+ return new KArtsModule(parent, "kcmarts" );
+ }
+}
+
+static bool startArts()
+{
+ KConfig *config = new KConfig("kcmartsrc", true, false);
+
+ config->setGroup("Arts");
+ bool startServer = config->readBoolEntry("StartServer",true);
+ bool startRealtime = config->readBoolEntry("StartRealtime",true);
+ QString args = config->readEntry("Arguments","-F 10 -S 4096 -s 60 -m artsmessage -c drkonqi -l 3 -f");
+
+ delete config;
+
+ if (startServer)
+ kapp->kdeinitExec(startRealtime?"artswrapper":"artsd",
+ QStringList::split(" ",args));
+ return startServer;
+}
+
+/*
+ * This function uses artsd -A to init audioIOList with the possible audioIO
+ * methods. Here is a sample output of artsd -A (note the two spaces before
+ * each "interesting" line are used in parsing:
+ *
+ * # artsd -A
+ * possible choices for the audio i/o method:
+ *
+ * toss Threaded Open Sound System
+ * esd Enlightened Sound Daemon
+ * null No audio input/output
+ * alsa Advanced Linux Sound Architecture
+ * oss Open Sound System
+ *
+ */
+void KArtsModule::initAudioIOList()
+{
+ KProcess* artsd = new KProcess();
+ *artsd << "artsd";
+ *artsd << "-A";
+
+ connect(artsd, SIGNAL(processExited(KProcess*)),
+ this, SLOT(slotArtsdExited(KProcess*)));
+ connect(artsd, SIGNAL(receivedStderr(KProcess*, char*, int)),
+ this, SLOT(slotProcessArtsdOutput(KProcess*, char*, int)));
+
+ if (!artsd->start(KProcess::Block, KProcess::Stderr)) {
+ KMessageBox::error(0, i18n("Unable to start the sound server to "
+ "retrieve possible sound I/O methods.\n"
+ "Only automatic detection will be "
+ "available."));
+ delete artsd;
+ }
+}
+
+void KArtsModule::slotArtsdExited(KProcess* proc)
+{
+ latestProcessStatus = proc->exitStatus();
+ delete proc;
+}
+
+void KArtsModule::slotProcessArtsdOutput(KProcess*, char* buf, int len)
+{
+ // XXX(gioele): I suppose this will be called with full lines, am I wrong?
+
+ QStringList availableIOs = QStringList::split("\n", QCString(buf, len));
+ // valid entries have two leading spaces
+ availableIOs = availableIOs.grep(QRegExp("^ {2}"));
+ availableIOs.sort();
+
+ QString name, fullName;
+ QStringList::Iterator it;
+ for (it = availableIOs.begin(); it != availableIOs.end(); ++it) {
+ name = (*it).left(12).stripWhiteSpace();
+ fullName = (*it).mid(12).stripWhiteSpace();
+ audioIOList.append(new AudioIOElement(name, fullName));
+ }
+}
+
+KArtsModule::KArtsModule(QWidget *parent, const char *name)
+ : KCModule(parent, name), configChanged(false)
+{
+ setButtons(Default|Apply);
+
+ setQuickHelp( i18n("<h1>Sound System</h1> Here you can configure aRts, KDE's sound server."
+ " This program not only allows you to hear your system sounds while simultaneously"
+ " listening to an MP3 file or playing a game with background music. It also allows you"
+ " to apply different effects to your system sounds and provides programmers with"
+ " an easy way to achieve sound support."));
+
+ initAudioIOList();
+
+ QVBoxLayout *layout = new QVBoxLayout(this, 0, KDialog::spacingHint());
+ QTabWidget *tab = new QTabWidget(this);
+ layout->addWidget(tab);
+
+ general = new generalTab(tab);
+ hardware = new hardwareTab(tab);
+ //mixer = KCModuleLoader::loadModule("kmixcfg", tab);
+ //midi = new KMidConfig(tab, "kmidconfig");
+
+ general->layout()->setMargin( KDialog::marginHint() );
+ hardware->layout()->setMargin( KDialog::marginHint() );
+ general->latencyLabel->setFixedHeight(general->latencyLabel->fontMetrics().lineSpacing());
+
+ tab->addTab(general, i18n("&General"));
+ tab->addTab(hardware, i18n("&Hardware"));
+
+ startServer = general->startServer;
+ networkTransparent = general->networkTransparent;
+ startRealtime = general->startRealtime;
+ autoSuspend = general->autoSuspend;
+ suspendTime = general->suspendTime;
+
+ fullDuplex = hardware->fullDuplex;
+ customDevice = hardware->customDevice;
+ deviceName = hardware->deviceName;
+ customRate = hardware->customRate;
+ samplingRate = hardware->samplingRate;
+
+ QString deviceHint = i18n("Normally, the sound server defaults to using the device called <b>/dev/dsp</b> for sound output. That should work in most cases. On some systems where devfs is used, however, you may need to use <b>/dev/sound/dsp</b> instead. Other alternatives are things like <b>/dev/dsp0</b> or <b>/dev/dsp1</b>, if you have a soundcard that supports multiple outputs, or you have multiple soundcards.");
+
+ QString rateHint = i18n("Normally, the sound server defaults to using a sampling rate of 44100 Hz (CD quality), which is supported on almost any hardware. If you are using certain <b>Yamaha soundcards</b>, you might need to configure this to 48000 Hz here, if you are using <b>old SoundBlaster cards</b>, like SoundBlaster Pro, you might need to change this to 22050 Hz. All other values are possible, too, and may make sense in certain contexts (i.e. professional studio equipment).");
+
+ QString optionsHint = i18n("This configuration module is intended to cover almost every aspect of the aRts sound server that you can configure. However, there are some things which may not be available here, so you can add <b>command line options</b> here which will be passed directly to <b>artsd</b>. The command line options will override the choices made in the GUI. To see the possible choices, open a Konsole window, and type <b>artsd -h</b>.");
+
+ QWhatsThis::add(customDevice, deviceHint);
+ QWhatsThis::add(deviceName, deviceHint);
+ QWhatsThis::add(customRate, rateHint);
+ QWhatsThis::add(samplingRate, rateHint);
+ QWhatsThis::add(hardware->customOptions, optionsHint);
+ QWhatsThis::add(hardware->addOptions, optionsHint);
+
+ hardware->audioIO->insertItem( i18n( "Autodetect" ) );
+ for (AudioIOElement *a = audioIOList.first(); a != 0; a = audioIOList.next())
+ hardware->audioIO->insertItem(i18n(a->fullName.utf8()));
+
+ deviceManager = new DeviceManager();
+ deviceManager->initManager();
+
+ QString s;
+ for ( int i = 0; i < deviceManager->midiPorts()+deviceManager->synthDevices(); i++)
+ {
+ if ( strcmp( deviceManager->type( i ), "" ) != 0 )
+ s.sprintf( "%s - %s", deviceManager->name( i ), deviceManager->type( i ) );
+ else
+ s.sprintf( "%s", deviceManager->name( i ) );
+
+ hardware->midiDevice->insertItem( s, i );
+
+ };
+
+ config = new KConfig("kcmartsrc");
+ load();
+
+ suspendTime->setRange( 1, 999, 1, true );
+
+ connect(startServer,SIGNAL(clicked()),this,SLOT(slotChanged()));
+ connect(networkTransparent,SIGNAL(clicked()),this,SLOT(slotChanged()));
+ connect(startRealtime,SIGNAL(clicked()),this,SLOT(slotChanged()));
+ connect(fullDuplex,SIGNAL(clicked()),this,SLOT(slotChanged()));
+ connect(customDevice, SIGNAL(clicked()), SLOT(slotChanged()));
+ connect(deviceName, SIGNAL(textChanged(const QString&)), SLOT(slotChanged()));
+ connect(customRate, SIGNAL(clicked()), SLOT(slotChanged()));
+ connect(samplingRate, SIGNAL(valueChanged(const QString&)), SLOT(slotChanged()));
+// connect(general->volumeSystray, SIGNAL(clicked()), this, SLOT(slotChanged()) );
+
+ connect(hardware->audioIO,SIGNAL(highlighted(int)),SLOT(slotChanged()));
+ connect(hardware->audioIO,SIGNAL(activated(int)),SLOT(slotChanged()));
+ connect(hardware->customOptions,SIGNAL(clicked()),SLOT(slotChanged()));
+ connect(hardware->addOptions,SIGNAL(textChanged(const QString&)),SLOT(slotChanged()));
+ connect(hardware->soundQuality,SIGNAL(highlighted(int)),SLOT(slotChanged()));
+ connect(hardware->soundQuality,SIGNAL(activated(int)),SLOT(slotChanged()));
+ connect(general->latencySlider,SIGNAL(valueChanged(int)),SLOT(slotChanged()));
+ connect(autoSuspend,SIGNAL(clicked()),SLOT(slotChanged()));
+ connect(suspendTime,SIGNAL(valueChanged(int)),SLOT(slotChanged()));
+ connect(general->testSound,SIGNAL(clicked()),SLOT(slotTestSound()));
+ connect(hardware->midiDevice, SIGNAL( highlighted(int) ), this, SLOT( slotChanged() ) );
+ connect(hardware->midiDevice, SIGNAL( activated(int) ), this, SLOT( slotChanged() ) );
+ connect(hardware->midiUseMapper, SIGNAL( clicked() ), this, SLOT( slotChanged() ) );
+ connect(hardware->midiMapper, SIGNAL( textChanged( const QString& ) ),
+ this, SLOT( slotChanged() ) );
+
+ KAboutData *about = new KAboutData(I18N_NOOP("kcmarts"),
+ I18N_NOOP("The Sound Server Control Module"),
+ 0, 0, KAboutData::License_GPL,
+ I18N_NOOP("(c) 1999 - 2001, Stefan Westerfeld"));
+ about->addAuthor("Stefan Westerfeld",I18N_NOOP("aRts Author") , "stw@kde.org");
+ setAboutData(about);
+}
+
+void KArtsModule::load( bool useDefaults )
+{
+ config->setReadDefaults( useDefaults );
+ config->setGroup("Arts");
+ startServer->setChecked(config->readBoolEntry("StartServer",true));
+ startRealtime->setChecked(config->readBoolEntry("StartRealtime",true) &&
+ realtimeIsPossible());
+ networkTransparent->setChecked(config->readBoolEntry("NetworkTransparent",false));
+ fullDuplex->setChecked(config->readBoolEntry("FullDuplex",false));
+ autoSuspend->setChecked(config->readBoolEntry("AutoSuspend",true));
+ suspendTime->setValue(config->readNumEntry("SuspendTime",60));
+ deviceName->setText(config->readEntry("DeviceName",QString::null));
+ customDevice->setChecked(!deviceName->text().isEmpty());
+ hardware->addOptions->setText(config->readEntry("AddOptions",QString::null));
+ hardware->customOptions->setChecked(!hardware->addOptions->text().isEmpty());
+ general->latencySlider->setValue(config->readNumEntry("Latency",250));
+
+ int rate = config->readNumEntry("SamplingRate",0);
+ if(rate)
+ {
+ customRate->setChecked(true);
+ samplingRate->setValue(rate);
+ }
+ else
+ {
+ customRate->setChecked(false);
+ samplingRate->setValue(44100);
+ }
+
+ switch (config->readNumEntry("Bits", 0)) {
+ case 0:
+ hardware->soundQuality->setCurrentItem(0);
+ break;
+ case 16:
+ hardware->soundQuality->setCurrentItem(1);
+ break;
+ case 8:
+ hardware->soundQuality->setCurrentItem(2);
+ break;
+ }
+
+ QString audioIO = config->readEntry("AudioIO", QString::null);
+ hardware->audioIO->setCurrentItem(0);
+ for(AudioIOElement *a = audioIOList.first(); a != 0; a = audioIOList.next())
+ {
+ if(a->name == audioIO) // fir