Changeset 6284
- Timestamp:
- 06/14/08 03:48:20 (6 months ago)
- Location:
- trunk/qt-gui/src
- Files:
-
- 6 modified
-
editgrp.cpp (modified) (6 diffs)
-
editgrp.h (modified) (5 diffs)
-
mainwin.cpp (modified) (17 diffs)
-
mainwin.h (modified) (2 diffs)
-
userbox.cpp (modified) (2 diffs)
-
userbox.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/qt-gui/src/editgrp.cpp
r5514 r6284 30 30 #include <qtoolbutton.h> 31 31 32 #include <licq_events.h> 33 #include <licq_user.h> 34 32 35 #include "editgrp.h" 33 36 #include "ewidgets.h" 34 37 #include "gui-strings.h" 35 38 #include "licq_user.h" 36 37 EditGrpDlg::EditGrpDlg(QWidget *parent) 39 #include "sigman.h" 40 41 EditGrpDlg::EditGrpDlg(CSignalManager* signalManager, QWidget *parent) 38 42 : QWidget(parent, "EditGroupDialog") 39 43 { … … 99 103 100 104 RefreshList(); 105 connect(signalManager, SIGNAL(signal_updatedList(CICQSignal*)), 106 this, SLOT(listUpdated(CICQSignal*))); 101 107 102 108 connect(btnAdd, SIGNAL(clicked()), this, SLOT(slot_add())); … … 107 113 connect(btnNewUser, SIGNAL(clicked()), this, SLOT(slot_newuser())); 108 114 connect(btnEdit, SIGNAL(clicked()), this, SLOT(slot_edit())); 109 connect(btnDone, SIGNAL(clicked()), this, SLOT( slot_done()));115 connect(btnDone, SIGNAL(clicked()), this, SLOT(close())); 110 116 connect(edtName, SIGNAL(returnPressed()), this, SLOT(slot_editok())); 111 117 connect(btnSave, SIGNAL(clicked()), this, SLOT(slot_editok())); 112 118 } 113 119 120 unsigned short EditGrpDlg::currentGroupId() const 121 { 122 if (lstGroups->currentItem() == -1) 123 return 0; 124 125 return myGroupIds[lstGroups->currentItem()]; 126 } 127 128 void EditGrpDlg::setCurrentGroupId(unsigned short groupId) 129 { 130 for (unsigned i = 0; i < lstGroups->count(); ++i) 131 if (myGroupIds[i] == groupId) 132 { 133 lstGroups->setCurrentItem(i); 134 break; 135 } 136 } 114 137 115 138 void EditGrpDlg::RefreshList() 116 139 { 140 unsigned short groupId = currentGroupId(); 117 141 lstGroups->clear(); 142 myGroupIds.clear(); 118 143 119 144 const QString allUsers = Strings::getSystemGroupName(GROUP_ALL_USERS); 120 145 121 146 lstGroups->insertItem(allUsers); 147 myGroupIds.push_back(0); 148 122 149 if (gUserManager.DefaultGroup() == GROUP_ALL_USERS) 123 150 nfoDefault->setText(allUsers); … … 125 152 nfoNewUser->setText(allUsers); 126 153 127 GroupList *g = gUserManager.LockGroupList(LOCK_R); 128 for (unsigned short i = 0; i < g->size(); i++) 154 FOR_EACH_GROUP_START_SORTED(LOCK_R) 129 155 { 130 lstGroups->insertItem(QString::fromLocal8Bit((*g)[i])); 131 if (i + 1 == gUserManager.DefaultGroup()) 132 nfoDefault->setText(QString::fromLocal8Bit((*g)[i])); 133 if (i + 1== gUserManager.NewUserGroup()) 134 nfoNewUser->setText(QString::fromLocal8Bit((*g)[i])); 156 QString name = QString::fromLocal8Bit(pGroup->name().c_str()); 157 lstGroups->insertItem(name); 158 myGroupIds.push_back(pGroup->id()); 159 160 if (gUserManager.DefaultGroup() == pGroup->id()) 161 nfoDefault->setText(name); 162 163 if (gUserManager.NewUserGroup() == pGroup->id()) 164 nfoNewUser->setText(name); 135 165 } 136 gUserManager.UnlockGroupList(); 166 FOR_EACH_GROUP_END 167 168 setCurrentGroupId(groupId); 169 } 170 171 void EditGrpDlg::listUpdated(CICQSignal* sig) 172 { 173 switch (sig->SubSignal()) 174 { 175 case LIST_GROUP_ADDED: 176 case LIST_GROUP_REMOVED: 177 case LIST_GROUP_CHANGED: 178 case LIST_GROUP_REORDERED: 179 180 case LIST_INVALIDATE: 181 if (btnSave->isEnabled()) 182 slot_editcancel(); 183 RefreshList(); 184 break; 185 } 137 186 } 138 187 139 188 void EditGrpDlg::slot_add() 140 189 { 141 gUserManager.AddGroup(strdup(tr("noname").local8Bit())); 142 RefreshList(); 143 lstGroups->setCurrentItem(lstGroups->count()-1); 144 slot_edit(); 145 } 146 147 148 void EditGrpDlg::slot_remove() 149 { 150 int n = lstGroups->currentItem(); 151 // don't allow the default group #0 "All Users" to be deleted 152 // don't try to delete if there is no current Item (currentItem() == -1) 153 if (n < 1) return; 154 155 GroupList *g = gUserManager.LockGroupList(LOCK_R); 156 QString warning(tr("Are you sure you want to remove\n" 157 "the group '%1'?").arg(QString::fromLocal8Bit((*g)[n-1]))); 158 gUserManager.UnlockGroupList(); 159 160 if(QueryUser(this, warning, tr("Ok"), tr("Cancel"))) { 161 gUserManager.RemoveGroup(n); 162 RefreshList(); 163 lstGroups->setCurrentItem(n - 1); 164 } 165 } 166 167 168 void EditGrpDlg::slot_up() 169 { 170 int n = lstGroups->currentItem() - 1; 171 if (n <= 0) return; 172 gUserManager.SwapGroups(n + 1, n); 173 RefreshList(); 174 lstGroups->setCurrentItem(n); 175 } 176 177 178 void EditGrpDlg::slot_down() 179 { 180 int n = lstGroups->currentItem() - 1; 181 if (n < 0 /* || n == max */) return; 182 gUserManager.SwapGroups(n + 1, n + 2); 183 RefreshList(); 184 if (n + 2 >= int(lstGroups->count())) 185 lstGroups->setCurrentItem(lstGroups->count() - 1); 186 else 187 lstGroups->setCurrentItem(n + 2); 188 } 189 190 191 void EditGrpDlg::slot_default() 192 { 193 int n = lstGroups->currentItem(); 194 if (n == -1) return; 195 gUserManager.SetDefaultGroup(n); 196 RefreshList(); 197 lstGroups->setCurrentItem(n); 198 } 199 200 void EditGrpDlg::slot_newuser() 201 { 202 int n = lstGroups->currentItem(); 203 if (n == -1 ) return; 204 gUserManager.SetNewUserGroup(n); 205 RefreshList(); 206 lstGroups->setCurrentItem(n); 207 } 208 209 void EditGrpDlg::slot_edit() 210 { 211 int n = lstGroups->currentItem() - 1; 212 if (n < 0) return; 190 // Don't add group until user has had a chance to set a name for it 191 myEditGroupId = 0; 192 lstGroups->setCurrentItem(-1); 193 213 194 btnSave->setEnabled(true); 214 195 btnDone->setEnabled(false); 215 196 edtName->setEnabled(true); 216 GroupList *g = gUserManager.LockGroupList(LOCK_R); 217 edtName->setText(QString::fromLocal8Bit((*g)[n])); 197 edtName->setText(tr("noname")); 218 198 edtName->setFocus(); 219 gUserManager.UnlockGroupList();220 m_nEditGrp = n + 1;221 199 btnEdit->setText(tr("Cancel")); 222 200 disconnect(btnEdit, SIGNAL(clicked()), this, SLOT(slot_edit())); 223 201 connect(btnEdit, SIGNAL(clicked()), this, SLOT(slot_editcancel())); 224 202 lstGroups->setEnabled(false); 225 } 226 203 btnSave->setDefault(true); 204 } 205 206 void EditGrpDlg::slot_remove() 207 { 208 unsigned short groupId = currentGroupId(); 209 if (groupId == 0) 210 return; 211 212 QString warning(tr("Are you sure you want to remove\n" 213 "the group '%1'?").arg(lstGroups->currentText())); 214 215 if(QueryUser(this, warning, tr("Ok"), tr("Cancel"))) { 216 gUserManager.RemoveGroup(groupId); 217 RefreshList(); 218 } 219 } 220 221 void EditGrpDlg::moveGroup(int delta) 222 { 223 unsigned short groupId = currentGroupId(); 224 if (groupId == 0) 225 return; 226 227 LicqGroup* group = gUserManager.FetchGroup(groupId, LOCK_R); 228 if (group == NULL) 229 return; 230 unsigned short oldSortIndex = group->sortIndex(); 231 gUserManager.DropGroup(group); 232 233 if (delta + oldSortIndex < 0) 234 return; 235 236 gUserManager.ModifyGroupSorting(groupId, oldSortIndex + delta); 237 RefreshList(); 238 } 239 240 void EditGrpDlg::slot_up() 241 { 242 moveGroup(-1); 243 } 244 245 void EditGrpDlg::slot_down() 246 { 247 moveGroup(1); 248 } 249 250 void EditGrpDlg::slot_default() 251 { 252 gUserManager.SetDefaultGroup(currentGroupId()); 253 RefreshList(); 254 } 255 256 void EditGrpDlg::slot_newuser() 257 { 258 gUserManager.SetNewUserGroup(currentGroupId()); 259 RefreshList(); 260 } 261 262 void EditGrpDlg::slot_edit() 263 { 264 myEditGroupId = currentGroupId(); 265 if (myEditGroupId == 0) 266 return; 267 268 btnSave->setEnabled(true); 269 btnDone->setEnabled(false); 270 edtName->setEnabled(true); 271 edtName->setText(lstGroups->currentText()); 272 edtName->setFocus(); 273 btnEdit->setText(tr("Cancel")); 274 disconnect(btnEdit, SIGNAL(clicked()), this, SLOT(slot_edit())); 275 connect(btnEdit, SIGNAL(clicked()), this, SLOT(slot_editcancel())); 276 lstGroups->setEnabled(false); 277 btnSave->setDefault(true); 278 } 227 279 228 280 void EditGrpDlg::slot_editok() 229 281 { 230 int n = lstGroups->currentItem(); 231 gUserManager.RenameGroup(m_nEditGrp, edtName->text().local8Bit()); 232 RefreshList(); 233 282 if (myEditGroupId == 0) 283 myEditGroupId = gUserManager.AddGroup(edtName->text().local8Bit().data()); 284 else 285 gUserManager.RenameGroup(myEditGroupId, edtName->text().local8Bit().data()); 286 RefreshList(); 287 setCurrentGroupId(myEditGroupId); 288 289 btnSave->setDefault(false); 234 290 lstGroups->setEnabled(true); 235 291 btnEdit->setText(tr("Edit Name")); … … 240 296 disconnect(btnEdit, SIGNAL(clicked()), this, SLOT(slot_editok())); 241 297 connect(btnEdit, SIGNAL(clicked()), this, SLOT(slot_edit())); 242 lstGroups->setCurrentItem(n); 243 } 244 298 } 245 299 246 300 void EditGrpDlg::slot_editcancel() 247 301 { 302 btnSave->setDefault(false); 248 303 lstGroups->setEnabled(true); 249 304 btnEdit->setText(tr("Edit Name")); … … 256 311 } 257 312 258 259 void EditGrpDlg::slot_done()260 {261 emit(signal_updateGroups());262 close(true);263 }264 265 266 313 #include "editgrp.moc" -
trunk/qt-gui/src/editgrp.h
r4699 r6284 21 21 #define EDITGRP_H 22 22 23 #include <qvaluelist.h> 23 24 #include <qwidget.h> 24 #include "licqdialog.h"25 25 26 26 class QListBox; … … 30 30 31 31 class CInfoField; 32 class CSignalManager; 32 33 33 34 class EditGrpDlg : public QWidget … … 35 36 Q_OBJECT 36 37 public: 37 EditGrpDlg (QWidget *parent = 0);38 EditGrpDlg(CSignalManager* signalManager, QWidget *parent = 0); 38 39 protected: 39 40 QListBox *lstGroups; … … 44 45 QLineEdit *edtName; 45 46 CInfoField *nfoDefault, *nfoNewUser; 46 47 unsigned short m_nEditGrp;48 47 49 48 void RefreshList(); … … 59 58 void slot_default(); 60 59 void slot_newuser(); 61 void slot_done();62 60 signals: 63 61 void signal_updateGroups(); 62 63 private slots: 64 void listUpdated(CICQSignal* sig); 65 66 private: 67 unsigned short currentGroupId() const; 68 void setCurrentGroupId(unsigned short groupId); 69 void moveGroup(int delta); 70 71 QValueList<unsigned short> myGroupIds; 72 unsigned short myEditGroupId; 64 73 }; 65 74 66 67 75 #endif -
trunk/qt-gui/src/mainwin.cpp
r6280 r6284 1484 1484 if (m_bThreadView && m_nGroupType == GROUPS_USER && m_nCurrentGroup == 0) 1485 1485 { 1486 CUserViewItem* i = userView->firstChild(); 1487 1488 while (i) 1486 for (CUserViewItem* i = userView->firstChild(); i != NULL; i = i->nextSibling()) 1489 1487 { 1490 if (u->GetInGroup(GROUPS_USER, i->GroupId())) 1488 unsigned short groupId = i->GroupId(); 1489 1490 // Should user be shown in this group 1491 bool showInGroup = show_user(u) & 1492 ((groupId != 0 && u->GetInGroup(GROUPS_USER, groupId)) || 1493 (groupId == 0 && u->GetGroups().empty() && !u->IgnoreList())); 1494 1495 1496 // Remove old user item if present 1497 for (CUserViewItem* it = i->firstChild(); it != NULL; it = it->nextSibling()) 1491 1498 { 1492 CUserViewItem* it = i->firstChild(); 1493 1494 while (it) 1499 char* szRealId = 0; 1500 ICQUser::MakeRealId(it->ItemId(), it->ItemPPID(), szRealId); 1501 bool equal = strcasecmp(szRealId, szId) == 0 && it->ItemPPID() == nPPID; 1502 delete [] szRealId; 1503 if (equal) 1495 1504 { 1496 char *szRealId = 0; 1497 ICQUser::MakeRealId(it->ItemId(), it->ItemPPID(), szRealId); 1498 if(strcasecmp(szRealId, szId) == 0 && it->ItemPPID() == nPPID) 1499 { 1500 delete it; 1501 delete [] szRealId; 1502 if (show_user(u)) 1503 (void) new CUserViewItem(u, i); 1504 break; 1505 } 1506 delete [] szRealId; 1507 it = it->nextSibling(); 1508 } 1509 if (it == NULL) 1510 { 1511 if ( show_user(u) & 1512 ((i->GroupId() != 0 && u->GetInGroup(GROUPS_USER, i->GroupId())) || 1513 (i->GroupId() == 0 && u->GetGroups(GROUPS_USER) == 0 && !u->IgnoreList()))) 1514 (void) new CUserViewItem(u, i); 1505 delete it; 1506 break; 1515 1507 } 1516 1508 } 1517 i = i->nextSibling(); 1509 1510 // If user should be shown in group, create a new item 1511 if (showInGroup) 1512 (void) new CUserViewItem(u, i); 1518 1513 } 1519 1514 } … … 1748 1743 case LIST_GROUP_REMOVED: 1749 1744 case LIST_GROUP_CHANGED: 1745 case LIST_GROUP_REORDERED: 1750 1746 updateGroups(); 1751 1747 updateUserWin(); … … 1809 1805 if (doGroupView) 1810 1806 { 1811 CUserViewItem* gi = new CUserViewItem(0, tr("Other Users").local8Bit(), userView);1807 CUserViewItem* gi = new CUserViewItem(0, tr("Other Users").local8Bit(), 65535, userView); 1812 1808 gi->setOpen(m_nGroupStates & 1); 1813 GroupList *g = gUserManager.LockGroupList(LOCK_R); 1814 for (unsigned short i = 0; i < g->size(); i++) 1815 { 1816 gi = new CUserViewItem(i+1, (*g)[i], userView); 1817 gi->setOpen(m_nGroupStates & (1<<QMIN(i+1, 31))); 1818 } 1819 gUserManager.UnlockGroupList(); 1809 int i = 1; 1810 FOR_EACH_GROUP_START_SORTED(LOCK_R) 1811 { 1812 gi = new CUserViewItem(pGroup->id(), pGroup->name().c_str(), pGroup->sortIndex(), userView); 1813 gi->setOpen(m_nGroupStates & (1<<QMIN(pGroup->id(), 31))); 1814 ++i; 1815 } 1816 FOR_EACH_GROUP_END 1820 1817 } 1821 1818 FOR_EACH_USER_START(LOCK_R) … … 1835 1832 { 1836 1833 if((gi->GroupId() != 0 && pUser->GetInGroup(GROUPS_USER, gi->GroupId())) || 1837 (gi->GroupId() == 0 && pUser->GetGroups( GROUPS_USER) == 0&& !pUser->IgnoreList()))1834 (gi->GroupId() == 0 && pUser->GetGroups().empty() && !pUser->IgnoreList())) 1838 1835 (void) new CUserViewItem(pUser, gi); 1839 1836 } … … 1924 1921 void CMainWindow::setCurrentGroup(int index) 1925 1922 { 1926 m_nCurrentGroup = index;1927 m_nGroupType = GROUPS_USER;1928 1923 unsigned short nNumGroups = gUserManager.NumGroups(); 1929 if ( m_nCurrentGroup> nNumGroups)1930 { 1931 m_nCurrentGroup -=nNumGroups;1924 if (index > nNumGroups) 1925 { 1926 m_nCurrentGroup = index - nNumGroups; 1932 1927 m_nGroupType = GROUPS_SYSTEM; 1928 } 1929 else 1930 { 1931 m_nCurrentGroup = myGroupIds[index]; 1932 m_nGroupType = GROUPS_USER; 1933 1933 } 1934 1934 // Update the combo box … … 1959 1959 mnuGroup->clear(); 1960 1960 mnuServerGroup->clear(); 1961 myGroupIds.clear(); 1961 1962 1962 1963 QString group = Strings::getSystemGroupName(GROUP_ALL_USERS); … … 1964 1965 mnuUserGroups->insertItem(group); 1965 1966 mnuUserGroups->insertSeparator(); 1967 myGroupIds.push_back(0); 1966 1968 1967 1969 // take care of this first … … 1969 1971 mnuGroup->insertSeparator(); 1970 1972 1971 GroupList *g = gUserManager.LockGroupList(LOCK_R); 1972 for (unsigned short i = 0; i < g->size(); i++) 1973 { 1974 cmbUserGroups->insertItem(QString::fromLocal8Bit((*g)[i])); 1975 mnuUserGroups->insertItem(QString::fromLocal8Bit((*g)[i])); 1976 mnuGroup->insertItem(QString::fromLocal8Bit((*g)[i]), i+1); 1977 mnuServerGroup->insertItem(QString::fromLocal8Bit((*g)[i]), i+1); 1978 } 1979 gUserManager.UnlockGroupList(); 1973 unsigned short i = 0; 1974 FOR_EACH_GROUP_START_SORTED(LOCK_R) 1975 { 1976 myGroupIds.push_back(pGroup->id()); 1977 QString name = QString::fromLocal8Bit(pGroup->name().c_str()); 1978 cmbUserGroups->insertItem(name); 1979 mnuUserGroups->insertItem(name); 1980 mnuGroup->insertItem(name, i+1); 1981 mnuServerGroup->insertItem(name, i+1); 1982 ++i; 1983 } 1984 FOR_EACH_GROUP_END 1980 1985 mnuUserGroups->insertSeparator(); 1981 1986 mnuGroup->insertSeparator(); … … 1997 2002 } 1998 2003 1999 int index = m_nCurrentGroup;2004 unsigned short index = 0; 2000 2005 if (m_nGroupType == GROUPS_SYSTEM) 2001 index += gUserManager.NumGroups(); 2006 index = m_nCurrentGroup + gUserManager.NumGroups(); 2007 else 2008 for (unsigned short i = 0; i < myGroupIds.size(); ++i) 2009 if (myGroupIds[i] == m_nCurrentGroup) 2010 index = i; 2002 2011 setCurrentGroup(index); 2003 2012 } … … 3270 3279 mnuGroup->setItemChecked(1000+GROUP_NEW_USERS, u->NewUser()); 3271 3280 3272 GroupList *g = gUserManager.LockGroupList(LOCK_R); 3273 for (unsigned short i = 0; i < g->size(); i++) 3274 mnuGroup->setItemChecked(i+1, u->GetInGroup(GROUPS_USER, i+1)); 3275 gUserManager.UnlockGroupList(); 3281 for (unsigned short i = 0; i < myGroupIds.size()-1; i++) 3282 mnuGroup->setItemChecked(i+1, u->GetInGroup(GROUPS_USER, myGroupIds[i+1])); 3276 3283 gUserManager.DropUser(u); 3277 3284 } … … 3282 3289 bool add = mnuGroup->isItemChecked(id); 3283 3290 GroupType gtype = (id < 1000 ? GROUPS_USER : GROUPS_SYSTEM); 3284 unsigned short groupId = (id < 1000 ? id: id - 1000);3291 unsigned short groupId = (id < 1000 ? myGroupIds[id] : id - 1000); 3285 3292 3286 3293 if (gtype == GROUPS_SYSTEM && groupId == GROUP_IGNORE_LIST && add) … … 3302 3309 RemoveUserFromGroup(gtype, groupId, m_szUserMenuId, m_nUserMenuPPID, this); 3303 3310 else 3304 {3305 3311 gUserManager.SetUserInGroup(m_szUserMenuId, m_nUserMenuPPID, 3306 3312 gtype, groupId, true, false); 3307 updateUserWin();3308 }3309 3313 } 3310 3314 … … 3326 3330 gUserManager.DropUser(u); 3327 3331 3328 GroupList* g = gUserManager.LockGroupList(LOCK_R);3332 LicqGroup* g = gUserManager.FetchGroup(group, LOCK_R); 3329 3333 if (g == NULL) 3330 3334 return true; 3331 QString groupName = QString::fromLocal8Bit( (*g)[group - 1]);3332 gUserManager. UnlockGroupList();3335 QString groupName = QString::fromLocal8Bit(g->name().c_str()); 3336 gUserManager.DropGroup(g); 3333 3337 3334 3338 QString warning(tr("Are you sure you want to remove\n%1 (%2)\nfrom the '%3' group?") … … 3340 3344 3341 3345 gUserManager.SetUserInGroup(id, ppid, gtype, group, false); 3342 updateUserWin();3343 3346 return true; 3344 3347 } … … 3352 3355 for (uint index = 0; index < mnuServerGroup->count(); index++) 3353 3356 { 3354 const int id = mnuServerGroup->idAt(index); 3355 const QCString text = mnuServerGroup->text(id).local8Bit(); 3357 int id = mnuServerGroup->idAt(index); 3356 3358 3357 3359 bool checked = false; 3358 if (u->GetSID() && (u->GetGSID() == gUserManager.GetIDFromGroup( text.data())))3360 if (u->GetSID() && (u->GetGSID() == gUserManager.GetIDFromGroup(myGroupIds[id]))) 3359 3361 checked = true; 3360 3362 … … 3372 3374 if (u == NULL) return; 3373 3375 3374 GroupList *g = gUserManager.LockGroupList(LOCK_R); 3375 for (unsigned int i = 0; i < g->size(); i++) 3376 for (unsigned int i = 0; i < myGroupIds.size()-1; i++) 3376 3377 mnuServerGroup->setItemChecked(i+1, (int)(i+1) == n); 3377 3378 3378 gUserManager.UnlockGroupList();3379 3379 gUserManager.DropUser(u); 3380 3380 3381 3381 gUserManager.SetUserInGroup(m_szUserMenuId, m_nUserMenuPPID, GROUPS_USER, 3382 3382 n, true, true); 3383 updateUserWin();3384 3383 } 3385 3384 … … 4697 4696 void CMainWindow::showEditGrpDlg() 4698 4697 { 4699 EditGrpDlg *d = new EditGrpDlg ;4698 EditGrpDlg *d = new EditGrpDlg(licqSigMan); 4700 4699 connect (d, SIGNAL(signal_updateGroups()), this, SLOT(updateGroups())); 4701 4700 d->show(); -
trunk/qt-gui/src/mainwin.h
r6172 r6284 36 36 #include <qbitmap.h> 37 37 #include <qdialog.h> 38 #include <qvaluelist.h> 38 39 #include <vector> 39 40 … … 439 440 }; 440 441 442 QValueList<unsigned short> myGroupIds; 441 443 442 444 }; -
trunk/qt-gui/src/userbox.cpp
r6280 r6284 134 134 } 135 135 136 CUserViewItem::CUserViewItem(unsigned short Id, const char* name, QListView* lv)136 CUserViewItem::CUserViewItem(unsigned short Id, const char* name, unsigned short sortKey, QListView* lv) 137 137 : QListViewItem(lv), 138 138 m_nGroupId(Id), … … 158 158 m_bNotInList = true; 159 159 m_pUserIcon = 0; 160 // Other users group is sorted at the end 161 if (m_nGroupId) 162 { 163 QString strTemp = QString("%1").arg((int)m_nGroupId); 164 while (strTemp.length() < 10) 165 strTemp = "0" + strTemp; 166 m_sSortKey = strTemp; 167 } 168 else 169 m_sSortKey = QString("9999999999"); 160 161 QString strTemp = QString("%1").arg((int)sortKey); 162 while (strTemp.length() < 10) 163 strTemp = "0" + strTemp; 164 m_sSortKey = strTemp; 165 170 166 m_sPrefix = "1"; 171 167 setPixmap(0, gMainWindow->pmCollapsed); 172 168 setText(1, QString::fromLocal8Bit(name)); 173 174 169 } 175 170 -
trunk/qt-gui/src/userbox.h
r5644 r6284 71 71 CUserViewItem (ICQUser *, CUserViewItem* item);
