This commit is contained in:
Бранимир Караџић 2021-08-18 09:27:12 -07:00
parent 8f60971dd6
commit 568ee4ceac

View File

@ -31,8 +31,7 @@ public:
{ {
bx::StringView result = m_token; bx::StringView result = m_token;
m_token = bx::strTrim( m_token = bx::strTrim(
bx::StringView(m_token.getTerm()+1 bx::StringView(m_token.getTerm()+1, bx::strFind(bx::StringView(m_token.getTerm()+1, m_str.getTerm() ), m_ch).getPtr())
, bx::strFind(bx::StringView(m_token.getTerm()+1, m_str.getTerm() ), m_ch).getPtr() )
, " \t\n" , " \t\n"
); );
return result; return result;
@ -49,7 +48,6 @@ private:
char m_ch; char m_ch;
}; };
bool openFileSelectionDialog( bool openFileSelectionDialog(
bx::FilePath& _inOutFilePath bx::FilePath& _inOutFilePath
, FileSelectionDialogType::Enum _type , FileSelectionDialogType::Enum _type
@ -66,12 +64,17 @@ bool openFileSelectionDialog(
if (!sep.isEmpty() ) if (!sep.isEmpty() )
{ {
for (Split split(bx::strTrim(bx::StringView(sep.getPtr()+1, line.getTerm() ), " "), ' '); !split.isDone();) for (Split split(bx::strTrim(bx::StringView(sep.getPtr()+1, line.getTerm() ), " "), ' ')
; !split.isDone()
;
)
{ {
const bx::StringView token = split.next(); const bx::StringView token = split.next();
if ( token.getLength() >= 3 && token.getPtr()[0] == '*' if (token.getLength() >= 3
&& token.getPtr()[1] == '.' && bx::isAlphaNum(token.getPtr()[2]) ) && token.getPtr()[0] == '*'
&& token.getPtr()[1] == '.'
&& bx::isAlphaNum(token.getPtr()[2]) )
{ {
NSString* extension = [[NSString alloc] initWithBytes:token.getPtr()+2 length:token.getLength()-2 encoding:NSASCIIStringEncoding]; NSString* extension = [[NSString alloc] initWithBytes:token.getPtr()+2 length:token.getLength()-2 encoding:NSASCIIStringEncoding];
[fileTypes addObject: extension]; [fileTypes addObject: extension];
@ -81,8 +84,11 @@ bool openFileSelectionDialog(
} }
__block NSString* fileName = nil; __block NSString* fileName = nil;
void (^invokeDialog)(void) = ^{
void (^invokeDialog)(void) =
^{
NSSavePanel* panel = nil; NSSavePanel* panel = nil;
if (FileSelectionDialogType::Open == _type) if (FileSelectionDialogType::Open == _type)
{ {
NSOpenPanel* openPanel = [NSOpenPanel openPanel]; NSOpenPanel* openPanel = [NSOpenPanel openPanel];
@ -103,12 +109,14 @@ bool openFileSelectionDialog(
if ([panel runModal] == NSModalResponseOK) if ([panel runModal] == NSModalResponseOK)
{ {
NSURL* url = [panel URL]; NSURL* url = [panel URL];
if (nil != url) if (nil != url)
{ {
fileName = [url path]; fileName = [url path];
[fileName retain]; [fileName retain];
} }
} }
[panel close]; [panel close];
}; };
@ -121,9 +129,10 @@ bool openFileSelectionDialog(
bx::Semaphore semaphore; bx::Semaphore semaphore;
bx::Semaphore* psemaphore = &semaphore; bx::Semaphore* psemaphore = &semaphore;
CFRunLoopPerformBlock([[NSRunLoop mainRunLoop] getCFRunLoop], CFRunLoopPerformBlock(
kCFRunLoopCommonModes, [[NSRunLoop mainRunLoop] getCFRunLoop]
^{ , kCFRunLoopCommonModes
, ^{
invokeDialog(); invokeDialog();
psemaphore->post(); psemaphore->post();
}); });
@ -140,4 +149,4 @@ bool openFileSelectionDialog(
return false; return false;
} }
#endif #endif // BX_PLATFORM_OSX