| @@ -32,7 +32,7 @@ NewFileWizard::Type* createGUIComponentWizard(); | |||||
| //============================================================================== | //============================================================================== | ||||
| ProjectContentComponent::ProjectContentComponent() | ProjectContentComponent::ProjectContentComponent() | ||||
| : sidebar (new Sidebar (project)) | |||||
| : sidebar (std::make_unique<Sidebar> (project)) | |||||
| { | { | ||||
| setOpaque (true); | setOpaque (true); | ||||
| setWantsKeyboardFocus (true); | setWantsKeyboardFocus (true); | ||||
| @@ -76,10 +76,10 @@ void ProjectContentComponent::resized() | |||||
| r.removeFromTop (10); | r.removeFromTop (10); | ||||
| auto sidebarArea = r.removeFromLeft (sidebar->getWidth() != 0 ? sidebar->getWidth() | |||||
| : r.getWidth() / 4); | |||||
| auto sidebarArea = r.removeFromLeft (sidebar != nullptr && sidebar->getWidth() != 0 ? sidebar->getWidth() | |||||
| : r.getWidth() / 4); | |||||
| if (sidebar->isVisible()) | |||||
| if (sidebar != nullptr && sidebar->isVisible()) | |||||
| sidebar->setBounds (sidebarArea); | sidebar->setBounds (sidebarArea); | ||||
| if (resizerBar != nullptr) | if (resizerBar != nullptr) | ||||
| @@ -87,7 +87,7 @@ void ProjectContentComponent::resized() | |||||
| contentViewComponent.setBounds (r); | contentViewComponent.setBounds (r); | ||||
| headerComponent.sidebarTabsWidthChanged (sidebar->getWidth()); | |||||
| headerComponent.sidebarTabsWidthChanged (sidebarArea.getWidth()); | |||||
| } | } | ||||
| void ProjectContentComponent::lookAndFeelChanged() | void ProjectContentComponent::lookAndFeelChanged() | ||||
| @@ -113,6 +113,7 @@ void ProjectContentComponent::setProject (Project* newProject) | |||||
| hideEditor(); | hideEditor(); | ||||
| resizerBar = nullptr; | resizerBar = nullptr; | ||||
| sidebar = nullptr; | |||||
| project = newProject; | project = newProject; | ||||
| @@ -122,8 +123,8 @@ void ProjectContentComponent::setProject (Project* newProject) | |||||
| addAndMakeVisible (sidebar.get()); | addAndMakeVisible (sidebar.get()); | ||||
| //============================================================================== | //============================================================================== | ||||
| resizerBar.reset (new ResizableEdgeComponent (sidebar.get(), &sidebarSizeConstrainer, | |||||
| ResizableEdgeComponent::rightEdge)); | |||||
| resizerBar = std::make_unique<ResizableEdgeComponent> (sidebar.get(), &sidebarSizeConstrainer, | |||||
| ResizableEdgeComponent::rightEdge); | |||||
| addAndMakeVisible (resizerBar.get()); | addAndMakeVisible (resizerBar.get()); | ||||
| resizerBar->setAlwaysOnTop (true); | resizerBar->setAlwaysOnTop (true); | ||||
| @@ -138,7 +139,6 @@ void ProjectContentComponent::setProject (Project* newProject) | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| sidebar->setVisible (false); | |||||
| headerComponent.setVisible (false); | headerComponent.setVisible (false); | ||||
| projectMessagesComponent.setVisible (false); | projectMessagesComponent.setVisible (false); | ||||
| } | } | ||||
| @@ -190,14 +190,16 @@ void ProjectContentComponent::changeListenerCallback (ChangeBroadcaster* broadca | |||||
| void ProjectContentComponent::refreshProjectTreeFileStatuses() | void ProjectContentComponent::refreshProjectTreeFileStatuses() | ||||
| { | { | ||||
| if (auto* fileTree = sidebar->getFileTreePanel()) | |||||
| fileTree->repaint(); | |||||
| if (sidebar != nullptr) | |||||
| if (auto* fileTree = sidebar->getFileTreePanel()) | |||||
| fileTree->repaint(); | |||||
| } | } | ||||
| void ProjectContentComponent::updateMissingFileStatuses() | void ProjectContentComponent::updateMissingFileStatuses() | ||||
| { | { | ||||
| if (auto* tree = sidebar->getFileTreePanel()) | |||||
| tree->updateMissingFileStatuses(); | |||||
| if (sidebar != nullptr) | |||||
| if (auto* tree = sidebar->getFileTreePanel()) | |||||
| tree->updateMissingFileStatuses(); | |||||
| } | } | ||||
| bool ProjectContentComponent::showEditorForFile (const File& fileToShow, bool grabFocus) | bool ProjectContentComponent::showEditorForFile (const File& fileToShow, bool grabFocus) | ||||
| @@ -415,6 +417,9 @@ void ProjectContentComponent::showExporterSettings (const String& exporterName) | |||||
| showExportersPanel(); | showExportersPanel(); | ||||
| if (sidebar == nullptr) | |||||
| return; | |||||
| if (auto* exportersPanel = sidebar->getExportersTreePanel()) | if (auto* exportersPanel = sidebar->getExportersTreePanel()) | ||||
| { | { | ||||
| if (auto* exporters = dynamic_cast<TreeItemTypes::ExportersTreeRoot*> (exportersPanel->rootItem.get())) | if (auto* exporters = dynamic_cast<TreeItemTypes::ExportersTreeRoot*> (exportersPanel->rootItem.get())) | ||||
| @@ -440,6 +445,9 @@ void ProjectContentComponent::showModule (const String& moduleID) | |||||
| { | { | ||||
| showModulesPanel(); | showModulesPanel(); | ||||
| if (sidebar == nullptr) | |||||
| return; | |||||
| if (auto* modsPanel = sidebar->getModuleTreePanel()) | if (auto* modsPanel = sidebar->getModuleTreePanel()) | ||||
| { | { | ||||
| if (auto* mods = dynamic_cast<TreeItemTypes::EnabledModulesItem*> (modsPanel->rootItem.get())) | if (auto* mods = dynamic_cast<TreeItemTypes::EnabledModulesItem*> (modsPanel->rootItem.get())) | ||||
| @@ -521,8 +529,9 @@ void ProjectContentComponent::showNewExporterMenu() | |||||
| void ProjectContentComponent::deleteSelectedTreeItems() | void ProjectContentComponent::deleteSelectedTreeItems() | ||||
| { | { | ||||
| if (auto* tree = sidebar->getTreeWithSelectedItems()) | |||||
| tree->deleteSelectedItems(); | |||||
| if (sidebar != nullptr) | |||||
| if (auto* tree = sidebar->getTreeWithSelectedItems()) | |||||
| tree->deleteSelectedItems(); | |||||
| } | } | ||||
| void ProjectContentComponent::showBubbleMessage (Rectangle<int> pos, const String& text) | void ProjectContentComponent::showBubbleMessage (Rectangle<int> pos, const String& text) | ||||
| @@ -869,5 +878,6 @@ void ProjectContentComponent::addNewGUIFile() | |||||
| //============================================================================== | //============================================================================== | ||||
| void ProjectContentComponent::showProjectPanel (const int index) | void ProjectContentComponent::showProjectPanel (const int index) | ||||
| { | { | ||||
| sidebar->showPanel (index); | |||||
| if (sidebar != nullptr) | |||||
| sidebar->showPanel (index); | |||||
| } | } | ||||