summaryrefslogtreecommitdiff
path: root/src/filetreeitem.h
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2020-02-07 11:26:11 -0500
committerisanae <14251494+isanae@users.noreply.github.com>2020-02-07 11:26:11 -0500
commit9c2fc694051b8e500a3343322dd45cf8be1c1b7d (patch)
tree243180a392d84bb4649d0b38909560a7b3ccb7bf /src/filetreeitem.h
parent41e6189be431dbd41b9d41751b01708df06a9610 (diff)
sort on demand
Diffstat (limited to 'src/filetreeitem.h')
-rw-r--r--src/filetreeitem.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/filetreeitem.h b/src/filetreeitem.h
index 0d92b3f7..375a05c4 100644
--- a/src/filetreeitem.h
+++ b/src/filetreeitem.h
@@ -4,6 +4,8 @@
#include "directoryentry.h"
#include <QFileIconProvider>
+class FileTreeModel;
+
class FileTreeItem
{
class Sorter;
@@ -23,11 +25,11 @@ public:
Q_DECLARE_FLAGS(Flags, Flag);
static Ptr createFile(
- FileTreeItem* parent,
+ FileTreeModel* model, FileTreeItem* parent,
std::wstring dataRelativeParentPath, std::wstring file);
static Ptr createDirectory(
- FileTreeItem* parent,
+ FileTreeModel* model, FileTreeItem* parent,
std::wstring dataRelativeParentPath, std::wstring file);
FileTreeItem(const FileTreeItem&) = delete;
@@ -215,6 +217,10 @@ public:
void setExpanded(bool b)
{
m_expanded = b;
+
+ if (m_sortingStale) {
+ sort();
+ }
}
bool isStrictlyExpanded() const
@@ -272,6 +278,7 @@ private:
static constexpr std::size_t NoIndexGuess =
std::numeric_limits<std::size_t>::max();
+ FileTreeModel* m_model;
FileTreeItem* m_parent;
mutable std::size_t m_indexGuess;
@@ -294,14 +301,16 @@ private:
bool m_loaded;
bool m_expanded;
+ bool m_sortingStale;
Children m_children;
FileTreeItem(
- FileTreeItem* parent,
+ FileTreeModel* model, FileTreeItem* parent,
std::wstring dataRelativeParentPath, bool isDirectory, std::wstring file);
void getFileType() const;
+ void sort();
};
#endif // MODORGANIZER_FILETREEITEM_INCLUDED