mirror of
https://github.com/SatDump/SatDump
synced 2026-08-13 17:47:30 -04:00
48 lines
No EOL
1.7 KiB
C++
48 lines
No EOL
1.7 KiB
C++
#include "settings.h"
|
|
#include "imgui/imgui.h"
|
|
#include <string>
|
|
#include "core/params.h"
|
|
|
|
#include "core/config.h"
|
|
|
|
#include "main_ui.h"
|
|
|
|
namespace satdump
|
|
{
|
|
namespace settings
|
|
{
|
|
std::vector<std::pair<std::string, satdump::params::EditableParameter>> settings_user_interface;
|
|
|
|
void setup()
|
|
{
|
|
nlohmann::ordered_json params = satdump::config::main_cfg["user_interface"];
|
|
|
|
for (nlohmann::detail::iteration_proxy_value<nlohmann::detail::iter_impl<nlohmann::ordered_json>> cfg : params.items())
|
|
{
|
|
// Check setting type, and create an EditableParameter if possible
|
|
if (cfg.value().contains("type") && cfg.value().contains("value") && cfg.value().contains("name"))
|
|
settings_user_interface.push_back({cfg.key(), params::EditableParameter(nlohmann::json(cfg.value()))});
|
|
}
|
|
}
|
|
|
|
void render()
|
|
{
|
|
if (ImGui::CollapsingHeader("User Interface"))
|
|
{
|
|
if (ImGui::BeginTable("##satdumpuisettings", 2, ImGuiTableFlags_Borders | ImGuiTableFlags_RowBg))
|
|
{
|
|
for (std::pair<std::string, satdump::params::EditableParameter> &p : settings_user_interface)
|
|
p.second.draw();
|
|
ImGui::EndTable();
|
|
}
|
|
}
|
|
|
|
if (ImGui::Button("Save"))
|
|
{
|
|
for (std::pair<std::string, satdump::params::EditableParameter> &p : settings_user_interface)
|
|
satdump::config::main_cfg["user_interface"][p.first]["value"] = p.second.getValue();
|
|
config::saveUserConfig();
|
|
}
|
|
}
|
|
}
|
|
} |