From 807f819357e9e2419ee47e03d76df162ab6365b6 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Thu, 5 Apr 2018 09:47:48 +0200 Subject: Manual dialogs test: Add about dialog showing style and scaling Change-Id: I8750956056466d3cfd99903fb5e432ac81223403 Reviewed-by: Andy Shaw --- tests/manual/dialogs/main.cpp | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'tests/manual') diff --git a/tests/manual/dialogs/main.cpp b/tests/manual/dialogs/main.cpp index 3f7b33ee7a..83089e684c 100644 --- a/tests/manual/dialogs/main.cpp +++ b/tests/manual/dialogs/main.cpp @@ -33,10 +33,13 @@ #include "wizardpanel.h" #include "messageboxpanel.h" +#include +#include #include #include #include #include +#include #include #include #include @@ -44,10 +47,40 @@ // Test for dialogs, allowing to play with all dialog options for implementing native dialogs. // Compiles with Qt 4.8 and Qt 5. +class AboutDialog : public QDialog +{ +public: + explicit AboutDialog(QWidget *parent = 0); +}; + +AboutDialog::AboutDialog(QWidget *parent) : QDialog(parent) +{ + setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); + QFormLayout *mainLayout = new QFormLayout(this); +#if QT_VERSION >= 0x050600 + mainLayout->addRow(new QLabel(QLibraryInfo::build())); +#else + mainLayout->addRow(new QLabel(QLatin1String("Qt ") + QLatin1String(QT_VERSION_STR ))); +#endif + mainLayout->addRow("Style:", new QLabel(qApp->style()->objectName())); +#if QT_VERSION >= 0x050600 + mainLayout->addRow("DPR:", new QLabel(QString::number(qApp->devicePixelRatio()))); +#endif + const QString resolution = QString::number(logicalDpiX()) + QLatin1Char(',') + + QString::number(logicalDpiY()) + QLatin1String("dpi"); + mainLayout->addRow("Resolution:", new QLabel(resolution)); + QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Close, Qt::Horizontal); + connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject())); + mainLayout->addRow(buttonBox); +} + class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); + +public slots: + void aboutDialog(); }; MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) @@ -66,6 +99,9 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) action->setShortcut(QKeySequence(QKeySequence::Paste)); action = editMenu->addAction(tr("Select All")); action->setShortcut(QKeySequence(QKeySequence::SelectAll)); + QMenu *aboutMenu = menuBar()->addMenu(tr("&About")); + QAction *aboutAction = aboutMenu->addAction(tr("About..."), this, SLOT(aboutDialog())); + aboutAction->setShortcut(Qt::Key_F1); QTabWidget *tabWidget = new QTabWidget; tabWidget->addTab(new FileDialogPanel, tr("QFileDialog")); tabWidget->addTab(new ColorDialogPanel, tr("QColorDialog")); @@ -78,6 +114,13 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) setCentralWidget(tabWidget); } +void MainWindow::aboutDialog() +{ + AboutDialog dialog(this); + dialog.setWindowTitle(tr("About Dialogs")); + dialog.exec(); +} + int main(int argc, char *argv[]) { #if QT_VERSION >= 0x050700 -- cgit v1.2.3