diff options
author | Sergio Ahumada <sahumada@blackberry.com> | 2014-06-14 18:11:52 +0200 |
---|---|---|
committer | Sergio Ahumada <sahumada@blackberry.com> | 2014-06-14 18:11:52 +0200 |
commit | 5721c0811a526d3372d4e9547e78339fd7915b2c (patch) | |
tree | f2f5cf1c7c2d429f38720a0df00b437938e46adf /examples/widgets/widgets/imageviewer/imageviewer.cpp | |
parent | 16b90bb68343dc45a34d59083a2b62200fcc9551 (diff) | |
parent | 3f39c0f76cec121181ab9d6a0cf057c1b1aeb25c (diff) |
Merge remote-tracking branch 'origin/stable' into 5.3
Change-Id: Icd073d40ce10ab4733b997036815795dd3fbaac1
Diffstat (limited to 'examples/widgets/widgets/imageviewer/imageviewer.cpp')
-rw-r--r-- | examples/widgets/widgets/imageviewer/imageviewer.cpp | 68 |
1 files changed, 45 insertions, 23 deletions
diff --git a/examples/widgets/widgets/imageviewer/imageviewer.cpp b/examples/widgets/widgets/imageviewer/imageviewer.cpp index 77ec92d57a..eae94a2499 100644 --- a/examples/widgets/widgets/imageviewer/imageviewer.cpp +++ b/examples/widgets/widgets/imageviewer/imageviewer.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of the Qt Toolkit. @@ -61,39 +61,61 @@ ImageViewer::ImageViewer() createActions(); createMenus(); - setWindowTitle(tr("Image Viewer")); - resize(500, 400); + resize(QGuiApplication::primaryScreen()->availableSize() * 3 / 5); } + //! [0] +//! [2] -//! [1] -void ImageViewer::open() -//! [1] //! [2] +bool ImageViewer::loadFile(const QString &fileName) { - QString fileName = QFileDialog::getOpenFileName(this, - tr("Open File"), QDir::currentPath()); - if (!fileName.isEmpty()) { - QImage image(fileName); - if (image.isNull()) { - QMessageBox::information(this, tr("Image Viewer"), - tr("Cannot load %1.").arg(fileName)); - return; - } + QImage image(fileName); + if (image.isNull()) { + QMessageBox::information(this, QGuiApplication::applicationDisplayName(), + tr("Cannot load %1.").arg(QDir::toNativeSeparators(fileName))); + setWindowFilePath(QString()); + imageLabel->setPixmap(QPixmap()); + imageLabel->adjustSize(); + return false; + } //! [2] //! [3] - imageLabel->setPixmap(QPixmap::fromImage(image)); + imageLabel->setPixmap(QPixmap::fromImage(image)); //! [3] //! [4] - scaleFactor = 1.0; + scaleFactor = 1.0; + + printAct->setEnabled(true); + fitToWindowAct->setEnabled(true); + updateActions(); - printAct->setEnabled(true); - fitToWindowAct->setEnabled(true); - updateActions(); + if (!fitToWindowAct->isChecked()) + imageLabel->adjustSize(); - if (!fitToWindowAct->isChecked()) - imageLabel->adjustSize(); - } + setWindowFilePath(fileName); + return true; } + //! [4] +//! [2] + +//! [1] +void ImageViewer::open() +{ + QStringList mimeTypeFilters; + foreach (const QByteArray &mimeTypeName, QImageReader::supportedMimeTypes()) + mimeTypeFilters.append(mimeTypeName); + mimeTypeFilters.sort(); + const QStringList picturesLocations = QStandardPaths::standardLocations(QStandardPaths::PicturesLocation); + QFileDialog dialog(this, tr("Open File"), + picturesLocations.isEmpty() ? QDir::currentPath() : picturesLocations.first()); + dialog.setAcceptMode(QFileDialog::AcceptOpen); + dialog.setMimeTypeFilters(mimeTypeFilters); + dialog.selectMimeTypeFilter("image/jpeg"); + + while (dialog.exec() == QDialog::Accepted && !loadFile(dialog.selectedFiles().first())) {} +} +//! [1] + //! [5] void ImageViewer::print() //! [5] //! [6] |