1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

Introjucer: minor internal work.

This commit is contained in:
jules 2012-09-14 16:25:32 +01:00
parent 68880492f1
commit 172f61dc3e
3 changed files with 103 additions and 92 deletions

View file

@ -195,58 +195,54 @@ void ProjectContentComponent::setProject (Project* newProject)
contentView = nullptr;
resizerBar = nullptr;
if (project != nullptr && treeViewTabs.isShowing())
{
PropertiesFile& settings = project->getStoredProperties();
if (treeViewTabs.getWidth() > 0)
settings.setValue ("projectPanelWidth", treeViewTabs.getWidth());
settings.setValue ("lastTab", treeViewTabs.getCurrentTabName());
}
deleteProjectTabs();
project = newProject;
if (project != nullptr)
{
addAndMakeVisible (&treeViewTabs);
createProjectTabs();
PropertiesFile& settings = project->getStoredProperties();
const String lastTabName (settings.getValue ("lastTab"));
int lastTabIndex = treeViewTabs.getTabNames().indexOf (lastTabName);
if (lastTabIndex < 0 || lastTabIndex > treeViewTabs.getNumTabs())
lastTabIndex = 1;
treeViewTabs.setCurrentTabIndex (lastTabIndex);
int lastTreeWidth = settings.getValue ("projectPanelWidth").getIntValue();
if (lastTreeWidth < 150)
lastTreeWidth = 240;
treeViewTabs.setBounds (0, 0, lastTreeWidth, getHeight());
addAndMakeVisible (resizerBar = new ResizableEdgeComponent (&treeViewTabs, &treeSizeConstrainer,
ResizableEdgeComponent::rightEdge));
resizerBar->setAlwaysOnTop (true);
project->addChangeListener (this);
updateMissingFileStatuses();
}
else
{
treeViewTabs.setVisible (false);
}
resized();
rebuildProjectTabs();
}
}
void ProjectContentComponent::rebuildProjectTabs()
{
deleteProjectTabs();
if (project != nullptr)
{
addAndMakeVisible (&treeViewTabs);
createProjectTabs();
PropertiesFile& settings = project->getStoredProperties();
const String lastTabName (settings.getValue ("lastTab"));
int lastTabIndex = treeViewTabs.getTabNames().indexOf (lastTabName);
if (lastTabIndex < 0 || lastTabIndex > treeViewTabs.getNumTabs())
lastTabIndex = 1;
treeViewTabs.setCurrentTabIndex (lastTabIndex);
int lastTreeWidth = settings.getValue ("projectPanelWidth").getIntValue();
if (lastTreeWidth < 150)
lastTreeWidth = 240;
treeViewTabs.setBounds (0, 0, lastTreeWidth, getHeight());
addAndMakeVisible (resizerBar = new ResizableEdgeComponent (&treeViewTabs, &treeSizeConstrainer,
ResizableEdgeComponent::rightEdge));
resizerBar->setAlwaysOnTop (true);
project->addChangeListener (this);
updateMissingFileStatuses();
}
else
{
treeViewTabs.setVisible (false);
}
resized();
}
void ProjectContentComponent::createProjectTabs()
{
jassert (project != nullptr);
@ -258,6 +254,17 @@ void ProjectContentComponent::createProjectTabs()
void ProjectContentComponent::deleteProjectTabs()
{
if (project != nullptr && treeViewTabs.isShowing())
{
PropertiesFile& settings = project->getStoredProperties();
if (treeViewTabs.getWidth() > 0)
settings.setValue ("projectPanelWidth", treeViewTabs.getWidth());
if (treeViewTabs.getNumTabs() > 0)
settings.setValue ("lastTab", treeViewTabs.getCurrentTabName());
}
treeViewTabs.clearTabs();
}