summaryrefslogtreecommitdiff
path: root/src/filetree.h
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-12-12 18:57:36 -0500
committerisanae <14251494+isanae@users.noreply.github.com>2020-02-04 03:33:17 -0500
commitc5f98f9756ed9ba5b2241fa11215d99c8bf52461 (patch)
tree3e88b4cd79f0a7b408df2337fbaf5569b685d591 /src/filetree.h
parentd3e9abddaf1f927102002d9fb2721e858f6c3a3e (diff)
now prunes empty directories
handles archives and conflicts checkboxes
Diffstat (limited to 'src/filetree.h')
-rw-r--r--src/filetree.h16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/filetree.h b/src/filetree.h
index 13299bb3..4fbd5a2b 100644
--- a/src/filetree.h
+++ b/src/filetree.h
@@ -20,7 +20,7 @@ public:
FileTreeItem();
FileTreeItem(
FileTreeItem* parent, int originID,
- std::wstring virtualParentPath, std::wstring realPath, Flags flags,
+ std::wstring dataRelativeParentPath, std::wstring realPath, Flags flags,
std::wstring file, std::wstring mod);
FileTreeItem(const FileTreeItem&) = delete;
@@ -98,6 +98,14 @@ public:
Qt::ItemFlags flags(const QModelIndex& index) const override;
private:
+ enum class FillFlag
+ {
+ None = 0x00,
+ PruneDirectories = 0x01
+ };
+
+ Q_DECLARE_FLAGS(FillFlags, FillFlag);
+
class IconFetcher;
using DirectoryIterator = std::vector<MOShared::DirectoryEntry*>::const_iterator;
@@ -117,11 +125,11 @@ private:
void fillDirectories(
FileTreeItem& parentItem, const std::wstring& path,
- DirectoryIterator begin, DirectoryIterator end);
+ DirectoryIterator begin, DirectoryIterator end, FillFlags flags);
void fillFiles(
FileTreeItem& parentItem, const std::wstring& path,
- const std::vector<MOShared::FileEntry::Ptr>& files);
+ const std::vector<MOShared::FileEntry::Ptr>& files, FillFlags flags);
std::wstring makeModName(const MOShared::FileEntry& file, int originID) const;
@@ -129,6 +137,8 @@ private:
void ensureLoaded(FileTreeItem* item) const;
void updatePendingIcons();
+ bool shouldShowFile(const MOShared::FileEntry& file) const;
+ bool hasFilesAnywhere(const MOShared::DirectoryEntry& dir) const;
QString makeTooltip(const FileTreeItem& item) const;
QVariant makeIcon(const FileTreeItem& item, const QModelIndex& index) const;
};