void ChatRooms::selected(QWidget* chatwidget) { if (currentIndex() == 0) return; ChatRoom * uw = dynamic_cast<ChatRoom*>(chatwidget); if(uw && uw->highlighted() != 0) { uw->setHighlighted(0); setHighlight(uw->highlighted(), uw ); } else if (!uw) { PublicChat * pc = dynamic_cast<PublicChat*>(chatwidget); if(pc && pc->highlighted() != 0) { pc->setHighlighted(0); setHighlight(pc->highlighted(), pc ); } } }
void ChatRooms::setHighlight(int highlight, QWidget* chatwidget) { ChatRoom * uw = dynamic_cast<ChatRoom*>(chatwidget); PublicChat * pc = dynamic_cast<PublicChat*>(chatwidget); if (!uw && !pc) return; int pos; int tabHighlighted; if (uw) { pos = indexOf(uw); tabHighlighted = uw->highlighted(); } else { pos = indexOf(pc); tabHighlighted = pc->highlighted(); } if(( currentIndex() != pos) && highlight > tabHighlighted ) { if (uw) uw->setHighlighted(highlight); else pc->setHighlighted(highlight); if (highlight > 0)// Icon on tab tabBar()->setTabIcon(pos, QIcon(IMG("new-element"))); if (highlight > 1)// Red tab tabBar()->setTabTextColor(pos, QColor(255, 0, 0)); } else if (highlight == 0){ tabBar()->setTabTextColor(pos, tabBar()->palette().buttonText().color()); tabBar()->setTabIcon(pos, QIcon()); } }