2 #include "../misc/dialogutils.h" 4 #include "ui_aboutdialog.h" 6 #include <c++utilities/application/argumentparser.h> 8 #include <QApplication> 9 #include <QDesktopWidget> 10 #include <QGraphicsPixmapItem> 11 #include <QStringBuilder> 45 const std::vector<const char *> &dependencyVersions,
const QString &website,
const QString &description,
const QImage &image)
50 makeHeading(m_ui->productNameLabel);
51 setStyleSheet(dialogStyle());
52 setWindowFlags(Qt::Tool);
53 if (!applicationName.isEmpty()) {
54 m_ui->productNameLabel->setText(applicationName);
55 }
else if (!QApplication::applicationDisplayName().isEmpty()) {
56 m_ui->productNameLabel->setText(QApplication::applicationDisplayName());
58 m_ui->productNameLabel->setText(QApplication::applicationName());
60 if (creator.startsWith(QLatin1Char(
'<'))) {
62 m_ui->creatorLabel->setText(creator);
65 m_ui->creatorLabel->setText(tr(
"developed by %1").arg(creator.isEmpty() ? QApplication::organizationName() : creator));
67 m_ui->versionLabel->setText(version.isEmpty() ? QApplication::applicationVersion() : version);
68 const auto &deps(dependencyVersions.size() ? dependencyVersions : ApplicationUtilities::dependencyVersions2);
70 QStringList linkedAgainst;
71 linkedAgainst.reserve(deps.size());
72 for (
const auto &dependencyVersion : deps) {
73 linkedAgainst << QString::fromUtf8(dependencyVersion);
75 m_ui->versionLabel->setToolTip(QStringLiteral(
"<p>") % tr(
"Linked against:") % QStringLiteral(
"</p><ul><li>")
76 % linkedAgainst.join(QStringLiteral(
"</li><li>")) % QStringLiteral(
"</li></ul>"));
78 m_ui->websiteLabel->setText(tr(
"For updates and bug reports visit the <a href=\"%1\" " 79 "style=\"text-decoration: underline; color: palette(link);\">project " 81 .arg(website.isEmpty() ? QApplication::organizationDomain() : website));
82 m_ui->descLabel->setText(description);
83 m_iconScene =
new QGraphicsScene(
this);
84 auto *item = image.isNull()
85 ?
new QGraphicsPixmapItem(QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation,
nullptr,
this).pixmap(128))
86 :
new QGraphicsPixmapItem(QPixmap::fromImage(image));
87 m_iconScene->addItem(item);
88 m_ui->graphicsView->setScene(m_iconScene);
89 setGeometry(QStyle::alignedRect(
90 Qt::LeftToRight, Qt::AlignCenter, size(), parentWidget() ? parentWidget()->geometry() : QApplication::desktop()->availableGeometry()));
93 AboutDialog::AboutDialog(QWidget *parent,
const QString &applicationName,
const QString &creator,
const QString &version,
const QString &website,
94 const QString &description,
const QImage &image)
95 :
AboutDialog(parent, applicationName, creator, version, {}, website, description, image)
100 std::initializer_list<const char *> dependencyVersions,
const QString &website,
const QString &description,
const QImage &image)
101 :
AboutDialog(parent, applicationName, creator, version, std::vector<const char *>(dependencyVersions), website, description, image)
110 :
AboutDialog(parent, QString(), QString(), QString(), QString(), description, image)
~AboutDialog() override
Destroys the about dialog.
AboutDialog(QWidget *parent, const QString &applicationName, const QString &creator, const QString &version, const QString &website=QString(), const QString &description=QString(), const QImage &image=QImage())
Provides common dialogs such as AboutDialog, EnterPasswordDialog and SettingsDialog.
The AboutDialog class provides a simple about dialog.