- accounts = s.retrieveAllAccounts();
- ui.accountList->addItems(accounts.keys());
- QList<QListWidgetItem *> l = ui.accountList->findItems(lastacc, Qt::MatchExactly);
- if(l.count()) ui.accountList->setCurrentItem(l[0]);
+ QListWidgetItem *currentItem = 0;
+ foreach(AccountId id, s.knownAccounts()) {
+ if(!id.isValid()) continue;
+ QVariantMap data = s.retrieveAccountData(id);
+ accounts[id] = data;
+ QListWidgetItem *item = new QListWidgetItem(data["AccountName"].toString(), ui.accountList);
+ item->setData(Qt::UserRole, QVariant::fromValue<AccountId>(id));
+ if(id == lastacc) currentItem = item;
+ }
+ if(currentItem) ui.accountList->setCurrentItem(currentItem);