summaryrefslogtreecommitdiff
path: root/src/filetreeitem.cpp
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2020-02-04 03:12:19 -0500
committerisanae <14251494+isanae@users.noreply.github.com>2020-02-04 03:33:23 -0500
commitd14488d2f750a52f85519ca15d087f35332a784f (patch)
tree043b482f164eca6138bbc692b42f9807122ca7f6 /src/filetreeitem.cpp
parent47d1826f55c66a039951d922dabab8b01324bebb (diff)
update tree items when origins change
Diffstat (limited to 'src/filetreeitem.cpp')
-rw-r--r--src/filetreeitem.cpp48
1 files changed, 33 insertions, 15 deletions
diff --git a/src/filetreeitem.cpp b/src/filetreeitem.cpp
index da4ce701..30805d8b 100644
--- a/src/filetreeitem.cpp
+++ b/src/filetreeitem.cpp
@@ -39,33 +39,51 @@ const QString& directoryFileType()
FileTreeItem::FileTreeItem(
- FileTreeItem* parent, int originID,
- std::wstring dataRelativeParentPath, std::wstring realPath, Flags flags,
- std::wstring file, std::wstring mod) :
+ FileTreeItem* parent,
+ std::wstring dataRelativeParentPath, bool isDirectory, std::wstring file) :
m_parent(parent), m_indexGuess(NoIndexGuess),
- m_originID(originID),
m_virtualParentPath(QString::fromStdWString(dataRelativeParentPath)),
- m_wsRealPath(realPath),
- m_realPath(QString::fromStdWString(realPath)),
- m_flags(flags),
m_wsFile(file),
m_wsLcFile(ToLowerCopy(file)),
m_key(m_wsLcFile),
m_file(QString::fromStdWString(file)),
- m_mod(QString::fromStdWString(mod)),
+ m_isDirectory(isDirectory),
+ m_originID(-1),
+ m_flags(NoFlags),
m_loaded(false),
m_expanded(false)
{
}
-FileTreeItem::Ptr FileTreeItem::create(
- FileTreeItem* parent, int originID,
- std::wstring dataRelativeParentPath, std::wstring realPath, Flags flags,
- std::wstring file, std::wstring mod)
+FileTreeItem::Ptr FileTreeItem::createFile(
+ FileTreeItem* parent, std::wstring dataRelativeParentPath, std::wstring file)
{
return std::unique_ptr<FileTreeItem>(new FileTreeItem(
- parent, originID, std::move(dataRelativeParentPath), std::move(realPath),
- flags, std::move(file), std::move(mod)));
+ parent, std::move(dataRelativeParentPath), false, std::move(file)));
+}
+
+FileTreeItem::Ptr FileTreeItem::createDirectory(
+ FileTreeItem* parent,
+ std::wstring dataRelativeParentPath, std::wstring file)
+{
+ return std::unique_ptr<FileTreeItem>(new FileTreeItem(
+ parent, std::move(dataRelativeParentPath), true, std::move(file)));
+}
+
+void FileTreeItem::setOrigin(
+ int originID, const std::wstring& realPath, Flags flags,
+ const std::wstring& mod)
+{
+ m_originID = originID;
+ m_wsRealPath = realPath;
+ m_realPath = QString::fromStdWString(realPath);
+ m_flags = flags;
+ m_mod = QString::fromStdWString(mod);
+
+ m_fileSize.reset();
+ m_lastModified.reset();
+ m_fileType.reset();
+ m_compressedFileSize.reset();
}
void FileTreeItem::insert(FileTreeItem::Ptr child, std::size_t at)
@@ -298,7 +316,7 @@ void FileTreeItem::getFileType() const
QFileIconProvider::IconType FileTreeItem::icon() const
{
- if (m_flags & Directory) {
+ if (m_isDirectory) {
return QFileIconProvider::Folder;
} else {
return QFileIconProvider::File;