summaryrefslogtreecommitdiff
path: root/gui/androidfiledialog.h
diff options
context:
space:
mode:
Diffstat (limited to 'gui/androidfiledialog.h')
-rw-r--r--gui/androidfiledialog.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/gui/androidfiledialog.h b/gui/androidfiledialog.h
new file mode 100644
index 00000000..ac626ef0
--- /dev/null
+++ b/gui/androidfiledialog.h
@@ -0,0 +1,45 @@
+#pragma once
+
+#include <QDialog>
+#include <QDialogButtonBox>
+#include <QStringListModel>
+#include <QModelIndex>
+
+class AndroidFileDialogModel;
+
+namespace Ui { class AndroidFileDialog; }
+
+class AndroidFileDialog : public QDialog
+{
+ Q_OBJECT
+ enum Mode {
+ OpenFile = QDialogButtonBox::Open,
+ SaveFile = QDialogButtonBox::Save
+ };
+
+public:
+ explicit AndroidFileDialog(Mode mode, QWidget *parent = 0);
+ ~AndroidFileDialog();
+
+ void setInitialPath(const QString &path);
+ void setSuffix(const QString &suffix);
+ QString filePath() const;
+ void setMode(Mode mode);
+
+ static QString getOpenFileName(QWidget *parent = 0, const QString &caption = QString(), const QString &path = QString(), const QString &suffix = QString());
+ static QString getSaveFileName(QWidget *parent = 0, const QString &caption = QString(), const QString &path = QString(), const QString &filter = QString());
+
+private slots:
+ virtual void accept();
+ void upFolder();
+ void itemActivated(QModelIndex index);
+ void setDir(const QString &dir);
+
+private:
+ QString m_dir;
+ QStringListModel m_pathModel;
+ Ui::AndroidFileDialog *m_ui;
+ AndroidFileDialogModel *m_model;
+ Mode m_mode;
+};
+