1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2024-12-22 07:42:37 +00:00
transmission/qt/AboutDialog.cc
2023-11-21 09:02:03 -06:00

65 lines
2.2 KiB
C++

// This file Copyright © Mnemosyne LLC.
// It may be used under GPLv2 (SPDX: GPL-2.0-only), GPLv3 (SPDX: GPL-3.0-only),
// or any future license endorsed by Mnemosyne LLC.
// License text can be found in the licenses/ folder.
#include <QApplication>
#include <QIcon>
#include <QMessageBox>
#include <QPushButton>
#include <libtransmission/transmission.h>
#include <libtransmission/version.h>
#include "AboutDialog.h"
#include "LicenseDialog.h"
#include "Session.h"
#include "Utils.h"
AboutDialog::AboutDialog(Session& session, QWidget* parent)
: BaseDialog{ parent }
{
ui_.setupUi(this);
ui_.iconLabel->setPixmap(QApplication::windowIcon().pixmap(48));
if (session.isServer())
{
auto const title = QStringLiteral("<b style='font-size:x-large'>Transmission %1</b>")
.arg(QStringLiteral(LONG_VERSION_STRING));
ui_.titleLabel->setText(title);
}
else
{
QString title = QStringLiteral(
"<div style='font-size:x-large; font-weight: bold; text-align: center'>Transmission</div>");
title += QStringLiteral("<div style='text-align: center'>%1: %2</div>")
.arg(tr("Client"))
.arg(QStringLiteral(LONG_VERSION_STRING));
title += QStringLiteral("<div style='text-align: center'>%1: %2</div>").arg(tr("Server")).arg(session.sessionVersion());
ui_.titleLabel->setText(title);
}
QPushButton const* b = ui_.dialogButtons->addButton(tr("C&redits"), QDialogButtonBox::ActionRole);
connect(b, &QAbstractButton::clicked, this, &AboutDialog::showCredits);
b = ui_.dialogButtons->addButton(tr("&License"), QDialogButtonBox::ActionRole);
connect(b, &QAbstractButton::clicked, this, &AboutDialog::showLicense);
ui_.dialogButtons->button(QDialogButtonBox::Close)->setDefault(true);
}
void AboutDialog::showCredits()
{
QMessageBox::about(
this,
tr("Credits"),
QString::fromUtf8("Charles Kerr (Backend; Daemon; GTK+; Qt)\n"
"Mitchell Livingston (macOS)\n"
"Mike Gelfand\n"));
}
void AboutDialog::showLicense()
{
Utils::openDialog(license_dialog_, this); // NOLINT clang-analyzer-cplusplus.NewDelete
}