5#ifndef QQUICKLABSPLATFORMFILEDIALOG_P_H
6#define QQUICKLABSPLATFORMFILEDIALOG_P_H
20#include <QtCore/qurl.h>
21#include <QtQml/qqml.h>
23#if QT_DEPRECATED_SINCE(6
, 9
)
27class QQuickLabsPlatformFileNameFilter;
29class QQuickLabsPlatformFileDialog :
public QQuickLabsPlatformDialog
32 QML_NAMED_ELEMENT(FileDialog)
33 QML_EXTENDED_NAMESPACE(QFileDialogOptions)
34 Q_PROPERTY(FileMode fileMode READ fileMode WRITE setFileMode NOTIFY fileModeChanged FINAL)
35 Q_PROPERTY(QUrl file READ file WRITE setFile NOTIFY fileChanged FINAL)
36 Q_PROPERTY(QList<QUrl> files READ files WRITE setFiles NOTIFY filesChanged FINAL)
37 Q_PROPERTY(QUrl currentFile READ currentFile WRITE setCurrentFile NOTIFY currentFileChanged FINAL)
38 Q_PROPERTY(QList<QUrl> currentFiles READ currentFiles WRITE setCurrentFiles NOTIFY currentFilesChanged FINAL)
39 Q_PROPERTY(QUrl folder READ folder WRITE setFolder NOTIFY folderChanged FINAL)
40 Q_PROPERTY(QFileDialogOptions::FileDialogOptions options READ options WRITE setOptions RESET resetOptions NOTIFY optionsChanged FINAL)
41 Q_PROPERTY(QStringList nameFilters READ nameFilters WRITE setNameFilters RESET resetNameFilters NOTIFY nameFiltersChanged FINAL)
42 Q_PROPERTY(QQuickLabsPlatformFileNameFilter *selectedNameFilter READ selectedNameFilter CONSTANT FINAL)
43 Q_PROPERTY(QString defaultSuffix READ defaultSuffix WRITE setDefaultSuffix RESET resetDefaultSuffix NOTIFY defaultSuffixChanged FINAL)
44 Q_PROPERTY(QString acceptLabel READ acceptLabel WRITE setAcceptLabel RESET resetAcceptLabel NOTIFY acceptLabelChanged FINAL)
45 Q_PROPERTY(QString rejectLabel READ rejectLabel WRITE setRejectLabel RESET resetRejectLabel NOTIFY rejectLabelChanged FINAL)
48 explicit QQuickLabsPlatformFileDialog(QObject *parent =
nullptr);
57 FileMode fileMode()
const;
58 void setFileMode(FileMode fileMode);
61 void setFile(
const QUrl &file);
63 QList<QUrl> files()
const;
64 void setFiles(
const QList<QUrl> &files);
66 QUrl currentFile()
const;
67 void setCurrentFile(
const QUrl &file);
69 QList<QUrl> currentFiles()
const;
70 void setCurrentFiles(
const QList<QUrl> &files);
73 void setFolder(
const QUrl &folder);
75 QFileDialogOptions::FileDialogOptions options()
const;
76 void setOptions(QFileDialogOptions::FileDialogOptions options);
79 QStringList nameFilters()
const;
80 void setNameFilters(
const QStringList &filters);
81 void resetNameFilters();
83 QQuickLabsPlatformFileNameFilter *selectedNameFilter()
const;
85 QString defaultSuffix()
const;
86 void setDefaultSuffix(
const QString &suffix);
87 void resetDefaultSuffix();
89 QString acceptLabel()
const;
90 void setAcceptLabel(
const QString &label);
91 void resetAcceptLabel();
93 QString rejectLabel()
const;
94 void setRejectLabel(
const QString &label);
95 void resetRejectLabel();
98 void fileModeChanged();
101 void currentFileChanged();
102 void currentFilesChanged();
103 void folderChanged();
104 void optionsChanged();
105 void nameFiltersChanged();
106 void defaultSuffixChanged();
107 void acceptLabelChanged();
108 void rejectLabelChanged();
111 bool useNativeDialog()
const override;
112 void onCreate(QPlatformDialogHelper *dialog) override;
113 void onShow(QPlatformDialogHelper *dialog) override;
114 void onHide(QPlatformDialogHelper *dialog) override;
115 void accept() override;
118 QUrl addDefaultSuffix(
const QUrl &file)
const;
119 QList<QUrl> addDefaultSuffixes(
const QList<QUrl> &files)
const;
123 bool m_firstShow =
true;
124 QSharedPointer<QFileDialogOptions> m_options;
125 mutable QQuickLabsPlatformFileNameFilter *m_selectedNameFilter;
128class QQuickLabsPlatformFileNameFilter :
public QObject
132 Q_PROPERTY(
int index READ index WRITE setIndex NOTIFY indexChanged FINAL)
133 Q_PROPERTY(QString name READ name NOTIFY nameChanged FINAL)
134 Q_PROPERTY(QStringList extensions READ extensions NOTIFY extensionsChanged FINAL)
137 explicit QQuickLabsPlatformFileNameFilter(QObject *parent =
nullptr);
140 void setIndex(
int index);
142 QString name()
const;
143 QStringList extensions()
const;
145 QSharedPointer<QFileDialogOptions> options()
const;
146 void setOptions(
const QSharedPointer<QFileDialogOptions> &options);
148 void update(
const QString &filter);
151 void indexChanged(
int index);
152 void nameChanged(
const QString &name);
153 void extensionsChanged(
const QStringList &extensions);
156 QStringList nameFilters()
const;
157 QString nameFilter(
int index)
const;
161 QStringList m_extensions;
162 QSharedPointer<QFileDialogOptions> m_options;