39 ConditionRegistry::const_iterator iter = registry.begin();
41 while (iter != registry.end())
43 updateOrInsertCondition(iter->first, ConditionRootPtr::dynamicCast(iter->second));
59 setHorizontalHeaderItem(0,
new QStandardItem(
"id"));
60 setHorizontalHeaderItem(1,
new QStandardItem(
"component"));
61 setHorizontalHeaderItem(2,
new QStandardItem(
"state"));
62 setHorizontalHeaderItem(3,
new QStandardItem(
"event"));
63 setHorizontalHeaderItem(4,
new QStandardItem(
"fired"));
64 setHorizontalHeaderItem(5,
new QStandardItem(
"description"));
68 ConditionItemModel::updateOrInsertCondition(
int id,
const ConditionRootPtr& condition)
74 for (
int r = 0; r < rowCount(); r++)
76 QStandardItem* current = item(r, 0);
88 insertRow(rowCount());
89 updateRow = rowCount() - 1;
93 id_string.sprintf(
"%06d",
id);
95 QStandardItem*
index =
new QStandardItem(id_string);
98 setItem(updateRow, 0,
index);
99 setItem(updateRow, 1,
new QStandardItem(
"component"));
100 setItem(updateRow, 2,
new QStandardItem(
"state"));
101 setItem(updateRow, 3,
new QStandardItem(
"event"));
102 setItem(updateRow, 4,
new QStandardItem(
"false"));
103 setItem(updateRow, 5,
new QStandardItem(
"dsc"));
108 extractFields(condition->event->eventName, component, event);
111 item(updateRow, 1)->setData(QVariant(
component.c_str()), Qt::DisplayRole);
113 ->setData(QVariant(condition->event->eventReceiverName.c_str()), Qt::DisplayRole);
114 item(updateRow, 3)->setData(QVariant(event.c_str()), Qt::DisplayRole);
116 if (condition->fired)
118 item(updateRow, 4)->setData(QVariant(
"true"), Qt::DisplayRole);
119 item(updateRow, 4)->setBackground(
Qt::green);
123 item(updateRow, 4)->setData(QVariant(
"false"), Qt::DisplayRole);
124 item(updateRow, 4)->setBackground(
Qt::red);
127 item(updateRow, 5)->setData(QVariant(condition->description.c_str()), Qt::DisplayRole);
131 ConditionItemModel::markAllForDelete()
134 for (
int r = 0; r < rowCount(); r++)
141 ConditionItemModel::deleteUnusedItems()
144 std::vector<int> removeRows;
146 for (
int r = 0; r < rowCount(); r++)
150 removeRows.push_back(r);
155 std::vector<int>::iterator iter = removeRows.begin();
157 while (iter != removeRows.end())
165 ConditionItemModel::extractFields(std::string in,
166 std::string& componentName,
167 std::string& eventName)
169 std::size_t pos = in.find(
"_EventDistributor");
171 if (pos != std::string::npos)
173 componentName = in.substr(0, pos - 1);
176 std::size_t posEvent = in.find(
"__Event:");
177 std::size_t posRecv = in.find(
"__EventRecv:");
179 if ((posEvent == std::string::npos) || (posRecv == std::string::npos))
187 eventName = in.substr(posEvent, posRecv - posEvent - 13);