mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-06-02 14:50:59 +00:00
Open recent menu to clear items that have been deleted whenever it reloads.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/branches/gnustep_testplant_branch@38078 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
98a33c53db
commit
6adda710e5
1 changed files with 34 additions and 0 deletions
|
@ -1648,6 +1648,8 @@ static NSString *processName = nil;
|
||||||
- (void) _updateRecentDocumentsMenu
|
- (void) _updateRecentDocumentsMenu
|
||||||
{
|
{
|
||||||
NSMenu *recentMenu;
|
NSMenu *recentMenu;
|
||||||
|
BOOL listUpdated;
|
||||||
|
NSMutableArray *a;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
recentMenu = [self _recentDocumentsMenu];
|
recentMenu = [self _recentDocumentsMenu];
|
||||||
|
@ -1660,6 +1662,35 @@ static NSString *processName = nil;
|
||||||
[recentMenu setAutoenablesItems: NO];
|
[recentMenu setAutoenablesItems: NO];
|
||||||
[recentMenu setMenuChangedMessagesEnabled: NO];
|
[recentMenu setMenuChangedMessagesEnabled: NO];
|
||||||
|
|
||||||
|
// remove from list all deleted or otherwise inaccessable files
|
||||||
|
listUpdated = NO;
|
||||||
|
for (i = [_recent_documents count] - 1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
NSURL *u = [_recent_documents objectAtIndex: i];
|
||||||
|
NSError *error;
|
||||||
|
// if resource has been deleted
|
||||||
|
if (![u checkResourceIsReachableAndReturnError:&error])
|
||||||
|
{
|
||||||
|
[_recent_documents removeObjectAtIndex:i];
|
||||||
|
listUpdated = YES;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( listUpdated )
|
||||||
|
{
|
||||||
|
// Save the changed list
|
||||||
|
a = [_recent_documents mutableCopy];
|
||||||
|
i = [a count];
|
||||||
|
while (i-- > 0)
|
||||||
|
{
|
||||||
|
[a replaceObjectAtIndex: i withObject:
|
||||||
|
[[a objectAtIndex: i] absoluteString]];
|
||||||
|
}
|
||||||
|
[[NSUserDefaults standardUserDefaults]
|
||||||
|
setObject: a forKey: NSRecentDocuments];
|
||||||
|
RELEASE(a);
|
||||||
|
}
|
||||||
|
|
||||||
while ([recentMenu numberOfItems] > 0)
|
while ([recentMenu numberOfItems] > 0)
|
||||||
{
|
{
|
||||||
[recentMenu removeItemAtIndex: 0]; // remove them all
|
[recentMenu removeItemAtIndex: 0]; // remove them all
|
||||||
|
@ -1738,7 +1769,10 @@ static NSString *processName = nil;
|
||||||
|
|
||||||
[self openDocumentWithContentsOfURL: url display: YES error: &err];
|
[self openDocumentWithContentsOfURL: url display: YES error: &err];
|
||||||
if (err)
|
if (err)
|
||||||
|
{
|
||||||
[self presentError: err];
|
[self presentError: err];
|
||||||
|
[self _updateRecentDocumentsMenu];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue