-
Ragnar Thomsen authored
This commit implements multi-selection drag'n'drop extraction. This is used when dragging multiple files from Ark to e.g. Dolphin for extraction. It's based partially on work done by Raphael in the multiple-dnd-selection git branch. Dragged files are extracted without path. Dragged folders are extracted without path, but with all folders/files beneath them extracted with relative path (i.e. path beneath the selected folder). A struct called FileRootNodePair is added to Kerfuffle::Archive, which contains two strings (the filename with path and a root node). A FileRootNodePair is passed for each entry to be extracted in a QVariantList to ArchiveModel::extractFiles(), which creates the ExtractJob. All children of folders are added to the QVariantList. The QVariantList is in turn passed to CliPlugin::copyFiles and hence LibArchiveInterface::copyFiles(). The latter is modified to remove the specific rootnode from each file when extracting. The CLI plugins, e.g. clizip and clirar, still extract with full path, due to not supporting individual RootNodes. However, this is a separate issue and should be fixed separately. BUG: 187152 FIXED-IN: 15.08.1 REVIEW: 124018
2072d0d4