Qt Utilities  5.8.1
Common Qt related C++ classes and routines used by my applications such as dialogs, widgets and models
aboutdialog.cpp
Go to the documentation of this file.
1 #include "./aboutdialog.h"
2 #include "../misc/dialogutils.h"
3 
4 #include "ui_aboutdialog.h"
5 
6 #include <QApplication>
7 #include <QDesktopWidget>
8 #include <QGraphicsPixmapItem>
9 #include <QStyle>
10 
17 namespace Dialogs {
18 
39 AboutDialog::AboutDialog(QWidget *parent, const QString &applicationName, const QString &creator, const QString &version, const QString &website,
40  const QString &description, const QImage &image)
41  : QDialog(parent)
42  , m_ui(new Ui::AboutDialog)
43 {
44  m_ui->setupUi(this);
45  makeHeading(m_ui->productNameLabel);
46  setStyleSheet(dialogStyle());
47  setWindowFlags(Qt::Tool);
48  if (!applicationName.isEmpty()) {
49  m_ui->productNameLabel->setText(applicationName);
50  } else if (!QApplication::applicationDisplayName().isEmpty()) {
51  m_ui->productNameLabel->setText(QApplication::applicationDisplayName());
52  } else {
53  m_ui->productNameLabel->setText(QApplication::applicationName());
54  }
55  m_ui->creatorLabel->setText(tr("developed by %1").arg(creator.isEmpty() ? QApplication::organizationName() : creator));
56  m_ui->versionLabel->setText(version.isEmpty() ? QApplication::applicationVersion() : version);
57  m_ui->websiteLabel->setText(tr("For updates and bug reports visit the <a href=\"%1\" "
58  "style=\"text-decoration: underline; color: palette(link);\">project "
59  "website</a>.")
60  .arg(website.isEmpty() ? QApplication::organizationDomain() : website));
61  m_ui->descLabel->setText(description);
62  m_iconScene = new QGraphicsScene(this);
63  auto *item = image.isNull()
64  ? new QGraphicsPixmapItem(QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation, nullptr, this).pixmap(128))
65  : new QGraphicsPixmapItem(QPixmap::fromImage(image));
66  m_iconScene->addItem(item);
67  m_ui->graphicsView->setScene(m_iconScene);
68  setGeometry(QStyle::alignedRect(
69  Qt::LeftToRight, Qt::AlignCenter, size(), parentWidget() ? parentWidget()->geometry() : QApplication::desktop()->availableGeometry()));
70 }
71 
76 AboutDialog::AboutDialog(QWidget *parent, const QString &description, const QImage &image)
77  : AboutDialog(parent, QString(), QString(), QString(), QString(), description, image)
78 {
79 }
80 
85 {
86 }
87 } // namespace Dialogs
AboutDialog(QWidget *parent, const QString &applicationName, const QString &creator, const QString &version, const QString &website=QString(), const QString &description=QString(), const QImage &image=QImage())
Constructs an about dialog with the provided information.
Definition: aboutdialog.cpp:39
Provides common dialogs such as AboutDialog, EnterPasswordDialog and SettingsDialog.
Definition: dialogutils.h:12
~AboutDialog()
Destroys the about dialog.
Definition: aboutdialog.cpp:84
The AboutDialog class provides a simple about dialog.
Definition: aboutdialog.h:18