16 QVBoxLayout* layout =
new QVBoxLayout();
17 this->setLayout(layout);
19 _splitter =
new QSplitter(Qt::Orientation::Vertical);
20 layout->addWidget(_splitter);
22 this->setTitle(
"Memory");
24 this->layout()->setContentsMargins(margin, margin, margin, margin);
30 _memoryTabWidget =
new QTabWidget();
31 _memoryTabGroup =
new QGroupBox(
"Queries, Predictions and Commits");
32 _memoryTabGroup->setLayout(
new QVBoxLayout());
35 _memoryTabGroup->setContentsMargins(margin, margin, margin, margin);
36 _memoryTabGroup->setSizePolicy(QSizePolicy::Policy::Expanding,
37 QSizePolicy::Policy::Maximum);
41 _queryWidget->setSizePolicy(QSizePolicy::Policy::Expanding,
42 QSizePolicy::Policy::Maximum);
44 _memoryTabWidget->addTab(_queryWidget, QString(
"Query Settings"));
48 _snapshotSelectorWidget->setSizePolicy(QSizePolicy::Policy::Expanding,
49 QSizePolicy::Policy::Maximum);
51 _memoryTabWidget->addTab(_snapshotSelectorWidget, QString(
"Snapshot Selection"));
55 _predictionWidget->setSizePolicy(QSizePolicy::Policy::Expanding,
56 QSizePolicy::Policy::Maximum);
58 _memoryTabWidget->addTab(_predictionWidget, QString(
"Prediction"));
62 _commitWidget->setSizePolicy(QSizePolicy::Policy::Expanding,
63 QSizePolicy::Policy::Maximum);
65 _memoryTabWidget->addTab(_commitWidget, QString(
"Commit"));
69 _ltmWidget->setSizePolicy(QSizePolicy::Policy::Expanding,
70 QSizePolicy::Policy::Maximum);
72 _memoryTabWidget->addTab(_ltmWidget, QString(
"LTM"));
75 _memoryTabGroup->layout()->addWidget(_memoryTabWidget);
77 _splitter->addWidget(_tree);
78 _splitter->addWidget(_memoryTabGroup);
80 const int largeHeight = QGuiApplication::primaryScreen()->size().height();
81 _splitter->setSizes({(int)(largeHeight * 0.65), (int)(largeHeight * 0.35)});
84 connect(_splitter, &QSplitter::splitterMoved,
this, [
this](
int pos,
int index) {
88 QList<int> sizes = _splitter->sizes();
90 if (hiddenQPC && sizes[1] > 0) {
91 _lastSplitterSize = sizes[1];
95 else if (!hiddenQPC && sizes[1] > 0) {
96 _lastSplitterSize = sizes[1];
98 else if (!hiddenQPC && sizes[1] == 0){
110 QList<int> sizes = _splitter->sizes();
112 sizes[0] = _splitter->height() - _lastSplitterSize;
113 sizes[1] = _lastSplitterSize;
117 _lastSplitterSize = sizes[1];
118 sizes[0] = _splitter->height();
122 _splitter->setSizes(sizes);