Show
Ignore:
Timestamp:
05/25/08 06:25:18 (8 months ago)
Author:
flynd
Message:

Use new group subsignals from daemon. Removed some workarounds no longer needed.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/qt4-gui/src/core/groupmenu.cpp

    r6154 r6200  
    8989    delete a; 
    9090 
    91   ContactListModel* list = LicqGui::instance()->contactList(); 
    92   int groupCount = list->rowCount(QModelIndex()); 
     91  GroupList* g = gUserManager.LockGroupList(LOCK_R); 
     92  for (unsigned int i = 0; i < g->size(); ++i) 
     93  { 
     94    QString name = QString::fromLocal8Bit((*g)[i]); 
    9395 
    94   for (int i = 0; i < groupCount; ++i) 
    95   { 
    96     QModelIndex groupIndex = list->index(i, 0, QModelIndex()); 
    97     unsigned int groupId = groupIndex.data(ContactListModel::GroupIdRole).toUInt(); 
     96    a = myUserGroupActions->addAction(name); 
     97    a->setData(i + 1); 
    9898 
    99     // Don't add system groups or other users group 
    100     if (groupId == 0 || groupId >= ContactListModel::SystemGroupOffset) 
    101       continue; 
    102  
    103     a = myUserGroupActions->addAction(groupIndex.data(ContactListModel::NameRole).toString()); 
    104     a->setData(groupId); 
     99    myGroupsMenu->insertAction(myGroupSeparator, a); 
    105100  } 
     101  gUserManager.UnlockGroupList(); 
    106102 
    107103  // Add groups to menu 
     
    139135  // Model uses group+1 so substract one before sending to daemon 
    140136  gUserManager.SwapGroups(myGroupId, myGroupId - 1); 
    141  
    142   // Daemon doesn't notify us when groups change so notify model from here 
    143   LicqGui::instance()->contactList()->reloadAll(); 
    144   LicqGui::instance()->mainWindow()->updateGroups(); 
    145137} 
    146138 
     
    149141  // Model uses group+1 so substract one before sending to daemon 
    150142  gUserManager.SwapGroups(myGroupId, myGroupId + 1); 
    151  
    152   // Daemon doesn't notify us when groups change so notify model from here 
    153   LicqGui::instance()->contactList()->reloadAll(); 
    154   LicqGui::instance()->mainWindow()->updateGroups(); 
    155143} 
    156144 
     
    165153 
    166154  gUserManager.RemoveGroup(myGroupId); 
    167  
    168   // Daemon doesn't notify us when groups change so notify model from here 
    169   LicqGui::instance()->contactList()->reloadAll(); 
    170   LicqGui::instance()->mainWindow()->updateGroups(); 
    171155} 
    172156