void Home::addContact(UserInfo *added) { QListWidgetItem *item; QFont font; QPushButton *but; QString name; QPixmap *pixmap = NULL; QPalette palette; t_contact *ptr = new t_contact; std::string tmp; int state; state = added->get_status(); if (state < 1 && state > 4) state = 4; item = new QListWidgetItem(); tmp = added->get_name() + " " + added->get_surname(); name = tmp.c_str(); item->setText(name); item->setTextAlignment(21); item->setBackgroundColor(QColor(255, 255, 255)); font.setPointSize(12); font.setFamily("calibri"); item->setFont(font); font.setPointSize(8); ui->_listContact->addItem(item); but = new QPushButton(added->get_nickname().c_str()); but->setFlat(true); switch (state) { case 2: pixmap = new QPixmap("./Images/BabelHD_0001s_0005s_0002_status.png"); break; case 3: pixmap = new QPixmap("./Images/BabelHD_0001s_0003s_0000_status.png"); break; case 4: pixmap = new QPixmap("./Images/BabelHD_0001s_0000s_0000_status.png"); break; case 1: pixmap = new QPixmap("./Images/BabelHD_0001s_0002s_0000_status.png"); break; default: break; } if (pixmap != NULL) palette.setBrush(but->backgroundRole(), QBrush(*pixmap)); but->setFlat(true); but->setAutoFillBackground(true); but->setPalette(palette); but->setFont(font); but->setMinimumSize(250, 42); but->setMaximumSize(250, 42); std::stringstream ss; ss << added->get_id(); ss >> tmp; but->setObjectName(tmp.c_str()); but->setStyleSheet("text-align: middle"); connect(but, SIGNAL(clicked()), this, SLOT(contactClick())); QHBoxLayout *layout = new QHBoxLayout(); layout->addWidget(but); layout->alignment(); ptr->but = but; ptr->item = item; _bcontact[added->get_id()] = ptr; QWidget *widget = new QWidget(); widget->setLayout(layout); item->setSizeHint(widget->sizeHint()); ui->_listContact->setItemWidget(item, widget); }