diff --git a/extras/Introjucer/Source/Project/jucer_ProjectSaver.h b/extras/Introjucer/Source/Project/jucer_ProjectSaver.h index 2aab34e0cb..4742527e3d 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectSaver.h +++ b/extras/Introjucer/Source/Project/jucer_ProjectSaver.h @@ -51,9 +51,6 @@ public: writeMainProjectFile(); - if (! project.getGeneratedCodeFolder().createDirectory()) - errors.add ("Couldn't create folder: " + project.getGeneratedCodeFolder().getFullPathName()); - if (errors.size() == 0) writeAppConfigFile(); @@ -74,6 +71,12 @@ public: bool saveGeneratedFile (const String& filePath, const MemoryOutputStream& newData) { + if (! project.getGeneratedCodeFolder().createDirectory()) + { + errors.add ("Couldn't create folder: " + project.getGeneratedCodeFolder().getFullPathName()); + return false; + } + const File file (project.getGeneratedCodeFolder().getChildFile (filePath)); if (replaceFileIfDifferent (file, newData)) diff --git a/extras/Introjucer/Source/Project/jucer_ProjectType.cpp b/extras/Introjucer/Source/Project/jucer_ProjectType.cpp index 7dc781c7f3..f7ff89b22e 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectType.cpp +++ b/extras/Introjucer/Source/Project/jucer_ProjectType.cpp @@ -80,8 +80,40 @@ public: } String getID() const { return moduleInfo ["id"]; } + bool isValid() const { return getID().isNotEmpty(); } + File getInclude() const + { + return getFileFromPath (moduleInfo ["include"]); + } + + Array getCompiledFiles() const + { + Array result; + const Array* const files = moduleInfo ["compile"].getArray(); + + if (files != nullptr) + { + for (int i = 0; i < files->size(); ++i) + { + const var& file = files->getReference(i); + + String filename (file ["file"].toString()); + + if (filename.isNotEmpty()) + result.add (getFileFromPath (filename)); + } + } + + return result; + } + + File getFileFromPath (const String& path) const + { + return moduleFolder.getChildFile (path); + } + void getDependencies (OwnedArray& dependencies) const { const Array* const deps = moduleInfo ["dependencies"].getArray(); @@ -119,7 +151,8 @@ private: static File getModulesFolder() { - return StoredSettings::getInstance()->getLastKnownJuceFolder().getChildFile ("modules"); + return File ("/Volumes/CODE/code/juce2/modules"); + //return StoredSettings::getInstance()->getLastKnownJuceFolder().getChildFile ("modules"); } JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (JuceModule); @@ -828,6 +861,8 @@ ProjectType::ProjectType (const String& type_, const String& desc_) ProjectType::~ProjectType() { + JuceModule::findAllModuleIDs(); + getAllTypes().removeValue (this); } @@ -849,18 +884,6 @@ const ProjectType* ProjectType::findType (const String& typeCode) return nullptr; } -void ProjectType::setMissingProjectProperties (Project&) const -{ -} - -void ProjectType::createPropertyEditors (const Project& project, Array & props) const -{ -} - -void ProjectType::prepareExporter (ProjectExporter& exporter) const -{ -} - void ProjectType::createRequiredModules (Project& project, OwnedArray& modules) const { modules.add (new JuceLibraryModule()); diff --git a/extras/Introjucer/Source/Project/jucer_ProjectType.h b/extras/Introjucer/Source/Project/jucer_ProjectType.h index 2bf6da5d8c..7e30cb9f18 100644 --- a/extras/Introjucer/Source/Project/jucer_ProjectType.h +++ b/extras/Introjucer/Source/Project/jucer_ProjectType.h @@ -71,9 +71,9 @@ public: static const char* getConsoleAppTypeName(); static const char* getAudioPluginTypeName(); - virtual void setMissingProjectProperties (Project&) const; - virtual void createPropertyEditors (const Project&, Array &) const; - virtual void prepareExporter (ProjectExporter&) const; + virtual void setMissingProjectProperties (Project&) const = 0; + virtual void createPropertyEditors (const Project&, Array &) const = 0; + virtual void prepareExporter (ProjectExporter&) const = 0; virtual void createRequiredModules (Project&, OwnedArray& modules) const; protected: diff --git a/juce_amalgamated.cpp b/juce_amalgamated.cpp index 2b8d5779ac..9ed7452e9d 100644 --- a/juce_amalgamated.cpp +++ b/juce_amalgamated.cpp @@ -285102,6 +285102,7 @@ QuickTimeMovieComponent::QuickTimeMovieComponent() QTMovieView* view = [[NonInterceptingQTMovieView alloc] initWithFrame: NSMakeRect (0, 0, 100.0f, 100.0f)]; setView (view); + [view setWantsLayer: YES]; // prevents the view failing to redraw correctly when paused. [view release]; } diff --git a/src/native/mac/juce_mac_QuickTimeMovieComponent.mm b/src/native/mac/juce_mac_QuickTimeMovieComponent.mm index 79f323d3ab..86b903b700 100644 --- a/src/native/mac/juce_mac_QuickTimeMovieComponent.mm +++ b/src/native/mac/juce_mac_QuickTimeMovieComponent.mm @@ -82,6 +82,7 @@ QuickTimeMovieComponent::QuickTimeMovieComponent() QTMovieView* view = [[NonInterceptingQTMovieView alloc] initWithFrame: NSMakeRect (0, 0, 100.0f, 100.0f)]; setView (view); + [view setWantsLayer: YES]; // prevents the view failing to redraw correctly when paused. [view release]; }