<body><div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
I like the duplicate prompt. :-D Because the first is never at the position I acctually dropped the file. Only the second one is.<div><br></div><div>Best,</div><div>Marcel</div><div class="mb_sig"></div><blockquote class="history_container" type="cite" style="border-left-style:solid;border-width:1px; margin-top:20px; margin-left:0px;padding-left:10px;">
<p style="color: #AAAAAA; margin-top: 10px;">Am 05.05.2020 17:41:35 schrieb commits@source.squeak.org <commits@source.squeak.org>:</p><div style="font-family:Arial,Helvetica,sans-serif">Christoph Thiede uploaded a new version of System to project The Inbox:<br>http://source.squeak.org/inbox/System-ct.1156.mcz<br><br>==================== Summary ====================<br><br>Name: System-ct.1156<br>Author: ct<br>Time: 5 May 2020, 5:41:10.96399 pm<br>UUID: 2ce2496e-92e9-f744-9a58-d9e9320adfab<br>Ancestors: System-mt.1155<br><br>Fixes double prompt for handling a dropped file when the first dialog was cancelled. Cleans up duplication between ExternalDropHandler >> #lookupServiceBasedHandler: and DefaultExternalDropHandler by deprecating the first one. Maybe we can also remove this method?<br><br>=============== Diff against System-mt.1155 ===============<br><br>Item was changed:<br> ----- Method: DefaultExternalDropHandler>>chooseServiceFrom: (in category 'private') -----<br> chooseServiceFrom: aCollection<br>+ "private - choose a service from aCollection asking the user if needed"<br>+ ^ aCollection size = 1 <br>- "private - choose a service from aCollection asking the user if needed"<br>- ^aCollection size = 1 <br> ifTrue: [aCollection anyOne]<br>+ ifFalse: [UIManager default <br>+ chooseFrom: (aCollection collect: [:each | each label])<br>- ifFalse:[UIManager default <br>- chooseFrom: (aCollection collect:[:each| each label])<br> values: aCollection<br> title: 'You dropped a file. Please choose a service:' translated withCRs].!<br><br>Item was changed:<br> ----- Method: DefaultExternalDropHandler>>handle:in:dropEvent: (in category 'event handling') -----<br> handle: dropStream in: pasteUp dropEvent: anEvent <br> "the file was just droped, let's do our job"<br> | fileName services chosen |<br> fileName := dropStream name.<br> services := self servicesForFileNamed: fileName.<br>+ <br>- <br> "no service, default behavior"<br>+ services ifEmpty: [<br>+ ^ UIManager default edit: dropStream contentsOfEntireFile].<br>+ <br>- services isEmpty <br>- ifTrue: [^UIManager default edit: dropStream contentsOfEntireFile].<br>- <br> chosen := self chooseServiceFrom: services.<br>+ chosen ifNotNil: [chosen performServiceFor: dropStream].!<br>- chosen ifNotNil:[chosen performServiceFor: dropStream]!<br><br>Item was changed:<br> ----- Method: DefaultExternalDropHandler>>servicesForFileNamed: (in category 'private') -----<br> servicesForFileNamed: aString <br>+ "private - answer a collection of file-services for the file named aString"<br>+ <br>+ ^ (FileServices itemsForFile: aString)<br>+ copyWithoutAll: self unwantedSelectors!<br>- "private - answer a collection of file-services for the file named <br>- aString"<br>- | allServices |<br>- allServices := FileServices itemsForFile: aString.<br>- ^ allServices<br>- reject: [:svc | self unwantedSelectors includes: svc selector]!<br><br>Item was changed:<br> ----- Method: ExternalDropHandler class>>defaultHandler (in category 'accessing') -----<br> defaultHandler<br>+ <br>+ ^ DefaultHandler ifNil: [<br>+ DefaultHandler := ExternalDropHandler<br>+ type: nil<br>+ extension: nil<br>+ action: #edit]!<br>- DefaultHandler ifNil: [DefaultHandler := ExternalDropHandler type: nil extension: nil action: [:dropStream | dropStream edit]].<br>- ^DefaultHandler!<br><br>Item was changed:<br> ----- Method: ExternalDropHandler class>>lookupExternalDropHandler: (in category 'accessing') -----<br> lookupExternalDropHandler: stream<br> <br> | types extension serviceHandler |<br> types := stream mimeTypes.<br> <br> types ifNotNil: [<br>+ self registeredHandlers<br>+ detect: [:handler | handler matchesTypes: types]<br>+ ifFound: [:handler | ^ handler]].<br>- self registeredHandlers do: [:handler | <br>- (handler matchesTypes: types)<br>- ifTrue: [^handler]]].<br> <br> extension := FileDirectory extensionFor: stream name.<br>+ self registeredHandlers<br>+ detect: [:handler | handler matchesExtension: extension]<br>+ ifFound: [:handler | ^ handler].<br>+ <br>+ ^ serviceHandler ifNil: [self defaultHandler]!<br>- self registeredHandlers do: [:handler | <br>- (handler matchesExtension: extension)<br>- ifTrue: [^handler]].<br>- serviceHandler := self lookupServiceBasedHandler: stream.<br>- ^serviceHandler<br>- ifNil: [self defaultHandler]!<br><br>Item was changed:<br> ----- Method: ExternalDropHandler class>>lookupServiceBasedHandler: (in category 'accessing') -----<br> lookupServiceBasedHandler: dropStream<br>+ <br>- "The file was just dropped; let's do our job"<br> | fileName services theOne |<br>+ self deprecated: 'ct: Use DefaultExternalDropHandler'.<br> fileName := dropStream name.<br>- <br> services := (FileServices itemsForFile: fileName)<br> reject: [:svc | self unwantedSelectors includes: svc selector].<br>+ <br>- <br> "no service, default behavior"<br>+ services ifEmpty: [^ nil].<br>+ <br>- services isEmpty<br>- ifTrue: [^nil].<br>- <br> theOne := self chooseServiceFrom: services.<br>+ ^ theOne ifNotNil: [<br>+ ExternalDropHandler type: nil extension: nil action: [:stream | theOne performServiceFor: stream]]!<br>- ^theOne<br>- ifNotNil: [ExternalDropHandler type: nil extension: nil action: [:stream | theOne performServiceFor: stream]]!<br><br><br></div></blockquote>
</div></body>