Skip to content

Commit

Permalink
Merge pull request #6064 from JosJuice/filesystemwidget-nullptr
Browse files Browse the repository at this point in the history
DolphinQt2: Check for file systems being nullptr
  • Loading branch information
leoetlino committed Sep 15, 2017
2 parents ef6ca3c + a0cddc5 commit 93574bf
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 4 deletions.
20 changes: 16 additions & 4 deletions Source/Core/DolphinQt2/Config/FilesystemWidget.cpp
Expand Up @@ -85,16 +85,14 @@ void FilesystemWidget::PopulateView()

for (size_t i = 0; i < partitions.size(); i++)
{
const DiscIO::FileSystem* file_system = m_volume->GetFileSystem(partitions[i]);

auto* item = new QStandardItem(tr("Partition %1").arg(i));
item->setEditable(false);

item->setIcon(Resources::GetScaledIcon("isoproperties_disc"));
item->setData(static_cast<qlonglong>(i), ENTRY_PARTITION);
item->setData(QVariant::fromValue(EntryType::Partition), ENTRY_TYPE);

PopulateDirectory(static_cast<int>(i), item, file_system->GetRoot());
PopulateDirectory(static_cast<int>(i), item, partitions[i]);

disc->appendRow(item);

Expand All @@ -103,7 +101,15 @@ void FilesystemWidget::PopulateView()
}

if (partitions.empty())
PopulateDirectory(-1, disc, m_volume->GetFileSystem(DiscIO::PARTITION_NONE)->GetRoot());
PopulateDirectory(-1, disc, DiscIO::PARTITION_NONE);
}

void FilesystemWidget::PopulateDirectory(int partition_id, QStandardItem* root,
const DiscIO::Partition& partition)
{
const DiscIO::FileSystem* const file_system = m_volume->GetFileSystem(partition);
if (file_system)
PopulateDirectory(partition_id, root, file_system->GetRoot());
}

void FilesystemWidget::PopulateDirectory(int partition_id, QStandardItem* root,
Expand Down Expand Up @@ -234,6 +240,9 @@ void FilesystemWidget::ExtractDirectory(const DiscIO::Partition& partition, cons
const QString& out)
{
const DiscIO::FileSystem* filesystem = m_volume->GetFileSystem(partition);
if (!filesystem)
return;

std::unique_ptr<DiscIO::FileInfo> info = filesystem->FindFileInfo(path.toStdString());
u32 size = info->GetTotalChildren();

Expand Down Expand Up @@ -263,6 +272,9 @@ void FilesystemWidget::ExtractFile(const DiscIO::Partition& partition, const QSt
const QString& out)
{
const DiscIO::FileSystem* filesystem = m_volume->GetFileSystem(partition);
if (!filesystem)
return;

bool success = DiscIO::ExportFile(
*m_volume, partition, filesystem->FindFileInfo(path.toStdString()).get(), out.toStdString());

Expand Down
1 change: 1 addition & 0 deletions Source/Core/DolphinQt2/Config/FilesystemWidget.h
Expand Up @@ -30,6 +30,7 @@ class FilesystemWidget final : public QWidget
void CreateWidgets();
void ConnectWidgets();
void PopulateView();
void PopulateDirectory(int partition_id, QStandardItem* root, const DiscIO::Partition& partition);
void PopulateDirectory(int partition_id, QStandardItem* root, const DiscIO::FileInfo& directory);

void ShowContextMenu(const QPoint&);
Expand Down

0 comments on commit 93574bf

Please sign in to comment.