feat: 修改数据结构,增加枚举值

This commit is contained in:
hewenfei 2023-12-12 10:11:39 +08:00
parent 094529e995
commit 2a2c513415
2 changed files with 137 additions and 2 deletions

View File

@ -43,6 +43,7 @@ public:
QString comment; // 应用描述 QString comment; // 应用描述
QString extraData; // 额外的数据 QString extraData; // 额外的数据
QString insertTime; //安装的时间 QString insertTime; //安装的时间
QString group; // 分类
}; };
DataEntity::DataEntity() : d(new DataEntityPrivate) {} DataEntity::DataEntity() : d(new DataEntityPrivate) {}
@ -222,7 +223,16 @@ QHash<int, QByteArray> DataEntity::AppRoleNames()
names.insert(DataEntity::Name, "name"); names.insert(DataEntity::Name, "name");
names.insert(DataEntity::Comment, "comment"); names.insert(DataEntity::Comment, "comment");
names.insert(DataEntity::ExtraData, "extraData"); names.insert(DataEntity::ExtraData, "extraData");
names.insert(DataEntity::Category, "category");
names.insert(DataEntity::Group, "group");
names.insert(DataEntity::FirstLetter, "firstLetter");
names.insert(DataEntity::InstallationTime, "installationTime");
names.insert(DataEntity::IsLaunched, "isLaunched");
names.insert(DataEntity::LaunchTimes, "launchTimes");
names.insert(DataEntity::IsLocked, "isLocked");
names.insert(DataEntity::Favorite, "favorite"); names.insert(DataEntity::Favorite, "favorite");
names.insert(DataEntity::Top, "top");
names.insert(DataEntity::RecentInstall, "recentInstall");
return names; return names;
} }
@ -257,3 +267,111 @@ DataEntity::~DataEntity()
d = nullptr; d = nullptr;
} }
} }
QVariant DataEntity::getValue(DataEntity::PropertyName property) const
{
switch (property) {
case Id:
return d->id;
case Type:
return d->type;
case Icon:
return d->icon;
case Name:
return d->name;
case Comment:
return d->comment;
case ExtraData:
return d->extraData;
case Category:
return d->category;
case Group:
return d->group;
case FirstLetter:
return d->firstLetter;
case InstallationTime:
return d->insertTime;
case IsLaunched:
return d->launched;
case LaunchTimes:
return d->launchTimes;
case IsLocked:
return d->lock;
case Favorite:
return d->favorite;
case Top:
return d->top;
case RecentInstall:
return d->recentInstall;
default:
break;
}
return {};
}
void DataEntity::setValue(DataEntity::PropertyName property, const QVariant &value)
{
switch (property) {
case Id:
d->id = value.toString();
break;
case Type:
d->type = value.value<DataType::Type>();
break;
case Icon:
d->icon = value.toString();
break;
case Name:
d->name = value.toString();
break;
case Comment:
d->comment = value.toString();
break;
case ExtraData:
d->extraData = value.toString();
break;
case Category:
d->category = value.toString();
break;
case Group:
d->group = value.toString();
break;
case FirstLetter:
d->firstLetter = value.toString();
break;
case InstallationTime:
d->insertTime = value.toString();
break;
case IsLaunched:
d->launched = value.toBool();
break;
case LaunchTimes:
d->launchTimes = value.toInt();
break;
case IsLocked:
d->lock = value.toBool();
break;
case Favorite:
d->favorite = value.toInt();
break;
case Top:
d->top = value.toInt();
break;
case RecentInstall:
d->recentInstall = value.toBool();
break;
default:
break;
}
}
void DataEntity::setGroup(const QString &group)
{
d->group = group;
}
QString DataEntity::group() const
{
return d->group;
}

View File

@ -21,6 +21,7 @@
#include <QObject> #include <QObject>
#include <QHash> #include <QHash>
#include <QVariant>
class DataEntityPrivate; class DataEntityPrivate;
@ -41,7 +42,6 @@ public:
// 应用数据 // 应用数据
class DataEntity class DataEntity
{ {
// TODO 改用 Q_OBJECT
Q_GADGET Q_GADGET
Q_PROPERTY(DataType::Type type READ type WRITE setType) Q_PROPERTY(DataType::Type type READ type WRITE setType)
Q_PROPERTY(QString id READ id) Q_PROPERTY(QString id READ id)
@ -58,7 +58,16 @@ public:
Name, Name,
Comment, Comment,
ExtraData, ExtraData,
Favorite Category, /**> 应用类别 */
Group, /**> 应用分组 */
FirstLetter, /**> 应用名称首字母 */
InstallationTime, /**> 安装时间 */
IsLaunched, /**> 是否启动过该程序 */
LaunchTimes, /**> 应用被启动的次数 */
IsLocked, /**> 应用是否锁定 */
Favorite, /**> 是否被收藏及序号, 小于或等于0表示未被收藏 */
Top, /**> 是否被置顶及序号, 小于或等于0表示未被置顶 */
RecentInstall
}; };
DataEntity(); DataEntity();
DataEntity(DataType::Type type, const QString& name, const QString& icon, const QString& comment, const QString& extraData); DataEntity(DataType::Type type, const QString& name, const QString& icon, const QString& comment, const QString& extraData);
@ -70,6 +79,9 @@ public:
DataEntity(DataEntity&& other) noexcept; DataEntity(DataEntity&& other) noexcept;
DataEntity &operator=(DataEntity&& other) noexcept; DataEntity &operator=(DataEntity&& other) noexcept;
QVariant getValue(DataEntity::PropertyName property) const;
void setValue(DataEntity::PropertyName property, const QVariant &value);
int top() const; int top() const;
void setTop(int top); void setTop(int top);
@ -118,10 +130,15 @@ public:
void setExtraData(const QString& extraData); void setExtraData(const QString& extraData);
QString extraData() const; QString extraData() const;
void setGroup(const QString& group);
QString group() const;
private: private:
DataEntityPrivate *d {nullptr}; DataEntityPrivate *d {nullptr};
}; };
} // UkuiMenu } // UkuiMenu
Q_DECLARE_METATYPE(UkuiMenu::DataType)
#endif //UKUI_MENU_DATA_ENTITY_H #endif //UKUI_MENU_DATA_ENTITY_H