Qt: Add third-party license notices

This commit is contained in:
Stenzek
2023-11-06 21:39:25 +10:00
parent 6f66460ec0
commit fa5496652e
6 changed files with 2063 additions and 3 deletions

View File

@ -1,11 +1,21 @@
// SPDX-FileCopyrightText: 2019-2022 Connor McLaughlin <stenzek@gmail.com>
// SPDX-FileCopyrightText: 2019-2023 Connor McLaughlin <stenzek@gmail.com>
// SPDX-License-Identifier: (GPL-3.0 OR CC-BY-NC-ND-4.0)
#include "aboutdialog.h"
#include "qtutils.h"
#include "core/settings.h"
#include "common/file_system.h"
#include "common/path.h"
#include "scmversion/scmversion.h"
#include <QtCore/QString>
#include <QtWidgets/QDialog>
#include <QtWidgets/QDialogButtonBox>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QTextBrowser>
AboutDialog::AboutDialog(QWidget* parent /* = nullptr */) : QDialog(parent)
{
@ -41,3 +51,38 @@ p, li { white-space: pre-wrap; }
}
AboutDialog::~AboutDialog() = default;
void AboutDialog::showThirdPartyNotices(QWidget* parent)
{
QDialog dialog(parent);
dialog.setMinimumSize(700, 400);
dialog.setWindowTitle(tr("DuckStation Third-Party Notices"));
QIcon icon;
icon.addFile(QString::fromUtf8(":/icons/duck.png"), QSize(), QIcon::Normal, QIcon::Off);
dialog.setWindowIcon(icon);
QVBoxLayout* layout = new QVBoxLayout(&dialog);
QTextBrowser* tb = new QTextBrowser(&dialog);
tb->setAcceptRichText(true);
tb->setReadOnly(true);
tb->setOpenExternalLinks(true);
if (std::optional<std::string> notice =
FileSystem::ReadFileToString(Path::Combine(EmuFolders::Resources, "thirdparty.html").c_str());
notice.has_value())
{
tb->setText(QString::fromStdString(notice.value()));
}
else
{
tb->setText(tr("Missing thirdparty.html file. You should request it from where-ever you obtained DuckStation."));
}
layout->addWidget(tb, 1);
QDialogButtonBox* bb = new QDialogButtonBox(QDialogButtonBox::Close, &dialog);
connect(bb->button(QDialogButtonBox::Close), &QPushButton::clicked, &dialog, &QDialog::done);
layout->addWidget(bb, 0);
dialog.exec();
}

View File

@ -1,4 +1,4 @@
// SPDX-FileCopyrightText: 2019-2022 Connor McLaughlin <stenzek@gmail.com>
// SPDX-FileCopyrightText: 2019-2023 Connor McLaughlin <stenzek@gmail.com>
// SPDX-License-Identifier: (GPL-3.0 OR CC-BY-NC-ND-4.0)
#pragma once
@ -14,6 +14,8 @@ public:
explicit AboutDialog(QWidget* parent = nullptr);
~AboutDialog();
static void showThirdPartyNotices(QWidget* parent);
private:
Ui::AboutDialog m_ui;

View File

@ -1284,7 +1284,7 @@ void MainWindow::onIssueTrackerActionTriggered()
void MainWindow::onDiscordServerActionTriggered()
{
QtUtils::OpenURL(this, "https://discord.gg/Buktv3t");
QtUtils::OpenURL(this, "https://www.duckstation.org/discord.html");
}
void MainWindow::onAboutActionTriggered()
@ -1972,6 +1972,7 @@ void MainWindow::connectSignals()
connect(m_ui.actionGitHubRepository, &QAction::triggered, this, &MainWindow::onGitHubRepositoryActionTriggered);
connect(m_ui.actionIssueTracker, &QAction::triggered, this, &MainWindow::onIssueTrackerActionTriggered);
connect(m_ui.actionDiscordServer, &QAction::triggered, this, &MainWindow::onDiscordServerActionTriggered);
connect(m_ui.actionViewThirdPartyNotices, &QAction::triggered, this, [this]() { AboutDialog::showThirdPartyNotices(this); });
connect(m_ui.actionAboutQt, &QAction::triggered, qApp, &QApplication::aboutQt);
connect(m_ui.actionAbout, &QAction::triggered, this, &MainWindow::onAboutActionTriggered);
connect(m_ui.actionCheckForUpdates, &QAction::triggered, this, &MainWindow::onCheckForUpdatesActionTriggered);

View File

@ -154,6 +154,7 @@
<addaction name="separator"/>
<addaction name="actionCheckForUpdates"/>
<addaction name="separator"/>
<addaction name="actionViewThirdPartyNotices" />
<addaction name="actionAboutQt"/>
<addaction name="actionAbout"/>
</widget>
@ -506,6 +507,11 @@
<string>Check for &amp;Updates...</string>
</property>
</action>
<action name="actionViewThirdPartyNotices">
<property name="text">
<string>View Third-Party Notices...</string>
</property>
</action>
<action name="actionAboutQt">
<property name="icon">
<iconset resource="resources/resources.qrc">