On Sunday 07 August 2005 10:56 am, Gary Cramblitt wrote:
> There seem to be 3 choices for DCOP single-byte character strings:
>
> QByteArray
> DCOPCString
> Q3CString
>
> Functionally, all 3 are essentially the same. However, since the compiler
> is picky about typing, I think we should agree on a "standard". Should
> DCOPCString be that standard?


I decided to change the arguments in the KSpeech interface to DCOPCString. =

However, the following declaration in kspeechsink.h

virtual ASYNC textRemoved(const DCOPCString& appId, uint jobNum) =

{ Q_UNUSED(appId); Q_UNUSED(jobNum); =


becomes

{ "ASYNC", "textRemoved(QCString,uint)", "textRemoved(DCOPCString =

appId,uint jobNum)" },

by the dcopidl2cpp compiler in kspeechsink_skel.cpp. Likewise in =

kspeechsink_stub.h:

void KSpeechSink_stub::textRemoved( const DCOPCString& arg0, uint arg1 )
{
if ( !dcopClient() ) {
setStatus( CallFailed );
return;
}
QByteArray data;
QDataStream arg( &data, QIODevice::WriteOnly );
arg.setVersion( QDataStream::Qt_3_1 );
arg << arg0;
arg << arg1;
dcopClient()->send( app(), obj(), "textRemoved(QCString,uint)", data );
setStatus( CallSucceeded );
}

However, this causes a problem because none of these work:

connectDCOPSignal("kttsd", "KSpeech",
"textRemoved(DCOPCString,uint)",
"textRemoved(DCOPCString,uint)",
false);

connect DCOPSignal returns true, but presumably fails because DCOPCString =

signal doesn't match actual signal type.

connectDCOPSignal("kttsd", "KSpeech",
"textRemoved(QCString,uint)",
"textRemoved(DCOPCString,uint)",
false);

connectDCOPSignal returns false, presumably because argument types don't =

match.

connectDCOPSignal("kttsd", "KSpeech",
"textRemoved(QCString,uint)",
"textRemoved(QCString,uint)",
false);

connectDCOPSignal returns true, but presumable fails because slot declarati=
on =

doesn't match, but cannot declare the slot with QCString because no such ty=
pe =

exists.

Help! confused.

-- =

Gary Cramblitt (aka PhantomsDad)
KDE Text-to-Speech Maintainer
http://accessibility.kde.org/developer/kttsd/index.php
=

>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscrib=

e <<