visualgst plans

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

visualgst plans

Paolo Bonzini-2
Hi Gwen,

1) I pushed my changes and rebased them on top of the save widget stuff.
It can be pulled. The main fixes are that Tools menu behavior is more
uniform across all browsers, and that many bugs in "Accept it" were
fixed.  I also finished my previous refactoring by moving more methods
from browsers to BrowserState, so that the Commands can rely on the
state more and more instead of asking the browsers.

There are still a couple of sore points in the class hierarchy, but I
think we're relying less and less on duck typing---which makes the
system easier to understand and enhance.

I'm thinking of dropping the webkit stuff since it's probably bitrotted
and not too used.  Is this fine for you?

2) I took a look at the state save widget. It looks great, it could
"feel" much better. There it makes sense to choose
between accept, cancel and close. In the future, instead of "accept" you
may even propose special choices such as declaring variables as
temporary or instance.

However, there is one serious problem: it makes the modal choice of
"what to do after clicking somewhere in the upper half of the browser"
modeless. It is great when you have a compile error, much better than
the "insert error as selection" you have in Squeak. I think the old
dialog should be preserved in case the state changed. In this case you
have to choose between accept/cancel/revisit (the third choice brings
back the old selection), but you have to do so modally. If you choose
accept and there is a compile error, the choice should be changed to
revisit, and the save widget should pop up.

Also, the save widget must work with all browsers. With my recent
changes I moved "accept it" to the GtkSourceCodeWidget, and this should
make it easier to refactor save widget stuff so that it works in the
debugger, inspector browser, SUnit browser, GtkLauncher, and regular
class browsers (sender/inspector should already be taken care of).

The compiler errors pane in GtkLauncher can then be removed, and no
Debuggers should pop up upon a compiler error.

Do you agree?

At the same time (actually, after everything above is sorted out since
this is a relatively trivial change and should be done in a separate
commit) we may want to rename accept/cancel/revisit to
accept/drop/cancel. What do you think?

3) I also filed these:

http://smalltalk.gnu.org/project/issue/508
http://smalltalk.gnu.org/project/issue/509

509 is totally unimportant. 508 is a bit more urgent, but less than
sorting out the save widget. The widget is a step in the right
direction and it's fine to have it in 3.2.1 (compiler errors were
quite broken, or at least less usable than Squeak/Pharo) but it is
not finished and that's the priority.

4) Least important of all, the redesign of the sender/inspector
browsers. I think it would be nice to have the symbols expandable in the
left pane, and the expansion will hold the senders/inspectors of those
symbols. I'm not sure if GtkTreeModel supports on the fly loading of
rows as soon as the parent is expanded. I think not, so don't rush on
this. It can definitely be done past 3.2.1, or not at all. I just
included it in this email because you mentioned on IRC that you wanted
to have different kinds of sidebars.

Paolo

_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: visualgst plans

Paolo Bonzini-2
>     There are still a couple of sore points in the class hierarchy, but I
>     think we're relying less and less on duck typing---which makes the
>     system easier to understand and enhance.
>
>     I'm thinking of dropping the webkit stuff since it's probably bitrotted
>     and not too used.  Is this fine for you?
>
> We can put it on a separate package, that can be interesting to have
> an HTML renderer for browsing the doc (gtk+, or GNU Smalltalk ;-) ,
> or editing HTML (it is possible to do it with Webkit)

Yes, I just want to decouple it as much as possible from VisualGST (e.g.
no tools menu, etc.).

>     However, there is one serious problem: it makes the modal choice of
>     "what to do after clicking somewhere in the upper half of the browser"
>     modeless. It is great when you have a compile error, much better than
>     the "insert error as selection" you have in Squeak. I think the old
>     dialog should be preserved in case the state changed. In this case you
>     have to choose between accept/cancel/revisit (the third choice brings
>     back the old selection), but you have to do so modally. If you choose
>     accept and there is a compile error, the choice should be changed to
>     revisit, and the save widget should pop up.
>
> With the tabs this widget popup is nice: you can switch on other tabs, or
> open other tools. But if we close the tool (window) or a tab displaying a
> dialog box is better I think.

You can do that with the dialog box as well if you click "revisit".

For me, there was a big confusion the first time I saw the widget
because the selection is A but the source code widget shows B (which is
only described in the save widget itself).  This is different from any
other browser in existence.  I think we can get the best of both worlds. :)

>     Also, the save widget must work with all browsers. With my recent
>     changes I moved "accept it" to the GtkSourceCodeWidget, and this should
>     make it easier to refactor save widget stuff so that it works in the
>     debugger, inspector browser, SUnit browser, GtkLauncher, and regular
>     class browsers (sender/inspector should already be taken care of).
>
> In fact the save widget is used by the GtkTextWidget, so I think that
> should work anywhere but may be there are some other changes to do, I've not look.

Yes, maybe.  If you implement the widget properly in GtkLauncher I can
take care of the others.

>     3) I also filed these:
>
>     http://smalltalk.gnu.org/project/issue/508
 >
> For 509 this is normal I add the new stuff at the end, and for 508 it
> seems that I use the compile:classified:ifError and this message  doesn't
> care about the category, I think should only use the browser category
> and not
> the pragma (like in Squeak/Pharo), also that means that we need to support
> drag and drop for changing the category.

But well, until we have the drag and drop...  Anyway with your info
maybe I can look at it too.

>     4) Least important of all, the redesign of the sender/inspector
>     browsers. I think it would be nice to have the symbols expandable in the
>     left pane, and the expansion will hold the senders/inspectors of those
>     symbols. I'm not sure if GtkTreeModel supports on the fly loading of
>     rows as soon as the parent is expanded. I think not, so don't rush on
>     this. It can definitely be done past 3.2.1, or not at all. I just
>     included it in this email because you mentioned on IRC that you wanted
>     to have different kinds of sidebars.
>
> Nice idea, I don't know if it is possible to do with the GtkTreeModel, but
> the idea is nice.

I think there's an example in the GTK+ devel about it.  But it's the
least urgent thing of all.  Now we need to finish the save widget so we
can add another "tick" to the "this is why VisualGST is a modern browser
UI". :)

Paolo

_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk