void SchedulerItemDialog::onAccountSelected(int AIndex) { ui->cmbContact->clear(); Jid streamJid(ui->cmbAccount->itemData(AIndex).toString()); IRoster *roster = FRosterManager->findRoster(streamJid); if (roster) { IPresence *presence = FPresenceManager->findPresence(streamJid); if (presence) { QHash<Jid, QString> contacts; QList<Jid> items = presence->itemsJid(); for (QList<Jid>::ConstIterator it=items.constBegin(); it!=items.constEnd(); ++it) { IRosterItem rosterItem = roster->findItem(*it); QString name = (rosterItem.name.isEmpty()?(*it).full():QString("%1 <%2>").arg(rosterItem.name).arg((*it).full())); contacts.insert(*it, name); } for (QHash<Jid, QString>::ConstIterator it=contacts.constBegin(); it!=contacts.constEnd(); ++it) ui->cmbContact->addItem(it.value(), it.key().full()); } } }