本文整理汇总了C++中gd::Project::IsFolderProject方法的典型用法代码示例。如果您正苦于以下问题:C++ Project::IsFolderProject方法的具体用法?C++ Project::IsFolderProject怎么用?C++ Project::IsFolderProject使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类gd::Project
的用法示例。
在下文中一共展示了Project::IsFolderProject方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SaveToFile
bool ProjectFileWriter::SaveToFile(const gd::Project & project, const gd::String & filename, bool forceSingleFile)
{
//Serialize the whole project
gd::SerializerElement rootElement;
project.SerializeTo(rootElement);
#if defined(GD_IDE_ONLY) && !defined(GD_NO_WX_GUI)
if (project.IsFolderProject() && !forceSingleFile) //Optionally split the project
{
wxString projectPath = wxFileName::FileName(filename).GetPath();
gd::Splitter splitter;
auto splitElements = splitter.Split(rootElement, {
"/layouts/layout",
"/externalEvents/externalEvents",
"/externalLayouts/externalLayout",
});
for (auto & element : splitElements)
{
//Create a partial XML document
TiXmlDocument doc;
doc.LinkEndChild(new TiXmlDeclaration("1.0", "UTF-8", ""));
TiXmlElement * root = new TiXmlElement("projectPartial");
doc.LinkEndChild(root);
gd::Serializer::ToXML(element.element, root);
//And write the element in it
gd::String filename = projectPath + element.path + "-" + MakeFileNameSafe(element.name);
gd::RecursiveMkDir::MkDir(wxFileName::FileName(filename).GetPath());
if (!doc.SaveFile(filename.ToLocale().c_str()))
{
gd::LogError( _( "Unable to save file ") + filename + _("!\nCheck that the drive has enough free space, is not write-protected and that you have read/write permissions." ) );
return false;
}
}
}
#endif
//Create the main XML document
TiXmlDocument doc;
doc.LinkEndChild(new TiXmlDeclaration( "1.0", "UTF-8", "" ));
TiXmlElement * root = new TiXmlElement( "project" );
doc.LinkEndChild(root);
gd::Serializer::ToXML(rootElement, root);
//Write XML to file
if ( !doc.SaveFile( filename.ToLocale().c_str() ) )
{
gd::LogError( _( "Unable to save file ") + filename + _("!\nCheck that the drive has enough free space, is not write-protected and that you have read/write permissions." ) );
return false;
}
return true;
}