Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qquickfolderdialog.cpp
Go to the documentation of this file.
1// Copyright (C) 2021 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
5
6#include <QtCore/qloggingcategory.h>
7#include <QtQml/qqmlfile.h>
8
10
12
13
17
74
83{
84 if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(handle()))
85 return fileDialog->directory();
86 return m_options->initialDirectory();
87}
88
90{
91 if (folder == m_options->initialDirectory())
92 return;
93
94 m_options->setInitialDirectory(folder);
96}
97
110{
111 if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(handle())) {
112 const QList<QUrl> selectedFiles = fileDialog->selectedFiles();
113 if (!selectedFiles.isEmpty())
114 return selectedFiles.first();
115 }
116 return QUrl();
117}
118
120{
121 if (folder == selectedFolder())
122 return;
123
124 if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(handle())) {
125 fileDialog->selectFile(folder);
127 }
128}
129
146QFileDialogOptions::FileDialogOptions QQuickFolderDialog::options() const
147{
148 return m_options->options();
149}
150
151void QQuickFolderDialog::setOptions(QFileDialogOptions::FileDialogOptions options)
152{
153 if (options == m_options->options())
154 return;
155
156 m_options->setOptions(options);
158}
159
164
181
190
195
212
221
226
228{
230 return false;
231
233 qCDebug(lcDialogs) << " - the FolderDialog was told not to use a native dialog; not using native dialog";
234 return false;
235 }
236
237 return true;
238}
239
241{
242 if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(dialog)) {
245 fileDialog->setOptions(m_options);
246 }
247}
248
250{
251 m_options->setWindowTitle(title());
252 if (QPlatformFileDialogHelper *fileDialog = qobject_cast<QPlatformFileDialogHelper *>(dialog)) {
253 fileDialog->setOptions(m_options);
254
255 const QUrl initialDir = m_options->initialDirectory();
256 // If it's not valid, we shouldn't set it.
257 if (m_firstShow && initialDir.isValid() && QDir(QQmlFile::urlToLocalFileOrQrc(initialDir)).exists())
258 fileDialog->setDirectory(m_options->initialDirectory());
259 }
261}
262
264
265#include "moc_qquickfolderdialog_p.cpp"
\inmodule QtCore
Definition qdir.h:20
static QString currentPath()
Returns the absolute path of the application's current directory.
Definition qdir.cpp:2054
void setWindowTitle(const QString &)
QString labelText(DialogLabel label) const
void setOptions(FileDialogOptions options)
FileDialogOptions options() const
void setLabelText(DialogLabel label, const QString &text)
void setFileMode(FileMode mode)
void setAcceptMode(AcceptMode mode)
void setInitialDirectory(const QUrl &)
bool testOption(FileDialogOption option) const
\inmodule QtCore
Definition qobject.h:103
static QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
\threadsafe
Definition qobject.cpp:2960
The QPlatformDialogHelper class allows for platform-specific customization of dialogs.
The QPlatformFileDialogHelper class allows for platform-specific customization of file dialogs.
void currentChanged(const QUrl &path)
void directoryEntered(const QUrl &directory)
static QString urlToLocalFileOrQrc(const QString &)
If url is a local file returns a path suitable for passing to \l{QFile}.
Definition qqmlfile.cpp:742
QPlatformDialogHelper * handle() const
virtual bool useNativeDialog() const
virtual void onShow(QPlatformDialogHelper *dialog)
void setSelectedFolder(const QUrl &folder)
void onCreate(QPlatformDialogHelper *dialog) override
void selectedFolderChanged()
QFileDialogOptions::FileDialogOptions options
void currentFolderChanged()
bool useNativeDialog() const override
void setOptions(QFileDialogOptions::FileDialogOptions options)
void setCurrentFolder(const QUrl &folder)
void setRejectLabel(const QString &label)
void setAcceptLabel(const QString &label)
void onShow(QPlatformDialogHelper *dialog) override
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
\inmodule QtCore
Definition qurl.h:94
static QUrl fromLocalFile(const QString &localfile)
Returns a QUrl representation of localFile, interpreted as a local file.
Definition qurl.cpp:3368
Combined button and popup list for selecting options.
SharedPointerFileDialogOptions m_options
#define qCDebug(category,...)
#define Q_DECLARE_LOGGING_CATEGORY(name)
GLuint GLsizei const GLchar * label
[43]
QQuickDialogType
#define emit
QFileDialog dialog(this)
[1]
view create()