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)
28 Q_PROPERTY(QStringList nameFilters READ nameFilters WRITE setNameFilters NOTIFY nameFiltersChanged)
29 Q_PROPERTY(QString selectedFile READ selectedFile NOTIFY fileSelected)
32 enum FileMode {OpenFile, SaveFile};
35 explicit FileDialog(QObject *parent =
nullptr);
36 FileDialog::FileMode fileMode()
const
40 void setFileMode(FileDialog::FileMode mode);
41 QString title()
const;
42 void setTitle(
const QString &title);
43 QStringList nameFilters()
const;
44 void setNameFilters(
const QStringList &filters);
45 QString selectedFile();
46 Q_INVOKABLE
void open();
49 void fileModeChanged();
51 void nameFiltersChanged();
52 void fileSelected(
const QString &file);
53 void filterSelected(
const QString &filter);
58 FileDialog::FileMode m_fileMode {FileDialog::OpenFile};
59 std::unique_ptr<QFileDialog> m_fileDialog;