diff options
Diffstat (limited to 'examples/widgets/draganddrop/puzzle/mainwindow.cpp')
-rw-r--r-- | examples/widgets/draganddrop/puzzle/mainwindow.cpp | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/examples/widgets/draganddrop/puzzle/mainwindow.cpp b/examples/widgets/draganddrop/puzzle/mainwindow.cpp index 806133583a..1914519c68 100644 --- a/examples/widgets/draganddrop/puzzle/mainwindow.cpp +++ b/examples/widgets/draganddrop/puzzle/mainwindow.cpp @@ -67,12 +67,19 @@ MainWindow::MainWindow(QWidget *parent) void MainWindow::openImage() { - const QString fileName = - QFileDialog::getOpenFileName(this, tr("Open Image"), QString(), - tr("Image Files (*.png *.jpg *.bmp)")); - - if (!fileName.isEmpty()) - loadImage(fileName); + const QString directory = + QStandardPaths::standardLocations(QStandardPaths::PicturesLocation).value(0, QDir::homePath()); + QFileDialog dialog(this, tr("Open Image"), directory); + dialog.setAcceptMode(QFileDialog::AcceptOpen); + dialog.setFileMode(QFileDialog::ExistingFile); + QStringList mimeTypeFilters; + for (const QByteArray &mimeTypeName : QImageReader::supportedMimeTypes()) + mimeTypeFilters.append(mimeTypeName); + mimeTypeFilters.sort(); + dialog.setMimeTypeFilters(mimeTypeFilters); + dialog.selectMimeTypeFilter("image/jpeg"); + if (dialog.exec() == QDialog::Accepted) + loadImage(dialog.selectedFiles().constFirst()); } void MainWindow::loadImage(const QString &fileName) @@ -101,8 +108,8 @@ void MainWindow::setCompleted() void MainWindow::setupPuzzle() { int size = qMin(puzzleImage.width(), puzzleImage.height()); - puzzleImage = puzzleImage.copy((puzzleImage.width() - size)/2, - (puzzleImage.height() - size)/2, size, size).scaled(puzzleWidget->width(), + puzzleImage = puzzleImage.copy((puzzleImage.width() - size) / 2, + (puzzleImage.height() - size) / 2, size, size).scaled(puzzleWidget->width(), puzzleWidget->height(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation); piecesList->clear(); |