summaryrefslogtreecommitdiff
path: root/x11/libqpe-x11/qt/qcopchannel_qws.cpp
Side-by-side diff
Diffstat (limited to 'x11/libqpe-x11/qt/qcopchannel_qws.cpp') (more/less context) (show whitespace changes)
-rw-r--r--x11/libqpe-x11/qt/qcopchannel_qws.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/x11/libqpe-x11/qt/qcopchannel_qws.cpp b/x11/libqpe-x11/qt/qcopchannel_qws.cpp
index 1cea80c..706756e 100644
--- a/x11/libqpe-x11/qt/qcopchannel_qws.cpp
+++ b/x11/libqpe-x11/qt/qcopchannel_qws.cpp
@@ -8,53 +8,60 @@ QMap<QCString, int> QCopChannel::m_refCount;
QCopChannel::QCopChannel( const QCString& channel, QObject* parent,
const char* name )
: QObject( parent, name ),m_chan(channel) {
if (!m_list ) {
m_list = new QList<QCopChannel>;
/* only connect once */
connect(OCOPClient::self(), SIGNAL(called(const QCString&, const QCString&, const QByteArray& ) ),
this, SLOT(rev(const QCString&, const QCString&, const QByteArray&) ) );
}
/* first registration or ref count is 0 for m_chan*/
if (!m_refCount.contains( m_chan ) || !m_refCount[m_chan] ) {
+ qWarning("adding channel %s", m_chan.data() );
m_refCount[m_chan] = 1;
OCOPClient::self()->addChannel( m_chan );
- }else
+ }else{
+ qWarning("reffing up for %s %d", m_chan.data(), m_refCount[m_chan] );
m_refCount[m_chan]++;
+ }
m_list->append(this);
}
void QCopChannel::receive( const QCString& msg, const QByteArray& ar ) {
emit received( msg, ar );
}
QCopChannel::~QCopChannel() {
if (m_refCount[m_chan] == 1 ) {
OCOPClient::self()->delChannel( m_chan );
m_refCount[m_chan] = 0;
}else
m_refCount[m_chan]--;
m_list->remove(this);
if (m_list->count() == 0 ) {
delete m_list;
m_list = 0;
}
}
QCString QCopChannel::channel()const {
return m_chan;
}
-bool QCopChannel::isRegistered( const QCString& chan) {;
+bool QCopChannel::isRegistered( const QCString& chan) {
+ if (m_refCount.contains(chan) ) {
+ qDebug("Client:locally contains");
+ return true;
+ }
return OCOPClient::self()->isRegistered( chan );
}
bool QCopChannel::send( const QCString& chan, const QCString& msg ) {
QByteArray ar;
return send(chan, msg, ar );
}
bool QCopChannel::send( const QCString& chan, const QCString& msg,
const QByteArray& ar ) {
OCOPClient::self()->send( chan, msg, ar );
return true;
}
bool QCopChannel::sendLocally( const QCString& chann, const QCString& msg,