29 #include <QMessageBox>
32 #include <QStringList>
44 using namespace Controller;
45 using namespace Data_Structure;
58 model->setSourceModel(treemodel.get());
60 stopperFactory = StopperFactory::getFactory();
61 starterFactory = StarterFactory::getFactory();
67 QObject::connect(&settingsDialog,
73 &packageAdderView, SIGNAL(created(std::string)),
this, SLOT(
addPackage(std::string)));
75 QObject::connect(&settingsDialog,
76 SIGNAL(changeExecutorSettings(std::string,
int, std::string)),
80 QObject::connect(
this,
89 QObject::connect(&settingsDialog, SIGNAL(XmlCache()),
this, SLOT(
clearXmlCache()));
91 QObject::connect(&settingsDialog,
94 &This::closeUnavailablePackages);
106 const std::string file =
108 QSettings settings(QString(file.c_str()), QSettings::NativeFormat);
109 QStringList execSettings = settings.value(
"execSettings").toStringList();
111 if (execSettings.size() < 3)
113 execSettings.clear();
114 execSettings <<
"Stop & Kill"
117 settings.setValue(
"execSettings", execSettings);
119 execSettings.at(1).toInt(),
120 execSettings.at(2).toStdString());
125 execSettings.at(1).toInt(),
126 execSettings.at(2).toStdString());
134 const std::string file =
136 QSettings settings(QString(file.c_str()), QSettings::NativeFormat);
137 QStringList execSettings = settings.value(
"execSettings").toStringList();
139 if (execSettings.size() < 3)
141 execSettings.clear();
142 execSettings <<
"Stop & Kill"
145 settings.setValue(
"execSettings", execSettings);
147 execSettings.at(1).toInt(),
148 execSettings.at(2).toStdString());
153 execSettings.at(1).toInt(),
154 execSettings.at(2).toStdString());
157 settingsDialog.exec();
163 packageAdderView.exec();
169 for (
const auto& package : *packages)
171 if (package->getName().compare(name) == 0)
174 QString
message(QString::fromStdString(
"Package " + name +
" is already open"));
181 const std::string file =
183 QSettings settings(QString(file.c_str()), QSettings::NativeFormat);
184 QStringList packages = settings.value(
"packages").toStringList();
185 packages.removeDuplicates();
186 packages.append(QString::fromStdString(name));
188 settings.setValue(
"packages", packages);
201 if (settingsItem ==
nullptr)
206 PackagePtr package = settingsItem->getPackage();
209 const std::string file =
211 QSettings settings(QString(file.c_str()), QSettings::NativeFormat);
212 QStringList settingsPackages = settings.value(
"packages").toStringList();
213 settingsPackages.removeDuplicates();
215 settingsPackages.removeAt(settingsPackages.indexOf(QString::fromStdString(package->getName())));
217 settings.setValue(
"packages", settingsPackages);
220 for (std::vector<PackagePtr>::iterator iter = packages->begin(); iter != packages->end();
223 if (*iter == package)
225 packages->erase(iter);
237 std::string stopMethod)
242 int stopStrategyIndex = 0;
243 if (stopMethod.compare(
"By Id") == 0)
245 applicationStopper = stopperFactory->getPidStopper();
248 else if (stopMethod.compare(
"By Name") == 0)
250 applicationStopper = stopperFactory->getByNameStopper();
254 if (killMethod.compare(
"Stop only") == 0)
256 stopStrategy = stopStrategyFactory.
getStopStrategy(applicationStopper);
257 stopStrategyIndex = 1;
259 else if (killMethod.compare(
"Stop & Kill") == 0)
262 stopStrategyIndex = 0;
265 if (stopStrategy.get() ==
nullptr)
270 executor->setDefaultStopStrategy(stopStrategy);
272 const std::string file =
274 QSettings settings(QString(file.c_str()), QSettings::NativeFormat);
275 QStringList execSettings = settings.value(
"execSettings").toStringList();
276 execSettings.clear();
278 execSettings << QString::fromStdString(killMethod) << QString::number(delay)
279 << QString::fromStdString(stopMethod);
280 settings.setValue(
"execSettings", execSettings);
289 for (
const auto& package : *packages)
298 model->setSourceModel(treemodel.get());
317 const std::string file =
319 QSettings settings(QString(file.c_str()), QSettings::NativeFormat);
320 QStringList packages = settings.value(
"packages").toStringList();
321 packages.removeDuplicates();
324 std::vector<std::string> foundStd;
325 std::vector<std::string> unavailableStd;
326 for (
int i = 0; i < packages.size(); i++)
328 const QString name = packages.at(i);
335 foundStd.push_back(name.toStdString());
339 unavailableStd.push_back(name.toStdString());
343 ARMARX_INFO <<
"Removed " << unavailableStd.size() <<
" from open packages: \n"
344 << unavailableStd <<
"\nFound available packages: \n"
347 settings.setValue(
"packages", found);