FriendListItem::FriendListItem(QWidget *parent)
: QWidget(parent)
+ , m_expanded(false)
{
QWidget *childWidget = new QWidget(this);
QPalette palette = childWidget->palette();
childWidget->setGeometry(75, 53, 368-75-5, 141-53-5);
- this->setMinimumSize(368, 141);
-
// QStateMachine machine;
// QState *state1 = new QState(&machine);
// QState *state2 = new QState(&machine);
void FriendListItem::mousePressEvent(QMouseEvent *event)
{
+ qDebug() << __PRETTY_FUNCTION__;
+
emit changeState();
+
+ if (m_expanded)
+ m_expanded = false;
+ else
+ m_expanded = true;
+
+ updateGeometry();
+}
+
+QSize FriendListItem::sizeHint() const
+{
+ qDebug() << __PRETTY_FUNCTION__ << " " << m_expanded;
+
+ if (m_expanded)
+ return QSize(368, 200);
+ else
+ return QSize(368, 141);
}
void FriendListItem::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
- //QRect itemRect = event->rect();
- QRect itemRect = QRect(0, 0, 368, 141);
- qDebug() << event->rect();
+ QRect itemRect = event->rect();
+
+ if (m_expanded)
+ itemRect = QRect(0, 0, 368, 200);
+ else
+ itemRect = QRect(0, 0, 368, 141);
+
//Draw background
QRect topRect = QRect(itemRect.left(), itemRect.top(), BACKGROUND_TOP_WIDTH,
BACKGROUND_TOP_HEIGHT);
painter.drawPixmap(topRect, QPixmap(BACKGROUND_TOP_PATH));
QRect middleRect = QRect(topRect.left(), topRect.bottom() + 1, BACKGROUND_MIDDLE_WIDTH,
- BACKGROUND_MIDDLE_HEIGHT);
+ itemRect.height());
painter.drawPixmap(middleRect, QPixmap(BACKGROUND_MIDDLE_PATH));
+ qDebug() << "Middle rect: " << middleRect;
if (itemRect.height() >= (141 - 15)) {
- QRect bottomRect = QRect(topRect.left(), middleRect.bottom() + 1, BACKGROUND_BOTTOM_WIDTH,
+ QRect bottomRect = QRect(topRect.left(), middleRect.bottom() - 14, BACKGROUND_BOTTOM_WIDTH,
BACKGROUND_BOTTOM_HEIGHT);
painter.drawPixmap(bottomRect, QPixmap(BACKGROUND_BOTTOM_PATH));
}