29 #include <QDataStream>
32 #include <QStringList>
39 using namespace Data_Structure;
45 new ScenarioItem(QList<QVariant>({
"Scenarios",
"Start",
"Stop",
"Restart",
"Status"}));
56 if (role == Qt::ForegroundRole)
60 if (instance.get() !=
nullptr && !instance->getEnabled())
62 return QColor(Qt::lightGray);
64 if (
index.column() == 4)
68 return QColor(Qt::lightGray);
80 return QColor(Qt::gray);
84 return QColor(Qt::darkYellow);
88 return QColor(Qt::blue);
92 return QColor(Qt::black);
96 else if (role == Qt::ToolTipRole)
98 const QAbstractItemModel* model =
index.model();
100 model->data(model->index(
index.row(), 0,
index.parent()), Qt::DisplayRole).toString();
102 if (
index.column() == 1)
104 return QVariant(QString(
"Start ") + appName);
106 else if (
index.column() == 2)
108 return QVariant(QString(
"Stop ") + appName);
110 else if (
index.column() == 3)
112 return QVariant(QString(
"Restart ") + appName);
117 return QVariant::fromValue(
reinterpret_cast<ScenarioItem*
>(
index.internalPointer()));
119 else if (role != Qt::DisplayRole)
133 new ScenarioItem(QList<QVariant>({
"Scenarios",
"Start",
"Stop",
"Restart",
"Status"}));
140 return Qt::CopyAction;
146 Qt::ItemFlags defaultFlags = QAbstractItemModel::flags(
index);
153 return Qt::ItemIsDropEnabled | defaultFlags;
160 types <<
"application/pointer";
166 Qt::DropAction action,
169 const QModelIndex& parent)
171 if (action == Qt::IgnoreAction)
176 if (!
data->hasFormat(
"application/pointer"))
195 QByteArray encodedData =
data->data(
"application/pointer");
196 QDataStream stream(&encodedData, QIODevice::ReadOnly);
197 QList<QPair<QString, ScenarioManager::Data_Structure::Application*>> result;
200 while (!stream.atEnd())
203 QString instanceName;
204 stream >> holder >> instanceName;
210 result << qMakePair(instanceName,
215 emit applicationsDrop(result, row, parent);
222 for (
int i = 0; i < rootItem->childCount(); i++)
232 QModelIndex topLeft =
index(0, 0);
233 QModelIndex bottomRight =
index(rowCount() - 1, columnCount() - 1);
235 emit dataChanged(topLeft, bottomRight);
262 for (
int i = 0; i < model->rowCount(); ++i)
264 auto index = model->index(i, 0);
265 auto currentScenarioName =
index.data().toString();
266 if (currentScenarioName == scenarioName)
279 for (
int i = 0; i < model->rowCount(); ++i)
281 auto index = model->index(i, 0);
282 auto currentScenarioName =
index.data().toString();
283 if (currentScenarioName == scenarioName)