GCC Code Coverage Report


Directory: ./
File: frontend/src/widgets/board.cpp
Date: 2025-11-24 00:30:48
Exec Total Coverage
Lines: 0 53 0.0%
Functions: 0 6 0.0%
Branches: 0 52 0.0%

Line Branch Exec Source
1 #include "widgets/board.hpp"
2
3 #include <QVBoxLayout>
4
5 #include "widgets/grid_view.hpp"
6 #include "widgets/stream_cell.hpp"
7
8 board::board(QWidget* parent)
9 : QWidget(parent)
10 , grid(new grid_view(this))
11 , active_container(new QWidget(this))
12 , active_layout(new QVBoxLayout(active_container))
13 , active_tile(nullptr) {
14 active_layout->setContentsMargins(6, 6, 6, 6);
15 active_layout->setSpacing(6);
16 active_container->setLayout(active_layout);
17
18 auto* outer = new QVBoxLayout(this);
19 outer->setContentsMargins(0, 0, 0, 0);
20 outer->setSpacing(6);
21
22 outer->addWidget(active_container, 3);
23
24 outer->addWidget(grid, 1);
25
26 setLayout(outer);
27 active_container->hide();
28 }
29
30 grid_view* board::grid_mode() const { return grid; }
31
32 stream_cell* board::active_cell() const { return active_tile; }
33
34 void board::set_active_stream(const QString& name) {
35 if (!grid || name.isEmpty()) {
36 return;
37 }
38 if (active_tile && active_tile->get_name() == name) {
39 return;
40 }
41
42 if (active_tile) {
43 active_layout->removeWidget(active_tile);
44 active_tile->set_active(false);
45 grid->put_stream_cell(active_tile);
46 active_tile = nullptr;
47 }
48
49 stream_cell* cell = grid->take_stream_cell(name);
50 if (!cell) {
51 return;
52 }
53 active_container->show();
54
55 cell->setParent(active_container);
56 cell->set_active(true);
57
58 cell->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
59 cell->show();
60 active_layout->addWidget(cell);
61 active_tile = cell;
62
63 active_container->updateGeometry();
64 }
65
66 void board::clear_active() {
67 if (!active_tile || !grid) {
68 return;
69 }
70 active_layout->removeWidget(active_tile);
71 active_tile->set_active(false);
72 grid->put_stream_cell(active_tile);
73 // active_tile->deleteLater();
74 active_tile = nullptr;
75
76 active_container->hide();
77 active_container->updateGeometry();
78 }
79
80 stream_cell* board::take_active_cell() {
81 if (!active_tile) {
82 return nullptr;
83 }
84
85 active_layout->removeWidget(active_tile);
86 active_tile->set_active(false);
87
88 active_container->hide();
89 active_container->updateGeometry();
90
91 stream_cell* out = active_tile;
92 active_tile = nullptr;
93 return out;
94 }
95