Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qfiledialog.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5#ifndef QFILEDIALOG_H
6#define QFILEDIALOG_H
7
8#include <QtWidgets/qtwidgetsglobal.h>
9#include <QtCore/qdir.h>
10#include <QtCore/qstring.h>
11#include <QtCore/qurl.h>
12#include <QtWidgets/qdialog.h>
13
14#include <functional>
15
17
18QT_BEGIN_NAMESPACE
19
20class QModelIndex;
21class QItemSelection;
22struct QFileDialogArgs;
23class QFileDialogPrivate;
24class QAbstractFileIconProvider;
25class QAbstractItemDelegate;
26class QAbstractProxyModel;
27
28class Q_WIDGETS_EXPORT QFileDialog : public QDialog
29{
30 Q_OBJECT
31 Q_PROPERTY(ViewMode viewMode READ viewMode WRITE setViewMode)
32 Q_PROPERTY(FileMode fileMode READ fileMode WRITE setFileMode)
33 Q_PROPERTY(AcceptMode acceptMode READ acceptMode WRITE setAcceptMode)
34 Q_PROPERTY(QString defaultSuffix READ defaultSuffix WRITE setDefaultSuffix)
35 Q_PROPERTY(Options options READ options WRITE setOptions)
36 Q_PROPERTY(QStringList supportedSchemes READ supportedSchemes WRITE setSupportedSchemes)
37
38public:
39 enum ViewMode { Detail, List };
40 Q_ENUM(ViewMode)
41 enum FileMode { AnyFile, ExistingFile, Directory, ExistingFiles };
42 Q_ENUM(FileMode)
43 enum AcceptMode { AcceptOpen, AcceptSave };
44 Q_ENUM(AcceptMode)
45 enum DialogLabel { LookIn, FileName, FileType, Accept, Reject };
46
47 // keep this in sync with QFileDialogOption::FileDialogOptions
48 enum Option
49 {
50 ShowDirsOnly = 0x00000001,
51 DontResolveSymlinks = 0x00000002,
52 DontConfirmOverwrite = 0x00000004,
53 DontUseNativeDialog = 0x00000008,
54 ReadOnly = 0x00000010,
55 HideNameFilterDetails = 0x00000020,
56 DontUseCustomDirectoryIcons = 0x00000040
57 };
58 Q_ENUM(Option)
59 Q_DECLARE_FLAGS(Options, Option)
60 Q_FLAG(Options)
61
62 QFileDialog(QWidget *parent, Qt::WindowFlags f);
63 explicit QFileDialog(QWidget *parent = nullptr,
64 const QString &caption = QString(),
65 const QString &directory = QString(),
66 const QString &filter = QString());
67 ~QFileDialog();
68
69 void setDirectory(const QString &directory);
70 inline void setDirectory(const QDir &directory);
71 QDir directory() const;
72
73 void setDirectoryUrl(const QUrl &directory);
74 QUrl directoryUrl() const;
75
76 void selectFile(const QString &filename);
77 QStringList selectedFiles() const;
78
79 void selectUrl(const QUrl &url);
80 QList<QUrl> selectedUrls() const;
81
82 void setNameFilter(const QString &filter);
83 void setNameFilters(const QStringList &filters);
84 QStringList nameFilters() const;
85 void selectNameFilter(const QString &filter);
86 QString selectedMimeTypeFilter() const;
87 QString selectedNameFilter() const;
88
89#if QT_CONFIG(mimetype)
90 void setMimeTypeFilters(const QStringList &filters);
91 QStringList mimeTypeFilters() const;
92 void selectMimeTypeFilter(const QString &filter);
93#endif
94
95 QDir::Filters filter() const;
96 void setFilter(QDir::Filters filters);
97
98 void setViewMode(ViewMode mode);
99 ViewMode viewMode() const;
100
101 void setFileMode(FileMode mode);
102 FileMode fileMode() const;
103
104 void setAcceptMode(AcceptMode mode);
105 AcceptMode acceptMode() const;
106
107 void setSidebarUrls(const QList<QUrl> &urls);
108 QList<QUrl> sidebarUrls() const;
109
110 QByteArray saveState() const;
111 bool restoreState(const QByteArray &state);
112
113 void setDefaultSuffix(const QString &suffix);
114 QString defaultSuffix() const;
115
116 void setHistory(const QStringList &paths);
117 QStringList history() const;
118
119 void setItemDelegate(QAbstractItemDelegate *delegate);
120 QAbstractItemDelegate *itemDelegate() const;
121
122 void setIconProvider(QAbstractFileIconProvider *provider);
123 QAbstractFileIconProvider *iconProvider() const;
124
125 void setLabelText(DialogLabel label, const QString &text);
126 QString labelText(DialogLabel label) const;
127
128 void setSupportedSchemes(const QStringList &schemes);
129 QStringList supportedSchemes() const;
130
131#if QT_CONFIG(proxymodel)
132 void setProxyModel(QAbstractProxyModel *model);
133 QAbstractProxyModel *proxyModel() const;
134#endif
135
136 void setOption(Option option, bool on = true);
137 bool testOption(Option option) const;
138 void setOptions(Options options);
139 Options options() const;
140
141 using QDialog::open;
142 void open(QObject *receiver, const char *member);
143 void setVisible(bool visible) override;
144
145Q_SIGNALS:
146 void fileSelected(const QString &file);
147 void filesSelected(const QStringList &files);
148 void currentChanged(const QString &path);
149 void directoryEntered(const QString &directory);
150
151 void urlSelected(const QUrl &url);
152 void urlsSelected(const QList<QUrl> &urls);
153 void currentUrlChanged(const QUrl &url);
154 void directoryUrlEntered(const QUrl &directory);
155
156 void filterSelected(const QString &filter);
157
158public:
159
160 static QString getOpenFileName(QWidget *parent = nullptr,
161 const QString &caption = QString(),
162 const QString &dir = QString(),
163 const QString &filter = QString(),
164 QString *selectedFilter = nullptr,
165 Options options = Options());
166
167 static QUrl getOpenFileUrl(QWidget *parent = nullptr,
168 const QString &caption = QString(),
169 const QUrl &dir = QUrl(),
170 const QString &filter = QString(),
171 QString *selectedFilter = nullptr,
172 Options options = Options(),
173 const QStringList &supportedSchemes = QStringList());
174
175 static QString getSaveFileName(QWidget *parent = nullptr,
176 const QString &caption = QString(),
177 const QString &dir = QString(),
178 const QString &filter = QString(),
179 QString *selectedFilter = nullptr,
180 Options options = Options());
181
182 static QUrl getSaveFileUrl(QWidget *parent = nullptr,
183 const QString &caption = QString(),
184 const QUrl &dir = QUrl(),
185 const QString &filter = QString(),
186 QString *selectedFilter = nullptr,
187 Options options = Options(),
188 const QStringList &supportedSchemes = QStringList());
189
190 static QString getExistingDirectory(QWidget *parent = nullptr,
191 const QString &caption = QString(),
192 const QString &dir = QString(),
193 Options options = ShowDirsOnly);
194
195 static QUrl getExistingDirectoryUrl(QWidget *parent = nullptr,
196 const QString &caption = QString(),
197 const QUrl &dir = QUrl(),
198 Options options = ShowDirsOnly,
199 const QStringList &supportedSchemes = QStringList());
200
201 static QStringList getOpenFileNames(QWidget *parent = nullptr,
202 const QString &caption = QString(),
203 const QString &dir = QString(),
204 const QString &filter = QString(),
205 QString *selectedFilter = nullptr,
206 Options options = Options());
207
208 static QList<QUrl> getOpenFileUrls(QWidget *parent = nullptr,
209 const QString &caption = QString(),
210 const QUrl &dir = QUrl(),
211 const QString &filter = QString(),
212 QString *selectedFilter = nullptr,
213 Options options = Options(),
214 const QStringList &supportedSchemes = QStringList());
215
216 static void getOpenFileContent(const QString &nameFilter,
217 const std::function<void(const QString &, const QByteArray &)> &fileContentsReady,
218 QWidget *parent= nullptr);
219
220 static void saveFileContent(const QByteArray &fileContent,
221 const QString &fileNameHint,
222 QWidget *parent = nullptr);
223
224#if QT_WIDGETS_REMOVED_SINCE(6, 7)
225 static void getOpenFileContent(const QString &nameFilter,
226 const std::function<void(const QString &, const QByteArray &)> &fileContentsReady);
227 static void saveFileContent(const QByteArray &fileContent,
228 const QString &fileNameHint = QString());
229#endif
230
231
232protected:
233 QFileDialog(const QFileDialogArgs &args);
234 void done(int result) override;
235 void accept() override;
236 void changeEvent(QEvent *e) override;
237
238private:
239 Q_DECLARE_PRIVATE(QFileDialog)
240 Q_DISABLE_COPY(QFileDialog)
241
242 friend class QPlatformDialogHelper;
243};
244
245inline void QFileDialog::setDirectory(const QDir &adirectory)
246{ setDirectory(adirectory.absolutePath()); }
247
248Q_DECLARE_OPERATORS_FOR_FLAGS(QFileDialog::Options)
249
250QT_END_NAMESPACE
251
252#endif // QFILEDIALOG_H
void setHistory(const QStringList &paths)
void setFileDialogPrivate(QFileDialogPrivate *d_pointer)
void showPopup() override
Displays the list of items in the combobox.
void setFileDialogPrivate(QFileDialogPrivate *d_pointer)
QSize sizeHint() const override
QSize sizeHint() const override
void setFileDialogPrivate(QFileDialogPrivate *d_pointer)
The QFileDialog class provides a dialog that allows users to select files or directories.
Definition qfiledialog.h:29
Definition qlist.h:80
\inmodule QtCore
static QUrl _qt_get_directory(const QUrl &url, const QFileInfo &local)
static void _qt_init_lastVisited()
QStringList qt_strip_filters(const QStringList &filters)
QStringList qt_make_filter_list(const QString &filter)
static QString fileFromPath(const QString &rootPath, QString path)
static bool isCaseSensitiveFileSystem(const QString &path)
QT_REQUIRE_CONFIG(filedialog)
QFileDialogArgs(const QUrl &url={})