mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-04-22 18:11:06 +00:00
NSTextView: support drop for NSFilenamesPboardType (#156)
* NSTextView: support drop for NSFilenamesPboardType * code cleanup * code fixes
This commit is contained in:
parent
324308b4e8
commit
1e956c96df
1 changed files with 39 additions and 0 deletions
|
@ -4982,6 +4982,44 @@ right.)
|
|||
RELEASE(attachment);
|
||||
return YES;
|
||||
}
|
||||
if ([type isEqualToString: NSFilenamesPboardType])
|
||||
{
|
||||
NSArray *list = [pboard propertyListForType: NSFilenamesPboardType];
|
||||
NSMutableAttributedString *as = [[NSMutableAttributedString alloc] init];
|
||||
|
||||
id<NSFastEnumeration> enumerator = list;
|
||||
FOR_IN (NSString*, filename, enumerator)
|
||||
{
|
||||
NSFileWrapper *fw = [[NSFileWrapper alloc] initWithPath: filename];
|
||||
if (fw)
|
||||
{
|
||||
NSTextAttachment *attachment = [[NSTextAttachment alloc]
|
||||
initWithFileWrapper: fw];
|
||||
NSAttributedString *asat =
|
||||
[NSAttributedString attributedStringWithAttachment: attachment];
|
||||
|
||||
RELEASE(fw);
|
||||
RELEASE(attachment);
|
||||
|
||||
[as appendAttributedString: asat];
|
||||
}
|
||||
}
|
||||
END_FOR_IN(enumerator)
|
||||
|
||||
if (as && changeRange.location != NSNotFound &&
|
||||
[self shouldChangeTextInRange: changeRange
|
||||
replacementString: [as string]])
|
||||
{
|
||||
[self replaceCharactersInRange: changeRange
|
||||
withAttributedString: as];
|
||||
[self didChangeText];
|
||||
changeRange.length = [as length];
|
||||
[self setSelectedRange: NSMakeRange(NSMaxRange(changeRange),0)];
|
||||
}
|
||||
|
||||
RELEASE(as);
|
||||
return YES;
|
||||
}
|
||||
}
|
||||
|
||||
// color accepting
|
||||
|
@ -5078,6 +5116,7 @@ right.)
|
|||
[ret addObject: NSRTFDPboardType];
|
||||
[ret addObject: NSTIFFPboardType];
|
||||
[ret addObject: NSFileContentsPboardType];
|
||||
[ret addObject: NSFilenamesPboardType];
|
||||
}
|
||||
if (_tf.is_rich_text)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue