diff --git a/src/xmbentry.h b/src/xmbentry.h new file mode 100644 index 0000000..efc43be --- /dev/null +++ b/src/xmbentry.h @@ -0,0 +1,39 @@ +#pragma once +#include +#include + +enum class EntryType { + Desktop, + Link, + JsonAction, + Folder, + Unknown +}; + +struct XmbEntry { + QString title; + QString subtitle; + QString icon; // URL/QRC/file path + EntryType type = EntryType::Unknown; + + // Launch data: + QString exec; // command or desktopExec + QStringList args; + QString path; // file/folder path + QString gameId; // steam game id + QString url; // steam://... or http(s)://... + + QVariantMap toVariant() const { + QVariantMap m; + m["title"] = title; + m["subtitle"] = subtitle; + m["icon"] = icon; + m["type"] = static_cast(type); + m["exec"] = exec; + m["args"] = args; + m["path"] = path; + m["gameId"] = gameId; + m["url"] = url; + return m; + } +};