[squeak-dev] Difference between Tools and Apps menu?

christoph.thiede at student.hpi.uni-potsdam.de christoph.thiede at student.hpi.uni-potsdam.de
Thu Sep 15 11:18:16 UTC 2022


Hi tim, Hi all,

good idea to clean up the Apps menu. I have added a changeset, just a few comments before ...

> Yes, logically speaking I would claim that Tools should be, well, tools - browser(s), transcript, workspace, MC tool, ChangeSorter, stuff like that. Apps ought to be extra applications that get added -Scratch, Seaside controls, Command Shell, and maybe SqueakMap because it loads apps. It's not a very leak-proof barrier though .

+1. I would add: Tools is for (internal) development, Apps is for everything that is installed later or fulfills a different purpose.

> Help Browser (err, should be just under Help...)

This is not really a development tool in my opinion ... Since it's also more than documentation of Squeak only but also a "store" for external apps, IMO it goes well under Apps. Also it's in its own package and pretty decoupled from rest of the Trunk.

> http proxy editor (part of EToys and ought to just be in EToy related world, and EToys ought not be in default image anyway)

+1. The proxy settings can also be configured through the preference browser, so this item not needed any more.

> [Preference] Wizard

Similar to Help Browser, I would rather like to keep it here. It would also be the only tool with a totally different UI.

> Services Browser (just in Tools and surely ought to be part of the Preferences browser anyway)

Who is actually using the services browser? It's an isolated package and in my impression used by almost no one today. In order not to couple it any tighter to the rest of the system than necessary, I would vote for leaving it in Apps.

> And since the Tools menu would now be getting quite long, it should be split up a it into a hierarchical menu

It got only one item longer for me. -1 for nesting it - the horizontal splitters already create some structure, but mouse gestures would become significantly harder if you had to open a submenu every time you wanted to open, e.g., a file list.

And here the changeset:

=============== Summary ===============

Change Set:        cleanUp-appsAndTools
Date:            15 September 2022
Author:            Christoph Thiede

Proposal: Cleans up the Apps menu in the world docking bar by (re)moving redundant items that belong into the Tools menu or are not relevant any longer at all.

Moves:
- Apps > DependencyBrowser into Tools
- Apps > FontImporter into Tools

Removes:
- Apps > HTTPProxyEditor (Etoys-specific, can be configured through preference browser)
- Apps > Monticello Browser, Monticello Configuration (already in Tools)
- Apps > Preference Browser (already in Tools)
- Apps > Test Runner (already in Tools)

=============== Diff ===============

