GroupBox.cpp
Go to the documentation of this file.
1 #include "GroupBox.h"
2 
3 #include <QCheckBox>
4 #include <QGuiApplication>
5 #include <QHBoxLayout>
6 #include <QScreen>
7 #include <QSplitter>
8 #include <QVBoxLayout>
9 
11 {
12 
14  {
15  QVBoxLayout* layout = new QVBoxLayout();
16  this->setLayout(layout);
17 
18  QSplitter* splitter = new QSplitter(Qt::Orientation::Vertical);
19  layout->addWidget(splitter);
20 
21  this->setTitle("Memory");
22  int margin = 3;
23  this->layout()->setContentsMargins(margin, margin, margin, margin);
24 
25 
26  _tree = new armem::gui::MemoryTreeWidget();
27 
28 
29  _memoryTabWidget = new QTabWidget();
30  _memoryTabGroup = new QGroupBox("Queries, Predictions and Commits");
31  _memoryTabGroup->setLayout(new QVBoxLayout());
32 
33  margin = 0;
34  _memoryTabGroup->setContentsMargins(margin, margin, margin, margin);
35  _memoryTabGroup->setSizePolicy(QSizePolicy::Policy::Expanding,
36  QSizePolicy::Policy::Maximum);
37 
38  {
39  _queryWidget = new armem::gui::QueryWidget();
40  _queryWidget->setSizePolicy(QSizePolicy::Policy::Expanding,
41  QSizePolicy::Policy::Maximum);
42 
43  _memoryTabWidget->addTab(_queryWidget, QString("Query Settings"));
44  }
45  {
46  _snapshotSelectorWidget = new armem::gui::SnapshotSelectorWidget();
47  _snapshotSelectorWidget->setSizePolicy(QSizePolicy::Policy::Expanding,
48  QSizePolicy::Policy::Maximum);
49 
50  _memoryTabWidget->addTab(_snapshotSelectorWidget, QString("Snapshot Selection"));
51  }
52  {
53  _predictionWidget = new armem::gui::PredictionWidget(std::move(entityInfoRetriever));
54  _predictionWidget->setSizePolicy(QSizePolicy::Policy::Expanding,
55  QSizePolicy::Policy::Maximum);
56 
57  _memoryTabWidget->addTab(_predictionWidget, QString("Prediction"));
58  }
59  {
60  _commitWidget = new armem::gui::CommitWidget();
61  _commitWidget->setSizePolicy(QSizePolicy::Policy::Expanding,
62  QSizePolicy::Policy::Maximum);
63 
64  _memoryTabWidget->addTab(_commitWidget, QString("Commit"));
65  }
66 
67  _memoryTabGroup->layout()->addWidget(_memoryTabWidget);
68 
69  splitter->addWidget(_tree);
70  splitter->addWidget(_memoryTabGroup);
71  // Prevent QueryGroup from growing.
72  const int largeHeight = QGuiApplication::primaryScreen()->size().height();
73  splitter->setSizes({largeHeight, 1});
74  }
75 
78  {
79  return _queryWidget;
80  }
81 
82  QGroupBox*
84  {
85  return _memoryTabGroup;
86  }
87 
90  {
91  return _snapshotSelectorWidget;
92  }
93 
96  {
97  return _predictionWidget;
98  }
99 
100  CommitWidget*
102  {
103  return _commitWidget;
104  }
105 
108  {
109  return _tree;
110  }
111 
114  {
115  armem::client::query::Builder queryBuilder(_queryWidget->dataMode());
116  queryBuilder.coreSegments().all().providerSegments().all().entities().all().snapshots(
117  _snapshotSelectorWidget->selector());
118 
119  return queryBuilder.buildQueryInput();
120  }
121 
122 } // namespace armarx::armem::gui::memory
armarx::armem::client::query::EntitySelector::all
EntitySelector & all() override
Definition: selectors.cpp:104
armarx::armem::gui::CommitWidget
Definition: CommitWidget.h:15
armarx::armem::gui::memory
Definition: GroupBox.cpp:10
armarx::armem::client::query::ProviderSegmentSelector::entities
EntitySelector & entities()
Start specifying entities.
Definition: selectors.cpp:135
armarx::armem::gui::memory::GroupBox::queryGroup
QGroupBox * queryGroup() const
Definition: GroupBox.cpp:83
armarx::armem::gui::QueryWidget
Definition: QueryWidget.h:20
armarx::armem::gui::memory::GroupBox::snapshotSelectorWidget
SnapshotSelectorWidget * snapshotSelectorWidget() const
Definition: GroupBox.cpp:89
armarx::splitter
std::vector< std::string > splitter(std::string const &propertyValue)
Definition: ResultImageFuser.h:44
armarx::armem::client::query::Builder::buildQueryInput
QueryInput buildQueryInput() const
Definition: Builder.cpp:12
armarx::armem::client::query::EntitySelector::snapshots
SnapshotSelector & snapshots()
Start specifying entity snapshots.
Definition: selectors.cpp:92
armarx::armem::gui::memory::GroupBox::queryInput
armem::client::QueryInput queryInput() const
Definition: GroupBox.cpp:113
armarx::armem::gui::memory::TreeWidget
Definition: TreeWidget.h:13
armarx::armem::client::query::CoreSegmentSelector::all
CoreSegmentSelector & all() override
Definition: selectors.cpp:190
armarx::armem::gui::memory::GroupBox::GroupBox
GroupBox(PredictionWidget::GetEntityInfoFn &&entityInfoRetriever)
Definition: GroupBox.cpp:13
armarx::armem::gui::MemoryTreeWidget
memory::TreeWidget MemoryTreeWidget
Definition: TreeWidget.h:111
armarx::armem::gui::SnapshotSelectorWidget
Widget where queries for snapshots can be configured.
Definition: SnapshotSelectorWidget.h:27
armarx::armem::gui::memory::GroupBox::queryWidget
QueryWidget * queryWidget() const
Definition: GroupBox.cpp:77
armarx::armem::client::query::Builder::coreSegments
CoreSegmentSelector & coreSegments()
Start specifying core segments.
Definition: Builder.cpp:42
armarx::armem::gui::memory::GroupBox::predictionWidget
PredictionWidget * predictionWidget() const
Definition: GroupBox.cpp:95
armarx::armem::client::QueryInput
A query for parts of a memory.
Definition: Query.h:23
GroupBox.h
armarx::armem::gui::PredictionWidget::GetEntityInfoFn
std::function< EntityInfo(const MemoryID &)> GetEntityInfoFn
Definition: PredictionWidget.h:55
armarx::armem::gui::PredictionWidget
Definition: PredictionWidget.h:45
armarx::armem::gui::SnapshotSelectorWidget::selector
client::query::SnapshotSelector selector()
Definition: SnapshotSelectorWidget.cpp:14
armarx::armem::client::query::Builder
The query::Builder class provides a fluent-style specification of hierarchical queries.
Definition: Builder.h:21
armarx::armem::client::query::CoreSegmentSelector::providerSegments
ProviderSegmentSelector & providerSegments()
Start specifying provider segments.
Definition: selectors.cpp:178
armarx::armem::client::query::ProviderSegmentSelector::all
ProviderSegmentSelector & all() override
Definition: selectors.cpp:147
armarx::armem::gui::memory::GroupBox::tree
TreeWidget * tree() const
Definition: GroupBox.cpp:107
armarx::armem::gui::QueryWidget::dataMode
armem::query::DataMode dataMode() const
Definition: QueryWidget.cpp:203
armarx::armem::gui::memory::GroupBox::commitWidget
CommitWidget * commitWidget() const
Definition: GroupBox.cpp:101