/*
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
This file is part of the JUCE library .
Copyright ( c ) 2015 - ROLI Ltd .
Permission is granted to use this software under the terms of either :
a ) the GPL v2 ( or any later version )
b ) the Affero GPL v3
Details of these licenses can be found 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 . juce . com for more information .
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
*/
ApplicationProperties : : ApplicationProperties ( )
: commonSettingsAreReadOnly ( 0 )
{
}
ApplicationProperties : : ~ ApplicationProperties ( )
{
closeFiles ( ) ;
}
//==============================================================================
void ApplicationProperties : : setStorageParameters ( const PropertiesFile : : Options & newOptions )
{
options = newOptions ;
}
//==============================================================================
void ApplicationProperties : : openFiles ( )
{
// You need to call setStorageParameters() before trying to get hold of the properties!
jassert ( options . applicationName . isNotEmpty ( ) ) ;
if ( options . applicationName . isNotEmpty ( ) )
{
PropertiesFile : : Options o ( options ) ;
if ( userProps = = nullptr )
{
o . commonToAllUsers = false ;
userProps = new PropertiesFile ( o ) ;
}
if ( commonProps = = nullptr )
{
o . commonToAllUsers = true ;
commonProps = new PropertiesFile ( o ) ;
}
userProps - > setFallbackPropertySet ( commonProps ) ;
}
}
PropertiesFile * ApplicationProperties : : getUserSettings ( )
{
if ( userProps = = nullptr )
openFiles ( ) ;
return userProps ;
}
PropertiesFile * ApplicationProperties : : getCommonSettings ( const bool returnUserPropsIfReadOnly )
{
if ( commonProps = = nullptr )
openFiles ( ) ;
if ( returnUserPropsIfReadOnly )
{
if ( commonSettingsAreReadOnly = = 0 )
commonSettingsAreReadOnly = commonProps - > save ( ) ? - 1 : 1 ;
if ( commonSettingsAreReadOnly > 0 )
return userProps ;
}
return commonProps ;
}
bool ApplicationProperties : : saveIfNeeded ( )
{
return ( userProps = = nullptr | | userProps - > saveIfNeeded ( ) )
& & ( commonProps = = nullptr | | commonProps - > saveIfNeeded ( ) ) ;
}
void ApplicationProperties : : closeFiles ( )
{
userProps = nullptr ;
commonProps = nullptr ;
}