mirror of
https://github.com/hyprwm/Hyprland
synced 2024-12-25 07:49:49 +01:00
fix hyprctl getoption with json
This commit is contained in:
parent
9cc86f52dc
commit
29171cd0e1
1 changed files with 20 additions and 6 deletions
|
@ -1193,16 +1193,30 @@ std::string dispatchGetOption(eHyprCtlOutputFormat format, std::string request)
|
||||||
const auto VAL = VAR->getValue();
|
const auto VAL = VAR->getValue();
|
||||||
const auto TYPE = std::type_index(VAL.type());
|
const auto TYPE = std::type_index(VAL.type());
|
||||||
|
|
||||||
if (TYPE == typeid(Hyprlang::INT))
|
if (format == FORMAT_NORMAL) {
|
||||||
return std::format("int: {}", std::any_cast<Hyprlang::INT>(VAL));
|
if (TYPE == typeid(Hyprlang::INT))
|
||||||
|
return std::format("int: {}\nset: {}", std::any_cast<Hyprlang::INT>(VAL), VAR->m_bSetByUser);
|
||||||
else if (TYPE == typeid(Hyprlang::FLOAT))
|
else if (TYPE == typeid(Hyprlang::FLOAT))
|
||||||
return std::format("float: {:2f}", std::any_cast<Hyprlang::FLOAT>(VAL));
|
return std::format("float: {:2f}\nset: {}", std::any_cast<Hyprlang::FLOAT>(VAL), VAR->m_bSetByUser);
|
||||||
else if (TYPE == typeid(Hyprlang::VEC2))
|
else if (TYPE == typeid(Hyprlang::VEC2))
|
||||||
return std::format("vec2: {}, {}", std::any_cast<Hyprlang::VEC2>(VAL).x, std::any_cast<Hyprlang::VEC2>(VAL).y);
|
return std::format("vec2: [{}, {}]\nset: {}", std::any_cast<Hyprlang::VEC2>(VAL).x, std::any_cast<Hyprlang::VEC2>(VAL).y, VAR->m_bSetByUser);
|
||||||
else if (TYPE == typeid(Hyprlang::STRING))
|
else if (TYPE == typeid(Hyprlang::STRING))
|
||||||
return std::format("str: {}", std::any_cast<Hyprlang::STRING>(VAL));
|
return std::format("str: {}\nset: {}", std::any_cast<Hyprlang::STRING>(VAL), VAR->m_bSetByUser);
|
||||||
else if (TYPE == typeid(Hyprlang::CUSTOMTYPE*))
|
else if (TYPE == typeid(Hyprlang::CUSTOMTYPE*))
|
||||||
return std::format("custom type at: {:x}", (uintptr_t)std::any_cast<Hyprlang::CUSTOMTYPE*>(VAL));
|
return std::format("custom type at: {:x}\nset: {}", (uintptr_t)std::any_cast<Hyprlang::CUSTOMTYPE*>(VAL), VAR->m_bSetByUser);
|
||||||
|
} else {
|
||||||
|
if (TYPE == typeid(Hyprlang::INT))
|
||||||
|
return std::format("{{\"option\": \"{}\", \"int\": {}, \"set\": {} }}", curitem, std::any_cast<Hyprlang::INT>(VAL), VAR->m_bSetByUser);
|
||||||
|
else if (TYPE == typeid(Hyprlang::FLOAT))
|
||||||
|
return std::format("{{\"option\": \"{}\", \"float\": {:2f}, \"set\": {} }}", curitem, std::any_cast<Hyprlang::FLOAT>(VAL), VAR->m_bSetByUser);
|
||||||
|
else if (TYPE == typeid(Hyprlang::VEC2))
|
||||||
|
return std::format("{{\"option\": \"{}\", \"vec2\": [{},{}], \"set\": {} }}", curitem, std::any_cast<Hyprlang::VEC2>(VAL).x, std::any_cast<Hyprlang::VEC2>(VAL).y, VAR->m_bSetByUser);
|
||||||
|
else if (TYPE == typeid(Hyprlang::STRING))
|
||||||
|
return std::format("{{\"option\": \"{}\", \"str\": \"{}\", \"set\": {} }}", curitem, escapeJSONStrings(std::any_cast<Hyprlang::STRING>(VAL)), VAR->m_bSetByUser);
|
||||||
|
else if (TYPE == typeid(Hyprlang::CUSTOMTYPE*))
|
||||||
|
return std::format("{{\"option\": \"{}\", \"custom\": \"{:x}\", \"set\": {} }}", curitem, (uintptr_t)std::any_cast<Hyprlang::CUSTOMTYPE*>(VAL), VAR->m_bSetByUser);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return "invalid type (internal error)";
|
return "invalid type (internal error)";
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue