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);
72 return QColor(Qt::green);
76 return QColor(Qt::red);
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,
222 for (
int i = 0; i <
rootItem->childCount(); i++)
232 QModelIndex topLeft =
index(0, 0);
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)
TreeItem representing data contained in a Scenario or an Application.
ScenarioManager::Data_Structure::ApplicationInstancePtr getApplicationInstance()
If this item represents an Application, it is returned.
void update()
Clears the item_data and parses the Scenario or Application for new data.
Class containing data about an application Provides methods to get and set the date contained in the ...
QStringList mimeTypes() const override
void applicationsDrop(QList< QPair< QString, ScenarioManager::Data_Structure::Application * > > applications, int row, const QModelIndex &parent)
static ScenarioItem * FindScenario(const QAbstractItemModel *model, const QString &scenarioName)
Qt::ItemFlags flags(const QModelIndex &index) const override
Returns the item flags of the item at the given index.
ScenarioItem * getRootItem()
static int FindScenarioIndex(const QAbstractItemModel *model, const QString &scenarioName)
void update()
Updates this model.
Qt::DropActions supportedDropActions() const override
Returns the drop-Actions supported by this model.
QVariant data(const QModelIndex &index, int role) const override
Returns the data of the item at the given index based on the given role.
void clear() override
Clears and resets this model.
ScenarioModel()
Sets up the model.
bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
virtual QVariant data(int column) const
TreeItem * child(int row)
int rowCount(const QModelIndex &parent=QModelIndex()) const override
QModelIndex index(int row, int column, const QModelIndex &parent=QModelIndex()) const override
int columnCount(const QModelIndex &parent=QModelIndex()) const override
QModelIndex parent(const QModelIndex &index) const override
#define ARMARX_CHECK_EXPRESSION(expression)
This macro evaluates the expression and if it turns out to be false it will throw an ExpressionExcept...
std::shared_ptr< ApplicationInstance > ApplicationInstancePtr
This file offers overloads of toIce() and fromIce() functions for STL container types.
static const std::string Stopped
static const std::string Mixed
static const std::string Missing
static const std::string Inactive
static const std::string Waiting
static const std::string Running