refactor: Copy the full version string on the about dialog

This commit is contained in:
sithlord48
2024-12-28 09:51:15 -05:00
committed by Nick Bolton
parent 23c054661c
commit 2455e0e29f
2 changed files with 14 additions and 6 deletions

View File

@ -39,19 +39,19 @@ AboutDialog::AboutDialog(QWidget *parent) : QDialog(parent)
auto btnCopyVersion = new QPushButton(copyIcon, QString(), this);
btnCopyVersion->setFlat(true);
connect(btnCopyVersion, &QPushButton::clicked, this, [] { QGuiApplication::clipboard()->setText(kVersion); });
connect(btnCopyVersion, &QPushButton::clicked, this, &AboutDialog::copyVersionText);
// Set up the displayed version number
auto versionString = QString(kVersion);
if (versionString.endsWith(QStringLiteral(".0"))) {
versionString.chop(2);
m_versionString = QString(kVersion);
if (m_versionString.endsWith(QStringLiteral(".0"))) {
m_versionString.chop(2);
} else {
versionString.append(QStringLiteral(" (%1)").arg(kVersionGitSha));
m_versionString.append(QStringLiteral(" (%1)").arg(kVersionGitSha));
}
auto versionLayout = new QHBoxLayout();
versionLayout->addWidget(new QLabel(tr("Version:")));
versionLayout->addWidget(new QLabel(versionString, this));
versionLayout->addWidget(new QLabel(m_versionString, this));
versionLayout->addWidget(btnCopyVersion);
versionLayout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Fixed));
@ -86,3 +86,8 @@ AboutDialog::AboutDialog(QWidget *parent) : QDialog(parent)
adjustSize();
setFixedSize(size());
}
void AboutDialog::copyVersionText()
{
QGuiApplication::clipboard()->setText(m_versionString);
}

View File

@ -29,6 +29,9 @@ public:
~AboutDialog() = default;
private:
void copyVersionText();
QString m_versionString;
inline static const auto s_lightCopy = QStringLiteral(":/icons/64x64/copy-light.png");
inline static const auto s_darkCopy = QStringLiteral(":/icons/64x64/copy-dark.png");
inline static const auto s_lightLogo = QStringLiteral(":/image/logo-light.png");