Work ongoing for meassageQueued signal
[tpsession] / tpsession-0.1 / tpsession / tpsessionaccount.cpp
index 2c0668a..512ad8b 100644 (file)
  */
 
 /**
+ * \fn void TpSessionAccount::newChannel(TpSessionAccount *,QString CjhannelType,QString peerId,const Tp::ChannelDetails &);
+ * \param  TpSession  pointer to TpSession class
+ * \param  ChannelType type of Channel, TELEPATHY_INTERFACE_CHANNEL_TYPE_TEXT for text channel, TELEPATHY_INTERFACE_CHANNEL_TYPE_STREAMED_MEDIA for steram media, as exmple for incoming call
+ * \param  peedId PeerId, as example caller telephone number
+ * \param channeDetails needed if you would like to create a channel. For text chanels TpSession creates channel automatically. For calls, Maemo Call UI handles callcreation
+ */
+
+/**
  * Construct a new TpSessionAccount object. This constructor is called by TpSession class when new account is created or fetched from account manager. It is not inended to be used stand alone
  *
  * \param am          Telepathy-Qt4 account manager for this account
@@ -65,7 +73,7 @@ TpSessionAccount::TpSessionAccount(Tp::AccountManagerPtr am,const QString &objec
 {
   connect(mAcc->becomeReady(),SIGNAL(finished(Tp::PendingOperation *)),SLOT(onReady(Tp::PendingOperation *)));
   ready=false;
-  qDebug() << "TpSessionAccount::TpSessionAccount objectPath=" << objectPath;
+  //  qDebug() << "TpSessionAccount::TpSessionAccount objectPath=" << objectPath;
 };
 
 
@@ -73,8 +81,8 @@ void TpSessionAccount::onReady(Tp::PendingOperation *op)
 {
 
     acc = mAcc.data();
-    qDebug() << "TpSessionAccount::onReady cmName=" << acc->cmName() << "haveConnection=" <<
-        (acc->haveConnection()? ( acc->connection()->isReady() ? "Ready":"notReady"):"no");
+    //    qDebug() << "TpSessionAccount::onReady cmName=" << acc->cmName() << "haveConnection=" <<
+    //    (acc->haveConnection()? ( acc->connection()->isReady() ? "Ready":"notReady"):"no");
 
     if(acc->haveConnection()) {
 
@@ -82,7 +90,7 @@ void TpSessionAccount::onReady(Tp::PendingOperation *op)
                 SIGNAL(finished(Tp::PendingOperation *)),
                 SLOT(onContactsConnectionReady(Tp::PendingOperation *)));
          if (acc->connection()->isReady() && acc->connection()->interfaces().contains(TELEPATHY_INTERFACE_CONNECTION_INTERFACE_REQUESTS)) {
-            qDebug() << "TpSessionAccount::onReady: connecting to Connection.Interface.NewChannels";
+          //            qDebug() << "TpSessionAccount::onReady: connecting to Connection.Interface.NewChannels";
             connect(acc->connection()->requestsInterface(),
                 SIGNAL(NewChannels(const Tp::ChannelDetailsList&)),
                 SLOT(onNewChannels(const Tp::ChannelDetailsList&)));
@@ -102,7 +110,7 @@ void TpSessionAccount::onContactsConnectionReady(Tp::PendingOperation *op)
     }
 
     if (acc->connection()->interfaces().contains(TELEPATHY_INTERFACE_CONNECTION_INTERFACE_REQUESTS)) {
-            qDebug() << "TpSessionAccount::onContactsConectionReady: connecting to Connection.Interface.NewChannels";
+      //      //            qDebug() << "TpSessionAccount::onContactsConectionReady: connecting to Connection.Interface.NewChannels";
             connect(acc->connection()->requestsInterface(),
                 SIGNAL(NewChannels(const Tp::ChannelDetailsList&)),
                 SLOT(onNewChannels(const Tp::ChannelDetailsList&)));
@@ -114,12 +122,12 @@ void TpSessionAccount::onContactsConnectionReady(Tp::PendingOperation *op)
             SIGNAL(presencePublicationRequested(const Tp::Contacts &)),
             SLOT(onPresencePublicationRequested(const Tp::Contacts &)));
 #endif
-    qDebug() << "TpSessionAccount::onContactsConnectionReady "<< acc->cmName() ;
+    //    qDebug() << "TpSessionAccount::onContactsConnectionReady "<< acc->cmName() ;
     //    RosterItem *item;
     bool exists;
     myContacts=contactsConn->contactManager()->allKnownContacts();
     foreach (const Tp::ContactPtr &contact, myContacts) {
-        qDebug() << "id=" <<contact->id() << " alias=" << contact->alias() << " presence=" << contact->presenceStatus()  ;
+      //        qDebug() << "id=" <<contact->id() << " alias=" << contact->alias() << " presence=" << contact->presenceStatus()  ;
         if(contact->id()==reqContact) {
             addOutgoingChannel(contact);
             reqContact="";
@@ -188,7 +196,7 @@ void TpSessionAccount::onNewContactRetrieved(Tp::PendingOperation *op)
     }
 
     Tp::ContactPtr contact = contacts.first();
-    qDebug() << "TpSessionAccount::onContactRetrieved" << reqContact;
+    //    qDebug() << "TpSessionAccount::onContactRetrieved" << reqContact;
     if(!reqContact.isEmpty()) addOutgoingChannel(contacts.first());
 }
 /**
@@ -208,8 +216,10 @@ void TpSessionAccount::sendMessageToAddress(QString address,QString message)
 {
     Tp::ContactPtr p;
     TpSessionChannel* channel=getChannelFromPeerAddress(address);
-    if(channel)
+    if(channel) {
         channel->sendMessage(message); // We have already channel
+        emit messageQueued(this);
+    }
     else {
         reqMessage=message;
         p=getContactFromAddress(address); // Do we have contact ready ?
@@ -224,7 +234,7 @@ void TpSessionAccount::addOutgoingChannel(const Tp::ContactPtr &contact)
 {
 
 
-    qDebug() << "TpSessionAccount::addOutgoingChannel";
+  //    qDebug() << "TpSessionAccount::addOutgoingChannel";
 
      TpSessionChannel* newChannel=new TpSessionChannel(contact->manager()->connection(),contact);
      connect(newChannel,SIGNAL(messageReceived(const Tp::ReceivedMessage &,TpSessionChannel *)),
@@ -237,22 +247,25 @@ void TpSessionAccount::addOutgoingChannel(const Tp::ContactPtr &contact)
 
 void TpSessionAccount::onOutgoingChannelReady(TpSessionChannel *ch)
 {
- qDebug() << "TpSessionAccoiunt::onOutgoingChannelReady";
+  // qDebug() << "TpSessionAccoiunt::onOutgoingChannelReady";
  emit channelReady(this);
- if(!reqMessage.isEmpty()) ch->sendMessage(reqMessage);
+ if(!reqMessage.isEmpty()) {
+   ch->sendMessage(reqMessage);
+   emit messageQueued(this);
+ };
  reqMessage.clear();
 }
 
 
 void TpSessionAccount::onMessageSent(const Tp::Message &msg,Tp::MessageSendingFlags, const QString &flags)
 {
-    qDebug() << "TpSessionAccount::onMessageSent";
+  //    qDebug() << "TpSessionAccount::onMessageSent";
     emit messageSent(msg,this);
 };
 
 void TpSessionAccount::onMessageReceived(const Tp::ReceivedMessage &msg,TpSessionChannel *ch)
 {
-    qDebug() << "TpSessionAccount::onMessageReceived " << msg.text();
+  //    qDebug() << "TpSessionAccount::onMessageReceived " << msg.text();
     emit messageReceived(msg,this);
 };
 
@@ -260,18 +273,18 @@ void TpSessionAccount::onNewChannels(const Tp::ChannelDetailsList &channels)
 {
 
     Tp::TextChannelPtr myIngoingTextChannel;
-    qDebug() << "TpSessionAccount::onNewChannels";
+    //    qDebug() << "TpSessionAccount::onNewChannels";
     foreach (const Tp::ChannelDetails &details, channels) {
         QString channelType = details.properties.value(QLatin1String(TELEPATHY_INTERFACE_CHANNEL ".ChannelType")).toString();
         QString targetId = details.properties.value(QLatin1String(TELEPATHY_INTERFACE_CHANNEL ".TargetID")).toString();
         bool requested = details.properties.value(QLatin1String(TELEPATHY_INTERFACE_CHANNEL ".Requested")).toBool();
-        qDebug() << " channelType:" << channelType <<" requested  :" << requested << " targetId" << targetId;
+       //        qDebug() << " channelType:" << channelType <<" requested  :" << requested << " targetId" << targetId;
 
         emit newChannel(this,channelType,targetId,details);
         if (channelType == TELEPATHY_INTERFACE_CHANNEL_TYPE_TEXT && !requested) {
 
             myIngoingTextChannel = Tp::TextChannel::create(acc->connection(),details.channel.path(),details.properties);
-            qDebug() << "TpSessionAccount::onNewChannels path=" <<"path " << myIngoingTextChannel->objectPath();
+           //            qDebug() << "TpSessionAccount::onNewChannels path=" <<"path " << myIngoingTextChannel->objectPath();
 
             TpSessionChannel* newChannel=new TpSessionChannel( myIngoingTextChannel);
             connect(newChannel,SIGNAL(messageReceived(const Tp::ReceivedMessage &,TpSessionChannel *)),
@@ -279,7 +292,7 @@ void TpSessionAccount::onNewChannels(const Tp::ChannelDetailsList &channels)
             myChannels+=newChannel;
         }
         if (channelType == TELEPATHY_INTERFACE_CHANNEL_TYPE_STREAMED_MEDIA && !requested) {
-            qDebug() << "Incoming call" ;
+         //            qDebug() << "Incoming call" ;
         }
     }
 }