DolphinWX: Don't bind context menu when GC filesystem is invalid
If this isn't done, it's possible to select Extract All Files and make Dolphin dereference a nullptr m_filesystem.
This commit is contained in:
parent
6065525887
commit
d664c454a4
|
@ -159,10 +159,11 @@ FilesystemPanel::FilesystemPanel(wxWindow* parent, wxWindowID id,
|
||||||
: wxPanel{parent, id}, m_opened_iso{opened_iso}
|
: wxPanel{parent, id}, m_opened_iso{opened_iso}
|
||||||
{
|
{
|
||||||
CreateGUI();
|
CreateGUI();
|
||||||
BindEvents();
|
if (PopulateFileSystemTree())
|
||||||
PopulateFileSystemTree();
|
{
|
||||||
|
BindEvents();
|
||||||
m_tree_ctrl->Expand(m_tree_ctrl->GetRootItem());
|
m_tree_ctrl->Expand(m_tree_ctrl->GetRootItem());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
FilesystemPanel::~FilesystemPanel() = default;
|
FilesystemPanel::~FilesystemPanel() = default;
|
||||||
|
@ -194,7 +195,7 @@ void FilesystemPanel::CreateGUI()
|
||||||
SetSizer(main_sizer);
|
SetSizer(main_sizer);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FilesystemPanel::PopulateFileSystemTree()
|
bool FilesystemPanel::PopulateFileSystemTree()
|
||||||
{
|
{
|
||||||
const std::vector<DiscIO::Partition> partitions = m_opened_iso->GetPartitions();
|
const std::vector<DiscIO::Partition> partitions = m_opened_iso->GetPartitions();
|
||||||
m_has_partitions = !partitions.empty();
|
m_has_partitions = !partitions.empty();
|
||||||
|
@ -224,10 +225,12 @@ void FilesystemPanel::PopulateFileSystemTree()
|
||||||
{
|
{
|
||||||
m_filesystem = DiscIO::CreateFileSystem(m_opened_iso.get(), DiscIO::PARTITION_NONE);
|
m_filesystem = DiscIO::CreateFileSystem(m_opened_iso.get(), DiscIO::PARTITION_NONE);
|
||||||
if (!m_filesystem)
|
if (!m_filesystem)
|
||||||
return;
|
return false;
|
||||||
|
|
||||||
CreateDirectoryTree(m_tree_ctrl, m_tree_ctrl->GetRootItem(), m_filesystem->GetFileList());
|
CreateDirectoryTree(m_tree_ctrl, m_tree_ctrl->GetRootItem(), m_filesystem->GetFileList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FilesystemPanel::OnRightClickTree(wxTreeEvent& event)
|
void FilesystemPanel::OnRightClickTree(wxTreeEvent& event)
|
||||||
|
|
|
@ -39,7 +39,7 @@ private:
|
||||||
void CreateGUI();
|
void CreateGUI();
|
||||||
void BindEvents();
|
void BindEvents();
|
||||||
|
|
||||||
void PopulateFileSystemTree();
|
bool PopulateFileSystemTree();
|
||||||
|
|
||||||
void OnRightClickTree(wxTreeEvent&);
|
void OnRightClickTree(wxTreeEvent&);
|
||||||
void OnExtractFile(wxCommandEvent&);
|
void OnExtractFile(wxCommandEvent&);
|
||||||
|
|
Loading…
Reference in New Issue