2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-09 02:27:43 +00:00

Architectual adjustments for space splitting

This commit is contained in:
Jack Andersen
2016-01-09 20:42:58 -10:00
parent 3bd462a4a5
commit 7f07e516e9
8 changed files with 220 additions and 38 deletions

View File

@@ -184,15 +184,20 @@ class ResourceBrowser : public Space, public Specter::IPathButtonsBinding
std::unique_ptr<View> m_view;
public:
ResourceBrowser(ViewManager& vm)
: Space(vm, Class::ResourceBrowser),
ResourceBrowser(ViewManager& vm, Space* parent)
: Space(vm, Class::ResourceBrowser, parent),
m_fileListingBind(*this, vm)
{
m_state.path = vm.project()->getProjectWorkingPath().getRelativePathUTF8();
reloadState();
}
ResourceBrowser(ViewManager& vm, ConfigReader& r)
: ResourceBrowser(vm)
ResourceBrowser(ViewManager& vm, Space* parent, const ResourceBrowser& other)
: ResourceBrowser(vm, parent)
{
m_state = other.m_state;
reloadState();
}
ResourceBrowser(ViewManager& vm, Space* parent, ConfigReader& r)
: ResourceBrowser(vm, parent)
{
m_state.read(r);
reloadState();
@@ -200,11 +205,23 @@ public:
void reloadState()
{
navigateToPath(HECL::ProjectPath(*m_vm.project(), m_state.path));
HECL::ProjectPath pp(*m_vm.project(), m_state.path);
if (m_state.path.empty() || pp.getPathType() == HECL::ProjectPath::Type::None)
{
m_state.path = m_vm.project()->getProjectWorkingPath().getRelativePathUTF8();
navigateToPath(HECL::ProjectPath(*m_vm.project(), m_state.path));
}
else
navigateToPath(pp);
}
bool navigateToPath(const HECL::ProjectPath& path);
Space* copy(Space* parent) const
{
return new ResourceBrowser(m_vm, parent, *this);
}
Specter::View* buildContentView(Specter::ViewResources& res)
{
m_view.reset(new View(*this, res));