Logo Search packages:      
Sourcecode: nateon version File versions  Download package

void KNateon::slotMoveBuddy ( const QString &  sGroup  )  [private, slot]

KSelectAction의 선택을 없앰.

pGroup에서 Group의 Buddy 리스트를 얻는다.

XXXXXXXXXXXXXXX TARGET GID

Group의 BuddyList에서 삭제된 버디 handle을 삭제한다. 이후 복사/이동에서 목록에 있어서 Skip 되는것을 방지한다.

pGroup에 추가된 buddy handle을 추가한다. 같은 그룹에 계속 추가되는것을 막음.

명령어가 있을때만 DP로 보냄.

목록 refresh

Definition at line 3897 of file knateon.cpp.

References Group::addBuddy(), BuddyList::getBuddyByHandle(), Group::getBuddyList(), CurrentAccount::getBuddyList(), GroupList::getGroupByID(), GroupList::getGroupByName(), NateonDPConnection::getGroupCache(), KNateonMainview::getGroupItemByName(), CurrentAccount::getGroupList(), BuddyBase::getHandle(), BuddyBase::getUID(), KNateonMainview::pMovebuddyAction, Group::removeBuddy(), NateonConnection::sendCommand(), KNateonMainview::slotEmoticonList(), and nmconfig::viewemoticonlist.

Referenced by connected().

{
      /*!
        KSelectAction의 선택을 없앰.
      */
      m_pMainView->pMovebuddyAction->setCurrentItem(-1);
      pMovefriendSelectAction->setCurrentItem(-1);

      QListView *pList = m_pMainView->listView3;
      m_pBuddyList = const_cast<BuddyList*>(m_pCurrentAccount->getBuddyList());
      QListViewItem *groupItem = m_pMainView->getGroupItemByName( sGroup );

      if ( !groupItem )
            return;
      
      /*!
        pGroup에서 Group의 Buddy 리스트를 얻는다.
      */
    QPtrList<Buddy> plBuddyList = m_pCurrentAccount->getGroupList()->getGroupByName( sGroup )->getBuddyList();

      QString sBody;
      int nIDX = 0;
      QListViewItemIterator it( pList );
      for ( ; it.current(); ++it )
      {
            if ( it.current()->isSelected() )
            {
                  if ( plBuddyList.contains( m_pBuddyList->getBuddyByHandle( it.current()->text(2) ) ) > 0 )
                  {
#ifdef NETDEBUG
                        kdDebug() << "This buddy is exist : [" << it.current()->text(2) << "]" << endl;
#endif
                        continue;
                  }

                  Buddy *pBuddy = m_pBuddyList->getBuddyByHandle( it.current()->text(2) );
                  if (pBuddy)
                  {
                        sBody += QString::number( nIDX++ );
                        sBody += " ";
                        sBody += pBuddy->getHandle();
                        sBody += " ";
                        sBody += pBuddy->getUID();
                        sBody += " ";
                        sBody += it.current()->text(1);
                        sBody += " ";
                        /*! XXXXXXXXXXXXXXX TARGET GID */
                        sBody += groupItem->text(1);
                        sBody += "\r\n";
                        /*!
                  Group의 BuddyList에서 삭제된 버디 handle을 삭제한다.
                  이후 복사/이동에서 목록에 있어서 Skip 되는것을 방지한다.
                        */
                        Group *pGroup = m_pCurrentAccount->getGroupList()->getGroupByID( it.current()->text(1) );
                        if ( pGroup )
                              pGroup->removeBuddy( pBuddy );
                        /*!
                  pGroup에 추가된 buddy handle을 추가한다.
                  같은 그룹에 계속 추가되는것을 막음.
                        */
                        m_pCurrentAccount->getGroupList()->getGroupByName( sGroup )->addBuddy( pBuddy );
                  }
            }
      }
      /*!
        명령어가 있을때만 DP로 보냄.
      */
      if ( sBody.length() )
      {
            QString sCommand;
            sCommand = QString::number( m_pDPcon->getGroupCache() );
            sCommand += " ";
            sCommand += QString::number( sBody.length() );
            sCommand += "\r\n";
            sCommand += sBody;

            m_pDPcon->sendCommand( "MVBG", sCommand );
            /*!
             * 목록 refresh
             */
            m_pMainView->slotEmoticonList( stConfig.viewemoticonlist );
    
      }
      else
      {
            KMessageBox::information (this, UTF8("친구 선택을 안하셨습니다.\n확인하시고 다시 실행해 주십시오."), UTF8("친구 이동 알림"));
      }
}


Generated by  Doxygen 1.6.0   Back to index