summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2018-05-05 16:39:51 +0200
committerJosJuice <josjuice@gmail.com>2018-05-05 18:31:44 +0200
commitf48fac5b55fbcc422bc2e66a1df023d606fb8a72 (patch)
tree82d08b487ba5d7de1d3fa4ec25134f7c812ec011 /Source/Core
parent1a74de6462c7fc3d242190e4be02189b8b265b53 (diff)
DolphinQt2: Allow picking "Extract Files..." on disc/partition
DolphinWX already does this.
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/DolphinQt2/Config/FilesystemWidget.cpp27
1 files changed, 17 insertions, 10 deletions
diff --git a/Source/Core/DolphinQt2/Config/FilesystemWidget.cpp b/Source/Core/DolphinQt2/Config/FilesystemWidget.cpp
index a8b3ddc220..5c8126c219 100644
--- a/Source/Core/DolphinQt2/Config/FilesystemWidget.cpp
+++ b/Source/Core/DolphinQt2/Config/FilesystemWidget.cpp
@@ -155,8 +155,20 @@ void FilesystemWidget::ShowContextMenu(const QPoint&)
GetPartitionFromID(item->data(ENTRY_PARTITION).toInt());
QString path = item->data(ENTRY_NAME).toString();
- if ((type == EntryType::Disc && m_volume->GetPartitions().empty()) ||
- type == EntryType::Partition)
+ const bool is_filesystem_root = (type == EntryType::Disc && m_volume->GetPartitions().empty()) ||
+ type == EntryType::Partition;
+
+ if (type == EntryType::Dir || is_filesystem_root)
+ {
+ AddAction(menu, tr("Extract Files..."), this, [this, partition, path] {
+ auto folder = SelectFolder();
+
+ if (!folder.isEmpty())
+ ExtractDirectory(partition, path, folder);
+ });
+ }
+
+ if (is_filesystem_root)
{
AddAction(menu, tr("Extract System Data..."), this, [this, partition] {
auto folder = SelectFolder();
@@ -203,14 +215,6 @@ void FilesystemWidget::ShowContextMenu(const QPoint&)
AddAction(menu, tr("Check Partition Integrity"), this,
[this, partition] { CheckIntegrity(partition); });
break;
- case EntryType::Dir:
- AddAction(menu, tr("Extract Files..."), this, [this, partition, path] {
- auto folder = SelectFolder();
-
- if (!folder.isEmpty())
- ExtractDirectory(partition, path, folder);
- });
- break;
case EntryType::File:
AddAction(menu, tr("Extract File..."), this, [this, partition, path] {
auto dest = QFileDialog::getSaveFileName(this, tr("Save File to"));
@@ -219,6 +223,9 @@ void FilesystemWidget::ShowContextMenu(const QPoint&)
ExtractFile(partition, path, dest);
});
break;
+ case EntryType::Dir:
+ // Handled above the switch statement
+ break;
}
menu->exec(QCursor::pos());