summaryrefslogtreecommitdiff
path: root/Applications/FileManager/DirectoryView.h
diff options
context:
space:
mode:
authorAndreas Kling <awesomekling@gmail.com>2019-04-02 14:43:56 +0200
committerAndreas Kling <awesomekling@gmail.com>2019-04-02 14:43:56 +0200
commitf8a1d2746e0f8dbb71a1447a257c44f668e8edbe (patch)
treee68a809f02a6bbaa9d74091327ff4d77cceac98b /Applications/FileManager/DirectoryView.h
parentb797458962a5f95ff15c0143c20d52702b840c4a (diff)
downloadserenity-f8a1d2746e0f8dbb71a1447a257c44f668e8edbe.zip
FileManager: Rename DirectoryTableView => DirectoryView.
Diffstat (limited to 'Applications/FileManager/DirectoryView.h')
-rw-r--r--Applications/FileManager/DirectoryView.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/Applications/FileManager/DirectoryView.h b/Applications/FileManager/DirectoryView.h
new file mode 100644
index 0000000000..564d859237
--- /dev/null
+++ b/Applications/FileManager/DirectoryView.h
@@ -0,0 +1,40 @@
+#pragma once
+
+#include <LibGUI/GTableView.h>
+#include <LibGUI/GItemView.h>
+#include <LibGUI/GStackWidget.h>
+#include <sys/stat.h>
+#include "DirectoryModel.h"
+
+class DirectoryView final : public GStackWidget {
+public:
+ explicit DirectoryView(GWidget* parent);
+ virtual ~DirectoryView() override;
+
+ void open(const String& path);
+ String path() const { return model().path(); }
+ void open_parent_directory();
+
+ void refresh();
+
+ Function<void(const String&)> on_path_change;
+ Function<void(String)> on_status_message;
+ Function<void(int done, int total)> on_thumbnail_progress;
+
+ enum ViewMode { Invalid, List, Icon };
+ void set_view_mode(ViewMode);
+ ViewMode view_mode() const { return m_view_mode; }
+
+private:
+ DirectoryModel& model() { return *m_model; }
+ const DirectoryModel& model() const { return *m_model; }
+
+ void set_status_message(const String&);
+
+ ViewMode m_view_mode { Invalid };
+
+ Retained<DirectoryModel> m_model;
+
+ GTableView* m_table_view { nullptr };
+ GItemView* m_item_view { nullptr };
+};