Fix imported variables / actions not being added to respective tabs

This commit is contained in:
WarmUpTill
2024-05-27 21:39:06 +02:00
committed by WarmUpTill
parent 032f5e2fe9
commit b3bde6c59f
5 changed files with 42 additions and 0 deletions

View File

@@ -1,6 +1,7 @@
#include "variable.hpp"
#include "math-helpers.hpp"
#include "obs-module-helper.hpp"
#include "ui-helpers.hpp"
#include "utility.hpp"
#include <QGridLayout>
@@ -375,11 +376,23 @@ void LoadVariables(obs_data_t *obj)
obs_data_array_release(variablesArray);
}
static void signalImportedVariables(void *varsPtr)
{
auto vars = std::unique_ptr<std::vector<std::shared_ptr<Item>>>(
static_cast<std::vector<std::shared_ptr<Item>> *>(varsPtr));
for (const auto &var : *vars) {
VariableSignalManager::Instance()->Add(
QString::fromStdString(var->Name()));
}
}
void ImportVariables(obs_data_t *data)
{
obs_data_array_t *array = obs_data_get_array(data, "variables");
size_t count = obs_data_array_count(array);
auto importedVars = new std::vector<std::shared_ptr<Item>>;
for (size_t i = 0; i < count; i++) {
obs_data_t *arrayElement = obs_data_array_item(array, i);
auto var = Variable::Create();
@@ -391,9 +404,12 @@ void ImportVariables(obs_data_t *data)
}
GetVariables().emplace_back(var);
importedVars->emplace_back(var);
}
obs_data_array_release(array);
QeueUITask(signalImportedVariables, importedVars);
}
std::chrono::high_resolution_clock::time_point GetLastVariableChangeTime()