Changeset 6263

Show
Ignore:
Timestamp:
06/11/08 10:06:56 (3 months ago)
Author:
eugene
Message:

Revised user adding algorithm.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/qt4-gui_group/src/dialogs/adduserdlg.cpp

    r6262 r6263  
    9292void AddUserDlg::ok() 
    9393{ 
    94   QString id = myId->text().trimmed(); 
     94  QByteArray id = myId->text().trimmed().toLatin1(); 
     95  unsigned long ppid = myProtocol->currentPpid(); 
     96  unsigned short group = myGroup->currentGroupId(); 
     97  bool notify = myNotify->isChecked(); 
    9598 
    9699  if (!id.isEmpty()) 
    97100  { 
    98     unsigned short currentNewGroup = gUserManager.NewUserGroup(); 
    99     gUserManager.SetNewUserGroup(myGroup->currentGroupId()); 
    100     gLicqDaemon->AddUserToList(id.toLatin1(), myProtocol->currentPpid(), 
    101         myNotify->isChecked()); 
    102     gUserManager.SetNewUserGroup(currentNewGroup); 
     101    ICQUser* u = gUserManager.FetchUser(id, ppid, LOCK_W); 
     102 
     103    if (u == NULL) 
     104    { 
     105      unsigned short currentNewGroup = gUserManager.NewUserGroup(); 
     106      gUserManager.SetNewUserGroup(group); 
     107      gLicqDaemon->AddUserToList(id, ppid, notify); 
     108      gUserManager.SetNewUserGroup(currentNewGroup); 
     109    } 
     110    else 
     111    { 
     112      if (u->NotInList()) 
     113      { 
     114        u->SetPermanent(); 
     115        gUserManager.DropUser(u); 
     116        gUserManager.AddUserToGroup(id.toLatin1()); 
     117        if (notify && ppid == LICQ_PPID) 
     118          gLicqDaemon->icqAlertUser(id.toULong()); 
     119      } 
     120      else 
     121        gUserManager.DropUser(u); 
     122    } 
    103123  } 
    104124