summaryrefslogtreecommitdiffstats
path: root/examples/widgets/widgets/imageviewer
diff options
context:
space:
mode:
Diffstat (limited to 'examples/widgets/widgets/imageviewer')
-rw-r--r--examples/widgets/widgets/imageviewer/imageviewer.cpp68
-rw-r--r--examples/widgets/widgets/imageviewer/imageviewer.h3
-rw-r--r--examples/widgets/widgets/imageviewer/main.cpp12
3 files changed, 58 insertions, 25 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]
diff --git a/examples/widgets/widgets/imageviewer/imageviewer.h b/examples/widgets/widgets/imageviewer/imageviewer.h
index 7a0f0eb845..a4fd82a696 100644
--- a/examples/widgets/widgets/imageviewer/imageviewer.h
+++ b/examples/widgets/widgets/imageviewer/imageviewer.h
@@ -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,6 +61,7 @@ class ImageViewer : public QMainWindow
public:
ImageViewer();
+ bool loadFile(const QString &);
private slots:
void open();
diff --git a/examples/widgets/widgets/imageviewer/main.cpp b/examples/widgets/widgets/imageviewer/main.cpp
index f1697f9e3f..ee66b29591 100644
--- a/examples/widgets/widgets/imageviewer/main.cpp
+++ b/examples/widgets/widgets/imageviewer/main.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.
@@ -39,13 +39,23 @@
****************************************************************************/
#include <QApplication>
+#include <QCommandLineParser>
#include "imageviewer.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
+ QGuiApplication::setApplicationDisplayName(ImageViewer::tr("Image Viewer"));
+ QCommandLineParser commandLineParser;
+ commandLineParser.addHelpOption();
+ commandLineParser.addPositionalArgument(ImageViewer::tr("[file]"), ImageViewer::tr("Image file to open."));
+ commandLineParser.process(QCoreApplication::arguments());
ImageViewer imageViewer;
+ if (!commandLineParser.positionalArguments().isEmpty()
+ && !imageViewer.loadFile(commandLineParser.positionalArguments().front())) {
+ return -1;
+ }
imageViewer.show();
return app.exec();
}