mirror of https://github.com/PCSX2/pcsx2.git
Qt: Add third-party license statements
This commit is contained in:
parent
34a7e00413
commit
476cb2db34
File diff suppressed because it is too large
Load Diff
|
@ -6,8 +6,17 @@
|
||||||
#include "AboutDialog.h"
|
#include "AboutDialog.h"
|
||||||
#include "QtHost.h"
|
#include "QtHost.h"
|
||||||
#include "QtUtils.h"
|
#include "QtUtils.h"
|
||||||
|
|
||||||
|
#include "common/FileSystem.h"
|
||||||
|
#include "common/Path.h"
|
||||||
|
|
||||||
|
#include <QtCore/QFile>
|
||||||
#include <QtCore/QString>
|
#include <QtCore/QString>
|
||||||
|
#include <QtGui/QDesktopServices>
|
||||||
#include <QtWidgets/QDialog>
|
#include <QtWidgets/QDialog>
|
||||||
|
#include <QtWidgets/QDialogButtonBox>
|
||||||
|
#include <QtWidgets/QPushButton>
|
||||||
|
#include <QtWidgets/QTextBrowser>
|
||||||
|
|
||||||
AboutDialog::AboutDialog(QWidget* parent)
|
AboutDialog::AboutDialog(QWidget* parent)
|
||||||
: QDialog(parent)
|
: QDialog(parent)
|
||||||
|
@ -21,9 +30,8 @@ AboutDialog::AboutDialog(QWidget* parent)
|
||||||
m_ui.scmversion->setText(QtHost::GetAppNameAndVersion());
|
m_ui.scmversion->setText(QtHost::GetAppNameAndVersion());
|
||||||
|
|
||||||
m_ui.links->setTextInteractionFlags(Qt::TextBrowserInteraction);
|
m_ui.links->setTextInteractionFlags(Qt::TextBrowserInteraction);
|
||||||
m_ui.links->setOpenExternalLinks(true);
|
|
||||||
m_ui.links->setText(QStringLiteral(
|
m_ui.links->setText(QStringLiteral(
|
||||||
R"(<a href="%1">%2</a> | <a href="%3">%4</a> | <a href="%5">%6</a> | <a href="%7">%8</a>)")
|
R"(<a href="%1">%2</a> | <a href="%3">%4</a> | <a href="%5">%6</a> | <a href="%7">%8</a> | <a href="%9">%10</a>)")
|
||||||
.arg(getWebsiteUrl())
|
.arg(getWebsiteUrl())
|
||||||
.arg(tr("Website"))
|
.arg(tr("Website"))
|
||||||
.arg(getSupportForumsUrl())
|
.arg(getSupportForumsUrl())
|
||||||
|
@ -31,8 +39,11 @@ AboutDialog::AboutDialog(QWidget* parent)
|
||||||
.arg(getGitHubRepositoryUrl())
|
.arg(getGitHubRepositoryUrl())
|
||||||
.arg(tr("GitHub Repository"))
|
.arg(tr("GitHub Repository"))
|
||||||
.arg(getLicenseUrl())
|
.arg(getLicenseUrl())
|
||||||
.arg(tr("License")));
|
.arg(tr("License"))
|
||||||
|
.arg(getThirdPartyLicensesUrl())
|
||||||
|
.arg(tr("Third-Party Licenses")));
|
||||||
|
|
||||||
|
connect(m_ui.links, &QLabel::linkActivated, this, &AboutDialog::linksLinkActivated);
|
||||||
connect(m_ui.buttonBox, &QDialogButtonBox::rejected, this, &QDialog::close);
|
connect(m_ui.buttonBox, &QDialogButtonBox::rejected, this, &QDialog::close);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,10 +66,64 @@ QString AboutDialog::getGitHubRepositoryUrl()
|
||||||
|
|
||||||
QString AboutDialog::getLicenseUrl()
|
QString AboutDialog::getLicenseUrl()
|
||||||
{
|
{
|
||||||
return QString::fromUtf8(PCSX2_LICENSE_URL);
|
return QUrl::fromLocalFile(QString::fromUtf8(Path::Combine(EmuFolders::AppRoot,
|
||||||
|
"docs" FS_OSPATH_SEPARATOR_STR "GPL.html")))
|
||||||
|
.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
QString AboutDialog::getThirdPartyLicensesUrl()
|
||||||
|
{
|
||||||
|
return QUrl::fromLocalFile(QString::fromUtf8(Path::Combine(EmuFolders::AppRoot,
|
||||||
|
"docs" FS_OSPATH_SEPARATOR_STR "ThirdPartyLicenses.html")))
|
||||||
|
.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString AboutDialog::getDiscordServerUrl()
|
QString AboutDialog::getDiscordServerUrl()
|
||||||
{
|
{
|
||||||
return QString::fromUtf8(PCSX2_DISCORD_URL);
|
return QString::fromUtf8(PCSX2_DISCORD_URL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void AboutDialog::linksLinkActivated(const QString& link)
|
||||||
|
{
|
||||||
|
const QUrl url(link);
|
||||||
|
if (!url.isValid())
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!url.isLocalFile())
|
||||||
|
{
|
||||||
|
QDesktopServices::openUrl(url);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
showHTMLDialog(this, tr("View Document"), url.toLocalFile());
|
||||||
|
}
|
||||||
|
|
||||||
|
void AboutDialog::showHTMLDialog(QWidget* parent, const QString& title, const QString& path)
|
||||||
|
{
|
||||||
|
QDialog dialog(parent);
|
||||||
|
dialog.setMinimumSize(700, 400);
|
||||||
|
dialog.setWindowTitle(title);
|
||||||
|
dialog.setWindowIcon(QtHost::GetAppIcon());
|
||||||
|
|
||||||
|
QVBoxLayout* layout = new QVBoxLayout(&dialog);
|
||||||
|
|
||||||
|
QTextBrowser* tb = new QTextBrowser(&dialog);
|
||||||
|
tb->setAcceptRichText(true);
|
||||||
|
tb->setReadOnly(true);
|
||||||
|
tb->setOpenExternalLinks(true);
|
||||||
|
|
||||||
|
QFile file(path);
|
||||||
|
file.open(QIODevice::ReadOnly);
|
||||||
|
if (const QByteArray data = file.readAll(); !data.isEmpty())
|
||||||
|
tb->setText(QString::fromUtf8(data));
|
||||||
|
else
|
||||||
|
tb->setText(tr("File not found: %1").arg(path));
|
||||||
|
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
|
|
@ -18,8 +18,14 @@ public:
|
||||||
static QString getSupportForumsUrl();
|
static QString getSupportForumsUrl();
|
||||||
static QString getGitHubRepositoryUrl();
|
static QString getGitHubRepositoryUrl();
|
||||||
static QString getLicenseUrl();
|
static QString getLicenseUrl();
|
||||||
|
static QString getThirdPartyLicensesUrl();
|
||||||
static QString getDiscordServerUrl();
|
static QString getDiscordServerUrl();
|
||||||
|
|
||||||
|
static void showHTMLDialog(QWidget* parent, const QString& title, const QString& url);
|
||||||
|
|
||||||
|
private Q_SLOTS:
|
||||||
|
void linksLinkActivated(const QString& link);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::AboutDialog m_ui;
|
Ui::AboutDialog m_ui;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue