summaryrefslogtreecommitdiffstats
path: root/Source/cmGlobalXCodeGenerator.cxx
diff options
context:
space:
mode:
authorRuslan Baratov <ruslan_baratov@yahoo.com>2014-01-16 18:16:34 (GMT)
committerBrad King <brad.king@kitware.com>2014-01-16 18:46:21 (GMT)
commit1ce02ebfd57da6e58b77399648ec758c2f812656 (patch)
tree2da0dbdd1ca2295618fe3ff723d8313d1e59d7b7 /Source/cmGlobalXCodeGenerator.cxx
parentd9f1f917c46c8faa4ac02f496d20487882e7f010 (diff)
downloadCMake-1ce02ebfd57da6e58b77399648ec758c2f812656.zip
CMake-1ce02ebfd57da6e58b77399648ec758c2f812656.tar.gz
CMake-1ce02ebfd57da6e58b77399648ec758c2f812656.tar.bz2
Xcode: Fix storyboard view
Images and xib files must have 'lastKnownFileType' attribute to be displayed correctly. If xib file has attribute 'explicitFileType' it is displayed as raw xml. If static image has attribute 'explicitFileType' it is displayed as question mark on storyboard.
Diffstat (limited to 'Source/cmGlobalXCodeGenerator.cxx')
-rw-r--r--Source/cmGlobalXCodeGenerator.cxx12
1 files changed, 9 insertions, 3 deletions
diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index 82466c9..41961ed 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -753,7 +753,8 @@ cmGlobalXCodeGenerator::CreateXCodeSourceFile(cmLocalGenerator* lg,
//----------------------------------------------------------------------------
std::string
GetSourcecodeValueFromFileExtension(const std::string& _ext,
- const std::string& lang)
+ const std::string& lang,
+ bool& keepLastKnownFileType)
{
std::string ext = cmSystemTools::LowerCase(_ext);
std::string sourcecode = "sourcecode";
@@ -764,10 +765,12 @@ GetSourcecodeValueFromFileExtension(const std::string& _ext,
}
else if(ext == "xib")
{
+ keepLastKnownFileType = true;
sourcecode = "file.xib";
}
else if(ext == "storyboard")
{
+ keepLastKnownFileType = true;
sourcecode = "file.storyboard";
}
else if(ext == "mm")
@@ -793,6 +796,7 @@ GetSourcecodeValueFromFileExtension(const std::string& _ext,
}
else if(ext == "png" || ext == "gif" || ext == "jpg")
{
+ keepLastKnownFileType = true;
sourcecode = "image";
}
else if(ext == "txt")
@@ -871,8 +875,10 @@ cmGlobalXCodeGenerator::CreateXCodeFileReferenceFromPath(
}
else
{
- std::string sourcecode = GetSourcecodeValueFromFileExtension(ext, lang);
- const char* attribute = (sourcecode == "file.storyboard") ?
+ bool keepLastKnownFileType = false;
+ std::string sourcecode = GetSourcecodeValueFromFileExtension(ext,
+ lang, keepLastKnownFileType);
+ const char* attribute = keepLastKnownFileType ?
"lastKnownFileType" :
"explicitFileType";
fileRef->AddAttribute(attribute,