File indexing completed on 2025-04-27 03:58:22
0001 /* ============================================================ 0002 * 0003 * This file is a part of digiKam project 0004 * https://www.digikam.org 0005 * 0006 * date : 2017-07-04 0007 * Description : wrapper for the QFileDialog 0008 * 0009 * SPDX-FileCopyrightText: 2014-2024 by Gilles Caulier <caulier dot gilles at gmail dot com> 0010 * SPDX-FileCopyrightText: 2017-2022 by Maik Qualmann <metzpinguin at gmail dot com> 0011 * 0012 * SPDX-License-Identifier: GPL-2.0-or-later 0013 * 0014 * ============================================================ */ 0015 0016 #ifndef DIGIKAM_DFILE_DIALOG_H 0017 #define DIGIKAM_DFILE_DIALOG_H 0018 0019 // Qt includes 0020 0021 #include <QFileDialog> 0022 0023 // Local includes 0024 0025 #include "digikam_export.h" 0026 0027 namespace Digikam 0028 { 0029 0030 class DIGIKAM_EXPORT DFileDialog : public QFileDialog 0031 { 0032 Q_OBJECT 0033 0034 public: 0035 0036 explicit DFileDialog(QWidget* const parent, 0037 Qt::WindowFlags flags); 0038 0039 explicit DFileDialog(QWidget* const parent = nullptr, 0040 const QString& caption = QString(), 0041 const QString& directory = QString(), 0042 const QString& filter = QString()); 0043 ~DFileDialog() override; 0044 0045 bool hasAcceptedUrls() const; 0046 0047 static QString getExistingDirectory(QWidget* const parent = nullptr, 0048 const QString& caption = QString(), 0049 const QString& dir = QString(), 0050 Options options = ShowDirsOnly); 0051 0052 static QUrl getExistingDirectoryUrl(QWidget* const parent = nullptr, 0053 const QString& caption = QString(), 0054 const QUrl& dir = QUrl(), 0055 Options options = ShowDirsOnly, 0056 const QStringList& supportedSchemes = QStringList()); 0057 0058 static QString getOpenFileName(QWidget* const parent = nullptr, 0059 const QString& caption = QString(), 0060 const QString& dir = QString(), 0061 const QString& filter = QString(), 0062 QString* selectedFilter = nullptr, 0063 Options options = Options()); 0064 0065 static QStringList getOpenFileNames(QWidget* const parent = nullptr, 0066 const QString& caption = QString(), 0067 const QString& dir = QString(), 0068 const QString& filter = QString(), 0069 QString* selectedFilter = nullptr, 0070 Options options = Options()); 0071 0072 static QUrl getOpenFileUrl(QWidget* const parent = nullptr, 0073 const QString& caption = QString(), 0074 const QUrl& dir = QUrl(), 0075 const QString& filter = QString(), 0076 QString* selectedFilter = nullptr, 0077 Options options = Options(), 0078 const QStringList& supportedSchemes = QStringList()); 0079 0080 static QList<QUrl> getOpenFileUrls(QWidget* const parent = nullptr, 0081 const QString& caption = QString(), 0082 const QUrl& dir = QUrl(), 0083 const QString& filter = QString(), 0084 QString* selectedFilter = nullptr, 0085 Options options = Options(), 0086 const QStringList& supportedSchemes = QStringList()); 0087 0088 static QString getSaveFileName(QWidget* const parent = nullptr, 0089 const QString& caption = QString(), 0090 const QString& dir = QString(), 0091 const QString& filter = QString(), 0092 QString* selectedFilter = nullptr, 0093 Options options = Options()); 0094 0095 static QUrl getSaveFileUrl(QWidget* const parent = nullptr, 0096 const QString& caption = QString(), 0097 const QUrl& dir = QUrl(), 0098 const QString& filter = QString(), 0099 QString* selectedFilter = nullptr, 0100 Options options = Options(), 0101 const QStringList& supportedSchemes = QStringList()); 0102 0103 private: 0104 0105 static QFileDialog::Option getNativeFileDialogOption(); 0106 }; 0107 0108 } // namespace Digikam 0109 0110 #endif // DIGIKAM_DFILE_DIALOG_H