EHM DAL 0.2.3
Data abstraction layer for Eastside Hockey Manager
Loading...
Searching...
No Matches
folder_path.h
1#pragma once
2
3// Qt headers
4#include <QFileDialog>
5#include <QString>
6class QWidget;
7
8namespace ehm_dal::settings {
9// --- Folder path convenience functions --- //
11{
12public:
13 // Default constructor
14 FolderPath(const QString &key, const QString &file_name = QString());
15
16 // File dialogs
17 QString fileOpenDialog(QWidget *parent = nullptr,
18 const QString &caption = QString(),
19 const QString &filter = QString(),
20 QString selected_filter = QString(),
21 QFileDialog::Options options = QFileDialog::ReadOnly);
22 QString fileSaveDialog(QWidget *parent = nullptr,
23 const QString &caption = QString(),
24 const QString &filter = QString(),
25 QString selected_filter = QString(),
26 QFileDialog::Options options = QFileDialog::Options());
27 QString folderDialog(QWidget *parent = nullptr,
28 const QString &caption = QStringLiteral("Open folder"),
29 QFileDialog::Options options = QFileDialog::ShowDirsOnly);
30
31 // Get data
32 QString defaultPath();
33 inline QString fileName() const { return file_name_; }
34 inline QString key() const { return key_; }
35 QString path(const QString &file_name = QString()) const;
36 bool useNativeFileDialog();
37
38 // Initialisation
39 void init(const QString &key);
40
41 // Set data
42 inline void setFileName(const QString &file_name) { file_name_ = file_name; }
43 void setPath(const QString &path);
44
45private:
46 // File dialogs
47 enum ENUM_FILE_DIALOG_TYPE { FILE_OPEN_DIALOG, FILE_SAVE_DIALOG, FOLDER_OPEN_DIALOG };
48
49 QString dialog(const ENUM_FILE_DIALOG_TYPE &dialog_type,
50 QWidget *parent,
51 const QString &caption,
52 const QString &filter,
53 QString &selected_filter,
54 QFileDialog::Options &options);
55
56 // Registry key
57 QString key_;
58
59 // Path cache
60 QString file_name_;
61 QString path_;
62};
63} // namespace ehm_dal::settings
Definition: folder_path.h:11