diff options
author | saturneric <[email protected]> | 2024-12-02 22:53:18 +0000 |
---|---|---|
committer | saturneric <[email protected]> | 2024-12-02 22:53:18 +0000 |
commit | ec7541da6532619225e580e2b76185ef6ab2fbc1 (patch) | |
tree | 9f602fb83483f16d71bcc27d0928e1e72f840d9a /include | |
parent | feat: upgrade to v2.1.6 (diff) | |
download | Modules-ec7541da6532619225e580e2b76185ef6ab2fbc1.tar.gz Modules-ec7541da6532619225e580e2b76185ef6ab2fbc1.zip |
fix: adapt to new sdk apis
Diffstat (limited to 'include')
-rw-r--r-- | include/GFModuleCommonUtils.hpp | 30 |
1 files changed, 29 insertions, 1 deletions
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<char**>(GFAllocateMemory(list.size() * sizeof(char*))); @@ -416,6 +416,34 @@ inline auto QListToCharArray(const QStringList& list) -> char** { return char_array; } +template <typename T> +inline auto ArrayToQList(T** pl_components, int size) -> QList<T> { + if (pl_components == nullptr || size <= 0) { + return QList<T>(); + } + + QList<T> list; + for (int i = 0; i < size; ++i) { + list.append(*pl_components[i]); + GFFreeMemory(pl_components[i]); + } + GFFreeMemory(pl_components); + return list; +} + +template <typename T> +inline auto QListToArray(const QList<T>& list) -> T** { + T** array = static_cast<T**>(GFAllocateMemory(list.size() * sizeof(T*))); + int index = 0; + for (const T& item : list) { + auto mem = static_cast<T*>(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); |