+ if( themeFile.compare(DEFAULT_THEME) != 0 )
+ {
+ // The theme is different to the default: Merge it
+ loading = true;
+ themeLoaded |= LoadJSON( mThemeBuilder, themeFile );
+ }
+
+ if( loading )
+ {
+ mThemeFile = themeFile;
+
+ if( themeLoaded )
+ {
+ // We've successfully loaded the theme file
+ if(mFeedbackStyle)
+ {
+ mFeedbackStyle->StyleChanged( mThemeFile, StyleChange::THEME_CHANGE );
+ }
+
+ EmitStyleChangeSignals(StyleChange::THEME_CHANGE);
+ }
+ else
+ {
+ // We tried to load a theme, but it failed. Ensure the builder is reset
+ mThemeBuilder.Reset();
+ mThemeFile.clear();
+ }
+ }
+}
+
+const Property::Map StyleManager::GetConfigurations()
+{
+ DALI_LOG_STREAM( gLogFilter, Debug::Concise, "GetConfigurations()\n On entry, mThemeBuilder: " << (bool(mThemeBuilder)?"Created":"Empty") << " mThemeFile: " << mThemeFile);
+
+ Property::Map result;
+ if( mThemeBuilder )
+ {
+ result = mThemeBuilder.GetConfigurations();
+ }
+ else
+ {
+ DALI_LOG_STREAM( gLogFilter, Debug::Concise, "GetConfigurations() Loading default theme" );
+
+ bool themeLoaded = false;
+
+ mThemeBuilder = CreateBuilder( mThemeBuilderConstants );
+
+ // Load default theme because this is first try to load stylesheet.
+ themeLoaded = LoadJSON( mThemeBuilder, DEFAULT_THEME );
+ mThemeFile = DEFAULT_THEME;
+
+ if( themeLoaded )
+ {
+ result = mThemeBuilder.GetConfigurations();
+ }
+ DALI_LOG_STREAM( gLogFilter, Debug::Concise, " themeLoaded" << (themeLoaded?"success":"failure") );
+ }
+
+ DALI_LOG_STREAM( gLogFilter, Debug::Concise, "GetConfigurations()\n On exit, result Count: " << (result.Count() != 0) );
+ DALI_LOG_STREAM( gLogFilter, Debug::Verbose, " result: " << result );
+
+ return result;