diff --git a/extras/Introjucer/Source/Application/jucer_Application.h b/extras/Introjucer/Source/Application/jucer_Application.h index d377793fc4..0d72b430bf 100644 --- a/extras/Introjucer/Source/Application/jucer_Application.h +++ b/extras/Introjucer/Source/Application/jucer_Application.h @@ -159,8 +159,6 @@ public: } virtual void doExtraInitialisation() {} - virtual void projectOpened (Project*) {} - virtual void projectClosed (Project*) {} static JucerApplication* getApp() { @@ -487,7 +485,7 @@ public: ScopedPointer menuModel; - virtual MainWindow* createNewMainWindow() + MainWindow* createNewMainWindow() { MainWindow* mw = new MainWindow(); mainWindows.add (mw); @@ -496,6 +494,11 @@ public: return mw; } + virtual Component* createProjectContentComponent() const + { + return new ProjectContentComponent(); + } + private: OwnedArray mainWindows; diff --git a/extras/Introjucer/Source/Application/jucer_MainWindow.cpp b/extras/Introjucer/Source/Application/jucer_MainWindow.cpp index addd969f8c..67fe17d332 100644 --- a/extras/Introjucer/Source/Application/jucer_MainWindow.cpp +++ b/extras/Introjucer/Source/Application/jucer_MainWindow.cpp @@ -94,7 +94,7 @@ void MainWindow::createProjectContentCompIfNeeded() if (getProjectContentComponent() == nullptr) { clearContentComponent(); - setContentOwned (new ProjectContentComponent(), false); + setContentOwned (JucerApplication::getApp()->createProjectContentComponent(), false); } } diff --git a/extras/Introjucer/Source/Project/jucer_Project.cpp b/extras/Introjucer/Source/Project/jucer_Project.cpp index c72f7d9399..0ebd2b99e0 100644 --- a/extras/Introjucer/Source/Project/jucer_Project.cpp +++ b/extras/Introjucer/Source/Project/jucer_Project.cpp @@ -63,14 +63,10 @@ Project::Project (const File& file_) mainProjectIcon.setImage (ImageCache::getFromMemory (BinaryData::juce_icon_png, BinaryData::juce_icon_pngSize)); projectRoot.addListener (this); - - JucerApplication::getApp()->projectOpened (this); } Project::~Project() { - JucerApplication::getApp()->projectClosed (this); - projectRoot.removeListener (this); OpenDocumentManager::getInstance()->closeAllDocumentsUsingProject (*this, false); } @@ -233,9 +229,7 @@ Result Project::loadDocument (const File& file) return Result::fail ("The document contains errors and couldn't be parsed!"); registerRecentFile (file); - JucerApplication::getApp()->projectClosed (this); projectRoot = newTree; - JucerApplication::getApp()->projectOpened (this); removeDefunctExporters(); setMissingDefaultValues(); diff --git a/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.h b/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.h index 82197cf79d..1e17ff1f12 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.h +++ b/extras/Introjucer/Source/Project/jucer_ProjectContentComponent.h @@ -44,7 +44,8 @@ public: void paint (Graphics& g); - void setProject (Project* project); + Project* getProject() const noexcept { return project; } + virtual void setProject (Project* project); void saveTreeViewState(); bool showEditorForFile (const File& f);