Kaydet (Commit) 578bd153 authored tarafından Douglas Mencken's avatar Douglas Mencken Kaydeden (comit) Norbert Thiebaud

Currently used file pickers API doesn't work for OS X < 10.6

Change-Id: I69592ada3a413cae2d0def2faa495db44894ed3f
Reviewed-on: https://gerrit.libreoffice.org/8430Reviewed-by: 's avatarNorbert Thiebaud <nthiebaud@gmail.com>
Tested-by: 's avatarNorbert Thiebaud <nthiebaud@gmail.com>
üst 644dbbc9
...@@ -385,7 +385,11 @@ sal_Bool FilterHelper::filenameMatchesFilter(NSString* sFilename) ...@@ -385,7 +385,11 @@ sal_Bool FilterHelper::filenameMatchesFilter(NSString* sFilename)
} }
NSFileManager *manager = [NSFileManager defaultManager]; NSFileManager *manager = [NSFileManager defaultManager];
#if MAC_OS_X_VERSION_MAX_ALLOWED < 1060
NSDictionary* pAttribs = [manager fileAttributesAtPath: sFilename traverseLink: NO];
#else
NSDictionary* pAttribs = [manager attributesOfItemAtPath: sFilename error: nil]; NSDictionary* pAttribs = [manager attributesOfItemAtPath: sFilename error: nil];
#endif
if( pAttribs ) if( pAttribs )
{ {
NSObject* pType = [pAttribs objectForKey: NSFileType]; NSObject* pType = [pAttribs objectForKey: NSFileType];
......
...@@ -761,7 +761,11 @@ void SalAquaFilePicker::updateSaveFileNameExtension() { ...@@ -761,7 +761,11 @@ void SalAquaFilePicker::updateSaveFileNameExtension() {
rtl::OUString suffix = (*(aStringList.begin())).copy(1); rtl::OUString suffix = (*(aStringList.begin())).copy(1);
NSString *requiredFileType = [NSString stringWithOUString:suffix]; NSString *requiredFileType = [NSString stringWithOUString:suffix];
#if MAC_OS_X_VERSION_MAX_ALLOWED < 1060
[m_pDialog setRequiredFileType:requiredFileType];
#else
[m_pDialog setAllowedFileTypes:[NSArray arrayWithObjects:requiredFileType, nil]]; [m_pDialog setAllowedFileTypes:[NSArray arrayWithObjects:requiredFileType, nil]];
#endif
OSL_TRACE("disallowing other file types"); OSL_TRACE("disallowing other file types");
[m_pDialog setAllowsOtherFileTypes:NO]; [m_pDialog setAllowsOtherFileTypes:NO];
......
...@@ -165,6 +165,19 @@ int SalAquaPicker::run() ...@@ -165,6 +165,19 @@ int SalAquaPicker::run()
int retVal = 0; int retVal = 0;
#if MAC_OS_X_VERSION_MAX_ALLOWED < 1060
NSString *startDirectory;
if (m_sDisplayDirectory.getLength() > 0) {
NSString *temp = [NSString stringWithOUString:m_sDisplayDirectory];
NSURL *url = [NSURL URLWithString:temp];
startDirectory = [url path];
OSL_TRACE("start dir: %s", [startDirectory UTF8String]);
}
else {
startDirectory = NSHomeDirectory();
}
#else
NSURL *startDirectory; NSURL *startDirectory;
if (m_sDisplayDirectory.getLength() > 0) { if (m_sDisplayDirectory.getLength() > 0) {
NSString *temp = [NSString stringWithOUString:m_sDisplayDirectory]; NSString *temp = [NSString stringWithOUString:m_sDisplayDirectory];
...@@ -175,17 +188,26 @@ int SalAquaPicker::run() ...@@ -175,17 +188,26 @@ int SalAquaPicker::run()
else { else {
startDirectory = [NSURL fileURLWithPath:NSHomeDirectory() isDirectory:YES]; startDirectory = [NSURL fileURLWithPath:NSHomeDirectory() isDirectory:YES];
} }
#endif
switch(m_nDialogType) { switch(m_nDialogType) {
case NAVIGATIONSERVICES_DIRECTORY: case NAVIGATIONSERVICES_DIRECTORY:
case NAVIGATIONSERVICES_OPEN: case NAVIGATIONSERVICES_OPEN:
#if MAC_OS_X_VERSION_MAX_ALLOWED < 1060
retVal = [(NSOpenPanel*)m_pDialog runModalForDirectory:startDirectory file:nil types:nil];
#else
[m_pDialog setDirectoryURL:startDirectory]; [m_pDialog setDirectoryURL:startDirectory];
retVal = [(NSOpenPanel*)m_pDialog runModal]; retVal = [(NSOpenPanel*)m_pDialog runModal];
#endif
break; break;
case NAVIGATIONSERVICES_SAVE: case NAVIGATIONSERVICES_SAVE:
#if MAC_OS_X_VERSION_MAX_ALLOWED < 1060
retVal = [m_pDialog runModalForDirectory:startDirectory file:[NSString stringWithOUString:((SalAquaFilePicker*)this)->getSaveFileName()]];
#else
[m_pDialog setDirectoryURL:startDirectory]; [m_pDialog setDirectoryURL:startDirectory];
[m_pDialog setNameFieldStringValue:[NSString stringWithOUString:((SalAquaFilePicker*)this)->getSaveFileName()]]; [m_pDialog setNameFieldStringValue:[NSString stringWithOUString:((SalAquaFilePicker*)this)->getSaveFileName()]];
retVal = [m_pDialog runModal]; retVal = [m_pDialog runModal];
#endif
break; break;
// [m_pDialog beginSheetForDirectory:startDirectory file:[m_pDialog saveFilename] modalForWindow:[NSApp keyWindow] modalDelegate:((SalAquaFilePicker*)this)->getDelegate() didEndSelector:@selector(savePanelDidEnd:returnCode:contextInfo:) contextInfo:nil]; // [m_pDialog beginSheetForDirectory:startDirectory file:[m_pDialog saveFilename] modalForWindow:[NSApp keyWindow] modalDelegate:((SalAquaFilePicker*)this)->getDelegate() didEndSelector:@selector(savePanelDidEnd:returnCode:contextInfo:) contextInfo:nil];
default: default:
...@@ -193,10 +215,17 @@ int SalAquaPicker::run() ...@@ -193,10 +215,17 @@ int SalAquaPicker::run()
} }
if (retVal == NSFileHandlingPanelOKButton) { if (retVal == NSFileHandlingPanelOKButton) {
#if MAC_OS_X_VERSION_MAX_ALLOWED < 1060
NSString* pDir = [m_pDialog directory];
if (pDir) {
implsetDisplayDirectory([[NSURL fileURLWithPath:pDir] OUStringForInfo:FULLPATH]);
}
#else
NSURL* pDir = [m_pDialog directoryURL]; NSURL* pDir = [m_pDialog directoryURL];
if (pDir) { if (pDir) {
implsetDisplayDirectory([pDir OUStringForInfo:FULLPATH]); implsetDisplayDirectory([pDir OUStringForInfo:FULLPATH]);
} }
#endif
} }
DBG_PRINT_EXIT(CLASS_NAME, __func__, retVal); DBG_PRINT_EXIT(CLASS_NAME, __func__, retVal);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment