comunicmessages/widgets/conversationitemwidget.cpp

58 lines
1.5 KiB
C++

#include "conversationitemwidget.h"
#include "ui_conversationitemwidget.h"
#include "../helpers/conversationslisthelper.h"
#include "../utils/timeutils.h"
ConversationItemWidget::ConversationItemWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::ConversationItemWidget)
{
ui->setupUi(this);
}
ConversationItemWidget::~ConversationItemWidget()
{
delete ui;
}
void ConversationItemWidget::setConversation(const Conversation &conv, const UsersList &list)
{
mCurrentConversation = conv;
ui->nameLabel->setText(ConversationsListHelper::getConversationDisplayName(conv, list));
QFont font = ui->nameLabel->font();
font.setBold(!conv.sawLastMessage());
ui->nameLabel->setFont(font);
if(conv.members().size() == 1)
ui->numberMembersLabel->setText(tr("1 member"));
else
ui->numberMembersLabel->setText(tr("%1 members").arg(conv.members().size()));
ui->lastActivityLabel->setText(TimeUtils::TimeDiffToString(conv.lastActive()));
//Conversation not active by default
setActive(false);
}
void ConversationItemWidget::mousePressEvent(QMouseEvent *)
{
emit openConversation();
}
Conversation ConversationItemWidget::currentConversation() const
{
return mCurrentConversation;
}
void ConversationItemWidget::setActive(bool active)
{
QString styleContainer = active ? "background: black; color: white" : "";
setStyleSheet(styleContainer);
QString styleLabels = "padding-left: 5px;";
ui->numberMembersLabel->setStyleSheet(styleLabels);
ui->lastActivityLabel->setStyleSheet(styleLabels);
}