diff --git a/source/ArmarXGui/gui-plugins/ScenarioManager/controller/SettingsController.cpp b/source/ArmarXGui/gui-plugins/ScenarioManager/controller/SettingsController.cpp index 1cf7c22437ff40621f64d1422b210bb005b296f3..610e6bbe2c2d6ca90304a5c706bea43d8a0ddb48 100644 --- a/source/ArmarXGui/gui-plugins/ScenarioManager/controller/SettingsController.cpp +++ b/source/ArmarXGui/gui-plugins/ScenarioManager/controller/SettingsController.cpp @@ -30,6 +30,7 @@ #include <ArmarXCore/util/ScenarioManagerCommon/parser/PidManager.h> #include <ArmarXCore/core/logging/Logging.h> #include <QStringList> +#include <QMessageBox> #include <QList> #include <QVariant> #include <QSettings> @@ -126,6 +127,18 @@ void SettingsController::showPackageAdderView() void SettingsController::addPackage(std::string name) { + for (auto package : *packages) + { + if (package->getName().compare(name) == 0) + { + QMessageBox box; + QString message(QString::fromStdString("Package " + name + " is already open")); + box.setText(message); + box.exec(); + return; + } + } + QSettings settings("KIT", "ScenarioManager"); QStringList packages = settings.value("packages").toStringList(); diff --git a/source/ArmarXGui/gui-plugins/ScenarioManager/gui/detailedapplicationview.cpp b/source/ArmarXGui/gui-plugins/ScenarioManager/gui/detailedapplicationview.cpp index 9988584f8031384665d0ae61d96139e128fec219..41b4db891be660db76b2bcea20f50b2c69915123 100644 --- a/source/ArmarXGui/gui-plugins/ScenarioManager/gui/detailedapplicationview.cpp +++ b/source/ArmarXGui/gui-plugins/ScenarioManager/gui/detailedapplicationview.cpp @@ -522,9 +522,13 @@ void DetailedApplicationView::itemChanged(QtProperty* property, const QVariant& else if (property->propertyName().compare("Instance Name") && properties->getProperty(property->propertyName().toStdString()).compare(value.toString().toStdString())) { lastAppInstance->modifyProperty(property->propertyName().toStdString(), property->valueText().toStdString()); - lastAppInstance->setDefaultPropertyEnabled(property->propertyName().toStdString(), true); - variantManager->setAttribute(property, QLatin1String("enabled"), true); - + if (value.toString().compare("<set value!>") + && value.toString().compare("::NOT_DEFINED::") + && value.toString().compare("::_NOT_SET_::")) + { + lastAppInstance->setDefaultPropertyEnabled(property->propertyName().toStdString(), true); + variantManager->setAttribute(property, QLatin1String("enabled"), true); + } updateTimer.start(UPDATE_TIMER_INTERVAL); } //showApplicationInstance(lastAppInstance); @@ -572,8 +576,8 @@ void DetailedApplicationView::itemAttributeChanged(QtProperty* property, const Q if (definition.isRequired()) { - properties->getProperties()->setProperty(property->propertyName().toStdString(), ""); - internalManager->setValue(property, ""); + properties->getProperties()->setProperty(property->propertyName().toStdString(), "::_NOT_SET_::"); + internalManager->setValue(property, "::_NOT_SET_::"); } else { diff --git a/source/ArmarXGui/gui-plugins/ScenarioManager/gui/scenarioitem.cpp b/source/ArmarXGui/gui-plugins/ScenarioManager/gui/scenarioitem.cpp index a4204bcf8b2ddd6b9d20d44e133ff95525a2edb5..765cf926faf76873542fbe0ad54b4c0f3c54dc40 100644 --- a/source/ArmarXGui/gui-plugins/ScenarioManager/gui/scenarioitem.cpp +++ b/source/ArmarXGui/gui-plugins/ScenarioManager/gui/scenarioitem.cpp @@ -75,27 +75,48 @@ void ScenarioItem::update() if (scenario.get() != nullptr) { m_itemData[0] = scenario->getName().c_str(); - std::string status = scenario->getStatus(); - if (status.compare("Running") == 0) - { - m_itemData[4] = "Running"; - } - else if (status.compare("Stopped") == 0) - { - m_itemData[4] = "Stopped"; - } - else if (status.compare("") == 0) - { - m_itemData[4] = "Unknown"; - } - else - { - m_itemData[4] = "Mixed"; - } + m_itemData[4] = QString::fromStdString(scenario->getStatus()); } else if (!packageName.empty() && applications->size() > 0) { m_itemData[0] = QString::fromStdString(packageName); + + std::string status = ""; + for (auto app : *applications) + { + if (status.compare("") == 0 && app->getStatus().compare("Running") == 0) + { + status = "Running"; + } + else if (status.compare("") == 0 && app->getStatus().compare("Stopped") == 0) + { + status = "Stopped"; + } + else if (status.compare("Running") == 0 && app->getStatus().compare("Running") == 0) + { + status = "Running"; + } + else if (status.compare("Stopped") == 0 && app->getStatus().compare("Stopped") == 0) + { + status = "Stopped"; + } + else if (status.compare("Running") == 0 && app->getStatus().compare("Stopped") == 0) + { + status = "Mixed"; + break; + } + else if (status.compare("Stopped") == 0 && app->getStatus().compare("Running") == 0) + { + status = "Mixed"; + break; + } + else + { + status = "Mixed"; + break; + } + } + m_itemData[4] = QString::fromStdString(status); } else { @@ -125,7 +146,6 @@ void ScenarioItem::update() { m_itemData[4] = "Unknown"; } - } }