diff --exclude='*orig' -Naur psi-0.10-test3-orig/src/contactview.cpp psi-0.10-test3/src/contactview.cpp --- psi-0.10-test3-orig/src/contactview.cpp 2005-11-30 00:10:25.000000000 +0000 +++ psi-0.10-test3/src/contactview.cpp 2005-11-30 00:14:12.000000000 +0000 @@ -1127,7 +1127,7 @@ //s2m->insertItem(tr("Recipient Default"), base_sendto+at_sendto++); //c2m->insertItem(tr("Recipient Default"), base_sendto+at_sendto++); - if(!rl.isEmpty()) { + if(!rl.isEmpty() && !(rl.size() == 1 && rl[0].name().isEmpty())) { //s2m->insertSeparator(); //c2m->insertSeparator(); for(UserResourceList::ConstIterator it = rl.begin(); it != rl.end(); ++it) { @@ -1142,7 +1142,7 @@ } } - if(!isPrivate) + if(!isPrivate && s2m->count() > 0) pm.insertItem(tr("Send message to"), s2m, 17); int base_openurl = base_sendto + at_sendto; @@ -1167,7 +1167,7 @@ d->cv->qa_chat->setIconSet(IconsetFactory::iconPixmap("psi/chat")); d->cv->qa_chat->addTo(&pm); - if(!isPrivate) + if(!isPrivate && c2m->count() > 0) pm.insertItem(tr("Open chat to"), c2m, 18); if(!isPrivate) { @@ -1182,51 +1182,49 @@ QStringList hc; if(!isPrivate) { hc = d->pa->hiddenChats(u->jid()); - QPopupMenu *cm = new QPopupMenu(&pm); - for(QStringList::ConstIterator it = hc.begin(); it != hc.end(); ++it) { - QString rname; - if((*it).isEmpty()) - rname = tr("[blank]"); - else - rname = *it; + if (!hc.isEmpty()) + { + QPopupMenu *cm = new QPopupMenu(&pm); + for(QStringList::ConstIterator it = hc.begin(); it != hc.end(); ++it) { + QString rname; + if((*it).isEmpty()) + rname = tr("[blank]"); + else + rname = *it; - // determine status - int status; - const UserResourceList &rl = u->userResourceList(); - UserResourceList::ConstIterator uit = rl.find(*it); - if(uit != rl.end() || (uit = rl.priority()) != rl.end()) - status = makeSTATUS((*uit).status()); - else - status = STATUS_OFFLINE; - cm->insertItem(is->status(status), rname, base_hidden+at_hidden++); + // determine status + int status; + const UserResourceList &rl = u->userResourceList(); + UserResourceList::ConstIterator uit = rl.find(*it); + if(uit != rl.end() || (uit = rl.priority()) != rl.end()) + status = makeSTATUS((*uit).status()); + else + status = STATUS_OFFLINE; + cm->insertItem(is->status(status), rname, base_hidden+at_hidden++); + } + pm.insertItem(tr("Active chats"), cm, 7); } - pm.insertItem(tr("Active chats"), cm, 7); - if(hc.isEmpty()) - pm.setItemEnabled(7, false); } - if(!isAgent) { + if(!isAgent && online) { pm.insertSeparator(); pm.insertItem(IconsetFactory::iconPixmap("psi/upload"), tr("Send &file"), 23); - if(!online) - pm.setItemEnabled(23, false); } // invites int base_gc = base_hidden + at_hidden; int at_gc = 0; QStringList groupchats; - if(!isPrivate && !isAgent) { + if(!isPrivate && !isAgent && online) { QPopupMenu *gm = new QPopupMenu(&pm); groupchats = d->pa->groupchats(); - for(QStringList::ConstIterator it = groupchats.begin(); it != groupchats.end(); ++it) { - int id = gm->insertItem(*it, base_gc+at_gc++); - if(!online) - gm->setItemEnabled(id, false); - } - pm.insertItem(IconsetFactory::iconPixmap("psi/groupChat"), tr("Invite to"), gm, 14); - if(groupchats.isEmpty()) - pm.setItemEnabled(14, false); + if (!groupchats.isEmpty()) + { + for(QStringList::ConstIterator it = groupchats.begin(); it != groupchats.end(); ++it) { + int id = gm->insertItem(*it, base_gc+at_gc++); + } + pm.insertItem(IconsetFactory::iconPixmap("psi/groupChat"), tr("Invite to"), gm, 14); + } } // weird?