7#if QT_DEPRECATED_SINCE(6
, 9
)
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
67QQuickLabsPlatformFolderDialog::QQuickLabsPlatformFolderDialog(QObject *parent)
68 : QQuickLabsPlatformDialog(QPlatformTheme::FileDialog, parent),
69 m_options(QFileDialogOptions::create())
71 m_options->setFileMode(QFileDialogOptions::Directory);
72 m_options->setAcceptMode(QFileDialogOptions::AcceptOpen);
76
77
78
79
80
81
82
83
84
85
86
87
88QUrl QQuickLabsPlatformFolderDialog::folder()
const
93void QQuickLabsPlatformFolderDialog::setFolder(
const QUrl &folder)
95 if (m_folder == folder)
103
104
105
106
107
108
109
110
111
112
113QUrl QQuickLabsPlatformFolderDialog::currentFolder()
const
115 if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(handle())) {
116 const QList<QUrl> selectedFiles = fileDialog->selectedFiles();
117 if (!selectedFiles.isEmpty())
118 return selectedFiles.first();
119 return fileDialog->directory();
121 return m_options->initialDirectory();
124void QQuickLabsPlatformFolderDialog::setCurrentFolder(
const QUrl &folder)
126 if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(handle()))
127 fileDialog->setDirectory(folder);
128 m_options->setInitialDirectory(folder);
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147QFileDialogOptions::FileDialogOptions QQuickLabsPlatformFolderDialog::options()
const
149 return m_options->options();
152void QQuickLabsPlatformFolderDialog::setOptions(QFileDialogOptions::FileDialogOptions options)
154 if (options == m_options->options())
157 m_options->setOptions(options);
158 emit optionsChanged();
161void QQuickLabsPlatformFolderDialog::resetOptions()
167
168
169
170
171
172
173
174
175
176
177
178QString QQuickLabsPlatformFolderDialog::acceptLabel()
const
180 return m_options->labelText(QFileDialogOptions::Accept);
183void QQuickLabsPlatformFolderDialog::setAcceptLabel(
const QString &label)
185 if (label == m_options->labelText(QFileDialogOptions::Accept))
188 m_options->setLabelText(QFileDialogOptions::Accept, label);
189 emit acceptLabelChanged();
192void QQuickLabsPlatformFolderDialog::resetAcceptLabel()
194 setAcceptLabel(QString());
198
199
200
201
202
203
204
205
206
207
208
209QString QQuickLabsPlatformFolderDialog::rejectLabel()
const
211 return m_options->labelText(QFileDialogOptions::Reject);
214void QQuickLabsPlatformFolderDialog::setRejectLabel(
const QString &label)
216 if (label == m_options->labelText(QFileDialogOptions::Reject))
219 m_options->setLabelText(QFileDialogOptions::Reject, label);
220 emit rejectLabelChanged();
223void QQuickLabsPlatformFolderDialog::resetRejectLabel()
225 setRejectLabel(QString());
228bool QQuickLabsPlatformFolderDialog::useNativeDialog()
const
230 return QQuickLabsPlatformDialog::useNativeDialog()
231 && !m_options->testOption(QFileDialogOptions::DontUseNativeDialog);
234void QQuickLabsPlatformFolderDialog::onCreate(QPlatformDialogHelper *dialog)
236 if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(dialog)) {
237 connect(fileDialog, &QPlatformFileDialogHelper::currentChanged,
this, &QQuickLabsPlatformFolderDialog::currentFolderChanged);
238 fileDialog->setOptions(m_options);
242void QQuickLabsPlatformFolderDialog::onShow(QPlatformDialogHelper *dialog)
244 m_options->setWindowTitle(title());
245 if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(dialog))
246 fileDialog->setOptions(m_options);
249void QQuickLabsPlatformFolderDialog::accept()
251 setFolder(currentFolder());
252 QQuickLabsPlatformDialog::accept();
257#include "moc_qquicklabsplatformfolderdialog_p.cpp"