Show
Ignore:
Timestamp:
03/16/08 18:46:17 (9 months ago)
Author:
flynd
Message:

Updated variables and function names in user event dialog to conform better with code style.

Location:
trunk/qt4-gui/src/userevents
Files:
19 modified

Legend:

Unmodified
Added
Removed
  • trunk/qt4-gui/src/userevents/usereventcommon.cpp

    r6103 r6108  
    5757/* TRANSLATOR LicqQtGui::UserEventCommon */ 
    5858 
     59using std::list; 
     60using std::string; 
     61 
    5962UserEventCommon::UserEventCommon(QString id, unsigned long ppid, QWidget* parent, const char* name) 
    6063  : QWidget(parent), 
     
    9497  myConvoId = 0; 
    9598 
    96   top_hlay = new QHBoxLayout(this); 
    97   top_lay = new QVBoxLayout(); 
    98   top_hlay->addLayout(top_lay); 
    99   top_hlay->setStretchFactor(top_lay, 1); 
     99  myTophLayout = new QHBoxLayout(this); 
     100  myTopLayout = new QVBoxLayout(); 
     101  myTophLayout->addLayout(myTopLayout); 
     102  myTophLayout->setStretchFactor(myTopLayout, 1); 
    100103 
    101104  QHBoxLayout* layt = new QHBoxLayout(); 
    102   top_lay->addLayout(layt); 
     105  myTopLayout->addLayout(layt); 
    103106 
    104107  myToolBar = new QToolBar(); 
     
    119122  layt->addWidget(myTimezone); 
    120123 
    121   myMenu = myToolBar->addAction(tr("Menu"), this, SLOT(slotUserMenu())); 
     124  myMenu = myToolBar->addAction(tr("Menu"), this, SLOT(showUserMenu())); 
    122125  myMenu->setShortcut(Qt::ALT + Qt::Key_M); 
    123126  pushToolTip(myMenu, tr("Open user menu")); 
     
    126129    myMenu->setEnabled(false); 
    127130 
    128   myHistory = myToolBar->addAction(tr("History..."), this, SLOT(slotShowHistory())); 
     131  myHistory = myToolBar->addAction(tr("History..."), this, SLOT(showHistory())); 
    129132  myHistory->setShortcut(Qt::ALT + Qt::Key_H); 
    130133  pushToolTip(myHistory, tr("Show user history")); 
    131134 
    132   myInfo = myToolBar->addAction(tr("User Info..."), this, SLOT(slotShowUserInfo())); 
     135  myInfo = myToolBar->addAction(tr("User Info..."), this, SLOT(showUserInfo())); 
    133136  myInfo->setShortcut(Qt::ALT + Qt::Key_I); 
    134137  pushToolTip(myInfo, tr("Show user information")); 
    135138 
    136   popupEncoding = new QMenu(this); 
     139  myEncodingsMenu = new QMenu(this); 
    137140 
    138141  myEncoding = myToolBar->addAction(tr("Encoding"), this, SLOT(showEncodingsMenu())); 
    139142  myEncoding->setShortcut(Qt::ALT + Qt::Key_O); 
    140143  pushToolTip(myEncoding, tr("Select the text encoding used for outgoing messages.")); 
    141   myEncoding->setMenu(popupEncoding); 
     144  myEncoding->setMenu(myEncodingsMenu); 
    142145 
    143146  myToolBar->addSeparator(); 
    144147 
    145   mySecure = myToolBar->addAction(tr("Secure Channel"), this, SLOT(slotSwitchSecurity())); 
     148  mySecure = myToolBar->addAction(tr("Secure Channel"), this, SLOT(switchSecurity())); 
    146149  mySecure->setShortcut(Qt::ALT + Qt::Key_E); 
    147150  pushToolTip(mySecure, tr("Open / Close secure channel")); 
     
    149152    mySecure->setEnabled(false); 
    150153 
    151   tmrTime = NULL; 
    152   tmrTyping = NULL; 
     154  myTimeTimer = NULL; 
     155  myTypingTimer = NULL; 
    153156 
    154157  ICQUser* u = gUserManager.FetchUser(myUsers.front().c_str(), myPpid, LOCK_R); 
     
    172175  } 
    173176 
    174   encodingsGroup = new QActionGroup(this); 
    175   connect(encodingsGroup, SIGNAL(triggered(QAction*)), SLOT(slotSetEncoding(QAction*))); 
     177  myEncodingsGroup = new QActionGroup(this); 
     178  connect(myEncodingsGroup, SIGNAL(triggered(QAction*)), SLOT(setEncoding(QAction*))); 
    176179 
    177180  QString codec_name = QString::fromLatin1(myCodec->name()).toLower(); 
     
    190193      continue; 
    191194 
    192     QAction* a = new QAction(UserCodec::nameForEncoding(it->encoding), encodingsGroup); 
     195    QAction* a = new QAction(UserCodec::nameForEncoding(it->encoding), myEncodingsGroup); 
    193196    a->setCheckable(true); 
    194197    a->setData(it->mib); 
     
    200203    { 
    201204      // if the current encoding does not appear in the minimal list 
    202       popupEncoding->insertSeparator(popupEncoding->actions()[0]); 
    203       popupEncoding->insertAction(popupEncoding->actions()[0], a); 
     205      myEncodingsMenu->insertSeparator(myEncodingsMenu->actions()[0]); 
     206      myEncodingsMenu->insertAction(myEncodingsMenu->actions()[0], a); 
    204207    } 
    205208    else 
    206209    { 
    207       popupEncoding->addAction(a); 
     210      myEncodingsMenu->addAction(a); 
    208211    } 
    209212  } 
     
    211214  // We might be called from a slot so connect the signal only after all the 
    212215  // existing signals are handled. 
    213   QTimer::singleShot(0, this, SLOT(slotConnectSignal())); 
    214  
    215   mainWidget = new QVBoxLayout(); 
    216   mainWidget->setContentsMargins(0, 0, 0, 0); 
    217   top_lay->addLayout(mainWidget); 
     216  QTimer::singleShot(0, this, SLOT(connectSignal())); 
     217 
     218  myMainWidget = new QVBoxLayout(); 
     219  myMainWidget->setContentsMargins(0, 0, 0, 0); 
     220  myTopLayout->addLayout(myMainWidget); 
    218221 
    219222  updateIcons(); 
     
    223226  if (!Config::Chat::instance()->tabbedChatting() && 
    224227      Config::Chat::instance()->msgWinSticky()) 
    225     QTimer::singleShot(100, this, SLOT(slotSetMsgWinSticky())); 
     228    QTimer::singleShot(100, this, SLOT(setMsgWinSticky())); 
    226229} 
    227230 
     
    259262  if (type == ICQ_TYPING_ACTIVE) 
    260263  { 
    261     if (tmrTyping->isActive()) 
    262       tmrTyping->stop(); 
    263     tmrTyping->setSingleShot(true); 
    264     tmrTyping->start(10000); 
     264    if (myTypingTimer->isActive()) 
     265      myTypingTimer->stop(); 
     266    myTypingTimer->setSingleShot(true); 
     267    myTypingTimer->start(10000); 
    265268 
    266269    QPalette p = myTimezone->palette(); 
     
    289292  { 
    290293    myRemoteTimeOffset = u->LocalTimeOffset(); 
    291     slotUpdateTime(); 
    292  
    293     if (tmrTime == NULL) 
    294     { 
    295       tmrTime = new QTimer(this); 
    296       connect(tmrTime, SIGNAL(timeout()), SLOT(slotUpdateTime())); 
    297       tmrTime->start(3000); 
    298     } 
    299   } 
    300  
    301   if (tmrTyping == NULL) 
    302   { 
    303     tmrTyping = new QTimer(this); 
    304     connect(tmrTyping, SIGNAL(timeout()), SLOT(slotUpdateTyping())); 
     294    updateTime(); 
     295 
     296    if (myTimeTimer == NULL) 
     297    { 
     298      myTimeTimer = new QTimer(this); 
     299      connect(myTimeTimer, SIGNAL(timeout()), SLOT(updateTime())); 
     300      myTimeTimer->start(3000); 
     301    } 
     302  } 
     303 
     304  if (myTypingTimer == NULL) 
     305  { 
     306    myTypingTimer = new QTimer(this); 
     307    connect(myTypingTimer, SIGNAL(timeout()), SLOT(updateTyping())); 
    305308  } 
    306309 
     
    345348} 
    346349 
    347 void UserEventCommon::slotConnectSignal() 
     350void UserEventCommon::connectSignal() 
    348351{ 
    349352  connect(LicqGui::instance()->signalManager(), 
    350       SIGNAL(updatedUser(CICQSignal*)), SLOT(slotUserUpdated(CICQSignal*))); 
    351 } 
    352  
    353 void UserEventCommon::slotSetEncoding(QAction* action) 
     353      SIGNAL(updatedUser(CICQSignal*)), SLOT(updatedUser(CICQSignal*))); 
     354} 
     355 
     356void UserEventCommon::setEncoding(QAction* action) 
    354357{ 
    355358  int encodingMib = action->data().toUInt(); 
     
    384387} 
    385388 
    386 void UserEventCommon::slotSetMsgWinSticky(bool sticky) 
     389void UserEventCommon::setMsgWinSticky(bool sticky) 
    387390{ 
    388391  Support::changeWinSticky(winId(), sticky); 
    389392} 
    390393 
    391 void UserEventCommon::slotShowHistory() 
     394void UserEventCommon::showHistory() 
    392395{ 
    393396  new HistoryDlg(myUsers.front().c_str(), myPpid); 
    394397} 
    395398 
    396 void UserEventCommon::slotShowUserInfo() 
     399void UserEventCommon::showUserInfo() 
    397400{ 
    398401  LicqGui::instance()->showInfoDialog(mnuUserGeneral, myUsers.front().c_str(), myPpid, true); 
    399402} 
    400403 
    401 void UserEventCommon::slotSwitchSecurity() 
     404void UserEventCommon::switchSecurity() 
    402405{ 
    403406  new KeyRequestDlg(QString::fromAscii(myUsers.front().c_str()), myPpid); 
    404407} 
    405408 
    406 void UserEventCommon::slotUpdateTime() 
     409void UserEventCommon::updateTime() 
    407410{ 
    408411  QDateTime t; 
     
    411414} 
    412415 
    413 void UserEventCommon::slotUpdateTyping() 
     416void UserEventCommon::updateTyping() 
    414417{ 
    415418  // MSN needs this, ICQ/AIM doesn't send additional packets 
     
    429432} 
    430433 
    431 void UserEventCommon::slotUserMenu() 
     434void UserEventCommon::showUserMenu() 
    432435{ 
    433436  // Tell menu which contact to use and show it immediately. 
     
    444447} 
    445448 
    446 void UserEventCommon::slotUserUpdated(CICQSignal* sig) 
     449void UserEventCommon::updatedUser(CICQSignal* sig) 
    447450{ 
    448451  if (myPpid != sig->PPID() || !isUserInConvo(sig->Id())) 
  • trunk/qt4-gui/src/userevents/usereventcommon.h

    r6103 r6108  
    3636class ICQUser; 
    3737 
    38 using std::list; 
    39 using std::string; 
    40  
    4138 
    4239namespace LicqQtGui 
     
    5552  unsigned long ppid() { return myPpid; } 
    5653  unsigned long convoId() { return myConvoId; } 
    57   list<string>& convoUsers() { return myUsers; } 
     54  std::list<std::string>& convoUsers() { return myUsers; } 
    5855  void setConvoId(unsigned long n) { myConvoId = n; } 
    5956  void addEventTag(unsigned long n) { if (n) myEventTag.push_back(n); } 
     
    7067  unsigned long myConvoId; 
    7168  time_t myRemoteTimeOffset; 
    72   list<string> myUsers; 
     69  std::list<std::string> myUsers; 
    7370  unsigned long mySendFuncs; 
    7471 
     
    8178  QString myProgressMsg; 
    8279 
    83   QHBoxLayout* top_hlay; 
    84   QVBoxLayout* top_lay; 
    85   QVBoxLayout* mainWidget; 
     80  QHBoxLayout* myTophLayout; 
     81  QVBoxLayout* myTopLayout; 
     82  QVBoxLayout* myMainWidget; 
    8683  QToolBar* myToolBar; 
    87   QMenu* popupEncoding; 
    88   QActionGroup* encodingsGroup; 
     84  QMenu* myEncodingsMenu; 
     85  QActionGroup* myEncodingsGroup; 
    8986  QAction* myMenu; 
    9087  QAction* myHistory; 
     
    9794  InfoField* myTimezone; 
    9895  QTextCodec* myCodec; 
    99   QTimer* tmrTime; 
    100   QTimer* tmrTyping; 
     96  QTimer* myTimeTimer; 
     97  QTimer* myTypingTimer; 
    10198 
    10299  void flashTaskbar(); 
     
    112109  virtual void updateIcons(); 
    113110 
    114   void slotConnectSignal(); 
    115   void slotSetEncoding(QAction* action); 
    116   void slotSetMsgWinSticky(bool sticky = true); 
    117   void slotShowHistory(); 
    118   void slotShowUserInfo(); 
    119   void slotSwitchSecurity(); 
    120   void slotUpdateTime(); 
    121   void slotUpdateTyping(); 
    122   void slotUserMenu(); 
     111  void connectSignal(); 
     112  void setEncoding(QAction* action); 
     113  void setMsgWinSticky(bool sticky = true); 
     114  void showHistory(); 
     115  void showUserInfo(); 
     116  void switchSecurity(); 
     117  void updateTime(); 
     118  void updateTyping(); 
     119  void showUserMenu(); 
    123120  void showEncodingsMenu(); 
    124   void slotUserUpdated(CICQSignal* sig); 
     121  void updatedUser(CICQSignal* sig); 
    125122 
    126123signals: 
  • trunk/qt4-gui/src/userevents/usereventtabdlg.cpp

    r6082 r6108  
    4343/* TRANSLATOR LicqQtGui::UserEventTabDlg */ 
    4444 
     45using std::list; 
     46using std::string; 
     47 
    4548UserEventTabDlg::UserEventTabDlg(QWidget* parent, const char* name) 
    4649  : QWidget(parent) 
     
    5558    setGeometry(Config::Chat::instance()->dialogRect()); 
    5659 
    57   tabw = new TabWidget(); 
    58   lay->addWidget(tabw); 
    59  
    60   connect(tabw, SIGNAL(currentChanged(int)), 
    61           SLOT(slotCurrentChanged(int))); 
    62   connect(tabw, SIGNAL(mouseMiddleClick(QWidget*)), 
    63           SLOT(slotRemoveTab(QWidget*))); 
     60  myTabs = new TabWidget(); 
     61  lay->addWidget(myTabs); 
     62 
     63  connect(myTabs, SIGNAL(currentChanged(int)), SLOT(currentChanged(int))); 
     64  connect(myTabs, SIGNAL(mouseMiddleClick(QWidget*)), SLOT(removeTab(QWidget*))); 
    6465} 
    6566 
     
    7879 
    7980  label = QString::fromUtf8(u->GetAlias()); 
    80   index = tabw->insertTab(index, tab, label); 
     81  index = myTabs->insertTab(index, tab, label); 
    8182  updateTabLabel(u); 
    8283  gUserManager.DropUser(u); 
    83   QWidget* fw = tabw->focusWidget(); 
     84  QWidget* fw = myTabs->focusWidget(); 
    8485  if (Config::Chat::instance()->autoFocus()) 
    85     tabw->setCurrentIndex(index); 
     86    myTabs->setCurrentIndex(index); 
    8687  else 
    8788    if (fw != NULL) 
     
    9192void UserEventTabDlg::selectTab(QWidget* tab) 
    9293{ 
    93   tabw->setCurrentIndex(tabw->indexOf(tab)); 
     94  myTabs->setCurrentIndex(myTabs->indexOf(tab)); 
    9495  updateTitle(tab); 
    9596} 
     
    9798void UserEventTabDlg::replaceTab(QWidget* oldTab, UserEventCommon* newTab) 
    9899{ 
    99   addTab(newTab, tabw->indexOf(oldTab)); 
    100   slotRemoveTab(oldTab); 
     100  addTab(newTab, myTabs->indexOf(oldTab)); 
     101  removeTab(oldTab); 
    101102} 
    102103 
    103104bool UserEventTabDlg::tabIsSelected(QWidget* tab) 
    104105{ 
    105   return (tabw->currentIndex() == tabw->indexOf(tab)); 
     106  return (myTabs->currentIndex() == myTabs->indexOf(tab)); 
    106107} 
    107108 
    108109bool UserEventTabDlg::tabExists(QWidget* tab) 
    109110{ 
    110   return (tabw->indexOf(tab) != -1); 
     111  return (myTabs->indexOf(tab) != -1); 
    111112} 
    112113 
     
    134135  } 
    135136 
    136   tabw->setTabText(tabw->indexOf(tab), newLabel); 
     137  myTabs->setTabText(myTabs->indexOf(tab), newLabel); 
    137138} 
    138139 
     
    142143    return; 
    143144 
    144   for (int index = 0; index < tabw->count(); index++) 
     145  for (int index = 0; index < myTabs->count(); index++) 
    145146  { 
    146     UserEventCommon* tab = dynamic_cast<UserEventCommon*>(tabw->widget(index)); 
     147    UserEventCommon* tab = dynamic_cast<UserEventCommon*>(myTabs->widget(index)); 
    147148 
    148149    if (tab->ppid() == u->PPID() && tab->isUserInConvo(u->IdString())) 
     
    177178 
    178179        icon = IconManager::instance()->iconForEvent(SubCommand); 
    179         tabw->setTabColor(tab, QColor("blue")); 
     180        myTabs->setTabColor(tab, QColor("blue")); 
    180181 
    181182        // to clear it.. 
     
    187188 
    188189        if (u->GetTyping() == ICQ_TYPING_ACTIVE) 
    189           tabw->setTabColor(tab, Config::Chat::instance()->tabTypingColor()); 
     190          myTabs->setTabColor(tab, Config::Chat::instance()->tabTypingColor()); 
    190191        else 
    191           tabw->setTabColor(tab, QColor("black")); 
     192          myTabs->setTabColor(tab, QColor("black")); 
    192193      } 
    193194 
    194       tabw->setTabIcon(index, icon); 
    195       if (tabw->currentIndex() == index) 
     195      myTabs->setTabIcon(index, icon); 
     196      if (myTabs->currentIndex() == index) 
    196197        setWindowIcon(icon); 
    197198 
     
    203204void UserEventTabDlg::setTyping(ICQUser* u, int convoId) 
    204205{ 
    205   for (int index = 0; index < tabw->count(); index++) 
     206  for (int index = 0; index < myTabs->count(); index++) 
    206207  { 
    207     UserEventCommon* tab = dynamic_cast<UserEventCommon*>(tabw->widget(index)); 
     208    UserEventCommon* tab = dynamic_cast<UserEventCommon*>(myTabs->widget(index)); 
    208209 
    209210    if (tab->convoId() == static_cast<unsigned long>(convoId) && 
     
    227228 *  changed. 
    228229 */ 
    229 void UserEventTabDlg::slotCurrentChanged(int index) 
    230 { 
    231   QWidget* tab = tabw->widget(index); 
     230void UserEventTabDlg::currentChanged(int index) 
     231{ 
     232  QWidget* tab = myTabs->widget(index); 
    232233  tab->setFocus();  // prevents users from accidentally typing in the wrong widget 
    233234  updateTitle(tab); 
     
    235236} 
    236237 
    237 void UserEventTabDlg::slotMoveLeft() 
    238 { 
    239   tabw->setPreviousPage(); 
    240 } 
    241  
    242 void UserEventTabDlg::slotMoveRight() 
    243 { 
    244   tabw->setNextPage(); 
    245 } 
    246  
    247 void UserEventTabDlg::slotRemoveTab(QWidget* tab) 
    248 { 
    249   if (tabw->count() > 1) 
     238void UserEventTabDlg::moveLeft() 
     239{ 
     240  myTabs->setPreviousPage(); 
     241} 
     242 
     243void UserEventTabDlg::moveRight() 
     244{ 
     245  myTabs->setNextPage(); 
     246} 
     247 
     248void UserEventTabDlg::removeTab(QWidget* tab) 
     249{ 
     250  if (myTabs->count() > 1) 
    250251  { 
    251     int index = tabw->indexOf(tab); 
    252     tabw->removeTab(index); 
     252    int index = myTabs->indexOf(tab); 
     253    myTabs->removeTab(index); 
    253254    tab->close(); 
    254255    tab->setEnabled(false); 
     
    259260} 
    260261 
    261 void UserEventTabDlg::slotSetMsgWinSticky(bool sticky) 
     262void UserEventTabDlg::setMsgWinSticky(bool sticky) 
    262263{ 
    263264  Support::changeWinSticky(winId(), sticky); 
     
    270271    setWindowTitle(title); 
    271272 
    272   QIcon icon = tabw->tabIcon(tabw->indexOf(tab)); 
     273  QIcon icon = myTabs->tabIcon(myTabs->indexOf(tab)); 
    273274  if (!icon.isNull()) 
    274275    setWindowIcon(icon); 
     
    281282 
    282283  UserSendCommon* e = dynamic_cast<UserSendCommon*>(tab); 
    283   QTimer::singleShot(e->clearDelay, e, SLOT(slotClearNewEvents())); 
     284  QTimer::singleShot(e->clearDelay, e, SLOT(clearNewEvents())); 
    284285} 
    285286 
  • trunk/qt4-gui/src/userevents/usereventtabdlg.h

    r6046 r6108  
    5858 
    5959public slots: 
    60   void slotCurrentChanged(int index); 
    61   void slotMoveLeft(); 
    62   void slotMoveRight(); 
    63   void slotRemoveTab(QWidget* tab); 
    64   void slotSetMsgWinSticky(bool sticky = true); 
     60  void currentChanged(int index); 
     61  void moveLeft(); 
     62  void moveRight(); 
     63  void removeTab(QWidget* tab); 
     64  void setMsgWinSticky(bool sticky = true); 
    6565 
    6666private: 
    67   TabWidget* tabw; 
     67  TabWidget* myTabs; 
    6868 
    6969  void updateTitle(QWidget* tab); 
  • trunk/qt4-gui/src/userevents/usersendchatevent.cpp

    r6097 r6108  
    5151{ 
    5252  myChatPort = 0; 
    53   chkMass->setChecked(false); 
    54   chkMass->setEnabled(false); 
     53  myMassMessageCheck->setChecked(false); 
     54  myMassMessageCheck->setEnabled(false); 
    5555  myForeColor->setEnabled(false); 
    5656  myBackColor->setEnabled(false); 
    5757 
    58   mainWidget->addWidget(splView); 
     58  myMainWidget->addWidget(myViewSplitter); 
    5959 
    6060  if (!Config::Chat::instance()->msgChatView()) 
    61     mleSend->setMinimumHeight(150); 
     61    myMessageEdit->setMinimumHeight(150); 
    6262 
    6363  QHBoxLayout* h_lay = new QHBoxLayout(); 
    64   mainWidget->addLayout(h_lay); 
    65   lblItem = new QLabel(tr("Multiparty: ")); 
    66   h_lay->addWidget(lblItem); 
     64  myMainWidget->addLayout(h_lay); 
     65  myItemLabel = new QLabel(tr("Multiparty: ")); 
     66  h_lay->addWidget(myItemLabel); 
    6767 
    68   edtItem = new InfoField(false); 
    69   h_lay->addWidget(edtItem); 
     68  myItemEdit = new InfoField(false); 
     69  h_lay->addWidget(myItemEdit); 
    7070 
    71   btnBrowse = new QPushButton(tr("Invite")); 
    72   connect(btnBrowse, SIGNAL(clicked()), SLOT(inviteUser())); 
    73   h_lay->addWidget(btnBrowse); 
     71  myBrowseButton = new QPushButton(tr("Invite")); 
     72  connect(myBrowseButton, SIGNAL(clicked()), SLOT(inviteUser())); 
     73  h_lay->addWidget(myBrowseButton); 
    7474 
    7575  myBaseTitle += tr(" - Chat Request"); 
     
    8080 
    8181  setWindowTitle(myBaseTitle); 
    82   grpSendType->actions().at(ChatEvent)->setChecked(true); 
     82  myEventTypeGroup->actions().at(ChatEvent)->setChecked(true); 
    8383} 
    8484 
     
    118118void UserSendChatEvent::resetSettings() 
    119119{ 
    120   mleSend->clear(); 
    121   edtItem->clear(); 
    122   mleSend->setFocus(); 
    123   slotMassMessageToggled(false); 
     120  myMessageEdit->clear(); 
     121  myItemEdit->clear(); 
     122  myMessageEdit->setFocus(); 
     123  massMessageToggled(false); 
    124124} 
    125125 
     
    134134      if (j->exec() && (chatDlg = j->JoinedChat()) != NULL) 
    135135      { 
    136         edtItem->setText(j->ChatClients()); 
     136        myItemEdit->setText(j->ChatClients());