The Trunk: Tools-mt.1029.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
24 messages Options
12
Reply | Threaded
Open this post in threaded view
|

The Trunk: Tools-mt.1029.mcz

commits-2
Marcel Taeumel uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-mt.1029.mcz

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

Name: Tools-mt.1029
Author: mt
Time: 4 March 2021, 3:38:36.350661 pm
UUID: bef0c471-6ff1-774d-860e-8958e1aa508b
Ancestors: Tools-mt.1028

Enable source-code dragging through a browser's message list to be dropped into the world to open a compact code editor.

Complements Tools-mt.1028, ToolBuilder-Kernel-mt.139, ToolBuilder-Morphic-mt.274, and Morphic-mt.1733.

=============== Diff against Tools-mt.1028 ===============

Item was changed:
  ----- Method: Browser>>buildMessageListWith: (in category 'toolbuilder') -----
  buildMessageListWith: builder
  | listSpec |
  listSpec := builder pluggableListSpec new.
  listSpec
  model: self;
  list: #messageList;
  getIndex: #messageListIndex;
  setIndex: #messageListIndex:;
  icon: #messageIconAt:;
  helpItem: #messageHelpAt:;
  menu: #messageListMenu:shifted:;
  keyPress: #messageListKey:from:.
+ SystemBrowser browseWithDragNDrop ifTrue: [
+ listSpec
+ dragItem: #dragFromMessageList:;
+ dragType: #dragTypeForMessageListAt:].
- SystemBrowser browseWithDragNDrop
- ifTrue:[listSpec dragItem: #dragFromMessageList:].
  ^listSpec
  !

Item was added:
+ ----- Method: Browser>>dragTypeForMessageListAt: (in category 'drag and drop') -----
+ dragTypeForMessageListAt: index
+
+ ^ #sourceCode!


Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Tools-mt.1029.mcz

marcel.taeumel
Here is an example:


Am 04.03.2021 15:38:47 schrieb [hidden email] <[hidden email]>:

Marcel Taeumel uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-mt.1029.mcz

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

Name: Tools-mt.1029
Author: mt
Time: 4 March 2021, 3:38:36.350661 pm
UUID: bef0c471-6ff1-774d-860e-8958e1aa508b
Ancestors: Tools-mt.1028

Enable source-code dragging through a browser's message list to be dropped into the world to open a compact code editor.

Complements Tools-mt.1028, ToolBuilder-Kernel-mt.139, ToolBuilder-Morphic-mt.274, and Morphic-mt.1733.

=============== Diff against Tools-mt.1028 ===============

Item was changed:
----- Method: Browser>>buildMessageListWith: (in category 'toolbuilder') -----
buildMessageListWith: builder
| listSpec |
listSpec := builder pluggableListSpec new.
listSpec
model: self;
list: #messageList;
getIndex: #messageListIndex;
setIndex: #messageListIndex:;
icon: #messageIconAt:;
helpItem: #messageHelpAt:;
menu: #messageListMenu:shifted:;
keyPress: #messageListKey:from:.
+ SystemBrowser browseWithDragNDrop ifTrue: [
+ listSpec
+ dragItem: #dragFromMessageList:;
+ dragType: #dragTypeForMessageListAt:].
- SystemBrowser browseWithDragNDrop
- ifTrue:[listSpec dragItem: #dragFromMessageList:].
^listSpec
!

Item was added:
+ ----- Method: Browser>>dragTypeForMessageListAt: (in category 'drag and drop') -----
+ dragTypeForMessageListAt: index
+
+ ^ #sourceCode!




Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Tools-mt.1029.mcz

Christoph Thiede

I did not realize this new feature before I was cleaning up my inbox today. Great idea (probably inspired from Vivide?)! :-)


Maybe reconsider the initialExtent of pure CodeHolders? By default, the look a bit too large to me.


Best,

Christoph


Von: Squeak-dev <[hidden email]> im Auftrag von Taeumel, Marcel
Gesendet: Donnerstag, 4. März 2021 15:46:49
An: squeak-dev
Betreff: Re: [squeak-dev] The Trunk: Tools-mt.1029.mcz
 
Here is an example:


Am 04.03.2021 15:38:47 schrieb [hidden email] <[hidden email]>:

Marcel Taeumel uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-mt.1029.mcz

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

Name: Tools-mt.1029
Author: mt
Time: 4 March 2021, 3:38:36.350661 pm
UUID: bef0c471-6ff1-774d-860e-8958e1aa508b
Ancestors: Tools-mt.1028

Enable source-code dragging through a browser's message list to be dropped into the world to open a compact code editor.

Complements Tools-mt.1028, ToolBuilder-Kernel-mt.139, ToolBuilder-Morphic-mt.274, and Morphic-mt.1733.

=============== Diff against Tools-mt.1028 ===============

Item was changed:
----- Method: Browser>>buildMessageListWith: (in category 'toolbuilder') -----
buildMessageListWith: builder
| listSpec |
listSpec := builder pluggableListSpec new.
listSpec
model: self;
list: #messageList;
getIndex: #messageListIndex;
setIndex: #messageListIndex:;
icon: #messageIconAt:;
helpItem: #messageHelpAt:;
menu: #messageListMenu:shifted:;
keyPress: #messageListKey:from:.
+ SystemBrowser browseWithDragNDrop ifTrue: [
+ listSpec
+ dragItem: #dragFromMessageList:;
+ dragType: #dragTypeForMessageListAt:].
- SystemBrowser browseWithDragNDrop
- ifTrue:[listSpec dragItem: #dragFromMessageList:].
^listSpec
!

Item was added:
+ ----- Method: Browser>>dragTypeForMessageListAt: (in category 'drag and drop') -----
+ dragTypeForMessageListAt: index
+
+ ^ #sourceCode!




Carpe Squeak!
Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Tools-mt.1029.mcz

Jakob Reschke
Now that I receive the list emails properly again as opposed to when this was committed:

I also like this very much, thank you Marcel. :-)

Am So., 25. Apr. 2021 um 20:49 Uhr schrieb Thiede, Christoph <[hidden email]>:

I did not realize this new feature before I was cleaning up my inbox today. Great idea (probably inspired from Vivide?)! :-)


Maybe reconsider the initialExtent of pure CodeHolders? By default, the look a bit too large to me.


Best,

Christoph


Von: Squeak-dev <[hidden email]> im Auftrag von Taeumel, Marcel
Gesendet: Donnerstag, 4. März 2021 15:46:49
An: squeak-dev
Betreff: Re: [squeak-dev] The Trunk: Tools-mt.1029.mcz
 
Here is an example:


Am 04.03.2021 15:38:47 schrieb [hidden email] <[hidden email]>:

Marcel Taeumel uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-mt.1029.mcz

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

Name: Tools-mt.1029
Author: mt
Time: 4 March 2021, 3:38:36.350661 pm
UUID: bef0c471-6ff1-774d-860e-8958e1aa508b
Ancestors: Tools-mt.1028

Enable source-code dragging through a browser's message list to be dropped into the world to open a compact code editor.

Complements Tools-mt.1028, ToolBuilder-Kernel-mt.139, ToolBuilder-Morphic-mt.274, and Morphic-mt.1733.

=============== Diff against Tools-mt.1028 ===============

Item was changed:
----- Method: Browser>>buildMessageListWith: (in category 'toolbuilder') -----
buildMessageListWith: builder
| listSpec |
listSpec := builder pluggableListSpec new.
listSpec
model: self;
list: #messageList;
getIndex: #messageListIndex;
setIndex: #messageListIndex:;
icon: #messageIconAt:;
helpItem: #messageHelpAt:;
menu: #messageListMenu:shifted:;
keyPress: #messageListKey:from:.
+ SystemBrowser browseWithDragNDrop ifTrue: [
+ listSpec
+ dragItem: #dragFromMessageList:;
+ dragType: #dragTypeForMessageListAt:].
- SystemBrowser browseWithDragNDrop
- ifTrue:[listSpec dragItem: #dragFromMessageList:].
^listSpec
!

Item was added:
+ ----- Method: Browser>>dragTypeForMessageListAt: (in category 'drag and drop') -----
+ dragTypeForMessageListAt: index
+
+ ^ #sourceCode!





Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Tools-mt.1029.mcz

timrowledge


> On 2021-04-25, at 12:16 PM, Jakob Reschke <[hidden email]> wrote:
>
> Now that I receive the list emails properly again as opposed to when this was committed:
>
> I also like this very much, thank you Marcel. :-)

It is indeed nice. Perhaps extendable for dragging protocols, classes or categories out as well? I remember doing  some browser creation cleanup a while back that might tie in with the concept.


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Strange OpCodes: SLTMDL: Shift Left, Test Mask and Dim the Lights



Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Tools-mt.1029.mcz

Christoph Thiede

Perhaps extendable for dragging protocols, classes or categories out as well?


Wow, nice ideas! Please find the attached change set for a first attempt. It adds support for dragging classes, packages, system categories, and method categories from a browser into the world. For moving methods in a system browserI have already committed some improvements recently. :-)


If you like the proposal, we can rethink the dragTypeSelectors again. Maybe we should take up the proposals with MIME types again, but I am unsure how we can establish a simple but expressive drag type model. See PasteUpMorph >> #wantsDroppedTransferMorph: for a better understanding of the problem.


Best,

Christoph


Von: Squeak-dev <[hidden email]> im Auftrag von tim Rowledge <[hidden email]>
Gesendet: Sonntag, 25. April 2021 22:13:25
An: The general-purpose Squeak developers list
Betreff: Re: [squeak-dev] The Trunk: Tools-mt.1029.mcz
 


> On 2021-04-25, at 12:16 PM, Jakob Reschke <jakres+[hidden email]> wrote:
>
> Now that I receive the list emails properly again as opposed to when this was committed:
>
> I also like this very much, thank you Marcel. :-)

It is indeed nice. Perhaps extendable for dragging protocols, classes or categories out as well? I remember doing  some browser creation cleanup a while back that might tie in with the concept.


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Strange OpCodes: SLTMDL: Shift Left, Test Mask and Dim the Lights






world-drag-classes.2.cs (19K) Download Attachment
Carpe Squeak!
Reply | Threaded
Open this post in threaded view
|

Browser flash (was Re: The Trunk: Tools-mt.1029.mcz)

timrowledge


> On 2021-04-25, at 2:59 PM, Thiede, Christoph <[hidden email]> wrote:
>
> <world-drag-classes.2.cs>

Yeah, that's a very nice start. So, just as some thoughts relating -

 - how about some gesture to open a hierarchy browser instead ? Actually, a switch to change a typical browser into a hierarchy browser  - in the manner of the inspect/explore switch - would be interesting

 - all the other browsers ought to support the drag stuff too. I see some do, but the messagetrace doesn't appear to.

 - drag a method into a MessageTrace browser and thus add implementors of that message to the stack. Maybe shift-drag adds senders of the message instead. Or, for a more extensive change, drop the message on the 'senders' button to see the senders, the 'implementors' to see (guess what) the implementors. Hell, have simple drop targets available to perform such actions; drag a method/class/etc onto a 'versions' drop target. Or 'fileout'. Etc.

- Nothing to do with d&d, but how about a very simple way to add notes to methods in a browser? I'm thinking here of using a messagetrace browser and wanting to add little (pop-up?) notes to remind me of any points I notice as I follow the messages up and down. Why was I looking at this? What is it related to? All that stuff it is so easy to forget a week later when you start climbing back up the rabbit hole you fell into.


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Strange OpCodes: BW: Branch on Whim



Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Tools-mt.1029.mcz

Chris Muller-3
In reply to this post by marcel.taeumel
If I understand this correctly, it'll probably conflict with Maui's
equivalent gesture, and only for the equivalent of dragging a splitter
bar all the way up to the top..?  (really, is it just substituting
that one DnD operation for another?)  Except it opens a new window,
too (which I'll have to later close?).  Maybe I'm missing something,
but it seems heavy and laborious for only what it does.  Hopefully the
hook can be customized..


On Thu, Mar 4, 2021 at 8:47 AM Marcel Taeumel <[hidden email]> wrote:

>
> Here is an example:
>
>
> Am 04.03.2021 15:38:47 schrieb [hidden email] <[hidden email]>:
>
> Marcel Taeumel uploaded a new version of Tools to project The Trunk:
> http://source.squeak.org/trunk/Tools-mt.1029.mcz
>
> ==================== Summary ====================
>
> Name: Tools-mt.1029
> Author: mt
> Time: 4 March 2021, 3:38:36.350661 pm
> UUID: bef0c471-6ff1-774d-860e-8958e1aa508b
> Ancestors: Tools-mt.1028
>
> Enable source-code dragging through a browser's message list to be dropped into the world to open a compact code editor.
>
> Complements Tools-mt.1028, ToolBuilder-Kernel-mt.139, ToolBuilder-Morphic-mt.274, and Morphic-mt.1733.
>
> =============== Diff against Tools-mt.1028 ===============
>
> Item was changed:
> ----- Method: Browser>>buildMessageListWith: (in category 'toolbuilder') -----
> buildMessageListWith: builder
> | listSpec |
> listSpec := builder pluggableListSpec new.
> listSpec
> model: self;
> list: #messageList;
> getIndex: #messageListIndex;
> setIndex: #messageListIndex:;
> icon: #messageIconAt:;
> helpItem: #messageHelpAt:;
> menu: #messageListMenu:shifted:;
> keyPress: #messageListKey:from:.
> + SystemBrowser browseWithDragNDrop ifTrue: [
> + listSpec
> + dragItem: #dragFromMessageList:;
> + dragType: #dragTypeForMessageListAt:].
> - SystemBrowser browseWithDragNDrop
> - ifTrue:[listSpec dragItem: #dragFromMessageList:].
> ^listSpec
> !
>
> Item was added:
> + ----- Method: Browser>>dragTypeForMessageListAt: (in category 'drag and drop') -----
> + dragTypeForMessageListAt: index
> +
> + ^ #sourceCode!
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Browser flash (was Re: The Trunk: Tools-mt.1029.mcz)

Chris Muller-3
In reply to this post by timrowledge
Hi Tim,

>  - all the other browsers ought to support the drag stuff too. I see some do, but the messagetrace doesn't appear to.

"The drag stuff" tells me you don't have a firm grip on the purpose
and scope of the use-cases.  MessageTrace uses swipe to select
multiple methods.  It's rightly confined to what you trace, DnD
outside its browser doesn't make sense for tracing.

>  - drag a method into a MessageTrace browser and thus add implementors of that message to the stack.

That would result in multiple, unrelated Trace's all in the one
window.  I don't understand why you'd want to do that.

> - Nothing to do with d&d, but how about a very simple way to add notes to methods in a browser? I'm thinking here of using a messagetrace browser and wanting to add little (pop-up?) notes to remind me of any points I notice as I follow the messages up and down. Why was I looking at this? What is it related to? All that stuff it is so easy to forget a week later when you start climbing back up the rabbit hole you fell into.

Why not simply send Object>>#todo, and include a comment next to it?
No little pop-ups please!

Reply | Threaded
Open this post in threaded view
|

Re: Browser flash (was Re: The Trunk: Tools-mt.1029.mcz)

timrowledge


> On 2021-04-28, at 12:18 PM, Chris Muller <[hidden email]> wrote:
>
> Hi Tim,
>
>> - all the other browsers ought to support the drag stuff too. I see some do, but the messagetrace doesn't appear to.
>
> "The drag stuff" tells me you don't have a firm grip on the purpose
> and scope of the use-cases.  MessageTrace uses swipe to select
> multiple methods.  It's rightly confined to what you trace, DnD
> outside its browser doesn't make sense for tracing.

I mildly disagree. Dragging *out* would make sense in various ways. To open another browser, for example. To drop into a text view (where I'd quite like to get the method's reference pasted, perhaps with shift held the method source. Right now we get a not very useful 'compiledMethodBunchOfDigits') or a FileBrowser.

>
>> - drag a method into a MessageTrace browser and thus add implementors of that message to the stack.
>
> That would result in multiple, unrelated Trace's all in the one
> window.  I don't understand why you'd want to do that.

I can imagine having a use for a message trace open on several related methods that do not specifically tie together. Maybe #at: & #at:put: would be an example. This would be using a message tracer as a way of gathering methods together as part of thinking about refactorings or extensions.

>
>> - Nothing to do with d&d, but how about a very simple way to add notes to methods in a browser? I'm thinking here of using a messagetrace browser and wanting to add little (pop-up?) notes to remind me of any points I notice as I follow the messages up and down. Why was I looking at this? What is it related to? All that stuff it is so easy to forget a week later when you start climbing back up the rabbit hole you fell into.
>
> Why not simply send Object>>#todo, and include a comment next to it?
> No little pop-ups please!

I don't want to *edit* the code for this, I want to *annotate* it in the context of the tool I am using.

One might make a plausible argument that this is not a message tracer anymore; whatever. I suggest that it would be a useful tool.


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
"Bother" said Pooh, as he realised Piglet was undercooked.



Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Tools-mt.1029.mcz

marcel.taeumel
In reply to this post by Chris Muller-3
Hi Chris,

for custom projects such as Maui, you should change the world's drop handler to fit your needs. It is very easy and avoids any conflict. Of course you can replicate some of the standard features if you want. For example, I did this for Vivide to open custom tools.

See PasteUpMorph >> #transferMorphConverter:

Just call it with a selector when Maui starts.

Best,
Marcel

From: Squeak-dev <[hidden email]> on behalf of Chris Muller <[hidden email]>
Sent: Wednesday, April 28, 2021 9:03:34 PM
To: The general-purpose Squeak developers list <[hidden email]>
Subject: Re: [squeak-dev] The Trunk: Tools-mt.1029.mcz
 
If I understand this correctly, it'll probably conflict with Maui's
equivalent gesture, and only for the equivalent of dragging a splitter
bar all the way up to the top..?  (really, is it just substituting
that one DnD operation for another?)  Except it opens a new window,
too (which I'll have to later close?).  Maybe I'm missing something,
but it seems heavy and laborious for only what it does.  Hopefully the
hook can be customized..


On Thu, Mar 4, 2021 at 8:47 AM Marcel Taeumel <[hidden email]> wrote:
>
> Here is an example:
>
>
> Am 04.03.2021 15:38:47 schrieb [hidden email] <[hidden email]>:
>
> Marcel Taeumel uploaded a new version of Tools to project The Trunk:
> http://source.squeak.org/trunk/Tools-mt.1029.mcz
>
> ==================== Summary ====================
>
> Name: Tools-mt.1029
> Author: mt
> Time: 4 March 2021, 3:38:36.350661 pm
> UUID: bef0c471-6ff1-774d-860e-8958e1aa508b
> Ancestors: Tools-mt.1028
>
> Enable source-code dragging through a browser's message list to be dropped into the world to open a compact code editor.
>
> Complements Tools-mt.1028, ToolBuilder-Kernel-mt.139, ToolBuilder-Morphic-mt.274, and Morphic-mt.1733.
>
> =============== Diff against Tools-mt.1028 ===============
>
> Item was changed:
> ----- Method: Browser>>buildMessageListWith: (in category 'toolbuilder') -----
> buildMessageListWith: builder
> | listSpec |
> listSpec := builder pluggableListSpec new.
> listSpec
> model: self;
> list: #messageList;
> getIndex: #messageListIndex;
> setIndex: #messageListIndex:;
> icon: #messageIconAt:;
> helpItem: #messageHelpAt:;
> menu: #messageListMenu:shifted:;
> keyPress: #messageListKey:from:.
> + SystemBrowser browseWithDragNDrop ifTrue: [
> + listSpec
> + dragItem: #dragFromMessageList:;
> + dragType: #dragTypeForMessageListAt:].
> - SystemBrowser browseWithDragNDrop
> - ifTrue:[listSpec dragItem: #dragFromMessageList:].
> ^listSpec
> !
>
> Item was added:
> + ----- Method: Browser>>dragTypeForMessageListAt: (in category 'drag and drop') -----
> + dragTypeForMessageListAt: index
> +
> + ^ #sourceCode!
>
>
>



Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Tools-mt.1029.mcz

marcel.taeumel
Hi Chris,

I wanted to check Maui but its latest version does not load in Squeak Trunk because its installer scripts depend on some local magma-index SqueakSource server.

More specifically, it wants to load "Compiler" from #local->'squeak', which ends up in Installer class >> #defaultLocalRepository, which answers just a local file-based repository on "mc/squeak" ... which does not exist ony my machine. :-)

What is the expected setup here? Is there a fall-back? Why not just load the code from source.squeak.org/trunk?

Best,
Marcel

Am 29.04.2021 07:01:47 schrieb Taeumel, Marcel <[hidden email]>:

Hi Chris,

for custom projects such as Maui, you should change the world's drop handler to fit your needs. It is very easy and avoids any conflict. Of course you can replicate some of the standard features if you want. For example, I did this for Vivide to open custom tools.

See PasteUpMorph >> #transferMorphConverter:

Just call it with a selector when Maui starts.

Best,
Marcel

From: Squeak-dev <[hidden email]> on behalf of Chris Muller <[hidden email]>
Sent: Wednesday, April 28, 2021 9:03:34 PM
To: The general-purpose Squeak developers list <[hidden email]>
Subject: Re: [squeak-dev] The Trunk: Tools-mt.1029.mcz
 
If I understand this correctly, it'll probably conflict with Maui's
equivalent gesture, and only for the equivalent of dragging a splitter
bar all the way up to the top..?  (really, is it just substituting
that one DnD operation for another?)  Except it opens a new window,
too (which I'll have to later close?).  Maybe I'm missing something,
but it seems heavy and laborious for only what it does.  Hopefully the
hook can be customized..


On Thu, Mar 4, 2021 at 8:47 AM Marcel Taeumel <[hidden email]> wrote:
>
> Here is an example:
>
>
> Am 04.03.2021 15:38:47 schrieb [hidden email] <[hidden email]>:
>
> Marcel Taeumel uploaded a new version of Tools to project The Trunk:
> http://source.squeak.org/trunk/Tools-mt.1029.mcz
>
> ==================== Summary ====================
>
> Name: Tools-mt.1029
> Author: mt
> Time: 4 March 2021, 3:38:36.350661 pm
> UUID: bef0c471-6ff1-774d-860e-8958e1aa508b
> Ancestors: Tools-mt.1028
>
> Enable source-code dragging through a browser's message list to be dropped into the world to open a compact code editor.
>
> Complements Tools-mt.1028, ToolBuilder-Kernel-mt.139, ToolBuilder-Morphic-mt.274, and Morphic-mt.1733.
>
> =============== Diff against Tools-mt.1028 ===============
>
> Item was changed:
> ----- Method: Browser>>buildMessageListWith: (in category 'toolbuilder') -----
> buildMessageListWith: builder
> | listSpec |
> listSpec := builder pluggableListSpec new.
> listSpec
> model: self;
> list: #messageList;
> getIndex: #messageListIndex;
> setIndex: #messageListIndex:;
> icon: #messageIconAt:;
> helpItem: #messageHelpAt:;
> menu: #messageListMenu:shifted:;
> keyPress: #messageListKey:from:.
> + SystemBrowser browseWithDragNDrop ifTrue: [
> + listSpec
> + dragItem: #dragFromMessageList:;
> + dragType: #dragTypeForMessageListAt:].
> - SystemBrowser browseWithDragNDrop
> - ifTrue:[listSpec dragItem: #dragFromMessageList:].
> ^listSpec
> !
>
> Item was added:
> + ----- Method: Browser>>dragTypeForMessageListAt: (in category 'drag and drop') -----
> + dragTypeForMessageListAt: index
> +
> + ^ #sourceCode!
>
>
>



Reply | Threaded
Open this post in threaded view
|

Re: Browser flash (was Re: The Trunk: Tools-mt.1029.mcz)

marcel.taeumel
In reply to this post by timrowledge
Hmm... it is unusual that a normal click can also select a range. Usually, one would expect to use SHIFT+CLICK to do so, which you can actually do too. :-D I suppose that behavior originates from that older multi-selection list, where a simple click changes the selection state of a single element.... which is also quite unusual given today's widgets in other GUI frameworks.

Here is what I would expect from a multi-selection list:
- simple click clears and sets the entire selection to a single element
- shift+click adds a range to the selection starting from the current element to the clicked one
- ctrl+click toggles the selection state of a single element
- click-drag drags whatever is currently selected

Best,
Marcel

Am 28.04.2021 23:47:24 schrieb tim Rowledge <[hidden email]>:



> On 2021-04-28, at 12:18 PM, Chris Muller wrote:
>
> Hi Tim,
>
>> - all the other browsers ought to support the drag stuff too. I see some do, but the messagetrace doesn't appear to.
>
> "The drag stuff" tells me you don't have a firm grip on the purpose
> and scope of the use-cases. MessageTrace uses swipe to select
> multiple methods. It's rightly confined to what you trace, DnD
> outside its browser doesn't make sense for tracing.

I mildly disagree. Dragging *out* would make sense in various ways. To open another browser, for example. To drop into a text view (where I'd quite like to get the method's reference pasted, perhaps with shift held the method source. Right now we get a not very useful 'compiledMethodBunchOfDigits') or a FileBrowser.

>
>> - drag a method into a MessageTrace browser and thus add implementors of that message to the stack.
>
> That would result in multiple, unrelated Trace's all in the one
> window. I don't understand why you'd want to do that.

I can imagine having a use for a message trace open on several related methods that do not specifically tie together. Maybe #at: & #at:put: would be an example. This would be using a message tracer as a way of gathering methods together as part of thinking about refactorings or extensions.

>
>> - Nothing to do with d&d, but how about a very simple way to add notes to methods in a browser? I'm thinking here of using a messagetrace browser and wanting to add little (pop-up?) notes to remind me of any points I notice as I follow the messages up and down. Why was I looking at this? What is it related to? All that stuff it is so easy to forget a week later when you start climbing back up the rabbit hole you fell into.
>
> Why not simply send Object>>#todo, and include a comment next to it?
> No little pop-ups please!

I don't want to *edit* the code for this, I want to *annotate* it in the context of the tool I am using.

One might make a plausible argument that this is not a message tracer anymore; whatever. I suggest that it would be a useful tool.


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
"Bother" said Pooh, as he realised Piglet was undercooked.





Reply | Threaded
Open this post in threaded view
|

Re: Browser flash (was Re: The Trunk: Tools-mt.1029.mcz)

Jakob Reschke
Outside of Squeak that would be my expectations as well. Ctrl click may open the halo instead...

I can also understand that Chris would be sad to see range selection without the need for touching the keyboard go away. I often use that in the TestRunner to select some but not all test case classes of a package.

Marcel Taeumel <[hidden email]> schrieb am Fr., 30. Apr. 2021, 10:20:
Hmm... it is unusual that a normal click can also select a range. Usually, one would expect to use SHIFT+CLICK to do so, which you can actually do too. :-D I suppose that behavior originates from that older multi-selection list, where a simple click changes the selection state of a single element.... which is also quite unusual given today's widgets in other GUI frameworks.

Here is what I would expect from a multi-selection list:
- simple click clears and sets the entire selection to a single element
- shift+click adds a range to the selection starting from the current element to the clicked one
- ctrl+click toggles the selection state of a single element
- click-drag drags whatever is currently selected

Best,
Marcel

Am 28.04.2021 23:47:24 schrieb tim Rowledge <[hidden email]>:



> On 2021-04-28, at 12:18 PM, Chris Muller wrote:
>
> Hi Tim,
>
>> - all the other browsers ought to support the drag stuff too. I see some do, but the messagetrace doesn't appear to.
>
> "The drag stuff" tells me you don't have a firm grip on the purpose
> and scope of the use-cases. MessageTrace uses swipe to select
> multiple methods. It's rightly confined to what you trace, DnD
> outside its browser doesn't make sense for tracing.

I mildly disagree. Dragging *out* would make sense in various ways. To open another browser, for example. To drop into a text view (where I'd quite like to get the method's reference pasted, perhaps with shift held the method source. Right now we get a not very useful 'compiledMethodBunchOfDigits') or a FileBrowser.

>
>> - drag a method into a MessageTrace browser and thus add implementors of that message to the stack.
>
> That would result in multiple, unrelated Trace's all in the one
> window. I don't understand why you'd want to do that.

I can imagine having a use for a message trace open on several related methods that do not specifically tie together. Maybe #at: & #at:put: would be an example. This would be using a message tracer as a way of gathering methods together as part of thinking about refactorings or extensions.

>
>> - Nothing to do with d&d, but how about a very simple way to add notes to methods in a browser? I'm thinking here of using a messagetrace browser and wanting to add little (pop-up?) notes to remind me of any points I notice as I follow the messages up and down. Why was I looking at this? What is it related to? All that stuff it is so easy to forget a week later when you start climbing back up the rabbit hole you fell into.
>
> Why not simply send Object>>#todo, and include a comment next to it?
> No little pop-ups please!

I don't want to *edit* the code for this, I want to *annotate* it in the context of the tool I am using.

One might make a plausible argument that this is not a message tracer anymore; whatever. I suggest that it would be a useful tool.


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
"Bother" said Pooh, as he realised Piglet was undercooked.






Reply | Threaded
Open this post in threaded view
|

Re: Browser flash (was Re: The Trunk: Tools-mt.1029.mcz)

timrowledge
In reply to this post by marcel.taeumel


> On 2021-04-30, at 1:19 AM, Marcel Taeumel <[hidden email]> wrote:
>
> Hmm... it is unusual that a normal click can also select a range. Usually, one would expect to use SHIFT+CLICK to do so, which you can actually do too. :-D I suppose that behavior originates from that older multi-selection list, where a simple click changes the selection state of a single element.... which is also quite unusual given today's widgets in other GUI frameworks.
>
> Here is what I would expect from a multi-selection list:
> - simple click clears and sets the entire selection to a single element
> - shift+click adds a range to the selection starting from the current element to the clicked one
> - ctrl+click toggles the selection state of a single element
> - click-drag drags whatever is currently selected

Pretty much what I'd prefer too. I accept there are plausible 'better' approaches but the daily reality is that having a system reasonably close to (what passes for) normal would be simpler to work with.

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Strange OpCodes: SEXI: Sign EXtend Integer



Reply | Threaded
Open this post in threaded view
|

Re: Browser flash (was Re: The Trunk: Tools-mt.1029.mcz)

Christoph Thiede

Hi all,


first of all, I'd like to remind kindly of my original changeset. All the other ideas are exciting as well, but maybe we can maintain a better overview if we return to our roots of trunk-based development ... :-)


- drag a method into a MessageTrace browser and thus add implementors of that message to the stack.


Hm, is this maybe stuff for a new tool? The proposal reminds me a bit of Vivide, did you try it out? :-)


> > Here is what I would expect from a multi-selection list:

> > - simple click clears and sets the entire selection to a single element
> > - shift+click adds a range to the selection starting from the current element to the clicked one
> > - ctrl+click toggles the selection state of a single element
> > - click-drag drags whatever is currently selected

> Outside of Squeak that would be my expectations as well. Ctrl click may open the halo instead...

I can also understand that Chris would be sad to see range selection without the need for touching the keyboard go away. I often use that in the TestRunner to select some but not all test case classes of a package.


Pretty much my thoughts. That does mean that I understand Marcel's arguments, too, but it might indeed interrupt many people's workflows, including mine - I use the "laid-back select" very often in various changes tools. New preference? :P


> > > - Nothing to do with d&d, but how about a very simple way to add notes to methods in a browser? I'm thinking here of using a messagetrace browser and wanting to add little (pop-up?) notes to remind me of any points I notice as I follow the messages up and down. Why was I looking at this? What is it related to? All that stuff it is so easy to forget a week later when you start climbing back up the rabbit hole you fell into.
> >
> > Why not simply send Object>>#todo, and include a comment next to it?
> > No little pop-ups please!
> I don't want to *edit* the code for this, I want to *annotate* it in the context of the tool I am using.
> One might make a plausible argument that this is not a message tracer anymore; whatever. I suggest that it would be a useful tool.

Have you taken a look at CodeTalk? I would be surprised if it still worked today, but the idea seems not completely new.

But regarding your argument of separating logic and comments, I'm not sure whether I understand your motivation correctly. When would it be helpful for you not to treat them together? Code documents our intentions and approaches, and if something was wrong or to do with the code, I would also want to check in these thoughts together with the code ...


Best,

Christoph



Von: Squeak-dev <[hidden email]> im Auftrag von tim Rowledge <[hidden email]>
Gesendet: Freitag, 30. April 2021 19:02:14
An: The general-purpose Squeak developers list
Betreff: Re: [squeak-dev] Browser flash (was Re: The Trunk: Tools-mt.1029.mcz)
 


> On 2021-04-30, at 1:19 AM, Marcel Taeumel <[hidden email]> wrote:
>
> Hmm... it is unusual that a normal click can also select a range. Usually, one would expect to use SHIFT+CLICK to do so, which you can actually do too. :-D I suppose that behavior originates from that older multi-selection list, where a simple click changes the selection state of a single element.... which is also quite unusual given today's widgets in other GUI frameworks.
>
> Here is what I would expect from a multi-selection list:
> - simple click clears and sets the entire selection to a single element
> - shift+click adds a range to the selection starting from the current element to the clicked one
> - ctrl+click toggles the selection state of a single element
> - click-drag drags whatever is currently selected

Pretty much what I'd prefer too. I accept there are plausible 'better' approaches but the daily reality is that having a system reasonably close to (what passes for) normal would be simpler to work with.

tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Strange OpCodes: SEXI: Sign EXtend Integer



Von: Squeak-dev <[hidden email]> im Auftrag von Jakob Reschke <jakres+[hidden email]>
Gesendet: Freitag, 30. April 2021 11:37 Uhr
An: The general-purpose Squeak developers list
Betreff: Re: [squeak-dev] Browser flash (was Re: The Trunk: Tools-mt.1029.mcz)
 
Outside of Squeak that would be my expectations as well. Ctrl click may open the halo instead...

I can also understand that Chris would be sad to see range selection without the need for touching the keyboard go away. I often use that in the TestRunner to select some but not all test case classes of a package.

Marcel Taeumel <[hidden email]> schrieb am Fr., 30. Apr. 2021, 10:20:
Hmm... it is unusual that a normal click can also select a range. Usually, one would expect to use SHIFT+CLICK to do so, which you can actually do too. :-D I suppose that behavior originates from that older multi-selection list, where a simple click changes the selection state of a single element.... which is also quite unusual given today's widgets in other GUI frameworks.

Here is what I would expect from a multi-selection list:
- simple click clears and sets the entire selection to a single element
- shift+click adds a range to the selection starting from the current element to the clicked one
- ctrl+click toggles the selection state of a single element
- click-drag drags whatever is currently selected

Best,
Marcel

Am 28.04.2021 23:47:24 schrieb tim Rowledge <[hidden email]>:



> On 2021-04-28, at 12:18 PM, Chris Muller wrote:
>
> Hi Tim,
>
>> - all the other browsers ought to support the drag stuff too. I see some do, but the messagetrace doesn't appear to.
>
> "The drag stuff" tells me you don't have a firm grip on the purpose
> and scope of the use-cases. MessageTrace uses swipe to select
> multiple methods. It's rightly confined to what you trace, DnD
> outside its browser doesn't make sense for tracing.

I mildly disagree. Dragging *out* would make sense in various ways. To open another browser, for example. To drop into a text view (where I'd quite like to get the method's reference pasted, perhaps with shift held the method source. Right now we get a not very useful 'compiledMethodBunchOfDigits') or a FileBrowser.

>
>> - drag a method into a MessageTrace browser and thus add implementors of that message to the stack.
>
> That would result in multiple, unrelated Trace's all in the one
> window. I don't understand why you'd want to do that.

I can imagine having a use for a message trace open on several related methods that do not specifically tie together. Maybe #at: & #at:put: would be an example. This would be using a message tracer as a way of gathering methods together as part of thinking about refactorings or extensions.

>
>> - Nothing to do with d&d, but how about a very simple way to add notes to methods in a browser? I'm thinking here of using a messagetrace browser and wanting to add little (pop-up?) notes to remind me of any points I notice as I follow the messages up and down. Why was I looking at this? What is it related to? All that stuff it is so easy to forget a week later when you start climbing back up the rabbit hole you fell into.
>
> Why not simply send Object>>#todo, and include a comment next to it?
> No little pop-ups please!

I don't want to *edit* the code for this, I want to *annotate* it in the context of the tool I am using.

One might make a plausible argument that this is not a message tracer anymore; whatever. I suggest that it would be a useful tool.


tim
--
tim Rowledge; [hidden email]http://www.rowledge.org/tim
"Bother" said Pooh, as he realised Piglet was undercooked.






Carpe Squeak!
Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Tools-mt.1029.mcz

Chris Muller-3
In reply to this post by marcel.taeumel
Hi Marcel,

I know you already got it loaded, but thanks for the heads-up about
"Compiler".  I have my own version of "Compiler" which simply changes
the formatting to Kent Beck style and nothing else.  I need to move
all my Squeak mods which I keep in 'squeak' down into "MyInstaller"
instead of MaInstaller.

Thanks.

On Thu, Apr 29, 2021 at 2:35 AM Marcel Taeumel <[hidden email]> wrote:

>
> Hi Chris,
>
> I wanted to check Maui but its latest version does not load in Squeak Trunk because its installer scripts depend on some local magma-index SqueakSource server.
>
> More specifically, it wants to load "Compiler" from #local->'squeak', which ends up in Installer class >> #defaultLocalRepository, which answers just a local file-based repository on "mc/squeak" ... which does not exist ony my machine. :-)
>
> What is the expected setup here? Is there a fall-back? Why not just load the code from source.squeak.org/trunk?
>
> Best,
> Marcel
>
> Am 29.04.2021 07:01:47 schrieb Taeumel, Marcel <[hidden email]>:
>
> Hi Chris,
>
> for custom projects such as Maui, you should change the world's drop handler to fit your needs. It is very easy and avoids any conflict. Of course you can replicate some of the standard features if you want. For example, I did this for Vivide to open custom tools.
>
> See PasteUpMorph >> #transferMorphConverter:
>
> Just call it with a selector when Maui starts.
>
> Best,
> Marcel
> ________________________________
> From: Squeak-dev <[hidden email]> on behalf of Chris Muller <[hidden email]>
> Sent: Wednesday, April 28, 2021 9:03:34 PM
> To: The general-purpose Squeak developers list <[hidden email]>
> Subject: Re: [squeak-dev] The Trunk: Tools-mt.1029.mcz
>
> If I understand this correctly, it'll probably conflict with Maui's
> equivalent gesture, and only for the equivalent of dragging a splitter
> bar all the way up to the top..?  (really, is it just substituting
> that one DnD operation for another?)  Except it opens a new window,
> too (which I'll have to later close?).  Maybe I'm missing something,
> but it seems heavy and laborious for only what it does.  Hopefully the
> hook can be customized..
>
>
> On Thu, Mar 4, 2021 at 8:47 AM Marcel Taeumel <[hidden email]> wrote:
> >
> > Here is an example:
> >
> >
> > Am 04.03.2021 15:38:47 schrieb [hidden email] <[hidden email]>:
> >
> > Marcel Taeumel uploaded a new version of Tools to project The Trunk:
> > http://source.squeak.org/trunk/Tools-mt.1029.mcz
> >
> > ==================== Summary ====================
> >
> > Name: Tools-mt.1029
> > Author: mt
> > Time: 4 March 2021, 3:38:36.350661 pm
> > UUID: bef0c471-6ff1-774d-860e-8958e1aa508b
> > Ancestors: Tools-mt.1028
> >
> > Enable source-code dragging through a browser's message list to be dropped into the world to open a compact code editor.
> >
> > Complements Tools-mt.1028, ToolBuilder-Kernel-mt.139, ToolBuilder-Morphic-mt.274, and Morphic-mt.1733.
> >
> > =============== Diff against Tools-mt.1028 ===============
> >
> > Item was changed:
> > ----- Method: Browser>>buildMessageListWith: (in category 'toolbuilder') -----
> > buildMessageListWith: builder
> > | listSpec |
> > listSpec := builder pluggableListSpec new.
> > listSpec
> > model: self;
> > list: #messageList;
> > getIndex: #messageListIndex;
> > setIndex: #messageListIndex:;
> > icon: #messageIconAt:;
> > helpItem: #messageHelpAt:;
> > menu: #messageListMenu:shifted:;
> > keyPress: #messageListKey:from:.
> > + SystemBrowser browseWithDragNDrop ifTrue: [
> > + listSpec
> > + dragItem: #dragFromMessageList:;
> > + dragType: #dragTypeForMessageListAt:].
> > - SystemBrowser browseWithDragNDrop
> > - ifTrue:[listSpec dragItem: #dragFromMessageList:].
> > ^listSpec
> > !
> >
> > Item was added:
> > + ----- Method: Browser>>dragTypeForMessageListAt: (in category 'drag and drop') -----
> > + dragTypeForMessageListAt: index
> > +
> > + ^ #sourceCode!
> >
> >
> >
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Browser flash (was Re: The Trunk: Tools-mt.1029.mcz)

Chris Muller-3
In reply to this post by marcel.taeumel
Hi Marcel,

> Hmm... it is unusual that a normal click can also select a range.

Hmm, no, I don't think so.  Swipe select is very common -- like
swiping characters in text, or cells of a spreadsheet, and
"MultiselectList" was (is?) the basis of many browsers in VisualAge Smalltalk.
In Squeak it's called PluggableListMorphOfMany (used by changes
browser) and it's [Alternate] incantation which doesn't lose
selections simply because your framerate is too low..

And, yes, Control was *supposed* to be a modifier key to toggle
individuals, but as Jakob pointed out, it's intercepted by the halo.

All the functions Tim mentioned are currently available via the menus.


 - Chris

Reply | Threaded
Open this post in threaded view
|

Re: Browser flash (was Re: The Trunk: Tools-mt.1029.mcz)

marcel.taeumel
Hi Chris.

Hmm, no, I don't think so. Swipe select is very common -- like swiping characters in text, or cells of a spreadsheet

Ah, that's right. In the Windows Explorer, there has always been a conflict between click-drag-out gestures and click-drag-select gestures. It is sometimes really hard to intentionally perform one or the other.

Many touch interfaces opted for having an extra drag handle nearby. Maybe this could work?

Best,
Marcel

Am 07.05.2021 02:02:44 schrieb Chris Muller <[hidden email]>:

Hi Marcel,

> Hmm... it is unusual that a normal click can also select a range.

Hmm, no, I don't think so. Swipe select is very common -- like
swiping characters in text, or cells of a spreadsheet, and
"MultiselectList" was (is?) the basis of many browsers in VisualAge Smalltalk.
In Squeak it's called PluggableListMorphOfMany (used by changes
browser) and it's [Alternate] incantation which doesn't lose
selections simply because your framerate is too low..

And, yes, Control was *supposed* to be a modifier key to toggle
individuals, but as Jakob pointed out, it's intercepted by the halo.

All the functions Tim mentioned are currently available via the menus.


- Chris



Reply | Threaded
Open this post in threaded view
|

Re: Browser flash (was Re: The Trunk: Tools-mt.1029.mcz)

Tobias Pape
Hi


> On 7. May 2021, at 07:51, Marcel Taeumel <[hidden email]> wrote:
>
> Hi Chris.
>
> > Hmm, no, I don't think so. Swipe select is very common -- like swiping characters in text, or cells of a spreadsheet
>
> Ah, that's right. In the Windows Explorer, there has always been a conflict between click-drag-out gestures and click-drag-select gestures. It is sometimes really hard to intentionally perform one or the other.

Mac makes the distinction based on how long you wait between the click and the drag, at least for text.
So if you
- have a selection,
- click,
- wait for around a second, and
- then drag,
you will drag the selected text around.

In all other cases for text, it changes the selection.

I just found it is similar for files in the Finder (think explorer), but slightly different.
Since files are always in a vertical fashion, _the same as for text_ is true for files as long as you drag _vertically_
I if you click-drag horizontally, it directly drags the file/selection.

I think this is a quite good tradeoff there.

Best regards
        -Tobias

>
> Many touch interfaces opted for having an extra drag handle nearby. Maybe this could work?
>
> Best,
> Marcel
>> Am 07.05.2021 02:02:44 schrieb Chris Muller <[hidden email]>:
>>
>> Hi Marcel,
>>
>> > Hmm... it is unusual that a normal click can also select a range.
>>
>> Hmm, no, I don't think so. Swipe select is very common -- like
>> swiping characters in text, or cells of a spreadsheet, and
>> "MultiselectList" was (is?) the basis of many browsers in VisualAge Smalltalk.
>> In Squeak it's called PluggableListMorphOfMany (used by changes
>> browser) and it's [Alternate] incantation which doesn't lose
>> selections simply because your framerate is too low..
>>
>> And, yes, Control was *supposed* to be a modifier key to toggle
>> individuals, but as Jakob pointed out, it's intercepted by the halo.
>>
>> All the functions Tim mentioned are currently available via the menus.
>>
>>
>> - Chris
>>
>



12