ConditionItemModel.h
Go to the documentation of this file.
1/*
2* This file is part of ArmarX.
3*
4* ArmarX is free software; you can redistribute it and/or modify
5* it under the terms of the GNU General Public License version 2 as
6* published by the Free Software Foundation.
7*
8* ArmarX is distributed in the hope that it will be useful, but
9* WITHOUT ANY WARRANTY; without even the implied warranty of
10* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11* GNU General Public License for more details.
12*
13* You should have received a copy of the GNU General Public License
14* along with this program. If not, see <http://www.gnu.org/licenses/>.
15*
16* @package ArmarX::Gui
17* @author Kai Welke (welke@kit.edu)
18* @copyright 2012 Humanoids Group, IAIM, IFA
19* @license http://www.gnu.org/licenses/gpl-2.0.txt
20* GNU General Public License
21*/
22
23#pragma once
24
25#include <string>
26
27#include <QStandardItemModel>
28
29#include <ArmarXCore/interface/observers/ConditionHandlerInterface.h>
31
32#define CONDITION_ITEM_DELETE Qt::UserRole + 1
33#define CONDITION_ITEM_ID Qt::UserRole + 2
34
35namespace armarx
36{
37 class ConditionItemModel : public QStandardItemModel
38 {
39 public:
41
43 {
44 }
45
46 // update the model with the given registry
47 void update(const ConditionRegistry& registry);
48
49 // reset the model
50 void reset();
51
52 private:
53 void extractFields(std::string in, std::string& componentName, std::string& eventName);
54 void updateOrInsertCondition(int id, const ConditionRootPtr& condition);
55 void markAllForDelete();
56 void deleteUnusedItems();
57 };
58} // namespace armarx
void update(const ConditionRegistry &registry)
This file offers overloads of toIce() and fromIce() functions for STL container types.
IceInternal::Handle< ConditionRoot > ConditionRootPtr
Typedef of ConditionRootPtr as IceInternal::Handle<ConditionRoot> for convenience.