RegularState.cpp
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::
17* @author Mirko Waechter ( mirko.waechter at kit dot edu)
18* @date 2014
19* @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20* GNU General Public License
21*/
22
23#include "RegularState.h"
24
25#include "../State.h"
26#include "Visitor.h"
27
29{
30
32 const QString& instanceName,
34 StateInstance(instanceName, parentState), stateClass(stateClass)
35 {
36 if (stateClass)
37 {
38 stateClassUUID = stateClass->getUUID();
39 setStateClass(stateClass);
40 }
41 }
42
43 RegularState::RegularState(const QString& stateClassUUID,
44 const QString& instanceName,
46 StateInstance(instanceName, parentState), stateClassUUID(stateClassUUID)
47 {
48 }
49
52 {
53 return stateClass;
54 }
55
56 void
58 {
59 if (newStateClass)
60 {
61 if (stateClass)
62 {
63 // TODO check if disconnect works
64 disconnect(stateClass.get(), SIGNAL(resized()), this, SLOT(updateScale()));
65 }
66
67 stateClass = newStateClass;
68 connect(stateClass.get(), SIGNAL(resized()), this, SLOT(updateScale()));
69 }
70 }
71} // namespace armarx::statechartmodel
StatePtr getStateClass() const override
void setStateClass(StatePtr newStateClass)
RegularState(StatePtr stateClass, const QString &instanceName, StatePtr parentState=StatePtr())
StateInstance(const QString &instanceName, StatePtr parentState=StatePtr())
std::shared_ptr< State > StatePtr
Definition State.h:48