DependencyBrowser class>>initialize {class initialization} · cmm 1/8/2011 15:40 (removed)
- initialize
-     "Initializes the receiver class"
-  
-      TheWorldMenu registerOpenCommand: {'Dependency Browser'. {self. #open}}. 

HTTPProxyEditor class>>initialize {class initialization} · asm 10/30/2003 19:42 (removed)
- initialize
- 
-     self registerInOpenMenu

HTTPProxyEditor class>>registerInOpenMenu {class initialization} · KR 8/16/2007 00:40 (removed)
- registerInOpenMenu
-     "Register the receiver in the system's open menu"
-     TheWorldMenu registerOpenCommand: {'http proxy editor' translated. {HTTPProxyEditor. #open}. 'An editor for the http proxy settings' translated}

HTTPProxyEditor class>>unload {class initialization} · asm 10/30/2003 19:42 (removed)
- unload
-     "Called when the class is being removed"
- 
-     TheWorldMenu unregisterOpenCommandWithReceiver: self

MCConfigurationBrowser class>>initialize {class initialization} · bf 3/21/2005 19:46 (removed)
- initialize
-     TheWorldMenu registerOpenCommand: { 'Monticello Configurations' . { self . #open }. 'Monticello Configuration Browser' }.

MCWorkingCopyBrowser class>>initialize {class initialization} · ab 7/19/2003 23:38 (removed)
- initialize
-      (TheWorldMenu respondsTo: #registerOpenCommand:)
-          ifTrue: [TheWorldMenu registerOpenCommand: {'Monticello Browser'. {self. #open}}]

PreferenceBrowser class>>initialize {class initialization} · ct 9/15/2022 12:53 (changed)
initialize
-     self
-         registerInOpenMenu;
-         registerInFlaps
+     self registerInFlaps.

PreferenceBrowser class>>registerInOpenMenu {class initialization} · hpt 9/19/2004 12:40 (removed)
- registerInOpenMenu
-     (TheWorldMenu respondsTo: #registerOpenCommand:) ifTrue: [
-         TheWorldMenu unregisterOpenCommand: 'Preference Browser'.
-         TheWorldMenu registerOpenCommand: {'Preference Browser'. {self. #open}}].
-         

PreferenceBrowser class>>unload {class initialization} · ct 9/15/2022 12:53 (changed)
unload
-     self 
-         unregisterFromOpenMenu;
-         unregisterFromFlaps.
+     self unregisterFromFlaps.

PreferenceBrowser class>>unregisterFromOpenMenu {class initialization} · hpt 9/19/2004 12:44 (removed)
- unregisterFromOpenMenu
-      (TheWorldMenu respondsTo: #registerOpenCommand:)
-         ifTrue: [TheWorldMenu unregisterOpenCommand: 'Preference Browser'].


TestRunner class>>initialize {initialization} · ct 9/15/2022 12:53 (changed)
initialize
-     self registerInWorldMenu; registerInToolsFlap.
+     self registerInToolsFlap.

TestRunner class>>registerInWorldMenu {initialization} · md 1/13/2006 18:14 (removed)
- registerInWorldMenu
-     self environment at: #TheWorldMenu ifPresent: [ :class |
-         class registerOpenCommand: (Array 
-             with: 'Test Runner' 
-             with: (Array
-                 with: self
-                 with: #open)) ].

TheWorldMainDockingBar>>dependencyBrowserMenuItemOn: {submenu - tools} · ct 9/15/2022 12:39
+ dependencyBrowserMenuItemOn: menu 
+ 
+     menu addItem: [:item | 
+         item 
+             contents: 'Dependency Browser' translated;
+             help: 'Browse the dependencies between packages' translated;
+             icon: (self colorIcon: DependencyBrowser basicNew windowColorToUse);
+             target: DependencyBrowser;
+             selector: #open]

TheWorldMainDockingBar>>fontImporterMenuItemOn: {submenu - tools} · ct 9/15/2022 13:09
+ fontImporterMenuItemOn: menu
+ 
+     menu addItem: [ :item |
+         item
+             contents: 'Font Importer' translated;
+             help: 'Import fonts from the host system' translated;
+             icon: (self colorIcon: FontImporterTool basicNew windowColorToUse);
+             target: FontImporterTool;
+             selector: #open ]

TheWorldMainDockingBar>>toolsMenuOn: {construction} · ct 9/15/2022 13:08 (changed)
toolsMenuOn: aDockingBar 

    aDockingBar addItem: [ :item |
        item
            contents: 'Tools' translated;
            addSubMenu: [ :menu | 
                self
                    browserMenuItemOn: menu;
                    workspaceMenuItemOn: menu;
                    transcriptMenuItemOn: menu;
                    testRunnerMenuItemOn: menu;
                    methodFinderMenuItemOn: menu;
-                     messageNamesMenuItemOn: menu.
+                     messageNamesMenuItemOn: menu;
+                     dependencyBrowserMenuItemOn: menu.
                menu addLine.
                self 
                    simpleChangeSorterMenuItemOn: menu;
                    dualChangeSorterMenuItemOn: menu;
                    monticelloBrowserMenuItemOn: menu;
                    monticelloConfigurationsMenuItemOn: menu.
                menu addLine.
                self
                    gitInfrastructureMenuItemOn: menu;
                    squeakInboxTalkMenuItemOn: menu.
                menu addLine.
                self
                    processBrowserMenuItemOn: menu;
                    preferenceBrowserMenuItemOn: menu;
-                     fileListMenuItemOn: menu.
+                     fileListMenuItemOn: menu;
+                     fontImporterMenuItemOn: menu.
            ] ]

Best,
Christoph

---
Sent from Squeak Inbox Talk

On 2022-05-22T10:35:18-07:00, tim at rowledge.org wrote:

> Yes, logically speaking I would claim that Tools should be, well, tools - browser(s), transcript, workspace, MC tool, ChangeSorter, stuff like that. Apps ought to be extra applications that get added -Scratch, Seaside controls, Command Shell, and maybe SqueakMap because it loads apps. It's not a very leak-proof barrier though .
> 
> In my current image, Apps also has some things I'd claim ought not be there - 
> Dependency Browser (a Tool, obviously)
> Font Importer (Tool)
> Help Browser (err, should be just under Help...)
> http proxy editor (part of EToys and ought to just be in EToy related world, and EToys ought not be in default image anyway)
> Monticello Browser/configurations (just in Tools)
> Preference Browser/Wizard (just in Tools)
> Services Browser (just in Tools and surely ought to be part of the Preferences browser anyway)
> TestRunner (just in Tools)
> 
> And since the Tools menu would now be getting quite long, it should be split up a it into a hierarchical menu
> 
> 
> > On 2022-05-22, at 8:21 AM, Jaromir Matas <mail at jaromir.net> wrote:
> > 
> > Hi  Jakob,
> >  
> > At least I understand now what’s happening and why, thanks :) From a beginner’s *user* point of view (at least my personal) the logic behind the menus is a bit opaque, and on top of that some tools are being presented under multiple different names (Browser = System Browser = Class Browser, Preferences = Preference Browser, Method Finder = Selector Finder, Squeak Help = Help Browser…). It’s no big deal to get used to it but still, some unification might help a bit.
> > Best,
> > Jaromir
> > --
> > Jaromír Matas
> > mail at jaromir.net
> >  
> > From: Jakob Reschke
> > Sent: Sunday, May 22, 2022 16:49
> > To: The general-purpose Squeak developers list
> > Subject: Re: [squeak-dev] Difference between Tools and Apps menu?
> >  
> > Hi Jaromir,
> >  
> > I do not have an authoritative answer from a user perspective, but the tools menu is hardcoded in TheWorldMainDockingBar toolsMenuOn:, whereas applications can register their own entries in the apps menu via TheWorldMenu class >> registerOpenCommand:. Moreover, what appears under "Apps" also appears under "open..." in the World menu. Or rather the other way around (-: what is registered under World open appears under Apps as well.
> >  
> > For me Tools are the development tools, whereas Apps can be anything that runs in Squeak.
> >  
> > Kind regards,
> > Jakob
> >  
> >  
> > Am So., 22. Mai 2022 um 12:22 Uhr schrieb Jaromir Matas <mail at jaromir.net>:
> > Hi All,
> >  
> > another quick question: What is the difference between Tools and Apps menu?
> >  
> > Version 4 introduced Tools menu, version 5 added Apps menu. I can't figure out what the difference is other than Apps are "More Tools". But then why would some entries be in both? So it's probably not it... Or is it about frequency, importance? And then there's "Preferences" in Tools and the same tool named "Preference Browser" in Apps which is also confusing.
> >  
> > Thanks for any advice :)
> >  
> > --
> > 
> > Jaromír Matas
> > 
> > mail at jaromir.net
> > 
> 
> 
> 
> tim
> --
> tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
> Oscar Wilde: “Only the shallow know themselves.â€Â
> 
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20220915/099477be/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cleanUp-appsAndTools.1.cs
Type: application/octet-stream
Size: 3734 bytes
Desc: not available
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20220915/099477be/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: tools-cleaned.png
Type: image/png
Size: 19389 bytes
Desc: not available
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20220915/099477be/attachment-0002.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: apps-cleaned.png
Type: image/png
Size: 7476 bytes
Desc: not available
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20220915/099477be/attachment-0003.png>


More information about the Squeak-dev mailing list