Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qwidgetplatformfiledialog.cpp
Go to the documentation of this file.
1
// Copyright (C) 2017 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
4
#
include
"qwidgetplatformfiledialog_p.h"
5
#
include
"qwidgetplatformdialog_p.h"
6
7
#
include
<
QtWidgets
/
qfiledialog
.
h
>
8
9
QT_BEGIN_NAMESPACE
10
11
QWidgetPlatformFileDialog
::
QWidgetPlatformFileDialog
(
QObject
*
parent
)
12
: m_dialog(
new
QFileDialog)
13
{
14
setParent(parent);
15
16
connect(m_dialog.data(), &QDialog::accepted,
this
, &QPlatformDialogHelper::accept);
17
connect(m_dialog.data(), &QDialog::rejected,
this
, &QPlatformDialogHelper::reject);
18
19
connect(m_dialog.data(), &QFileDialog::fileSelected,
this
, [
this
](
const
QString &file) {
20
emit fileSelected(QUrl::fromLocalFile(file));
21
});
22
connect(m_dialog.data(), &QFileDialog::filesSelected,
this
, [
this
](
const
QList<QString> &files) {
23
QList<QUrl> urls;
24
urls.reserve(files.size());
25
for
(
const
QString &file : files)
26
urls += QUrl::fromLocalFile(file);
27
emit filesSelected(urls);
28
});
29
connect(m_dialog.data(), &QFileDialog::currentChanged,
this
, [
this
](
const
QString &path) {
30
emit currentChanged(QUrl::fromLocalFile(path));
31
});
32
// Not connecting to QFileDialog::directoryUrlEntered() because it's emitted
33
// in fewer places than directoryEntered().
34
connect(m_dialog.data(), &QFileDialog::directoryEntered,
this
, [
this
](
const
QString &path) {
35
directoryEntered(QUrl{path});
36
});
37
connect(m_dialog.data(), &QFileDialog::filterSelected,
this
, &QWidgetPlatformFileDialog::filterSelected);
38
}
39
40
QWidgetPlatformFileDialog
::~
QWidgetPlatformFileDialog
()
41
{
42
}
43
44
bool
QWidgetPlatformFileDialog
::
defaultNameFilterDisables
()
const
45
{
46
return
false
;
// TODO: ?
47
}
48
49
void
QWidgetPlatformFileDialog
::
setDirectory
(
const
QUrl &directory)
50
{
51
m_dialog->setDirectory(directory.toLocalFile());
52
}
53
54
QUrl
QWidgetPlatformFileDialog
::
directory
()
const
55
{
56
return
m_dialog->directoryUrl();
57
}
58
59
void
QWidgetPlatformFileDialog
::
selectFile
(
const
QUrl &filename)
60
{
61
m_dialog->selectUrl(filename);
62
}
63
64
QList
<
QUrl
>
QWidgetPlatformFileDialog
::
selectedFiles
()
const
65
{
66
return
m_dialog->selectedUrls();
67
}
68
69
void
QWidgetPlatformFileDialog
::
setFilter
()
70
{
71
// TODO: ?
72
}
73
74
void
QWidgetPlatformFileDialog
::
selectNameFilter
(
const
QString &filter)
75
{
76
m_dialog->selectNameFilter(filter);
77
}
78
79
QString
QWidgetPlatformFileDialog
::
selectedNameFilter
()
const
80
{
81
return
m_dialog->selectedNameFilter();
82
}
83
84
void
QWidgetPlatformFileDialog
::
exec
()
85
{
86
m_dialog->exec();
87
}
88
89
bool
QWidgetPlatformFileDialog
::show(Qt::WindowFlags flags, Qt::WindowModality modality, QWindow *parent)
90
{
91
QSharedPointer<QFileDialogOptions> options = QPlatformFileDialogHelper::options();
92
m_dialog->setWindowTitle(options->windowTitle());
93
m_dialog->setAcceptMode(
static_cast
<QFileDialog::AcceptMode>(options->acceptMode()));
94
m_dialog->setFileMode(
static_cast
<QFileDialog::FileMode>(options->fileMode()));
95
m_dialog->setOptions(
static_cast
<QFileDialog::Options>(
int
(options->options())) | QFileDialog::DontUseNativeDialog);
96
m_dialog->setNameFilters(options->nameFilters());
97
m_dialog->setDefaultSuffix(options->defaultSuffix());
98
if
(options->isLabelExplicitlySet(QFileDialogOptions::Accept))
99
m_dialog->setLabelText(QFileDialog::Accept, options->labelText(QFileDialogOptions::Accept));
100
if
(options->isLabelExplicitlySet(QFileDialogOptions::Reject))
101
m_dialog->setLabelText(QFileDialog::Reject, options->labelText(QFileDialogOptions::Reject));
102
103
return
QWidgetPlatformDialog::show(m_dialog.data(), flags, modality, parent);
104
}
105
106
void
QWidgetPlatformFileDialog
::
hide
()
107
{
108
m_dialog->hide();
109
}
110
111
QT_END_NAMESPACE
112
113
#
include
"moc_qwidgetplatformfiledialog_p.cpp"
QObject
\inmodule QtCore
Definition
qobject.h:106
QWidgetPlatformFileDialog
Definition
qwidgetplatformfiledialog_p.h:26
QWidgetPlatformFileDialog::setFilter
void setFilter() override
Definition
qwidgetplatformfiledialog.cpp:69
QWidgetPlatformFileDialog::hide
void hide() override
Definition
qwidgetplatformfiledialog.cpp:106
QWidgetPlatformFileDialog::selectedFiles
QList< QUrl > selectedFiles() const override
Definition
qwidgetplatformfiledialog.cpp:64
QWidgetPlatformFileDialog::selectedNameFilter
QString selectedNameFilter() const override
Definition
qwidgetplatformfiledialog.cpp:79
QWidgetPlatformFileDialog::exec
void exec() override
Definition
qwidgetplatformfiledialog.cpp:84
QWidgetPlatformFileDialog::defaultNameFilterDisables
bool defaultNameFilterDisables() const override
Definition
qwidgetplatformfiledialog.cpp:44
QWidgetPlatformFileDialog::setDirectory
void setDirectory(const QUrl &directory) override
Definition
qwidgetplatformfiledialog.cpp:49
QWidgetPlatformFileDialog::selectFile
void selectFile(const QUrl &filename) override
Definition
qwidgetplatformfiledialog.cpp:59
QWidgetPlatformFileDialog::selectNameFilter
void selectNameFilter(const QString &filter) override
Definition
qwidgetplatformfiledialog.cpp:74
QWidgetPlatformFileDialog::directory
QUrl directory() const override
Definition
qwidgetplatformfiledialog.cpp:54
QWidgetPlatformFileDialog::~QWidgetPlatformFileDialog
~QWidgetPlatformFileDialog()
Definition
qwidgetplatformfiledialog.cpp:40
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
qtdeclarative
src
labs
platform
widgets
qwidgetplatformfiledialog.cpp
Generated on
for Qt by
1.18.0