Add a taxonomy

This commit is contained in:
xyz
2025-05-24 22:25:45 +08:00
parent e0c79558b5
commit ef7f85e68b
2 changed files with 125 additions and 9 deletions

View File

@ -14,12 +14,23 @@
#include <QStyleOption>
#include <QPainter>
#include <QEnterEvent>
#include "model/data.h"
////////////////////////////////////////
/// 滚动区域的Item的类型
////////////////////////////////////////
enum ItemType{
SessionItemType,
FriendItemType,
ApplyItemType
};
////////////////////////////////////////
/// 整个滚动区域的实现
////////////////////////////////////////
class SessionFriendArea : public QScrollArea
{
Q_OBJECT
@ -30,9 +41,10 @@ public:
void clear();
//添加一个Item
void addItem(const QIcon& avatar, const QString& name, const QString& text);
void addItem(ItemType itemType, const QString& id, const QIcon& avatar, const QString& name, const QString& text);
//
//选中某一个指定的item通过index下标来访问item
void clickItem(int index);
private:
//后续向container中的layout添加元素,就会有QScrollArea的滚动
@ -69,5 +81,43 @@ private:
bool selected = false;
};
////////////////////////////////////////
/// 会话Item的实现
////////////////////////////////////////
class SessionItem : public SessionFriendItem {
Q_OBJECT
public:
SessionItem(QWidget* owner, const QString& chatSessionId, const QIcon& avatar, const QString& name, const QString& lastmessage);
private:
//当前会话Id
QString chatSessionId;
};
////////////////////////////////////////
/// 好友Item的实现
////////////////////////////////////////
class FriendItem : public SessionFriendItem {
Q_OBJECT
public:
FriendItem(QWidget* owner, const QString& userId, const QIcon& avatar, const QString& name, const QString& description);
private:
// 好友的用户Id
QString userId;
};
////////////////////////////////////////
/// 好友申请Item的实现
////////////////////////////////////////
class ApplyItem : public SessionFriendItem {
Q_OBJECT
public:
ApplyItem(QWidget* owner, const QString& userId, const QIcon& avatar, const QString& name);
private:
//好友申请Id
QString userId;
};
#endif // SESSIONFRIENDAREA_H