Files
Jungfraujoch/viewer/windows/JFJochLicenseWindow.cpp
T
leonarski_f e5034d0a2c licenses: add third-party notices, attribution texts, and viewer license window
Acknowledge all bundled third-party software and satisfy attribution/notice
requirements, while keeping it maintainable:

- THIRD_PARTY_NOTICES.md: human-readable manifest (component, copyright, SPDX
  license, link) for fetched, vendored, and runtime/SDK dependencies.
- licenses/: verbatim license texts; COLLECT.sh regenerates them from the
  build trees and system SDK locations.
- Bundle the verbatim Qt LGPL-3.0 text and the CUDA Toolkit 12.8 EULA.
- frontend: self-contained npm attribution generator (`npm run licenses` ->
  dist/THIRD_PARTY_LICENSES.txt), wired into the frontend build target.
- Install LICENSE + notices + licenses/ into share/doc/jfjoch for every
  packaged component.
- viewer: Help > "Third-party Licenses" window (QTextBrowser) showing a
  generated, self-contained HTML built from licenses/.
- docs/SOFTWARE.md: drop the stale hand-kept dependency lists; point at the
  manifest.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 18:35:50 +02:00

24 lines
758 B
C++

// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
// SPDX-License-Identifier: GPL-3.0-only
#include "JFJochLicenseWindow.h"
#include <QFile>
#include <QTextBrowser>
#include <QVBoxLayout>
JFJochLicenseWindow::JFJochLicenseWindow(QWidget *parent) : QDialog(parent) {
setWindowTitle("Third-party Licenses");
resize(800, 600);
auto *browser = new QTextBrowser(this);
browser->setOpenExternalLinks(true); // license URLs open in the system browser
QFile file(":/third_party_licenses.html");
if (file.open(QIODevice::ReadOnly | QIODevice::Text))
browser->setHtml(QString::fromUtf8(file.readAll()));
auto *layout = new QVBoxLayout(this);
layout->addWidget(browser);
}