detailedapplicationview.h
Go to the documentation of this file.
1 /*
2  * This file is part of ArmarX.
3  *
4  * Copyright (C) 2011-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
5  *
6  * ArmarX is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  *
10  * ArmarX is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  *
18  * @package ArmarXCore::core
19  * @author Cedric Seehausen (usdnr at kit dot edu)
20  * @date 2016
21  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
22  * GNU General Public License
23  */
24 
25 
26 #pragma once
27 
31 #include "scenarioitem.h"
32 #include <memory>
33 #include <QWidget>
34 #include <QTimer>
35 
36 
37 namespace Ui
38 {
40 }
41 
42 
43 /**
44 * @class DetailedApplicationView
45 * @brief View that shows detailed information about a Scenario, Package or Application.
46 * Shows status and parameters of the object.
47 * Also allows starting, stopping and restarting of Scenarios and Applications.
48 */
49 class DetailedApplicationView : public QWidget
50 {
51  Q_OBJECT
52 
53 public:
54  /**
55  * Constructor that sets up the ui.
56  * @param parent parent widget
57  */
58  explicit DetailedApplicationView(QWidget* parent = 0);
59 
60  /**
61  * Destructor.
62  */
63  ~DetailedApplicationView() override;
64 
65 public:
66  /**
67  * Show an Application.
68  * @param application Application to show
69  */
71 
72  /**
73  * Show an ApplicationInstance.
74  * @param appInstance ApplicationInstance to show
75  */
77 
78  /**
79  * Show a Scenario.
80  * @param scenario Scenario to show
81  */
83 
84  /**
85  * Show a Package.
86  * @param package Package to show
87  */
89 
90 
91 signals:
92  void startButtonClicked();
93  void stopButtonClicked();
94  void restartButtonClicked();
97  void toolButtonClicked();
101 
102 public slots:
103  /**
104  * Updates the status of the displayed item.
105  */
106  void updateStatus();
107 
108 private slots:
109  void on_searchBar_textEdited(const QString& text);
110 
111  void on_showInactiveProperties_stateChanged(int state);
112 
113  void on_startButton_clicked();
114 
115  void on_stopButton_clicked();
116 
117  void on_restartButton_clicked();
118 
119  void on_addParameterButton_clicked();
120  void on_addIceEnvButton_clicked();
121 
122  void on_toolButton_clicked();
123 
124  void itemChanged(QtProperty* property, const QVariant& value);
125  void itemAttributeChanged(QtProperty* property, const QString& attribute, const QVariant& val);
126 
127  void on_reloadButton_clicked();
128 
129  void on_fileUpdate();
130 
131  void on_makeLocalButton_clicked();
132 
133 private:
134  void init();
135  void show_or_hide_property(QtProperty*, bool);
136  bool show_or_hide_subproperties(QtProperty*, const QString&);
137 
138 private:
139  Ui::DetailedApplicationView* ui;
140 
141  std::shared_ptr<QtVariantPropertyManager> variantManager;
142  std::shared_ptr<QtVariantEditorFactory> variantFactory;
143 
144  bool statusUpdateRelevant;
147  ScenarioItem* lastScenarioItem;
148 
149  bool neadsUpdate;
150  QTimer updateTimer;
151 };
152 
153 using DetailedApplicationViewPtr = std::shared_ptr<DetailedApplicationView>;
154 
ScenarioItem
TreeItem representing data contained in a Scenario or an Application.
Definition: scenarioitem.h:38
DetailedApplicationView::applicationEnabledChange
void applicationEnabledChange(bool enabled)
ScenarioManager::Data_Structure::ApplicationInstancePtr
std::shared_ptr< ApplicationInstance > ApplicationInstancePtr
Definition: ApplicationInstance.h:33
ScenarioManager::Data_Structure::ScenarioPtr
std::shared_ptr< Scenario > ScenarioPtr
Definition: Scenario.h:36
DetailedApplicationView::addIceEnvButtonClicked
void addIceEnvButtonClicked()
DetailedApplicationView::saveScenario
void saveScenario(ScenarioManager::Data_Structure::ApplicationInstancePtr application)
ScenarioManager::Data_Structure::ApplicationPtr
std::shared_ptr< Application > ApplicationPtr
Definition: Application.h:119
DetailedApplicationView::showApplication
void showApplication(ScenarioManager::Data_Structure::ApplicationPtr application)
Show an Application.
Definition: detailedapplicationview.cpp:109
DetailedApplicationView::startButtonClicked
void startButtonClicked()
scenarioitem.h
OptionalPropertyFactory.h
DetailedApplicationView::restartButtonClicked
void restartButtonClicked()
DetailedApplicationViewPtr
std::shared_ptr< DetailedApplicationView > DetailedApplicationViewPtr
Definition: detailedapplicationview.h:153
DetailedApplicationView::toolButtonClicked
void toolButtonClicked()
QtProperty
The QtProperty class encapsulates an instance of a property.
Definition: qtpropertybrowser.h:71
Package.h
DetailedApplicationView::updateStatus
void updateStatus()
Updates the status of the displayed item.
Definition: detailedapplicationview.cpp:796
cxxopts::value
std::shared_ptr< Value > value()
Definition: cxxopts.hpp:926
Ui
ArmarX Headers.
Definition: ArmarXMainWindow.h:58
ScenarioManager::Data_Structure::PackagePtr
std::shared_ptr< Package > PackagePtr
Definition: Package.h:121
DetailedApplicationView::~DetailedApplicationView
~DetailedApplicationView() override
Destructor.
Definition: detailedapplicationview.cpp:76
enabled
std::atomic< bool > * enabled
Definition: RemoteGuiWidgetController.cpp:75
DetailedApplicationView::makeLocalButtonClicked
void makeLocalButtonClicked()
DetailedApplicationView::showScenario
void showScenario(ScenarioManager::Data_Structure::ScenarioPtr scenario)
Show a Scenario.
Definition: detailedapplicationview.cpp:409
DetailedApplicationView::addParameterButtonClicked
void addParameterButtonClicked()
DetailedApplicationView::DetailedApplicationView
DetailedApplicationView(QWidget *parent=0)
Constructor that sets up the ui.
Definition: detailedapplicationview.cpp:63
DetailedApplicationView::showApplicationInstance
void showApplicationInstance(ScenarioManager::Data_Structure::ApplicationInstancePtr appInstance, ScenarioItem *item)
Show an ApplicationInstance.
Definition: detailedapplicationview.cpp:200
DetailedApplicationView::showPackage
void showPackage(ScenarioManager::Data_Structure::PackagePtr package)
Show a Package.
Definition: detailedapplicationview.cpp:622
DetailedApplicationView
View that shows detailed information about a Scenario, Package or Application. Shows status and param...
Definition: detailedapplicationview.h:49
DetailedApplicationView::stopButtonClicked
void stopButtonClicked()
qtpropertymanager.h