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_ADDED_IN_VERSION(1, 0)
34 QML_EXTENDED_NAMESPACE(QFileDialogOptions)
35 Q_PROPERTY(FileMode fileMode READ fileMode WRITE setFileMode NOTIFY fileModeChanged FINAL)
36 Q_PROPERTY(QUrl file READ file WRITE setFile NOTIFY fileChanged FINAL)
37 Q_PROPERTY(QList<QUrl> files READ files WRITE setFiles NOTIFY filesChanged FINAL)
38 Q_PROPERTY(QUrl currentFile READ currentFile WRITE setCurrentFile NOTIFY currentFileChanged FINAL)
39 Q_PROPERTY(QList<QUrl> currentFiles READ currentFiles WRITE setCurrentFiles NOTIFY currentFilesChanged FINAL)
40 Q_PROPERTY(QUrl folder READ folder WRITE setFolder NOTIFY folderChanged FINAL)
41 Q_PROPERTY(QFileDialogOptions::FileDialogOptions options READ options WRITE setOptions RESET resetOptions NOTIFY optionsChanged FINAL)
42 Q_PROPERTY(QStringList nameFilters READ nameFilters WRITE setNameFilters RESET resetNameFilters NOTIFY nameFiltersChanged FINAL)
43 Q_PROPERTY(QQuickLabsPlatformFileNameFilter *selectedNameFilter READ selectedNameFilter CONSTANT FINAL)
44 Q_PROPERTY(QString defaultSuffix READ defaultSuffix WRITE setDefaultSuffix RESET resetDefaultSuffix NOTIFY defaultSuffixChanged FINAL)
45 Q_PROPERTY(QString acceptLabel READ acceptLabel WRITE setAcceptLabel RESET resetAcceptLabel NOTIFY acceptLabelChanged FINAL)
46 Q_PROPERTY(QString rejectLabel READ rejectLabel WRITE setRejectLabel RESET resetRejectLabel NOTIFY rejectLabelChanged FINAL)
49 explicit QQuickLabsPlatformFileDialog(QObject *parent =
nullptr);
58 FileMode fileMode()
const;
59 void setFileMode(FileMode fileMode);
62 void setFile(
const QUrl &file);
64 QList<QUrl> files()
const;
65 void setFiles(
const QList<QUrl> &files);
67 QUrl currentFile()
const;
68 void setCurrentFile(
const QUrl &file);
70 QList<QUrl> currentFiles()
const;
71 void setCurrentFiles(
const QList<QUrl> &files);
74 void setFolder(
const QUrl &folder);
76 QFileDialogOptions::FileDialogOptions options()
const;
77 void setOptions(QFileDialogOptions::FileDialogOptions options);
80 QStringList nameFilters()
const;
81 void setNameFilters(
const QStringList &filters);
82 void resetNameFilters();
84 QQuickLabsPlatformFileNameFilter *selectedNameFilter()
const;
86 QString defaultSuffix()
const;
87 void setDefaultSuffix(
const QString &suffix);
88 void resetDefaultSuffix();
90 QString acceptLabel()
const;
91 void setAcceptLabel(
const QString &label);
92 void resetAcceptLabel();
94 QString rejectLabel()
const;
95 void setRejectLabel(
const QString &label);
96 void resetRejectLabel();
99 void fileModeChanged();
102 void currentFileChanged();
103 void currentFilesChanged();
104 void folderChanged();
105 void optionsChanged();
106 void nameFiltersChanged();
107 void defaultSuffixChanged();
108 void acceptLabelChanged();
109 void rejectLabelChanged();
112 bool useNativeDialog()
const override;
113 void onCreate(QPlatformDialogHelper *dialog) override;
114 void onShow(QPlatformDialogHelper *dialog) override;
115 void onHide(QPlatformDialogHelper *dialog) override;
116 void accept() override;
119 QUrl addDefaultSuffix(
const QUrl &file)
const;
120 QList<QUrl> addDefaultSuffixes(
const QList<QUrl> &files)
const;
124 bool m_firstShow =
true;
125 QSharedPointer<QFileDialogOptions> m_options;
126 mutable QQuickLabsPlatformFileNameFilter *m_selectedNameFilter;
129class QQuickLabsPlatformFileNameFilter :
public QObject
133 QML_ADDED_IN_VERSION(1, 0)
134 Q_PROPERTY(
int index READ index WRITE setIndex NOTIFY indexChanged FINAL)
135 Q_PROPERTY(QString name READ name NOTIFY nameChanged FINAL)
136 Q_PROPERTY(QStringList extensions READ extensions NOTIFY extensionsChanged FINAL)
139 explicit QQuickLabsPlatformFileNameFilter(QObject *parent =
nullptr);
142 void setIndex(
int index);
144 QString name()
const;
145 QStringList extensions()
const;
147 QSharedPointer<QFileDialogOptions> options()
const;
148 void setOptions(
const QSharedPointer<QFileDialogOptions> &options);
150 void update(
const QString &filter);
153 void indexChanged(
int index);
154 void nameChanged(
const QString &name);
155 void extensionsChanged(
const QStringList &extensions);
158 QStringList nameFilters()
const;
159 QString nameFilter(
int index)
const;
163 QStringList m_extensions;
164 QSharedPointer<QFileDialogOptions> m_options;