/* * GStreamer Camera Viewer * Copyright (c) 2025 Maik Jurischka * Licensed under CC BY-NC-SA 4.0 * https://creativecommons.org/licenses/by-nc-sa/4.0/ */ #include "mainwindow.h" #include "ui_mainwindow.h" #include #include #include #include MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); setWindowTitle("GStreamer Camera Viewer"); resize(1400, 900); setupUI(); } MainWindow::~MainWindow() { delete m_socketClient; delete ui; } void MainWindow::setupUI() { m_socketClient = new SocketClient("/tmp/vizion_control.sock", this); m_videoWidget = new VideoViewerWidget(this); m_pipelineWidget = new GStreamerPipelineWidget(m_socketClient, this); m_cameraWidget = new CameraControlWidget(m_socketClient, this); m_aboutWidget = new AboutWidget(this); auto* controlTabs = new QTabWidget(this); controlTabs->addTab(m_pipelineWidget, "Pipeline Control"); controlTabs->addTab(m_cameraWidget, "Camera Control"); controlTabs->addTab(m_aboutWidget, "About"); auto* mainSplitter = new QSplitter(Qt::Horizontal, this); mainSplitter->addWidget(m_videoWidget); mainSplitter->addWidget(controlTabs); mainSplitter->setStretchFactor(0, 2); // Video gets more space (2/3) mainSplitter->setStretchFactor(1, 1); // Controls get less space (1/3) setCentralWidget(mainSplitter); }