<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>