From 04698417a93a51acc80112feab170f3aff7572b7 Mon Sep 17 00:00:00 2001 From: Mikaƫl Capelle Date: Sat, 16 May 2020 14:00:24 +0200 Subject: Add implementation of clone() and doClone() for the archive filetree. --- src/archivefiletree.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src/archivefiletree.cpp') diff --git a/src/archivefiletree.cpp b/src/archivefiletree.cpp index 6bd2b820..0b715f4f 100644 --- a/src/archivefiletree.cpp +++ b/src/archivefiletree.cpp @@ -55,6 +55,10 @@ public: FileTreeEntry(parent, name), m_Index(index) { } + virtual std::shared_ptr clone() const override { + return std::make_shared(nullptr, name(), m_Index); + } + // No private since we are in an implementation file: const int m_Index; }; @@ -70,7 +74,7 @@ public: public: // Public for make_shared (but not accessible by other since not exposed in .h): - ArchiveFileTreeImpl(std::shared_ptr parent, QString name, int index, std::vector&& files) + ArchiveFileTreeImpl(std::shared_ptr parent, QString name, int index, std::vector files) : FileTreeEntry(parent, name), ArchiveFileEntry(parent, name, index), IFileTree(), m_Files(std::move(files)) { } public: // Override to avoid VS warnings: @@ -83,6 +87,12 @@ public: // Override to avoid VS warnings: return IFileTree::astree(); } +protected: + + virtual std::shared_ptr clone() const override { + return IFileTree::clone(); + } + public: // Overrides: /** @@ -211,6 +221,10 @@ protected: } } + virtual std::shared_ptr doClone() const override { + return std::make_shared(nullptr, name(), m_Index, m_Files); + } + private: mutable std::vector m_Files; -- cgit v1.3.1