Christoph Thiede uploaded a new version of Tools to project The Inbox:
http://source.squeak.org/inbox/Tools-ct.959.mcz ==================== Summary ==================== Name: Tools-ct.959 Author: ct Time: 16 March 2020, 9:03:12.729937 pm UUID: cae0b2d6-e131-7a40-b6a9-62a90172de94 Ancestors: Tools-mt.955 Proposal: Allow simple change sorters to become become dual sorters, and dual change sorters to be split into two separate change sorters. This commit also refactors DualChangeSorter in general. =============== Diff against Tools-mt.955 =============== Item was added: + ----- Method: ChangeSorter>>addModelItemsToWindowMenu: (in category 'as yet unclassified') ----- + addModelItemsToWindowMenu: aMenu + "Add model-related item to the window menu" + + super addModelItemsToWindowMenu: aMenu. + aMenu addLine. + aMenu add: 'Become dual sorter' translated target: self action: #becomeDualSorter.! Item was added: + ----- Method: ChangeSorter>>becomeDualSorter (in category 'as yet unclassified') ----- + becomeDualSorter + "Switch the contents of the receiver's view to represent a DualChangeSorter. Kind of mitosis: We're doing the anaphase right now." + + | dualSorter | + dualSorter := DualChangeSorter withLeft: self right: nil. + dualSorter initializeSides. + self changed: #close. + ToolBuilder open: dualSorter.! Item was added: + ----- Method: DualChangeSorter class>>new (in category 'instance creation') ----- + new + + ^ super new + initializeSides; + yourself! Item was added: + ----- Method: DualChangeSorter class>>withLeft:right: (in category 'instance creation') ----- + withLeft: leftChangeSorter right: rightChangeSorter + + ^ self basicNew + leftChangeSorter: leftChangeSorter; + rightChangeSorter: rightChangeSorter; + yourself! Item was added: + ----- Method: DualChangeSorter>>addModelItemsToWindowMenu: (in category 'user interface') ----- + addModelItemsToWindowMenu: aMenu + "Add model-related item to the window menu" + + super addModelItemsToWindowMenu: aMenu. + aMenu addLine. + aMenu add: 'Split sides' translated target: self action: #splitSides.! Item was changed: ----- Method: DualChangeSorter>>buildWith: (in category 'toolbuilder') ----- buildWith: builder - | windowSpec window | - leftCngSorter := ChangeSorter new myChangeSet: ChangeSet current. - leftCngSorter parent: self. - rightCngSorter := ChangeSorter new myChangeSet: - ChangeSet secondaryChangeSet. - rightCngSorter parent: self. + | windowSpec window | windowSpec := builder pluggableWindowSpec new. windowSpec model: self. windowSpec label: 'Change Sorter'. windowSpec children: OrderedCollection new. windowSpec label: #labelString. leftCngSorter buildWith: builder in: windowSpec rect: (0@0 extent: 0.5@1). rightCngSorter buildWith: builder in: windowSpec rect: (0.5@0 extent: 0.5@1). window := builder build: windowSpec. leftCngSorter addDependent: window. "so it will get changed: #relabel" rightCngSorter addDependent: window. "so it will get changed: #relabel" ^window! Item was added: + ----- Method: DualChangeSorter>>initializeSides (in category 'initialization') ----- + initializeSides + + leftCngSorter ifNil: [ + leftCngSorter := ChangeSorter new myChangeSet: ChangeSet current]. + leftCngSorter parent: self. + rightCngSorter ifNil: [ + rightCngSorter := ChangeSorter new myChangeSet: ChangeSet secondaryChangeSet]. + rightCngSorter parent: self.! Item was changed: + ----- Method: DualChangeSorter>>isLeftSide: (in category 'accessing') ----- - ----- Method: DualChangeSorter>>isLeftSide: (in category 'other') ----- isLeftSide: theOne "Which side am I?" ^ theOne == leftCngSorter! Item was changed: + ----- Method: DualChangeSorter>>labelString (in category 'toolbuilder') ----- - ----- Method: DualChangeSorter>>labelString (in category 'other') ----- labelString "The window label" ^'Changes go to "', ChangeSet current name, '"'.! Item was added: + ----- Method: DualChangeSorter>>leftChangeSorter: (in category 'initialization') ----- + leftChangeSorter: aChangeSorter + + leftCngSorter := aChangeSorter! Item was changed: + ----- Method: DualChangeSorter>>modelWakeUp (in category 'updating') ----- - ----- Method: DualChangeSorter>>modelWakeUp (in category 'other') ----- modelWakeUp "A window with me as model is being entered. Make sure I am up-to-date with the changeSets." "Dumb way" leftCngSorter canDiscardEdits ifTrue: [leftCngSorter update] "does both" ifFalse: [rightCngSorter update]. ! Item was changed: + ----- Method: DualChangeSorter>>okToChange (in category 'updating') ----- - ----- Method: DualChangeSorter>>okToChange (in category 'initialization') ----- okToChange ^ leftCngSorter okToChange & rightCngSorter okToChange! Item was changed: + ----- Method: DualChangeSorter>>other: (in category 'accessing') ----- - ----- Method: DualChangeSorter>>other: (in category 'other') ----- other: theOne "Return the other side's ChangeSorter" ^ theOne == leftCngSorter ifTrue: [rightCngSorter] ifFalse: [leftCngSorter]! Item was added: + ----- Method: DualChangeSorter>>rightChangeSorter: (in category 'initialization') ----- + rightChangeSorter: aChangeSorter + + rightCngSorter := aChangeSorter! Item was added: + ----- Method: DualChangeSorter>>splitSides (in category 'menu commands') ----- + splitSides + "Split the receiver into two independent views. Kind of mitosis: We're doing cytokinesis right now." + + {leftCngSorter. rightCngSorter} do: [:sorter | + ToolBuilder open: sorter]. + self changed: #close.! |
> Allow simple change sorters to become become dual sorters What do you mean by that? Are you referring to the "inspect/explore" buttons in the Inspector and Object Explorer? Best, Marcel
|
Hi Marcel,
this is exactly what it does. Here is a screencast (unless Nabble destroys it again): <http://forum.world.st/file/t372205/changesorter%2520mitosis.gif> Backup link: https://n4o5pq.db.files.1drv.com/y4mfY-Bg7xT8-cCyziptdK3VBbDePFF1Sai4940_cwCT3dNau5a0wWABM-sc8w9iIjvRAztE2dHT2eJAQlBNXtbPqOBmCrpLxJw0h0o6J9s8XG6OF0QeBspBQ1ETBWYp61niV_x_n3iGwJaERBTsX4hQSV1oEI7agfTNREddlRwjY875klShBNvV-KfyPEDYPDAzp6QY8LvvSPLPOAcqZIOmA/changesorter%20mitosis.gif?psid=1 Best, Christoph -- Sent from: http://forum.world.st/Squeak-Dev-f45488.html
Carpe Squeak!
|
Chris,
This is a good improvement but it needs better visibility. Instead of tucking the single/dual switch within a tiny menu button in the title bar, you could * place it in a separate button, or * add a menu bar along the top with some of the frequently used menu items in the right click menu and then place it there. Then it will be just a single click away. Regards .. Subbu On 23/03/20 7:13 PM, Christoph Thiede wrote: > Hi Marcel, > > this is exactly what it does. Here is a screencast (unless Nabble destroys > it again): > > <http://forum.world.st/file/t372205/changesorter%2520mitosis.gif> > > Backup link: > https://n4o5pq.db.files.1drv.com/y4mfY-Bg7xT8-cCyziptdK3VBbDePFF1Sai4940_cwCT3dNau5a0wWABM-sc8w9iIjvRAztE2dHT2eJAQlBNXtbPqOBmCrpLxJw0h0o6J9s8XG6OF0QeBspBQ1ETBWYp61niV_x_n3iGwJaERBTsX4hQSV1oEI7agfTNREddlRwjY875klShBNvV-KfyPEDYPDAzp6QY8LvvSPLPOAcqZIOmA/changesorter%20mitosis.gif?psid=1 > > Best, > Christoph > > > > -- > Sent from: http://forum.world.st/Squeak-Dev-f45488.html > |
This would be one possibility:
Con: Development is more extensive as we need to find icons. But it might be generally interesting to add some interface to SystemWindow & ToolBuilder that allow making the list of window buttons more customizable. Another problem here: The model would be responsible for delivering an icon matching the UI theme and preferences - unless we write some automatic icon transformation stuff (such as Android uses for its notification area).
Here is another option:
But I think this positioning of the button would be way too prominent. Are you imagining a third option? :-)
Best,
Christoph
(PS: the "toph" in my name is actually helpful in order to differentiate me from Chris Muller (cmm) :-))
Von: Squeak-dev <[hidden email]> im Auftrag von K K Subbu <[hidden email]>
Gesendet: Dienstag, 24. März 2020 19:05:51 An: [hidden email] Betreff: Re: [squeak-dev] The Inbox: Tools-ct.959.mcz Chris,
This is a good improvement but it needs better visibility. Instead of tucking the single/dual switch within a tiny menu button in the title bar, you could * place it in a separate button, or * add a menu bar along the top with some of the frequently used menu items in the right click menu and then place it there. Then it will be just a single click away. Regards .. Subbu On 23/03/20 7:13 PM, Christoph Thiede wrote: > Hi Marcel, > > this is exactly what it does. Here is a screencast (unless Nabble destroys > it again): > > <http://forum.world.st/file/t372205/changesorter%2520mitosis.gif> > > Backup link: > https://n4o5pq.db.files.1drv.com/y4mfY-Bg7xT8-cCyziptdK3VBbDePFF1Sai4940_cwCT3dNau5a0wWABM-sc8w9iIjvRAztE2dHT2eJAQlBNXtbPqOBmCrpLxJw0h0o6J9s8XG6OF0QeBspBQ1ETBWYp61niV_x_n3iGwJaERBTsX4hQSV1oEI7agfTNREddlRwjY875klShBNvV-KfyPEDYPDAzp6QY8LvvSPLPOAcqZIOmA/changesorter%20mitosis.gif?psid=1 > > Best, > Christoph > > > > -- > Sent from: http://forum.world.st/Squeak-Dev-f45488.html >
Carpe Squeak!
|
On 24/03/20 11:56 PM, Thiede, Christoph wrote:
> Are you imagining a third option? :-) Yes. A list of buttons along the top (New Find Dual/Single ...) just below the Window title. Regards .. Subbu |
Hi Subbu,
> Yes. A list of buttons along the top (New Find Dual/Single ...) just below > the Window title. I must have missed your message in March, so sorry! Your proposal sounds interesting, but I am not sure whether we actually need such a button bar. It would be helpful for me to do method-related stuff such as Browse, Implementors, Inheritance, etc. We could basically use the common CodeHolder bar for this purpose, and we would also get rid of the "Toggle diffing" menu item in a change sorter's method's more menu. But what buttons would you exactly provide for all changesets? Creation, deletion, and search are commonly available via menu only in Squeak. Or am I just too conversation at this point? :-) Best, Christoph ----- Carpe Squeak! -- Sent from: http://forum.world.st/Squeak-Dev-f45488.html
Carpe Squeak!
|
Hi all.
I announced last week that I resumed DNG ( Dolphin Smalltalk Next Generation ) on my Twitter @LesserFrank. Since then I had a lot of fun working on it. Also started a DNG integration into Godot game engine which I am working since 2016 ( 2.x ) DolphinScript will be a Smalltalk script language deeply integrated into upcoming Godot 4.0. Happy Smalltalking, Frank |
In reply to this post by Christoph Thiede
On 20/11/20 10:02 pm, Christoph Thiede wrote:
>> Yes. A list of buttons along the top (New Find Dual/Single ...) just below >> the Window title. > I must have missed your message in March, so sorry! Your proposal sounds > interesting, but I am not sure whether we actually need such a button bar. > It would be helpful for me to do method-related stuff such as Browse, > Implementors, Inheritance, etc. We could basically use the common CodeHolder > bar for this purpose, and we would also get rid of the "Toggle diffing" menu > item in a change sorter's method's more menu. Chris, Thank you for digging out my suggestion from such a long time back. I almost forgot the context ;-). ChangeSorter is a tool to browse changesets. Therefore, I thought a button bar would be in order (along the lines of System Browser): * single/dual toggle * view selector (preamble, diff, postscript) * help If this sounds like an overkill, you could place a thin grip at the right edge of the changeset list to toggle/drag single/dual view (like the vertical split view grip in spreadsheets). It is intuitive and won't steal space from the method/code panes. Regards .. Subbu |
In reply to this post by frank.lesser
Hi Frank! This is great news! Thanks for working on this. :-) Please, do keep us posted. Best, Marcel
|
Good news indeed. I'm looking forward to more updates on the DNG project :-)
Dave On Mon, Nov 23, 2020 at 09:07:24AM +0100, Marcel Taeumel wrote: > Hi Frank! > > This is great news! Thanks for working on this. :-) Please, do keep us posted. > > Best, > Marcel > Am 20.11.2020 22:16:10 schrieb Frank Lesser <[hidden email]>: > Hi all. > > I announced last week that I resumed DNG ( Dolphin Smalltalk Next > Generation ) on my Twitter @LesserFrank. > > Since then I had a lot of fun working on it. > > Also started a DNG integration into Godot game engine which I am working > since 2016 ( 2.x ) > > DolphinScript will be a Smalltalk script language deeply integrated into > upcoming Godot 4.0. > > Happy Smalltalking, Frank > > > |
Hi Dave,
thanks, the ClassBrowserShell is up ( still empty no classes ) but most of the Dolphin infrastructure is working - and is it a pleasure - to work with the well designed Dolphin again. Frank On 11/23/2020 15:20, David T. Lewis wrote: > Good news indeed. I'm looking forward to more updates on the DNG project :-) > > Dave > > On Mon, Nov 23, 2020 at 09:07:24AM +0100, Marcel Taeumel wrote: >> Hi Frank! >> >> This is great news! Thanks for working on this. :-) Please, do keep us posted. >> >> Best, >> Marcel >> Am 20.11.2020 22:16:10 schrieb Frank Lesser <[hidden email]>: >> Hi all. >> >> I announced last week that I resumed DNG ( Dolphin Smalltalk Next >> Generation ) on my Twitter @LesserFrank. >> >> Since then I had a lot of fun working on it. >> >> Also started a DNG integration into Godot game engine which I am working >> since 2016 ( 2.x ) >> >> DolphinScript will be a Smalltalk script language deeply integrated into >> upcoming Godot 4.0. >> >> Happy Smalltalking, Frank >> >> > > |
In reply to this post by marcel.taeumel
Hi Marcel, yep will do - I have not updated my ancient website ( no time ) - but will post int on my twitter not to pollute the Squeak ML too much. Frank On 11/23/2020 09:07, Marcel Taeumel
wrote:
|
In reply to this post by frank.lesser
Hi, Frank Dolphin was a very nice piece of software, still remember when the first version was announced! I think I was one of the first customers :) . Having it revitalized will be really nice. Please keep us up top date ciao giorgio On Mon, Nov 23, 2020 at 4:40 PM Frank Lesser <[hidden email]> wrote: Hi Dave, |
Hi Georgio, thanks - please al of Dolphin enthusiasts do me a favor & confirm that the current Dolphin procedure ( Github ) - compiling it & get it running under Win10 works out of the box - I had a bad discussion which states that Dolphin was open sourced but dead source because it never run since 1998. I am working hard to get DNG to work - and it is a perfect fit in
the winter months her in Berlin - ( I got far but my personal
experience tells me that it is still a lot of work ) Frank On 11/23/2020 17:46, giorgio ferraris
wrote:
|
In reply to this post by Giorgio Ferraris
Hi Giorgio rereading your answer missing a thing. I am not revitalizing Dolphin ! Dolphin was and is continuously maintained at https://github.com/dolphinsmalltalk/Dolphin - since its MIT release - I am attempting to get it up on my VM after a decade again. Dolphin itself has evolved since its MIT release - no doubt - it may look still like it was a decade ago - but under its hood - it had been constantly improved - so Dolphin of its own is worth looking at - It still would be nice to have a confirmation that it can be compiled as described and works out of the box. My work here is to port it to my VM - with help of Blair- and
when this works - do the next steps - planned is to have Dolphin
working as a "Scripting" language for Godot Game engine 4.0. DNG "failed" a decade before - also due to also technical reasons
- to very different concepts of the underlying VM's and the fact
that only a very limited man power was available. - but as you can see on my twitter ( screenshot ) we got it working in 2010 & it still works here on Win10. So everyone who is interested - do me a favor & just try Dolphin from Github thanks Giorgio, Frank
On 11/23/2020 17:46, giorgio ferraris
wrote:
|
I have posted a screenshot of current DNG progress on my twitter
@LesserFrank |
In reply to this post by frank.lesser
I made good progress on porting Dolphin to LSWGVM - The D7 professional
infrastructure is almost working. I just posted a screenshot on my twitter @LesserFrank |
In reply to this post by K K Subbu
Hi Subbu, hi all,
apparently, Nabble has mixed up two different threads here, but I hope I will keep track of the original conversation. I think indeed a button bar in the change sorter could be something useful. Nevertheless, I believe this would be a bigger change than my original proposal and personally, I would not find some time for it soon. Thus I would like to propose to merge this patch as-is for the moment, provided that you agree with the idea in general. A small menu item should not harm, should it? :-) For me, this menu item has been very useful in recent times, it just makes the dual sorter easier to access. As soon as anyone other finds some time for adding a button bar, we can integrate it there, of course. (Apart from that, I would rather dislike using the grip you also proposed because IMHO, it would increase the overall visual complexity of our tools, but that's only a personal opinion. :-)) Best, Christoph ----- Carpe Squeak! -- Sent from: http://forum.world.st/Squeak-Dev-f45488.html
Carpe Squeak!
|
On 17/04/21 10:55 pm, Christoph Thiede wrote:
> Thus I would like to propose to merge this patch as-is for the moment, > provided that you agree with the idea in general. A small menu item should > not harm, should it? :-) For me, this menu item has been very useful in > recent times, it just makes the dual sorter easier to access. As soon as > anyone other finds some time for adding a button bar, we can integrate it > there, of course. Chris, I have no objections to the patch being merged. Having a change sorter flip between single/dual is a useful feature indeed. Useful enough to deserve direct visibility instead of being hidden in a menu two levels down. But that can wait for the next batch of improvements. Thank you for the efforts .. Subbu |
Free forum by Nabble | Edit this page |