<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
                                        Hi Christoph --<div><br></div><div>Well ... I think that I would implement a generic CMD+C shortcut directly in PluggableListMorph, regardless of what kind of text is being copied. Other than that: +1 </div><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;min-width: 500px">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 17.01.2022 14:00:20 schrieb Thiede, Christoph <christoph.thiede@student.hpi.uni-potsdam.de>:</p><div style="font-family:Arial,Helvetica,sans-serif">

<div id="divtagdefaultwrapper" style="font-size: 12pt;color: #000000;font-family: Calibri,Helvetica,sans-serif" dir="ltr">
<p>Hi Marcel,</p>
<p><br>
</p>
<p>in which particular place did I deviate from this rule ("just copy the text that the user currently sees"? Are you proposing to copy *all* visible items instead of the only selected one? I'm not sure whether there are any applications for such a feature.
 :-)</p>
<p><br>
</p>
<p>Best,</p>
<p>Christoph</p>
<p><br>
</p>
<p>PS: Your e-mail client has absorbed the <cmd>c from the original message. :P</p>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><span style="font-family: Calibri, sans-serif;color: #000000"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von Taeumel, Marcel<br>
<b>Gesendet:</b> Montag, 17. Januar 2022 12:21:28<br>
<b>An:</b> squeak-dev<br>
<b>Betreff:</b> Re: [squeak-dev] The Inbox: Tools-ct.1107.mcz</span>
<div> </div>
</div>
<div>
<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
Hi Christoph --
<div><br>
</div>
<div>If would be nice if you would just copy the text that the user currently sees in the particular list widget. Maybe #withBlanksTrimmed.l At least for the keyboard shortcut CMD+C. In the popup menu, you can be more fine-grained as you proposed.</div>
<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;min-width: 500px">
<p style="color: #AAAAAA; margin-top: 10px;">Am 15.01.2022 23:22:21 schrieb commits@source.squeak.org <commits@source.squeak.org>:</p>
<div style="font-family:Arial,Helvetica,sans-serif">A new version of Tools was added to project The Inbox:<br>
http://source.squeak.org/inbox/Tools-ct.1107.mcz<br>
<br>
==================== Summary ====================<br>
<br>
Name: Tools-ct.1107<br>
Author: ct<br>
Time: 15 January 2022, 11:22:06.229373 pm<br>
UUID: 3c64c912-518e-8841-a1a7-5998436d9da4<br>
Ancestors: Tools-mt.1106<br>
<br>
Implements "copy class name" and "copy system/message category name" in all code browser tools and connects them to
<cmd>c, analogously to the already existing message item "copy selector".<br>
<br>
Uploaded to the inbox for the unexpected event that anyone objects against the tiny UI change. Otherwise, I will move this to the Trunk after a few days. =)<br>
<br>
=============== Diff against Tools-mt.1106 ===============<br>
<br>
Item was changed:<br>
----- Method: Browser>>classListMenu: (in category 'class functions') -----<br>
classListMenu: aMenu <br>
"Conveniently fit for backward compatibility with old browers stored in image segments"<br>
<classlistmenushifted: false=""><br>
+ aMenu addTranslatedList: #(<br>
- aMenu addList: #(<br>
-<br>
('browse full (b)' browseMethodFull)<br>
('browse hierarchy (h)' spawnHierarchy)<br>
('browse protocol (p)' browseFullProtocol)<br>
('browse documentation' browseAllCommentsForClass)<br>
-<br>
('printOut' printOutClass)<br>
('fileOut' fileOutClass)<br>
+ ('copy name (c)' copyClassName)<br>
-<br>
('show hierarchy' hierarchy)<br>
('show definition' editClass)<br>
('show comment' editComment)<br>
-<br>
('references... (r)' browseVariableReferences)<br>
('assignments... (a)' browseVariableAssignments)<br>
('class refs (N)' browseClassRefs)<br>
-<br>
('rename class ...' renameClass)<br>
('copy class' copyClass)<br>
('remove class (x)' removeClass)<br>
-<br>
('find method...' findMethod)).<br>
+ ^ aMenu!<br>
- ^ aMenu<br>
- !<br>
<br>
Item was changed:<br>
----- Method: Browser>>mainMessageCategoryMenu: (in category 'message category functions') -----<br>
mainMessageCategoryMenu: aMenu<br>
<messagecategorymenu><br>
+ ^ aMenu addTranslatedList: #(<br>
- ^ aMenu addList: #(<br>
('browse' buildMessageCategoryBrowser)<br>
('print out' printOutMessageCategories)<br>
('file out' fileOutMessageCategories)<br>
+ ('copy name (c)' copyMessageCategoryName)<br>
-<br>
('reorganize' editMessageCategories)<br>
('alphabetize' alphabetizeMessageCategories)<br>
('remove empty categories' removeEmptyCategories)<br>
('categorize all uncategorized' categorizeAllUncategorizedMethods)<br>
('new category...' addCategory)<br>
-<br>
('rename...' renameCategory)<br>
('remove (x)' removeMessageCategory));<br>
+ yourself!<br>
- yourself<br>
- !<br>
<br>
Item was changed:<br>
----- Method: Browser>>mainSystemCategoryMenu: (in category 'system category functions') -----<br>
mainSystemCategoryMenu: aMenu<br>
<systemcategorymenu><br>
aMenu addTranslatedList: #(<br>
('find class... (f)' findClass)<br>
('back... (b)' recent)<br>
-<br>
('browse all' browseAllClasses)<br>
('browse' buildSystemCategoryBrowser)).<br>
<br>
(Smalltalk isMorphic and: [self selectedPackage notNil]) ifTrue: [<br>
aMenu<br>
add: ('browse package ''{1}''' translated format: {self selectedPackage name})<br>
subMenu: (self packageMenu: ((Smalltalk isMorphic<br>
ifTrue: [MenuMorph new defaultTarget: self; yourself]<br>
ifFalse: [CustomMenu new])<br>
yourself))<br>
target: self<br>
selector: #yourself<br>
argumentList: #()].<br>
<br>
aMenu addTranslatedList: #(<br>
-<br>
('printOut' printOutSystemCategory)<br>
('fileOut' fileOutSystemCategory)<br>
+ ('copy name (c)' copySystemCategoryName)<br>
-<br>
('reorganize' editSystemCategories)<br>
('alphabetize' alphabetizeSystemCategories)<br>
-<br>
('update' updateSystemCategories)<br>
('add item...' addSystemCategory)<br>
('rename...' renameSystemCategory)<br>
('remove (x)' removeSystemCategory)).<br>
^ aMenu!<br>
<br>
Item was changed:<br>
----- Method: Browser>>messageCategoryListKey:from: (in category 'message category list') -----<br>
messageCategoryListKey: aCharacter from: view<br>
<br>
+ aCharacter == $c ifTrue: [ ^self copyMessageCategoryName ].<br>
aCharacter == $x ifTrue: [ ^self removeMessageCategory ].<br>
^self arrowKey: aCharacter from: view<br>
!<br>
<br>
Item was changed:<br>
----- Method: Browser>>systemCatListKey:from: (in category 'system category list') -----<br>
systemCatListKey: aChar from: view<br>
"Respond to a Command key. I am a model with a code pane, and I also have a listView that has a list of methods. The view knows how to get the list and selection."<br>
<br>
+ aChar == $b ifTrue: [^ self recent].<br>
+ aChar == $c ifTrue: [^ self copySystemCategoryName].<br>
aChar == $f ifTrue: [^ self findClass].<br>
aChar == $x ifTrue: [^ self removeSystemCategory].<br>
- aChar == $b ifTrue: [^ self recent].<br>
^ self classListKey: aChar from: view!<br>
<br>
Item was added:<br>
+ ----- Method: CodeHolder>>copyClassName (in category 'class functions') -----<br>
+ copyClassName<br>
+ <br>
+ self selectedClassName ifNotNil: [:name |<br>
+ Clipboard clipboardText: name asString].!<br>
<br>
Item was added:<br>
+ ----- Method: CodeHolder>>copyMessageCategoryName (in category 'message category functions') -----<br>
+ copyMessageCategoryName<br>
+ <br>
+ self selectedMessageCategoryName ifNotNil: [:name |<br>
+ Clipboard clipboardText: name asString].!<br>
<br>
Item was added:<br>
+ ----- Method: CodeHolder>>copySystemCategoryName (in category 'system category functions') -----<br>
+ copySystemCategoryName<br>
+ <br>
+ self selectedSystemCategoryName ifNotNil: [:name |<br>
+ Clipboard clipboardText: name asString].!<br>
<br>
Item was changed:<br>
----- Method: StringHolder>>classListKey:from: (in category '*Tools') -----<br>
classListKey: aChar from: view <br>
"Respond to a Command key. I am a model with a list of classes and a <br>
code pane, and I also have a listView that has a list of methods. The <br>
view knows how to get the list and selection."<br>
<br>
- aChar == $f ifTrue: [^ self findMethod].<br>
- aChar == $r ifTrue: [^ self browseVariableReferences].<br>
aChar == $a ifTrue: [^ self browseVariableAssignments].<br>
+ aChar == $c ifTrue: [^ self copyClassName].<br>
+ aChar == $f ifTrue: [^ self findMethod].<br>
aChar == $h ifTrue: [^ self spawnHierarchy].<br>
+ aChar == $r ifTrue: [^ self browseVariableReferences].<br>
aChar == $x ifTrue: [^ self removeClass].<br>
^ self messageListKey: aChar from: view!<br>
<br>
<br>
</systemcategorymenu></messagecategorymenu></classlistmenushifted:></cmd></div>
</blockquote>
</div>
</div>
</div></blockquote></div>