KNotify
notifybyktts.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include "notifybyktts.h"
00021 #include <QtDBus/QtDBus>
00022 #include <QHash>
00023
00024 #include <kmacroexpander.h>
00025
00026 #include "knotifyconfig.h"
00027
00028 NotifyByKTTS::NotifyByKTTS(QObject *parent) : KNotifyPlugin(parent) , kspeech("org.kde.kttsd", "/KSpeech", "org.kde.KSpeech")
00029 {
00030 kspeech.call("setApplicationName", "KNotify");
00031 }
00032
00033
00034 NotifyByKTTS::~NotifyByKTTS()
00035 {
00036 }
00037
00038 void NotifyByKTTS::notify( int id, KNotifyConfig * config )
00039 {
00040 QString say = config->readEntry( "KTTS" );
00041
00042 if (!say.isEmpty()) {
00043 QHash<QChar,QString> subst;
00044 subst.insert( 'e', config->eventid );
00045 subst.insert( 'a', config->appname );
00046 subst.insert( 's', config->text );
00047 subst.insert( 'w', QString::number( (int)config->winId ));
00048 subst.insert( 'i', QString::number( id ));
00049 subst.insert( 'm', config->text );
00050 say = KMacroExpander::expandMacrosShellQuote( say, subst );
00051 }
00052
00053 if ( say.isEmpty() )
00054 say = config->text;
00055
00056 kspeech.call(QDBus::NoBlock, "say", say, 0);
00057
00058 finished(id);
00059 }
00060
00061 #include "notifybyktts.moc"