12 : m_dialog(
new QFileDialog)
16 connect(m_dialog.data(), &QDialog::accepted,
this, &QPlatformDialogHelper::accept);
17 connect(m_dialog.data(), &QDialog::rejected,
this, &QPlatformDialogHelper::reject);
19 connect(m_dialog.data(), &QFileDialog::fileSelected,
this, [
this](
const QString &file) {
20 emit fileSelected(QUrl::fromLocalFile(file));
22 connect(m_dialog.data(), &QFileDialog::filesSelected,
this, [
this](
const QList<QString> &files) {
24 urls.reserve(files.size());
25 for (
const QString &file : files)
26 urls += QUrl::fromLocalFile(file);
27 emit filesSelected(urls);
29 connect(m_dialog.data(), &QFileDialog::currentChanged,
this, [
this](
const QString &path) {
30 emit currentChanged(QUrl::fromLocalFile(path));
34 connect(m_dialog.data(), &QFileDialog::directoryEntered,
this, [
this](
const QString &path) {
35 directoryEntered(QUrl{path});
37 connect(m_dialog.data(), &QFileDialog::filterSelected,
this, &QWidgetPlatformFileDialog::filterSelected);
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));
103 return QWidgetPlatformDialog::show(m_dialog.data(), flags, modality, parent);