/* * 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 "aboutwidget.h" #include #include #include #include AboutWidget::AboutWidget(QWidget *parent) : QWidget(parent) { setupUI(); } void AboutWidget::setupUI() { auto* mainLayout = new QVBoxLayout(this); auto* aboutGroup = new QGroupBox("About GStreamer Camera Viewer", this); auto* aboutLayout = new QVBoxLayout(); auto* titleLabel = new QLabel("

GStreamer Camera Viewer

", this); aboutLayout->addWidget(titleLabel); auto* versionLabel = new QLabel("Version: 0.5.0", this); aboutLayout->addWidget(versionLabel); auto* authorLabel = new QLabel("Author: Maik Jurischka", this); aboutLayout->addWidget(authorLabel); auto* descLabel = new QLabel( "

A Qt6-based camera viewer application with GStreamer pipeline control.

" "

Features:

" "
    " "
  • Real-time video streaming with embedded display
  • " "
  • Configurable GStreamer pipelines
  • " "
  • Camera parameter controls (exposure, white balance, etc.)
  • " "
  • Image transformation (rotation, flip)
  • " "
  • Zoom support (50-200%)
  • " "
", this); descLabel->setWordWrap(true); aboutLayout->addWidget(descLabel); auto* licenseGroup = new QGroupBox("License", this); auto* licenseLayout = new QVBoxLayout(); auto* licenseLabel = new QLabel( "CC BY-NC-SA 4.0" "

Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International

" "

" "This software is free to use, share, and modify for non-commercial purposes. " "Any derivative works must be shared under the same license." "

" "

" "License Details" "

", this); licenseLabel->setWordWrap(true); licenseLabel->setOpenExternalLinks(true); licenseLayout->addWidget(licenseLabel); licenseGroup->setLayout(licenseLayout); aboutLayout->addWidget(licenseGroup); auto* techGroup = new QGroupBox("Technologies", this); auto* techLayout = new QVBoxLayout(); guint major, minor, micro, nano; gst_version(&major, &minor, µ, &nano); QString gstVersion = QString("GStreamer %1.%2.%3").arg(major).arg(minor).arg(micro); auto* qtLabel = new QLabel(QString("Qt Version: %1").arg(QT_VERSION_STR), this); techLayout->addWidget(qtLabel); auto* gstLabel = new QLabel(QString("%1").arg(gstVersion), this); techLayout->addWidget(gstLabel); techGroup->setLayout(techLayout); aboutLayout->addWidget(techGroup); aboutLayout->addStretch(); aboutGroup->setLayout(aboutLayout); aboutGroup->setMaximumWidth(500); mainLayout->addWidget(aboutGroup); mainLayout->addStretch(); setLayout(mainLayout); }