diff --git a/aboutdialog/aboutdialog.cpp b/aboutdialog/aboutdialog.cpp index 2799681..af9ed16 100644 --- a/aboutdialog/aboutdialog.cpp +++ b/aboutdialog/aboutdialog.cpp @@ -3,9 +3,12 @@ #include "ui_aboutdialog.h" +#include + #include #include #include +#include #include /*! @@ -30,14 +33,16 @@ namespace Dialogs { * QApplication::organizationName() will be used. * \param version Specifies the version of the application. If empty, * QApplication::applicationVersion() will be used. + * \param dependencyVersions Specifies the dependency versions which were present at link-time. If empty, + * ApplicationUtilities::dependencyVersions will be used. * \param description Specifies a short description about the application. * \param website Specifies the URL to the website of the application. If empty, * QApplication::organizationDomain() will be used. * \param image Specifies the application icon. If the image is null, the * standard information icon will be used. */ -AboutDialog::AboutDialog(QWidget *parent, const QString &applicationName, const QString &creator, const QString &version, const QString &website, - const QString &description, const QImage &image) +AboutDialog::AboutDialog(QWidget *parent, const QString &applicationName, const QString &creator, const QString &version, + std::initializer_list dependencyVersions, const QString &website, const QString &description, const QImage &image) : QDialog(parent) , m_ui(new Ui::AboutDialog) { @@ -54,6 +59,18 @@ AboutDialog::AboutDialog(QWidget *parent, const QString &applicationName, const } m_ui->creatorLabel->setText(tr("developed by %1").arg(creator.isEmpty() ? QApplication::organizationName() : creator)); m_ui->versionLabel->setText(version.isEmpty() ? QApplication::applicationVersion() : version); + if (!dependencyVersions.size()) { + dependencyVersions = ApplicationUtilities::dependencyVersions; + } + if (dependencyVersions.size()) { + QStringList linkedAgainst; + linkedAgainst.reserve(dependencyVersions.size()); + for (const auto &dependencyVersion : dependencyVersions) { + linkedAgainst << QString::fromUtf8(dependencyVersion); + } + m_ui->versionLabel->setToolTip(QStringLiteral("

") % tr("Linked against:") % QStringLiteral("

  • ") + % linkedAgainst.join(QStringLiteral("
  • ")) % QStringLiteral("
")); + } m_ui->websiteLabel->setText(tr("For updates and bug reports visit the project " "website.") @@ -69,6 +86,12 @@ AboutDialog::AboutDialog(QWidget *parent, const QString &applicationName, const Qt::LeftToRight, Qt::AlignCenter, size(), parentWidget() ? parentWidget()->geometry() : QApplication::desktop()->availableGeometry())); } +AboutDialog::AboutDialog(QWidget *parent, const QString &applicationName, const QString &creator, const QString &version, const QString &website, + const QString &description, const QImage &image) + : AboutDialog(parent, applicationName, creator, version, {}, website, description, image) +{ +} + /*! * \brief Constructs an about dialog with the specified \a parent, \a * description and \a image. diff --git a/aboutdialog/aboutdialog.h b/aboutdialog/aboutdialog.h index d04406a..0fddc14 100644 --- a/aboutdialog/aboutdialog.h +++ b/aboutdialog/aboutdialog.h @@ -21,6 +21,9 @@ class QT_UTILITIES_EXPORT AboutDialog : public QDialog { public: explicit AboutDialog(QWidget *parent, const QString &applicationName, const QString &creator, const QString &version, const QString &website = QString(), const QString &description = QString(), const QImage &image = QImage()); + explicit AboutDialog(QWidget *parent, const QString &applicationName, const QString &creator, const QString &version, + std::initializer_list dependencyVersions, const QString &website = QString(), const QString &description = QString(), + const QImage &image = QImage()); explicit AboutDialog(QWidget *parent, const QString &description = QString(), const QImage &image = QImage()); ~AboutDialog();