#ifndef USERITEMWIDGET_H
#define USERITEMWIDGET_H

#include <QObject>
#include <QWidget>

class userLabel;
class QLabel;
class QPixmap;

class UserItemWidget : public QWidget
{
    Q_OBJECT

public:
    UserItemWidget(QWidget *parent = 0);
    ~UserItemWidget();
    /**
     * @brief 设置用户名
     * @param name   用户名
     * @return
     */
    void setUserName(QString name);
    /**
     * @brief 设置用户头像
     * @param userIcon   用户头像
     * @return
     */
    void setUserPixmap(QPixmap userIcon);
    /**
     * @brief 设置用户登录状态
     * @param status   登录状态
     * @return
     */
    void setUserStatus(bool status);
    /**
     * @brief 获取用户名
     * @return QString 用户名
     */
    QString getUserName();

    void setUserNickName(QString strNickName);
    inline QString userNickName() { return m_strNickName; }

protected:
    bool eventFilter(QObject *obj, QEvent *event);
    virtual void paintEvent(QPaintEvent * event);

private:
    void init();
    void initIconLabel();

Q_SIGNALS:
    void enterWidget();
    void leaveWidget();
    /**
     * @brief 响应点击事件
     * @param userName   用户名
     * @return
     */
    void clicked(QString m_strUserName);

private:
    QLabel *m_labelHeadImg = nullptr;
    QLabel* m_labelNickName = nullptr;
    QLabel* m_labelLoggedIn = nullptr;
    QString m_strUserName;
    QString m_strNickName;
};

#endif // USERITEMWIDGET_H
