YODAU 1.0
YEAR OF THE DEPEND ADULT UNDERGARMENT
Loading...
Searching...
No Matches
main_window.cpp
Go to the documentation of this file.
2
3#include "helpers/controller.hpp"
4#include "helpers/str_label.hpp"
5// #include "stream_manager.hpp"
6#include "widgets/board.hpp"
7// #include "widgets/grid_view.hpp"
8#include "widgets/settings_panel.hpp"
9
10#include <QToolBar>
11
12#if defined(KC_ANDROID) || defined(Q_OS_ANDROID)
13#include <QStackedWidget>
14#else
15#include <QDockWidget>
16#endif
17
18main_window::main_window(QWidget* parent)
19 : BaseMainWindow(parent)
20 , main_zone(new board(this))
21 , settings(new settings_panel(this))
22#if defined(KC_ANDROID) || defined(Q_OS_ANDROID)
23 , zones_stack(new QStackedWidget(this))
24#else
25 , settings_dock(new QDockWidget(str_label("settings"), this))
26#endif
27{
28#if defined(KC_ANDROID) || defined(Q_OS_ANDROID)
29 zones_stack->addWidget(main_zone);
30 zones_stack->addWidget(settings);
31 zones_stack->setCurrentWidget(main_zone);
32 setCentralWidget(zones_stack);
33#else
34 setCentralWidget(main_zone);
35
36 settings_dock->setWidget(settings);
37 settings_dock->setAllowedAreas(
38 Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea
39 );
40 settings_dock->setFeatures(
41 QDockWidget::DockWidgetClosable | QDockWidget::DockWidgetMovable
42 );
43 addDockWidget(Qt::RightDockWidgetArea, settings_dock);
44 const auto settings_action = settings_dock->toggleViewAction();
45 settings_action->setText(str_label("settings"));
46
47 const auto top_toolbar = addToolBar(str_label("top"));
48 top_toolbar->addAction(settings_action);
49#endif
50 auto* mgr = new yodau::backend::stream_manager();
51 connect(this, &QObject::destroyed, this, [mgr]() { delete mgr; });
52
53 auto* ctrl = new controller(mgr, settings, main_zone, this);
54
55 connect(
56 settings, &settings_panel::add_file_stream, ctrl,
57 &controller::handle_add_file
58 );
59 connect(
60 settings, &settings_panel::add_local_stream, ctrl,
61 &controller::handle_add_local
62 );
63 connect(
64 settings, &settings_panel::add_url_stream, ctrl,
65 &controller::handle_add_url
66 );
67 connect(
70 );
71 connect(
72 settings, &settings_panel::show_stream_changed, ctrl,
73 &controller::handle_show_stream_changed
74 );
75 ctrl->handle_detect_local_sources();
76}
QMap< QString, std::vector< stream_cell::line_instance > > per_stream_lines
Per-stream persistent line instances keyed by stream name.
void handle_detect_local_sources()
Handler for detecting available local sources.
QDockWidget * settings_dock
Dock widget hosting settings on desktop platforms.
board * main_zone
Central board widget showing streams (owned).
main_window(QWidget *parent=nullptr)
Construct the main window and create all core UI components.
settings_panel * settings
Settings side panel (owned).
settings_panel(QWidget *parent=nullptr)
Construct the settings panel.
void detect_local_sources_requested()
User requested re-detection of local sources.
Central coordinator for streams, geometry, frame processing and events.
#define str_label(text)
Create a user-visible localized label.
Definition str_label.hpp:29