23class FileDialog :
public QObject
26 Q_PROPERTY(FileDialog::FileMode fileMode READ fileMode WRITE setFileMode NOTIFY fileModeChanged)
27 Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged)
29 QStringList nameFilters READ nameFilters WRITE setNameFilters NOTIFY nameFiltersChanged)
30 Q_PROPERTY(QString selectedFile READ selectedFile NOTIFY fileSelected)
33 enum FileMode { OpenFile, SaveFile };
36 explicit FileDialog(QObject *parent =
nullptr);
37 FileDialog::FileMode fileMode()
const {
return m_fileMode; }
38 void setFileMode(FileDialog::FileMode mode);
39 QString title()
const;
40 void setTitle(
const QString &title);
41 QStringList nameFilters()
const;
42 void setNameFilters(
const QStringList &filters);
43 QString selectedFile();
44 Q_INVOKABLE
void open();
47 void fileModeChanged();
49 void nameFiltersChanged();
50 void fileSelected(
const QString &file);
51 void filterSelected(
const QString &filter);
56 FileDialog::FileMode m_fileMode{FileDialog::OpenFile};
57 std::unique_ptr<QFileDialog> m_fileDialog;