#############################################################################
# Makefile for building: tpsession
-# Generated by qmake (2.01a) (Qt 4.6.2) on: Wed May 26 19:59:19 2010
+# Generated by qmake (2.01a) (Qt 4.6.2) on: Wed Jun 2 16:52:09 2010
# Project: tpsession.pro
# Template: subdirs
# Command: /usr/bin/qmake -unix QMAKE_CC\ =\ cc QMAKE_CXX\ =\ g++ QMAKE_CFLAGS_RELEASE\ =\ \ -g\ -Wall\ -O2 QMAKE_CXXFLAGS_RELEASE\ =\ \ -g\ -Wall\ -O2 -o Makefile tpsession.pro
+tpsession (0.1-4) unstable; urgency=low
+
+ * Added proper handling for destroyed channels, TPSESSION_DEBUG environmentvariable to enable debug printouts
+
+ -- Kate Alhola <kate.alhola@nokia.com> Mon, 2 Jun 2010 16:51:00 +0300
+
tpsession (0.1-3) unstable; urgency=low
- * Extra debug printouts removed
+ * Extra debug printouts removed, emits messageUeued signal
-- Kate Alhola <kate.alhola@nokia.com> Mon, 10 May 2010 13:20:00 +0300
tpsession (0.1-2) unstable; urgency=low
- * Some bug fixes in sync constructor, getAccoint now accepts also uniqueIdentifier, PR1.2 compatible
+ * Some bug fixes in sync constructor, getAccount now accepts also uniqueIdentifier, PR1.2 compatible
-- Kate Alhola <kate.alhola@nokia.com> Thu, 25 Mar 2010 11:20:48 +0200
-libtpsession_0.1-3_armel.deb libs extra
-libtpsession-dev_0.1-3_armel.deb libdevel extra
-libtpsession-dbg_0.1-3_armel.deb libdevel extra
+libtpsession_0.1-4_armel.deb libs extra
+libtpsession-dev_0.1-4_armel.deb libdevel extra
+libtpsession-dbg_0.1-4_armel.deb libdevel extra
Package: libtpsession-dbg
-Version: 0.1-3
+Version: 0.1-4
Section: libdevel
Priority: extra
Architecture: armel
Depends: tpsession
-Installed-Size: 900
+Installed-Size: 926
Maintainer: Kate Alhola <kate.alhola@nokia.com>
Source: tpsession
Description: Easy to use API to Telepathy-Qt4 debug symbols
-279d55edf2dbbaa8a9ef9e80e6afa950 usr/lib/debug/usr/lib/libtpsession.so.0.1.0
-7db70a8516956741d44ddbd4ab9e664a usr/share/doc/libtpsession-dbg/changelog.Debian.gz
+94f6a232afe46e49e2151cc55b7db2a1 usr/lib/debug/usr/lib/libtpsession.so.0.1.0
+7378fe57886d6f2411cdcfc622669632 usr/share/doc/libtpsession-dbg/changelog.Debian.gz
707f20563222a064607acf41d3e5c7b2 usr/share/doc/libtpsession-dbg/copyright
Package: libtpsession-dev
-Version: 0.1-3
+Version: 0.1-4
Section: libdevel
Priority: extra
Architecture: armel
Depends: libtpsession
-Installed-Size: 13
+Installed-Size: 14
Maintainer: Kate Alhola <kate.alhola@nokia.com>
Source: tpsession
Description: Easy to use API to Telepathy-Qt4 dev files
-f5dc0a769f2e6fb59be9c66b55b738ad usr/include/telepathy-1.0/tpsession/tpsession.h
-91a79511e7fde9bf828b69f2479a8c10 usr/include/telepathy-1.0/tpsession/tpsessionaccount.h
-1db2a0ee688a22591395915a69840c00 usr/include/telepathy-1.0/tpsession/tpsessionchannel.h
+21ccbde64fe646c424b560759bd2c766 usr/include/telepathy-1.0/tpsession/tpsession.h
+729b7162ae9d47151ff2a2427cc735e4 usr/include/telepathy-1.0/tpsession/tpsessionaccount.h
+07eaf94dc62455e25d29646e2b9a7548 usr/include/telepathy-1.0/tpsession/tpsessionchannel.h
da668240e6a6465d26576272ecb52b48 usr/include/telepathy-1.0/tpsession/tpsessionobserver.h
4987dc18c04e1e486b0c518dcd0ef913 usr/lib/pkgconfig/TpSession.pc
-7db70a8516956741d44ddbd4ab9e664a usr/share/doc/libtpsession-dev/changelog.Debian.gz
+7378fe57886d6f2411cdcfc622669632 usr/share/doc/libtpsession-dev/changelog.Debian.gz
707f20563222a064607acf41d3e5c7b2 usr/share/doc/libtpsession-dev/copyright
#include <TelepathyQt4/PendingReady>
#include <TelepathyQt4/ClientRegistrar>
#include <TelepathyQt4/Debug>
+#include <QProcessEnvironment>
#include <QString>
#include <QVector>
#include "tpsessionaccount.h"
#include "tpsessionobserver.h"
+
class TpSession:public QObject
{
Q_OBJECT
static TpSession* instance(bool synchronous=TRUE);
+ static bool tpsDebug();
void sendMessageToAddress(QString connectionMgr,QString address,QString message);
TpSessionAccount* getAccount(const QString cm, const QString protocol=QString());
void createChannelListener(const QString &channelType,
private:
static TpSession *instancePtr;
+ static bool tpsdebug;
//TpSession *instancePtr;
QString reqCm;
QString reqAddress;
#include <QString>
#include <QVector>
+class TpSessionAccount;
+
+#include "tpsession.h"
#include "tpsessionchannel.h"
class TpSessionAccount:public QObject
private slots:
void onReady(Tp::PendingOperation *op);
void onOutgoingChannelReady(TpSessionChannel *ch);
+ void onChannelDestroyed(TpSessionChannel *ch);
void onContactsConnectionReady(Tp::PendingOperation *op);
void onNewContactRetrieved(Tp::PendingOperation *op);
void onMessageReceived(const Tp::ReceivedMessage &,TpSessionChannel *);
#include <TelepathyQt4/ContactManager>
#include <TelepathyQt4/Connection>
+class TpSessionChannel;
+
+#include "tpsession.h"
+
class TpSessionChannel : public QObject
{
Q_OBJECT
public slots:
void onChannelCreated(Tp::PendingOperation *op);
void onChannelReady(Tp::PendingOperation *op);
- void onChannelDestroyed(QObject *);
+ void onChannelDestroyed();
void onMessageReceived(const Tp::ReceivedMessage &);
void onMessageSent(const Tp::Message &,Tp::MessageSendingFlags, const QString &);
public:
Package: libtpsession
-Version: 0.1-3
+Version: 0.1-4
Section: libs
Priority: extra
Architecture: armel
Depends: libc6 (>= 2.5.0-1), libgcc1 (>= 1:4.2.1), libqt4-core (>= 4.6.2~git20100310), libqt4-dbus (>= 4.6.2~git20100310), libqt4-network (>= 4.6.2~git20100310), libqt4-xml (>= 4.6.2~git20100310), libstdc++6 (>= 4.2.1)
-Installed-Size: 64
+Installed-Size: 74
Maintainer: Kate Alhola <kate.alhola@nokia.com>
Source: tpsession
Description: Easy to use API to Telepathy-Qt4
-3550dafd99a7f78a42d7822e2bf13c6c usr/lib/libtpsession.so.0.1.0
-7db70a8516956741d44ddbd4ab9e664a usr/share/doc/libtpsession/changelog.Debian.gz
+0189b84c1882bdb6cb6f6af6a001bd74 usr/lib/libtpsession.so.0.1.0
+7378fe57886d6f2411cdcfc622669632 usr/share/doc/libtpsession/changelog.Debian.gz
707f20563222a064607acf41d3e5c7b2 usr/share/doc/libtpsession/copyright
566711be92c93313ec96c77fe9477c68 usr/share/doc/libtpsession/README.Debian
#include <TelepathyQt4/PendingReady>
#include <TelepathyQt4/ClientRegistrar>
#include <TelepathyQt4/Debug>
+#include <QProcessEnvironment>
#include <QString>
#include <QVector>
#include "tpsessionaccount.h"
#include "tpsessionobserver.h"
+
class TpSession:public QObject
{
Q_OBJECT
static TpSession* instance(bool synchronous=TRUE);
+ static bool tpsDebug();
void sendMessageToAddress(QString connectionMgr,QString address,QString message);
TpSessionAccount* getAccount(const QString cm, const QString protocol=QString());
void createChannelListener(const QString &channelType,
private:
static TpSession *instancePtr;
+ static bool tpsdebug;
//TpSession *instancePtr;
QString reqCm;
QString reqAddress;
#include <QString>
#include <QVector>
+class TpSessionAccount;
+
+#include "tpsession.h"
#include "tpsessionchannel.h"
class TpSessionAccount:public QObject
private slots:
void onReady(Tp::PendingOperation *op);
void onOutgoingChannelReady(TpSessionChannel *ch);
+ void onChannelDestroyed(TpSessionChannel *ch);
void onContactsConnectionReady(Tp::PendingOperation *op);
void onNewContactRetrieved(Tp::PendingOperation *op);
void onMessageReceived(const Tp::ReceivedMessage &,TpSessionChannel *);
#include <TelepathyQt4/ContactManager>
#include <TelepathyQt4/Connection>
+class TpSessionChannel;
+
+#include "tpsession.h"
+
class TpSessionChannel : public QObject
{
Q_OBJECT
public slots:
void onChannelCreated(Tp::PendingOperation *op);
void onChannelReady(Tp::PendingOperation *op);
- void onChannelDestroyed(QObject *);
+ void onChannelDestroyed();
void onMessageReceived(const Tp::ReceivedMessage &);
void onMessageSent(const Tp::Message &,Tp::MessageSendingFlags, const QString &);
public:
#############################################################################
# Makefile for building: tests
-# Generated by qmake (2.01a) (Qt 4.6.2) on: Wed May 26 19:59:25 2010
+# Generated by qmake (2.01a) (Qt 4.6.2) on: Wed Jun 2 16:52:22 2010
# Project: tests.pro
# Template: subdirs
# Command: /usr/bin/qmake -unix QMAKE_CC\ =\ cc QMAKE_CXX\ =\ g++ QMAKE_CFLAGS_RELEASE\ =\ \ -g\ -Wall\ -O2 QMAKE_CXXFLAGS_RELEASE\ =\ \ -g\ -Wall\ -O2 -o Makefile tests.pro
#############################################################################
# Makefile for building: showaccounts
-# Generated by qmake (2.01a) (Qt 4.6.2) on: Wed May 26 19:59:46 2010
+# Generated by qmake (2.01a) (Qt 4.6.2) on: Wed Jun 2 16:52:42 2010
# Project: showaccounts.pro
# Template: app
# Command: /usr/bin/qmake -unix QMAKE_CC\ =\ cc QMAKE_CXX\ =\ g++ QMAKE_CFLAGS_RELEASE\ =\ \ -g\ -Wall\ -O2 QMAKE_CXXFLAGS_RELEASE\ =\ \ -g\ -Wall\ -O2 -o Makefile showaccounts.pro
#############################################################################
# Makefile for building: smstest
-# Generated by qmake (2.01a) (Qt 4.6.2) on: Wed May 26 19:59:25 2010
+# Generated by qmake (2.01a) (Qt 4.6.2) on: Wed Jun 2 16:52:22 2010
# Project: smstest.pro
# Template: app
# Command: /usr/bin/qmake -unix QMAKE_CC\ =\ cc QMAKE_CXX\ =\ g++ QMAKE_CFLAGS_RELEASE\ =\ \ -g\ -Wall\ -O2 QMAKE_CXXFLAGS_RELEASE\ =\ \ -g\ -Wall\ -O2 -o Makefile smstest.pro
#############################################################################
# Makefile for building: syncsms
-# Generated by qmake (2.01a) (Qt 4.6.2) on: Wed May 26 19:59:36 2010
+# Generated by qmake (2.01a) (Qt 4.6.2) on: Wed Jun 2 16:52:33 2010
# Project: syncsms.pro
# Template: app
# Command: /usr/bin/qmake -unix QMAKE_CC\ =\ cc QMAKE_CXX\ =\ g++ QMAKE_CFLAGS_RELEASE\ =\ \ -g\ -Wall\ -O2 QMAKE_CXXFLAGS_RELEASE\ =\ \ -g\ -Wall\ -O2 -o Makefile syncsms.pro
#############################################################################
# Makefile for building: libtpsession.so.0.1.0
-# Generated by qmake (2.01a) (Qt 4.6.2) on: Wed May 26 19:59:20 2010
+# Generated by qmake (2.01a) (Qt 4.6.2) on: Wed Jun 2 16:52:09 2010
# Project: tpsession.pro
# Template: lib
# Command: /usr/bin/qmake -unix QMAKE_CC\ =\ cc QMAKE_CXX\ =\ g++ QMAKE_CFLAGS_RELEASE\ =\ \ -g\ -Wall\ -O2 QMAKE_CXXFLAGS_RELEASE\ =\ \ -g\ -Wall\ -O2 -o Makefile tpsession.pro
compiler_moc_header_clean:
-$(DEL_FILE) moc_tpsession.cpp moc_tpsessionaccount.cpp moc_tpsessionchannel.cpp moc_tpsessionobserver.cpp
moc_tpsession.cpp: tpsessionaccount.h \
- tpsessionchannel.h \
+ tpsession.h \
tpsessionobserver.h \
+ tpsessionchannel.h \
tpsession.h
/usr/bin/moc $(DEFINES) $(INCPATH) tpsession.h -o moc_tpsession.cpp
-moc_tpsessionaccount.cpp: tpsessionchannel.h \
+moc_tpsessionaccount.cpp: tpsession.h \
+ tpsessionaccount.h \
+ tpsessionchannel.h \
+ tpsessionobserver.h \
tpsessionaccount.h
/usr/bin/moc $(DEFINES) $(INCPATH) tpsessionaccount.h -o moc_tpsessionaccount.cpp
-moc_tpsessionchannel.cpp: tpsessionchannel.h
+moc_tpsessionchannel.cpp: tpsession.h \
+ tpsessionaccount.h \
+ tpsessionchannel.h \
+ tpsessionobserver.h \
+ tpsessionchannel.h
/usr/bin/moc $(DEFINES) $(INCPATH) tpsessionchannel.h -o moc_tpsessionchannel.cpp
moc_tpsessionobserver.cpp: tpsessionobserver.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o tpsession.o tpsession.cpp
tpsessionaccount.o: tpsessionaccount.cpp tpsessionaccount.h \
+ tpsession.h \
+ tpsessionobserver.h \
tpsessionchannel.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o tpsessionaccount.o tpsessionaccount.cpp
-tpsessionchannel.o: tpsessionchannel.cpp tpsessionchannel.h
+tpsessionchannel.o: tpsessionchannel.cpp tpsessionchannel.h \
+ tpsession.h \
+ tpsessionaccount.h \
+ tpsessionobserver.h
$(CXX) -c $(CXXFLAGS) $(INCPATH) -o tpsessionchannel.o tpsessionchannel.cpp
tpsessionobserver.o: tpsessionobserver.cpp tpsessionobserver.h \
Tp::enableDebug(false);
Tp::enableWarnings(false);
+ QProcessEnvironment env;
+ tpsdebug=env.systemEnvironment().contains("TPSESSION_DEBUG");
+ if(tpsdebug) qDebug() << "Tpsession debug:" << tpsDebug();
+
mAM = Tp::AccountManager::create();
reqCm=cmname;
sync=synchronous;
}
TpSession* TpSession::instancePtr=NULL;
+bool TpSession::tpsdebug=false;
/**
* Returns pointer to TpSession singleton. If there is not yet TpSession Object, creates it with "Ring" connection manager as default
*
return instancePtr;
};
+bool TpSession::tpsDebug()
+{
+ return tpsdebug;
+}
+
void TpSession::onAMReady(Tp::PendingOperation *op)
{
Q_UNUSED(op);
#include <TelepathyQt4/PendingReady>
#include <TelepathyQt4/ClientRegistrar>
#include <TelepathyQt4/Debug>
+#include <QProcessEnvironment>
#include <QString>
#include <QVector>
#include "tpsessionaccount.h"
#include "tpsessionobserver.h"
+
class TpSession:public QObject
{
Q_OBJECT
static TpSession* instance(bool synchronous=TRUE);
+ static bool tpsDebug();
void sendMessageToAddress(QString connectionMgr,QString address,QString message);
TpSessionAccount* getAccount(const QString cm, const QString protocol=QString());
void createChannelListener(const QString &channelType,
private:
static TpSession *instancePtr;
+ static bool tpsdebug;
//TpSession *instancePtr;
QString reqCm;
QString reqAddress;
Tp::ContactPtr p;
TpSessionChannel* channel=getChannelFromPeerAddress(address);
if(channel) {
- // qDebug() << "TpSessionAccount::sendMessageToAddress peer:" << channel->peerId() << "queuing:" << message;
+ if(TpSession::tpsDebug()) qDebug() << "TpSessionAccount::sendMessageToAddress peer:" << channel->peerId() << "queuing:" << message;
channel->sendMessage(message); // We have already channel
emit messageQueued(this,true);
}
{
- // qDebug() << "TpSessionAccount::addOutgoingChannel";
+ if(TpSession::tpsDebug()) qDebug() << "TpSessionAccount::addOutgoingChannel";
TpSessionChannel* newChannel=new TpSessionChannel(contact->manager()->connection(),contact);
connect(newChannel,SIGNAL(messageReceived(const Tp::ReceivedMessage &,TpSessionChannel *)),
SLOT(onMessageSent(const Tp::Message &,Tp::MessageSendingFlags, const QString &,TpSessionChannel *)));
connect(newChannel,SIGNAL(channelReady(TpSessionChannel *)),
SLOT(onOutgoingChannelReady(TpSessionChannel*)));
+ connect(newChannel,SIGNAL(channelDestroyed(TpSessionChannel *)),
+ SLOT(onChannelDestroyed(TpSessionChannel*)));
myChannels+=newChannel;
}
void TpSessionAccount::onOutgoingChannelReady(TpSessionChannel *ch)
{
- // qDebug() << "TpSessionAccount::onOutgoingChannelReady";
+ if(TpSession::tpsDebug()) qDebug() << "TpSessionAccount::onOutgoingChannelReady";
emit channelReady(this);
if(!reqMessage.isEmpty()) {
- // qDebug() << "TpSessionAccount::onOutgoingChannelReady peer:" << ch->peerId() << "queuing:" << reqMessage;
+ if(TpSession::tpsDebug()) qDebug() << "TpSessionAccount::onOutgoingChannelReady peer:" << ch->peerId() << "queuing:" << reqMessage;
ch->sendMessage(reqMessage);
emit messageQueued(this,true);
};
void TpSessionAccount::onMessageSent(const Tp::Message &msg,Tp::MessageSendingFlags, const QString &flags,TpSessionChannel *ch)
{
Q_UNUSED(flags);
- // qDebug() << "TpSessionAccount::onMessageSent peer:" << ch->peerId() <<"txt:" << msg.text();
+ if(TpSession::tpsDebug()) qDebug() << "TpSessionAccount::onMessageSent peer:" << ch->peerId() <<"txt:" << msg.text();
emit messageSent(msg,this);
};
SLOT(onMessageReceived(const Tp::ReceivedMessage &,TpSessionChannel *)));
connect(newChannel,SIGNAL(messageSent(const Tp::Message &,Tp::MessageSendingFlags, const QString &,TpSessionChannel *)),
SLOT(onMessageSent(const Tp::Message &,Tp::MessageSendingFlags, const QString &,TpSessionChannel *)));
+ connect(newChannel,SIGNAL(channelDestroyed(TpSessionChannel *)),
+ SLOT(onChannelDestroyed(TpSessionChannel*)));
myChannels+=newChannel;
}
if (channelType == TELEPATHY_INTERFACE_CHANNEL_TYPE_STREAMED_MEDIA && !requested) {
}
}
}
+
+void TpSessionAccount::onChannelDestroyed(TpSessionChannel *ch)
+{
+ if(TpSession::tpsDebug()) qDebug() << "TpSessionAccount::onMessageSent peer:" << ch->peerId();
+ myChannels.remove(ch);
+};
#include <QString>
#include <QVector>
+class TpSessionAccount;
+
+#include "tpsession.h"
#include "tpsessionchannel.h"
class TpSessionAccount:public QObject
private slots:
void onReady(Tp::PendingOperation *op);
void onOutgoingChannelReady(TpSessionChannel *ch);
+ void onChannelDestroyed(TpSessionChannel *ch);
void onContactsConnectionReady(Tp::PendingOperation *op);
void onNewContactRetrieved(Tp::PendingOperation *op);
void onMessageReceived(const Tp::ReceivedMessage &,TpSessionChannel *);
TpSessionChannel::TpSessionChannel(Tp::TextChannelPtr ch)
{
- // qDebug() << "TpSessionChannel::TpSessionChannel" <<"path " << ch->objectPath();
+ if(TpSession::tpsDebug()) qDebug() << "TpSessionChannel::TpSessionChannel" <<"path " << ch->objectPath();
channel=ch;
connect(channel->becomeReady(Tp::TextChannel::FeatureMessageQueue|Tp::TextChannel::FeatureMessageSentSignal),
SIGNAL(finished(Tp::PendingOperation *)),
SLOT(onChannelReady(Tp::PendingOperation *)));
+ connect(channel.data(),
+ SIGNAL(invalidated(Tp::DBusProxy *, const QString &, const QString &)),
+ SLOT(onChannelDestroyed()));
}
void TpSessionChannel::onChannelCreated(Tp::PendingOperation *op)
{
- // qDebug() << "TpSessionChannel::onOutgoingChannelCreated" ;
+ if(TpSession::tpsDebug())qDebug() << "TpSessionChannel::onOutgoingChannelCreated" ;
if (op->isError()) {
qWarning() << "Connection cannot become connected" ;
return;
connect(channel->becomeReady(Tp::TextChannel::FeatureMessageQueue | Tp::TextChannel::FeatureMessageSentSignal),
SIGNAL(finished(Tp::PendingOperation*)),
SLOT(onChannelReady(Tp::PendingOperation*)));
+ connect(channel.data(),
+ SIGNAL(invalidated(Tp::DBusProxy *, const QString &, const QString &)),
+ SLOT(onChannelDestroyed()));
}
QString TpSessionChannel::objectPath()
void TpSessionChannel::onChannelReady(Tp::PendingOperation *op)
{
Q_UNUSED(op);
- //qDebug() << "TpSessionChannel::onChannelReady type=" << channel->channelType() <<"path " << channel->objectPath() <<
- // "initiatorContact=" << (channel->initiatorContact() ? channel->initiatorContact()->id():"NULL");
+ if(TpSession::tpsDebug()) qDebug() << "TpSessionChannel::onChannelReady type=" << channel->channelType() <<"path " << channel->objectPath() <<
+ "initiatorContact=" << (channel->initiatorContact() ? channel->initiatorContact()->id():"NULL");
;
connect(channel.data(),
SIGNAL(messageReceived(const Tp::ReceivedMessage &)),
connect(channel.data(),
SIGNAL(messageSent(const Tp::Message &,Tp::MessageSendingFlags, const QString &)),
SLOT(onMessageSent(const Tp::Message &,Tp::MessageSendingFlags, const QString &)));
- connect(channel.data(),SIGNAL(destroyed(QObject *)),SLOT(onChannelDestroyed(QObject *)));
+ connect(channel.data(),SIGNAL(destroyed(QObject *)),SLOT(onChannelDestroyed()));
if(peerId().isEmpty()) peerContact=channel->initiatorContact(); // If this is incoming channel
emit channelReady(this);
QList<Tp::ReceivedMessage> queuedMessages = channel->messageQueue();
return peerContact ? peerContact->id():QString();
}
-void TpSessionChannel::onChannelDestroyed(QObject *obj)
+void TpSessionChannel::onChannelDestroyed()
{
- Q_UNUSED(obj);
- qDebug() << "TpSessionChannel::onChannelDestroyed";
+ if(TpSession::tpsDebug()) qDebug() << "TpSessionChannel::onChannelDestroyed" << peerId() << objectPath();
//TpSessionChannel *call = (TpSessionChannel *) obj;
emit channelDestroyed(this);
}
#include <TelepathyQt4/ContactManager>
#include <TelepathyQt4/Connection>
+class TpSessionChannel;
+
+#include "tpsession.h"
+
class TpSessionChannel : public QObject
{
Q_OBJECT
public slots:
void onChannelCreated(Tp::PendingOperation *op);
void onChannelReady(Tp::PendingOperation *op);
- void onChannelDestroyed(QObject *);
+ void onChannelDestroyed();
void onMessageReceived(const Tp::ReceivedMessage &);
void onMessageSent(const Tp::Message &,Tp::MessageSendingFlags, const QString &);
public:
News:
<div id="news-content">
<B>11 Feb 2010</B> - Internal release for review</a><br/>
- <B>26 May 2010</B> 0.1.3 version, lot of bug fixes for QtMobility 10.0.1</a><br/>
+ <B>26 May 2010</B> 0.1.3 version, lot of bug fixes for QtMobility 1.0.1</a><br/>
+ <B>02 Jun 2010</B> 0.1.4 channelDestroyed signal, environment var TPSESSIONDEBUG to enable debug prints</a><br/>
</div>
<!-- NEWS END -->
</div>