On Monday 05 May 2003 19:40, Juan F. Codagnone wrote:
> qt-gui already shows the client information for others licq peers in user's
> tooltip. This small patch extends that, so all the known clients are
> showed, not just licq.


rediffed to HEAD.

-- 
Buenos Aires, Argentina                         11°C with winds at 20 km/h WSW
Index: include/licq_user.h
===================================================================
RCS file: /cvsroot/licq/licq/include/licq_user.h,v
retrieving revision 1.44
diff -u -d -p -r1.44 licq_user.h
--- include/licq_user.h	2 Jul 2003 04:41:02 -0000	1.44
+++ include/licq_user.h	10 Jul 2003 03:16:18 -0000
@@ -398,6 +398,7 @@ public:
   char *IdString()                      { return m_szId; }
 
   char *usprintf(const char *szFormat, unsigned long nFlags = 0);
+  const char *ClientInfo()                    { return m_szClientInfo; }
 
   // General Info
   void SetAlias (const char *n);// {  SetString(&m_szAlias, n);  SaveGeneralInfo();  }
@@ -476,6 +477,10 @@ public:
   void ClearCustomAutoResponse()            { SetCustomAutoResponse(""); }
   void SetPPID(unsigned long n)       { m_nPPID = n; }
   void SetId(const char *s)            { SetString(&m_szId, s); SaveLicqInfo(); }
+  void SetClientInfo(const char *s)
+  { free(m_szClientInfo); 
+    if(s) m_szClientInfo = strdup(s); else m_szClientInfo = NULL; 
+  }
 
   // Status
   unsigned short Status();
@@ -625,6 +630,7 @@ protected:
                 m_nSequence,
                 m_nGroups[2];
   char m_nMode;
+  char *m_szClientInfo;
   char *m_szAutoResponse;
   char *m_szEncoding;
   char *m_szCustomAutoResponse;
Index: plugins/qt-gui/src/userbox.cpp
===================================================================
RCS file: /cvsroot/licq/qt-gui/src/userbox.cpp,v
retrieving revision 1.147
diff -u -d -p -r1.147 userbox.cpp
--- plugins/qt-gui/src/userbox.cpp	2 Jul 2003 04:41:02 -0000	1.147
+++ plugins/qt-gui/src/userbox.cpp	10 Jul 2003 03:16:27 -0000
@@ -1389,10 +1389,9 @@ void CUserView::maybeTip(const QPoint& c
     QTextCodec * codec = UserCodec::codecForICQUser(u);
     if (u != NULL)
     {
-      if (u->SecureChannelSupport() == SECURE_CHANNEL_SUPPORTED)
-        s += tr("<br>Licq&nbsp;%1/SSL").arg(CUserEvent::LicqVersionToString(u->LicqVersion()));
-      else if (u->SecureChannelSupport() == SECURE_CHANNEL_NOTSUPPORTED)
-        s += tr("<br>Licq&nbsp;%1").arg(CUserEvent::LicqVersionToString(u->LicqVersion()));
+      const char *p = u->ClientInfo();
+      if( p )
+        s += "<br>" + QString(p).replace(' ', "&nbsp;");
 
       if (u->AutoResponse() && *u->AutoResponse() &&
           item->m_nStatus != ICQ_STATUS_OFFLINE &&
Index: src/icqd-srv.cpp
===================================================================
RCS file: /cvsroot/licq/licq/src/icqd-srv.cpp,v
retrieving revision 1.116
diff -u -d -p -r1.116 icqd-srv.cpp
--- src/icqd-srv.cpp	2 Jul 2003 04:41:01 -0000	1.116
+++ src/icqd-srv.cpp	10 Jul 2003 03:16:35 -0000
@@ -1919,30 +1919,33 @@ void CICQDaemon::ProcessBuddyFam(CBuffer
 
       char szExtraInfo[28] = { 0 };
       if ((timestamp & 0xFFFF0000) == LICQ_WITHSSL)
-        snprintf(szExtraInfo, 27, " [Licq %s/SSL]",
+        snprintf(szExtraInfo, 27, "Licq %s/SSL",
                  CUserEvent::LicqVersionToString(timestamp & 0xFFFF));
       else if ((timestamp & 0xFFFF0000) == LICQ_WITHOUTSSL)
-        snprintf(szExtraInfo, 27, " [Licq %s]",
+        snprintf(szExtraInfo, 27, "Licq %s",
                  CUserEvent::LicqVersionToString(timestamp & 0xFFFF));
       else if (timestamp == 0xffffffff)
-        strcpy(szExtraInfo, " [MIRANDA]");
+        strcpy(szExtraInfo, "MIRANDA");
       else if (timestamp == 0xFFFFFF8F)
-        strcpy(szExtraInfo, " [StrICQ]");
+        strcpy(szExtraInfo, "StrICQ");
       else if (timestamp == 0xFFFFFF42)
-        strcpy(szExtraInfo, " [mICQ]");
+        strcpy(szExtraInfo, "mICQ");
       else if (timestamp == 0xFFFFFF7F)
-        strcpy(szExtraInfo, " [&RQ]");
+        strcpy(szExtraInfo, "&RQ");
       else if (timestamp == 0xFFFFFFAB)
-        strcpy(szExtraInfo, " [YSM]");
+        strcpy(szExtraInfo, "YSM");
       else
-        strcpy(szExtraInfo, "");
+        szExtraInfo[0]=0;
       szExtraInfo[27] = '\0';
 
+      u->SetClientInfo(szExtraInfo[0] ? szExtraInfo : NULL);
       if (nOldStatus != nNewStatus)
       {
         ChangeUserStatus(u, nNewStatus);
-        gLog.Info("%s%s (%s) changed status: %s (v%01x)%s.\n", L_SRVxSTR, u->GetAlias(),
-                  u->IdString(), u->StatusStr(), tcpVersion & 0x0F, szExtraInfo);
+        gLog.Info("%s%s (%s) changed status: %s (v%01x)%c%s%c.\n",
+                   L_SRVxSTR, u->GetAlias(), u->IdString(), u->StatusStr(),
+                   tcpVersion & 0x0F, szExtraInfo[0] ? '[' : ' ',
+                   szExtraInfo,  szExtraInfo[0] ? ']' : '\0');
         if ( (nNewStatus & ICQ_STATUS_FxUNKNOWNxFLAGS) )
           gLog.Unknown("%sUnknown status flag for %s (%s): 0x%08lX\n",
                        L_UNKNOWNxSTR, u->GetAlias(), u->IdString(),
Index: src/user.cpp
===================================================================
RCS file: /cvsroot/licq/licq/src/user.cpp,v
retrieving revision 1.76
diff -u -d -p -r1.76 user.cpp
--- src/user.cpp	2 Jul 2003 04:41:01 -0000	1.76
+++ src/user.cpp	10 Jul 2003 03:16:35 -0000
@@ -1592,6 +1592,7 @@ ICQUser::~ICQUser()
       free( m_szAbout );
   if ( m_szCustomAutoResponse )
       free( m_szCustomAutoResponse );
+  free( m_szClientInfo );
   if ( m_szId )
       free( m_szId );
 /*
@@ -1732,6 +1733,7 @@ void ICQUser::Init(const char *_szId, un
   m_bAwaitingAuth = false;
   m_nSID[0] = m_nSID[1] = m_nSID[2] = 0;
   m_nGSID = 0;
+  m_szClientInfo = NULL;
 
   snprintf(m_szUinString, 12, "%lu", m_nUin);
   m_szUinString[12] = '\0';

Attachment: pgp00000.pgp
Description: signature

Reply via email to