106 lines
3.7 KiB
C++
106 lines
3.7 KiB
C++
#ifndef PENDINGAPPINFO_H
|
|
#define PENDINGAPPINFO_H
|
|
|
|
#include <QString>
|
|
#include <QStringList>
|
|
#include <QFlags>
|
|
|
|
namespace UkuiSearch {
|
|
|
|
class PendingAppInfo
|
|
{
|
|
public:
|
|
enum HandleType{
|
|
Delete = 0,
|
|
Insert = 1u,
|
|
UpdateAll = 1u << 1,
|
|
UpdateLocaleData = 1u << 2,
|
|
UpdateLaunchTimes = 1u << 3,
|
|
UpdateFavorites = 1u << 4,
|
|
UpdateTop = 1u << 5,
|
|
UpdateLock = 1u << 6,
|
|
RefreshDataBase = 1u << 7
|
|
};
|
|
Q_DECLARE_FLAGS(HandleTypes, HandleType)
|
|
|
|
PendingAppInfo() = default;
|
|
PendingAppInfo(QString desktopfp, HandleTypes type,
|
|
int favorites = -1, int top = -1, int lock = -1,
|
|
bool addLaunch = false, int launchTimes = 0,
|
|
bool isChangeFavorite = false, bool isChangeTopPos = false)
|
|
: m_desktopfp(desktopfp),
|
|
m_handleType(type),
|
|
m_favoritesState(favorites),
|
|
m_topState(top),
|
|
m_lockState(lock),
|
|
m_willAddLaunch(addLaunch),
|
|
m_launchTimes(launchTimes),
|
|
m_isFavoritePosChanged(isChangeFavorite),
|
|
m_isTopPosChanged(isChangeTopPos) {}
|
|
|
|
QString path() const {return m_desktopfp;}
|
|
QStringList pathsNeedRefreshData() const {return m_pathsNeedRefreshData;}
|
|
HandleTypes handleType() const {return m_handleType;}
|
|
int favoritesState() const {return m_favoritesState;}
|
|
int topState() const {return m_topState;}
|
|
int lockState() const {return m_lockState;}
|
|
int launchTimes() const {return m_launchTimes;}
|
|
bool willAddLunchTimes() const {return m_willAddLaunch;}
|
|
bool isFavoritePosChanged() const {return m_isFavoritePosChanged;}
|
|
bool isTopPosChanged() const {return m_isTopPosChanged;}
|
|
bool dbVersionNeedUpdate() const {return m_dbVersionNeedUpdate;}
|
|
|
|
void setDesktopFp(const QString& desktopfp) {m_desktopfp = desktopfp;}
|
|
void setHandleType(const PendingAppInfo& info) {m_handleType = info.handleType();}
|
|
void setHandleType(HandleTypes type) {m_handleType = type;}
|
|
void setFavorites(int favoritesState) {m_favoritesState = favoritesState;}
|
|
void setTop(int top) {m_topState = top;}
|
|
void setLock(int lock) {m_lockState = lock;}
|
|
void setLaunchWillAdd(bool willAdd) {m_willAddLaunch = willAdd;}
|
|
void setLaunchTimes(int times) {m_launchTimes = times;}
|
|
void setChangeFavoritePos(bool isOrderChanged) {m_isFavoritePosChanged = isOrderChanged;}
|
|
void setChangeTopPos(bool isOrderChanged) {m_isTopPosChanged = isOrderChanged;}
|
|
void setPathsNeedRefreshData (const QStringList& paths) {m_pathsNeedRefreshData = paths;}
|
|
void setDBUpdate(bool versionNeedUpdate) {m_dbVersionNeedUpdate = versionNeedUpdate;}
|
|
void merge(const PendingAppInfo& info)
|
|
{
|
|
m_handleType |= info.handleType();
|
|
|
|
if (info.favoritesState() != -1) {
|
|
m_favoritesState = info.favoritesState();
|
|
}
|
|
|
|
if (info.topState() != -1) {
|
|
m_topState = info.topState();
|
|
}
|
|
|
|
if (info.lockState() != -1) {
|
|
m_lockState = info.lockState();
|
|
}
|
|
if (info.willAddLunchTimes()) {
|
|
m_launchTimes++;
|
|
}
|
|
}
|
|
|
|
bool operator ==(const PendingAppInfo& rhs) const {
|
|
return (m_desktopfp == rhs.m_desktopfp);
|
|
}
|
|
private:
|
|
QString m_desktopfp;
|
|
HandleTypes m_handleType;
|
|
int m_favoritesState = -1;
|
|
int m_topState = -1;
|
|
int m_lockState = -1;
|
|
bool m_willAddLaunch = false;
|
|
int m_launchTimes = 0;
|
|
bool m_isFavoritePosChanged = false;
|
|
bool m_isTopPosChanged = false;
|
|
QStringList m_pathsNeedRefreshData;
|
|
bool m_dbVersionNeedUpdate = false;
|
|
};
|
|
}
|
|
|
|
Q_DECLARE_OPERATORS_FOR_FLAGS(UkuiSearch::PendingAppInfo::HandleTypes)
|
|
|
|
#endif // PENDINGAPPINFO_H
|