diff options
author | saturneric <[email protected]> | 2024-11-27 20:23:51 +0000 |
---|---|---|
committer | saturneric <[email protected]> | 2024-11-27 20:23:51 +0000 |
commit | a83c6e28a16f998d89b956688f07ce5352a2864f (patch) | |
tree | 796ad69eee3add96df38e3e4f1dc78a82745a9db /src/sdk/private/GFSDKPrivat.cpp | |
parent | fix: solve devops build issues (diff) | |
download | GpgFrontend-a83c6e28a16f998d89b956688f07ce5352a2864f.tar.gz GpgFrontend-a83c6e28a16f998d89b956688f07ce5352a2864f.zip |
feat: improve ui logic and support more email operations
Diffstat (limited to '')
-rw-r--r-- | src/sdk/private/GFSDKPrivat.cpp (renamed from src/sdk/private/CommonUtils.cpp) | 37 |
1 files changed, 34 insertions, 3 deletions
diff --git a/src/sdk/private/CommonUtils.cpp b/src/sdk/private/GFSDKPrivat.cpp index 68afcb5f..71136535 100644 --- a/src/sdk/private/CommonUtils.cpp +++ b/src/sdk/private/GFSDKPrivat.cpp @@ -26,7 +26,7 @@ * */ -#include "CommonUtils.h" +#include "GFSDKPrivat.h" #include <core/utils/MemoryUtils.h> @@ -34,6 +34,8 @@ #include "GFSDKModule.h" +Q_LOGGING_CATEGORY(sdk, "sdk") + auto GFStrDup(const QString& str) -> char* { auto utf8_str = str.toUtf8(); auto* c_str = static_cast<char*>( @@ -58,9 +60,10 @@ auto CharArrayToQMap(char** char_array, int size) -> QMap<QString, QString> { QMap<QString, QString> map; for (int i = 0; i < size; i += 2) { QString const key = GFUnStrDup(char_array[i]); - QString const value = QString::fromUtf8(char_array[i + 1]); + QString const value = GFUnStrDup(char_array[i + 1]); map.insert(key, value); } + return map; } @@ -100,4 +103,32 @@ auto ConvertEventParamsToMap(GFModuleEventParam* params) } return param_map; -}
\ No newline at end of file +} + +auto CharArrayToQList(char** char_array, int size) -> QStringList { + QStringList list; + for (int i = 0; i < size; ++i) { + if (char_array[i] != nullptr) { + QString value = GFUnStrDup(char_array[i]); + list.append(value); + } + } + GpgFrontend::SecureFree(char_array); + return list; +} + +auto QListToCharArray(const QStringList& list) -> char** { + char** char_array = static_cast<char**>( + GpgFrontend::SecureMalloc(list.size() * sizeof(char*))); + + int index = 0; + for (const QString& item : list) { + QByteArray value = item.toUtf8(); + char_array[index] = + static_cast<char*>(GpgFrontend::SecureMalloc(value.size() + 1)); + std::strcpy(char_array[index], value.constData()); + index++; + } + + return char_array; +} |