summaryrefslogtreecommitdiff
path: root/src/modinfodialogfiletree.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/modinfodialogfiletree.h')
-rw-r--r--src/modinfodialogfiletree.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/modinfodialogfiletree.h b/src/modinfodialogfiletree.h
new file mode 100644
index 00000000..f9fa62d4
--- /dev/null
+++ b/src/modinfodialogfiletree.h
@@ -0,0 +1,48 @@
+#ifndef MODINFODIALOGFILETREE_H
+#define MODINFODIALOGFILETREE_H
+
+#include "modinfodialogtab.h"
+
+class FileTreeTab : public ModInfoDialogTab
+{
+public:
+ FileTreeTab(ModInfoDialogTabContext cx);
+
+ void clear() override;
+ void update() override;
+ bool deleteRequested() override;
+
+private:
+ struct Actions
+ {
+ QAction *newFolder = nullptr;
+ QAction *open = nullptr;
+ QAction *preview = nullptr;
+ QAction *explore = nullptr;
+ QAction *rename = nullptr;
+ QAction *del = nullptr;
+ QAction *hide = nullptr;
+ QAction *unhide = nullptr;
+ };
+
+ QFileSystemModel* m_fs;
+ Actions m_actions;
+
+ void onCreateDirectory();
+ void onOpen();
+ void onPreview();
+ void onExplore();
+ void onRename();
+ void onDelete();
+ void onHide();
+ void onUnhide();
+ void onOpenInExplorer();
+ void onContextMenu(const QPoint &pos);
+
+ QModelIndex singleSelection() const;
+ bool deleteFile(const QModelIndex& index);
+ bool deleteFileRecursive(const QModelIndex& index);
+ void changeVisibility(bool visible);
+};
+
+#endif // MODINFODIALOGFILETREE_H