33 using namespace Data_Structure;
37 m_itemData = rootData.toVector();
42 this->scenario = scenario;
49 this->application = application;
50 setEnabled(application->getEnabled());
58 this->packageName = name;
60 for (
const auto& appl : applications)
81 if (scenario.get() !=
nullptr)
84 m_itemData[4] = QString::fromStdString(scenario->getStatus());
86 else if (!packageName.empty())
88 m_itemData[0] = QString::fromStdString(packageName);
90 std::string
status = ApplicationStatus::Unknown;
101 auto childState =
child(i)->
data(4).toString().toStdString();
106 else if (
status == ApplicationStatus::Unknown &&
107 childState == ApplicationStatus::Stopped)
109 status = ApplicationStatus::Stopped;
111 else if (
status == ApplicationStatus::Unknown &&
112 childState == ApplicationStatus::Inactive)
114 status = ApplicationStatus::Inactive;
116 else if (
status != ApplicationStatus::Unknown &&
117 childState == ApplicationStatus::Missing)
122 childState == ApplicationStatus::Stopped) ||
123 (
status == ApplicationStatus::Stopped &&
126 childState == ApplicationStatus::Inactive) ||
127 (
status == ApplicationStatus::Stopped &&
128 childState == ApplicationStatus::Inactive) ||
129 (
status == ApplicationStatus::Inactive &&
131 (
status == ApplicationStatus::Inactive &&
132 childState == ApplicationStatus::Stopped))
134 status = ApplicationStatus::Mixed;
137 else if (childState == ApplicationStatus::Waiting)
139 status = ApplicationStatus::Waiting;
148 if (application->getInstanceName().empty())
150 m_itemData[0] = application->getName().c_str();
154 m_itemData[0] = (application->getInstanceName() +
"." + application->getName()).c_str();
157 std::string
status = application->getStatus();
158 if (!application->getFound())
161 ARMARX_INFO <<
"Application '" + application->getExecutableAbsPath() +
"' not found!";
163 m_itemData[4] = QVariant(QString::fromStdString(ApplicationStatus::Missing));
169 else if (
status == ApplicationStatus::Stopped)
171 m_itemData[4] = QVariant(QString::fromStdString(ApplicationStatus::Stopped));
173 else if (
status == ApplicationStatus::Inactive)
175 m_itemData[4] = QVariant(QString::fromStdString(ApplicationStatus::Inactive));
177 else if (
status == ApplicationStatus::Waiting)
179 m_itemData[4] = QVariant(QString::fromStdString(ApplicationStatus::Waiting));
183 m_itemData[4] = QVariant(QString::fromStdString(ApplicationStatus::Unknown));