/
pi_coder
/
ByteMachine
Обзор
Документация
Войти
/
pi_coder
/
ByteMachine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/nodes/node_states.cpp
134 строки
4 KB
pimenov-and
Перенос функциональности из старого проекта, в основном это описания узлов
19 июл 2026, 20:13
19 июл 2026, 20:13
cb3c51b
Код
Авторство
О чём код?
//////////////////////////////////////////////////////////////// // ByteMachine // Состояния узла //////////////////////////////////////////////////////////////// #include "node_states.h" #include "stl_helper.h" #include <QObject> #include <algorithm> //============================================================== using std::array; //============================================================== // Конвертация состояния узла в строку //============================================================== QString nodeStateToStr(NodeStates state) { switch (state) { case NodeStates::Success: { return "Success"; } case NodeStates::Warning: { return "Warning"; } case NodeStates::Error: { return "Error"; } default: { return "Unknown"; } } } //============================================================== // Конвертация состояния узла в строку с учётом перевода //============================================================== QString nodeStateToStrTr(NodeStates state) { switch (state) { case NodeStates::Success: { return QObject::tr("Success"); } case NodeStates::Warning: { return QObject::tr("Warning"); } case NodeStates::Error: { return QObject::tr("Error"); } default: { return QObject::tr("Unknown"); } } } //============================================================== // Конвертация строки в состояние узла //============================================================== NodeStates strToNodeState(const QString &str) { if (str == "Success") { return NodeStates::Success; } else if (str == "Warning") { return NodeStates::Warning; } else if (str == "Error") { return NodeStates::Error; } else { return NodeStates::Unknown; } } //============================================================== // Конвертация числа в состояние узла //============================================================== NodeStates intToNodeState(qint32 value) { const NodeStates state = static_cast<NodeStates>(value); return isCorrect(state) ? state : NodeStates::Unknown; } //============================================================== // Конвертация состояния узла в индекс //============================================================== qint32 nodeStateToIndex(NodeStates state) { return nodeStateToInt(state); } //============================================================== // Конвертация индекса в состояние узла //============================================================== NodeStates indexToNodeState(qint32 index) { return intToNodeState(index); } //============================================================== // Получение массива состояний узла //============================================================== array<NodeStates, 4> getNodeStateValues() { return array<NodeStates, 4> { NodeStates::Unknown, NodeStates::Success, NodeStates::Warning, NodeStates::Error }; } //============================================================== // Проверка корректности состояния узла //============================================================== bool isCorrect(NodeStates state) { return contains(getNodeStateValues(), state); }