MCPcopy Create free account
hub / github.com/KDE/labplot / moveFolder

Method moveFolder

src/backend/datasources/projects/ProjectParser.cpp:133–160  ·  view source on GitHub ↗

* moved \c sourceChildFolderToMove from its parent folder to \c targetParentFolder * keeping (not overwriting) the sub-folder structure. */

Source from the content-addressed store, hash-verified

131 * keeping (not overwriting) the sub-folder structure.
132 */
133void ProjectParser::moveFolder(Folder* targetParentFolder, Folder* sourceChildFolderToMove) const {
134 auto* targetChildFolder = targetParentFolder->child<Folder>(sourceChildFolderToMove->name());
135 if (targetChildFolder) {
136 // folder exists already in the target parent folder,
137 //-> recursively move its children from source into target parent folder
138 for (auto* child : sourceChildFolderToMove->children<AbstractAspect>()) {
139 auto* folder = dynamic_cast<Folder*>(child);
140 if (folder) {
141 moveFolder(targetChildFolder, folder);
142 } else if (child) {
143 sourceChildFolderToMove->removeChild(child);
144
145 // remove the object to be imported in the target folder if it's already existing
146 auto* targetChild = targetChildFolder->child<AbstractAspect>(child->name());
147 if (targetChild)
148 targetChildFolder->removeChild(targetChild);
149
150 targetChildFolder->addChild(child);
151 }
152 }
153 } else {
154 // folder doesn't exist yet in the target parent folder -> simply move it
155 auto* sourceParentFolder = dynamic_cast<Folder*>(sourceChildFolderToMove->parentAspect());
156 if (sourceParentFolder)
157 sourceParentFolder->removeChild(sourceChildFolderToMove);
158 targetParentFolder->addChild(sourceChildFolderToMove);
159 }
160}

Callers

nothing calls this directly

Calls 4

parentAspectMethod · 0.80
nameMethod · 0.45
removeChildMethod · 0.45
addChildMethod · 0.45

Tested by

no test coverage detected