StateTabWidget.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 "StateTabWidget.h"
26 
27 namespace armarx
28 {
29  StateTabWidget::StateTabWidget(QWidget* parent) :
30  QTabWidget(parent)
31  {
32  connect(this, SIGNAL(tabCloseRequested(int)), this, SLOT(deleteViewerWidget(int)));
33  }
34 
36  {
37  StatechartView* viewer = qobject_cast<StatechartView*>(currentWidget());
38 
39  if (viewer)
40  {
41  return viewer->getStateInstance();
42  }
43 
45  }
46 
48  {
49  return dynamic_cast<StatechartView*>(currentWidget());
50  }
51 
53  {
54  return dynamic_cast<StatechartView*>(widget(index));
55  }
56 
58  {
59 
60  for (int i = 0; i < count(); ++i)
61  {
62  StatechartView* view = stateview(i);
63 
64  if (view)
65  {
66  if (view->getStateInstance() && view->getStateInstance()->getStateClass() == state)
67  {
68  return i;
69  }
70  }
71  }
72 
73  return -1;
74  }
75 
76 
78  {
79  StatechartView* v = new StatechartView(state, false);
80  addTab(v, (state) ? state->getStateName() : "NoState");
81  setCurrentIndex(count() - 1);
82  QSizePolicy p;
83  p.setVerticalStretch(5);
84  p.setVerticalPolicy(QSizePolicy::MinimumExpanding);
85  currentWidget()->setSizePolicy(p);
86  v->viewAll();
87  return v;
88  }
89 
91  {
92  return addStateTab();
93  }
94 
95  void StateTabWidget::deleteViewerWidget(int index)
96  {
97  widget(index)->deleteLater();
98  }
99 
100 }
101 
102 
104 {
105  return QSize(400, 400);
106 }
armarx::StateTabWidget::currentStateview
StatechartView * currentStateview() const
Definition: StateTabWidget.cpp:47
StatechartView.h
index
uint8_t index
Definition: EtherCATFrame.h:59
armarx::StateTabWidget::stateview
StatechartView * stateview(int index) const
Definition: StateTabWidget.cpp:52
armarx::StateTabWidget::StateTabWidget
StateTabWidget(QWidget *parent=0)
Definition: StateTabWidget.cpp:29
armarx::StateTabWidget::addEmptyStateTab
StatechartView * addEmptyStateTab()
Definition: StateTabWidget.cpp:90
armarx::statechartmodel::StateInstancePtr
std::shared_ptr< StateInstance > StateInstancePtr
Definition: StateInstance.h:138
armarx::StateTabWidget::sizeHint
QSize sizeHint() const override
Definition: StateTabWidget.cpp:103
armarx::StatechartView
Definition: StatechartView.h:44
armarx::StateTabWidget::getStateTab
int getStateTab(statechartmodel::StatePtr state) const
Definition: StateTabWidget.cpp:57
armarx::StateTabWidget::addStateTab
StatechartView * addStateTab(statechartmodel::StatePtr state=statechartmodel::StatePtr())
Definition: StateTabWidget.cpp:77
armarx::ctrlutil::v
double v(double t, double v0, double a0, double j)
Definition: CtrlUtil.h:39
ArmarXWidgetController.h
StateTabWidget.h
armarx::statechartmodel::StatePtr
std::shared_ptr< State > StatePtr
Definition: State.h:46
armarx::StatechartView::getStateInstance
statechartmodel::StateInstancePtr getStateInstance() const
Definition: StatechartView.cpp:86
armarx::StateTabWidget::currentState
statechartmodel::StateInstancePtr currentState() const
Definition: StateTabWidget.cpp:35
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:28