summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt2/Config/FilesystemWidget.cpp
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2018-05-05 16:27:36 +0200
committerJosJuice <josjuice@gmail.com>2018-05-05 17:00:27 +0200
commit1a74de6462c7fc3d242190e4be02189b8b265b53 (patch)
tree84315fae109f808c0fecd883b6e913e2dcfa1b1b /Source/Core/DolphinQt2/Config/FilesystemWidget.cpp
parentcf40ebf16ae1ee51671de208510567d7fb97394e (diff)
DolphinQt2: Fix the file structure of extracted discs
Now all the partitions won't be all jumbled up in one folder, and the filesystem contents won't be mixed with system data.
Diffstat (limited to 'Source/Core/DolphinQt2/Config/FilesystemWidget.cpp')
-rw-r--r--Source/Core/DolphinQt2/Config/FilesystemWidget.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/Source/Core/DolphinQt2/Config/FilesystemWidget.cpp b/Source/Core/DolphinQt2/Config/FilesystemWidget.cpp
index 950833eb72..a8b3ddc220 100644
--- a/Source/Core/DolphinQt2/Config/FilesystemWidget.cpp
+++ b/Source/Core/DolphinQt2/Config/FilesystemWidget.cpp
@@ -181,8 +181,15 @@ void FilesystemWidget::ShowContextMenu(const QPoint&)
}
else
{
- for (auto& p : m_volume->GetPartitions())
- ExtractPartition(p, folder);
+ for (DiscIO::Partition& p : m_volume->GetPartitions())
+ {
+ if (const std::optional<u32> partition_type = m_volume->GetPartitionType(p))
+ {
+ const std::string partition_name =
+ DiscIO::DirectoryNameForPartitionType(*partition_type);
+ ExtractPartition(p, folder + QChar(u'/') + QString::fromStdString(partition_name));
+ }
+ }
}
});
break;
@@ -224,7 +231,7 @@ DiscIO::Partition FilesystemWidget::GetPartitionFromID(int id)
void FilesystemWidget::ExtractPartition(const DiscIO::Partition& partition, const QString& out)
{
- ExtractDirectory(partition, QStringLiteral(""), out);
+ ExtractDirectory(partition, QStringLiteral(""), out + QStringLiteral("/files"));
ExtractSystemData(partition, out);
}