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 "action-queue.hpp"
#include "obs-module-helper.hpp"
#include "plugin-state-helpers.hpp"
#include "ui-helpers.hpp"
namespace advss {
@@ -379,11 +380,24 @@ static bool queueWithNameExists(const std::string &name)
return !GetWeakActionQueueByName(name).expired();
}
static void signalImportedQueues(void *varsPtr)
{
auto queues = std::unique_ptr<std::vector<std::shared_ptr<Item>>>(
static_cast<std::vector<std::shared_ptr<Item>> *>(varsPtr));
for (const auto &queue : *queues) {
ActionQueueSignalManager::Instance()->Add(
QString::fromStdString(queue->Name()));
}
}
void ImportQueues(obs_data_t *data)
{
OBSDataArrayAutoRelease array =
obs_data_get_array(data, "actionQueues");
size_t count = obs_data_array_count(array);
auto importedQueues = new std::vector<std::shared_ptr<Item>>;
for (size_t i = 0; i < count; i++) {
OBSDataAutoRelease arrayElement = obs_data_array_item(array, i);
auto queue = ActionQueue::Create();
@@ -392,7 +406,10 @@ void ImportQueues(obs_data_t *data)
continue;
}
queues.emplace_back(queue);
importedQueues->emplace_back(queue);
}
QeueUITask(signalImportedQueues, importedQueues);
}
std::weak_ptr<ActionQueue> GetWeakActionQueueByName(const std::string &name)