/* ============================================================================== This file is part of the JUCE library - "Jules' Utility Class Extensions" Copyright 2004-9 by Raw Material Software Ltd. ------------------------------------------------------------------------------ JUCE can be redistributed and/or modified under the terms of the GNU General Public License (Version 2), as published by the Free Software Foundation. A copy of the license is included in the JUCE distribution, or can be found online at www.gnu.org/licenses. JUCE is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ------------------------------------------------------------------------------ To release a closed-source product which uses JUCE, commercial licenses are available: visit www.rawmaterialsoftware.com/juce for more information. ============================================================================== */ #include "../jucer_Headers.h" #include "jucer_StoredSettings.h" //============================================================================== StoredSettings::StoredSettings() : props (0) { flush(); } StoredSettings::~StoredSettings() { flush(); props = 0; clearSingletonInstance(); } juce_ImplementSingleton (StoredSettings); //============================================================================== PropertiesFile& StoredSettings::getProps() { jassert (props != 0); return *props; } void StoredSettings::flush() { if (props != 0) { props->setValue ("recentFiles", recentFiles.toString()); props->removeValue ("keyMappings"); if (commandManager != 0) { ScopedPointer keys (commandManager->getKeyMappings()->createXml (true)); if (keys != 0) props->setValue ("keyMappings", (XmlElement*) keys); } } props = 0; props = PropertiesFile::createDefaultAppPropertiesFile ("Jucer2", "settings", String::empty, false, 3000, PropertiesFile::storeAsXML); // recent files... recentFiles.restoreFromString (props->getValue ("recentFiles")); recentFiles.removeNonExistentFiles(); } const File StoredSettings::getLastProject() const { return props->getValue ("lastProject"); } void StoredSettings::setLastProject (const File& file) { props->setValue ("lastProject", file.getFullPathName()); } const File StoredSettings::getLastKnownJuceFolder() const { File defaultJuceFolder (findDefaultJuceFolder()); File f (props->getValue ("lastJuceFolder", defaultJuceFolder.getFullPathName())); if ((! isJuceFolder (f)) && isJuceFolder (defaultJuceFolder)) f = defaultJuceFolder; return f; } void StoredSettings::setLastKnownJuceFolder (const File& file) { jassert (isJuceFolder (file)); props->setValue ("lastJuceFolder", file.getFullPathName()); }