64 lines
2.2 KiB
C++
64 lines
2.2 KiB
C++
/*
|
|
* Deskflow -- mouse and keyboard sharing utility
|
|
* SPDX-FileCopyrightText: (C) 2024 Chris Rizzitello <sithlord48@gmail.com>
|
|
* SPDX-FileCopyrightText: (C) 2012 - 2016 Symless Ltd.
|
|
* SPDX-FileCopyrightText: (C) 2008 Volker Lanz <vl@fidra.de>
|
|
* SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
|
|
*/
|
|
|
|
#include "AboutDialog.h"
|
|
#include "ui_AboutDialog.h"
|
|
|
|
#include "common/Constants.h"
|
|
|
|
#include <QClipboard>
|
|
#include <QDateTime>
|
|
#include <QHBoxLayout>
|
|
#include <QLabel>
|
|
#include <QPushButton>
|
|
#include <QStyle>
|
|
|
|
AboutDialog::AboutDialog(QWidget *parent) : QDialog(parent), ui{std::make_unique<Ui::AboutDialog>()}
|
|
{
|
|
ui->setupUi(this);
|
|
|
|
const int px = (fontMetrics().height() * 6);
|
|
const QSize pixmapSize(px, px);
|
|
ui->lblIcon->setFixedSize(pixmapSize);
|
|
|
|
ui->lblIcon->setPixmap(QPixmap(QIcon::fromTheme("deskflow").pixmap(QSize().scaled(pixmapSize, Qt::KeepAspectRatio))));
|
|
|
|
ui->btnCopyVersion->setIcon(QIcon::fromTheme(QIcon::ThemeIcon::EditCopy));
|
|
connect(ui->btnCopyVersion, &QPushButton::clicked, this, &AboutDialog::copyVersionText);
|
|
|
|
ui->lblVersion->setText(kDisplayVersion);
|
|
ui->lblDescription->setText(kAppDescription);
|
|
ui->lblCopyright->setText(kCopyright);
|
|
|
|
// Use non-breaking space in each awesome dev name so names are not split across lines.
|
|
QStringList devsNbsp;
|
|
for (const auto &dev : s_awesomeDevs) {
|
|
QString withNbsp = dev;
|
|
devsNbsp.append(withNbsp.replace(" ", QStringLiteral(" ")));
|
|
}
|
|
|
|
ui->lblImportantDevs->setTextFormat(Qt::RichText);
|
|
ui->lblImportantDevs->setText(QStringLiteral("%1\n").arg(devsNbsp.join(", ")));
|
|
|
|
ui->btnOk->setDefault(true);
|
|
connect(ui->btnOk, &QPushButton::clicked, this, &AboutDialog::close);
|
|
}
|
|
|
|
void AboutDialog::copyVersionText() const
|
|
{
|
|
QString infoString = QStringLiteral("Deskflow: %1 (%2)\nQt: %3\nSystem: %4")
|
|
.arg(kVersion, kVersionGitSha, qVersion(), QSysInfo::prettyProductName());
|
|
#ifdef Q_OS_LINUX
|
|
infoString.append(QStringLiteral("\nSession: %1 (%2)")
|
|
.arg(qEnvironmentVariable("XDG_CURRENT_DESKTOP"), qEnvironmentVariable("XDG_SESSION_TYPE")));
|
|
#endif
|
|
QGuiApplication::clipboard()->setText(infoString);
|
|
}
|
|
|
|
AboutDialog::~AboutDialog() = default;
|