+ // Load plugins
+ auto loaded_plugins = this->m_Interface->GetPlugins( );
+ tinyxml2::XMLElement* plugins = root->FirstChildElement( "plugins" );
+ std::string plugins_errors = "";
+ while( plugins != NULL )
+ {
+ tinyxml2::XMLElement* plugin = plugins->FirstChildElement( "plugin" );
+ while( plugin != NULL )
+ {
+ std::string name = plugin->Attribute( "name" );
+ if( loaded_plugins.find( name ) == loaded_plugins.end( ) )
+ {
+ try
+ {
+ this->m_Interface->LoadPlugin( name );
+ }
+ catch( std::exception& err )
+ {
+ plugins_errors += err.what( ) + std::string( "\n" );
+
+ } // yrt
+
+ } // fi
+ plugin = plugin->NextSiblingElement( "plugin" );
+
+ } // elihw
+ plugins = plugins->NextSiblingElement( "plugins" );
+
+ } // elihw
+ if( plugins_errors != "" )
+ return( std::string( "cpPlugins::Workspace: " ) + plugins_errors );
+