From ec7541da6532619225e580e2b76185ef6ab2fbc1 Mon Sep 17 00:00:00 2001 From: saturneric Date: Mon, 2 Dec 2024 23:53:18 +0100 Subject: fix: adapt to new sdk apis --- include/GFModuleCommonUtils.hpp | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'include/GFModuleCommonUtils.hpp') diff --git a/include/GFModuleCommonUtils.hpp b/include/GFModuleCommonUtils.hpp index 73de58a..761ef85 100644 --- a/include/GFModuleCommonUtils.hpp +++ b/include/GFModuleCommonUtils.hpp @@ -401,7 +401,7 @@ inline auto CharArrayToQStringList(char** pl_components, return list; } -inline auto QListToCharArray(const QStringList& list) -> char** { +inline auto QStringListToCharArray(const QStringList& list) -> char** { char** char_array = static_cast(GFAllocateMemory(list.size() * sizeof(char*))); @@ -416,6 +416,34 @@ inline auto QListToCharArray(const QStringList& list) -> char** { return char_array; } +template +inline auto ArrayToQList(T** pl_components, int size) -> QList { + if (pl_components == nullptr || size <= 0) { + return QList(); + } + + QList list; + for (int i = 0; i < size; ++i) { + list.append(*pl_components[i]); + GFFreeMemory(pl_components[i]); + } + GFFreeMemory(pl_components); + return list; +} + +template +inline auto QListToArray(const QList& list) -> T** { + T** array = static_cast(GFAllocateMemory(list.size() * sizeof(T*))); + int index = 0; + for (const T& item : list) { + auto mem = static_cast(GFAllocateMemory(sizeof(T))); + array[index] = new (mem) T(item); + index++; + } + + return array; +} + inline auto ConvertQVariantToVoidPtr(const QVariant& variant) -> void* { void* mem = GFAllocateMemory(sizeof(QVariant)); auto* variant_ptr = new (mem) QVariant(variant); -- cgit v1.2.3