On Mon, 8 Apr 2002 18:21:11 +0000 (UTC), Lars Clausen wrote:
On Mon, 8 Apr 2002, Steffen Macke wrote:Coming soon to a cvs server near you.Right, but before I would like some more people to test Michael's awesome patch:
Attached is a *new patch* against the cvs addressing some of the issues Lars brought up. 567c5bf1de60c3f8829dba222f4b4c88 dia-patch-020409.diff.gz NOTE NOTE NOTE This patch will only compile with '--enable-gnome' since glade is too stupid to make gnome support optional. When the other elements of the interface have stabilized, code will be modified by hand to support either gnome or non-gnome for the cvs (as before). NOTE NOTE NOTE [Another note about procedure. Until somebody decides to get dirty in the Sheets and Objects code, I am happy to carry the burden of orchestrating changes suggested on the list. I am following the "Informal Consensus" model: Substantial non-emergency feature/bugfix proposals get waited on for at least 48 hours (sometimes longer, for practical reasons) for those interested to post their comments. Silence is interpreted as acceptance of the proposal. People who block consensus for personal reasons or because they weren't given enough love as a child will be summarily shot. :-)]
I say once any serious bugs are out of this, we need a new release. This is too good to not get out there.
Sounds like a compliment. Thanks! :)
Now for the nitpicking:) Bigger things: Could the dialogs *please* be made non-modal? I know it's a bit of a bother to make the callbacks, but I really, really dislike modality. It breaks the illusion of multitasking.
All the dialogs are now non-modal but the backend is still in progress until I figure out how to gracefully handle multiple instances of the same window.
I get a segfault any time I try to Apply changes to any of the following sheets: ER, UML, GRAFCET. The remaining sheets are ok (except for the two affected by the next problem).
Bug in the xml writer didn't handle 'intdata' property properly. Fixed.
When trying to save the sheet for Pneumatic/Hydraulic, it fails because of the slash in the filename. The filename is a distinct entity from the sheet name.
Existing sheets now correctly use its original filename. New sheets' filenames are based on the sheet name, with problematic characters replaced with '_'. (gozinta, comezatta, pipesinta, whack, etc '><|/.'). Fixed.
Apply doesn't remove things from sheets.
Logic bug. Fixed.
Keyboard shortcuts for the buttons would be very nice.
Done, for (N)ew, (E)dit, (R)emove, (C)opy, (M)ove. All <ctrl+key>. I don't think Apply, Revert, or Close should be accelerated. Note that glade doesn't support the accellerator highlight but this can be coded by hand after we're sure we won't be regenerating the glade output. (N)ew is highlighted to see what it looks like.
Smaller things: The scrollbar on the sheet display comes in too early -- try selecting UML and resize till all objects is show, the scrollbar is still there. It seems to not understand the wrapping of shapes either -- make the editor really wide, and the scrollbar will appear at up to 8 times the required height. It should depend on the number of lines, not the number of items.
The idea behind this was to provide a buffer-zone for sheets to grow in the number of _lines_, say when someone adds a whole rack of line breaks, so gtk doesn't compress the sheet object buttons (looks ugly). (Hmmm, i just realized this could be adjusted dynamically. Let me get back to you).
Double-clicking should bring up the edit dialog.
Great idea! In progress.
The sheet selections should stay after Apply and Revert, and if possible, the selection in the toolbox should stay as well.
Done.
The dialog when removing objects is irritating, since the only alternative in it is very rarely used. This is a somewhat radical design change: Make it so that if you click in the sheet area outside the icons, or on the sheet selector, no icon is selected, but the sheet name is highlighted. Then operations should apply to sheets (Remove ghosted for built-in sheets, Up and Down would reorder the sheet list (if that is possible)). It has to be clear that it's the sheet that's being worked on.
Hmmm. I don't expect that the Remove button will be used much in general. I'm not keen on having the Edit dialog offer both sheets and objects, but the Remove dialog being contextual. Either one or the other. As for the order of sheets, at the moment they are sorted by Sheet 'name' since there is no other structure to tell dia how to order sheets in an arbitrary manner.
The Revert button should not close the window. The Apply button probably not either. Depends on whether this is a window that people would normally have hanging around, or just occasionally open.
Done. I don't see the Sheets and Objects dialog as being of the same utility as say, the Layers dialog in the Gimp, ie. people will probably do things to their sheets then close the dialog, but its a still a good idea to keep the dialog open until the user explicitly closes it.
The minimum size for the two sheet displays should be smaller, I thing down to one (maybe two) icons wide and one (maybe two) icons high.
The issue here is that the text on the buttons at the bottom will be cramped if the default size of the dialog is reduced. We could stack the buttons in two rows if you really want to reduce the overall size of the dialog. Personally, I find the larger size easier to work with, but that's just me.
The edit dialog should ghost the Type field when editing an existing shape.
I debated this too. Done.
If you move line end markers together using up and down, they coalesce. I'm not sure whether that's a bug or a feature.
Its a feature. :) No really! :) The sheet datastructure will not allow for two line breaks next to each other, so the interface doesn't either.
Suggested improvements, not to be done before the basics are OK: Would it be possible to drag items around in addition to using the copy/move/up/down buttons?
Its an idea I played around with in the beginning, but in the interest of time, I put it on the back burner.
How about creating shapes without a (visible) intervening step of saving to disk? Basically ask for a name and description, and it will save the current shape with that name and load it with that description?
I'm not sure what you mean? Are you meaning to create a new SVG Shape in the main dia window, then add it to a sheet? If so it could be done painlessly by adding an "Import from main window" (or something) radio button to the New dialog.
How about shift-click to select multiple shapes?
Selecting multiple shapes would really only be useful for Remove I think. It would also be a substantial design change that I think we should consider carefully (ie. alot of work).
Could the line break arrows have no box around them, so they don't look like actual shapes?
They still need to be /buttons/ so they can be selected. But I will play around with the button relief and see if that makes it clearer.
A shape importer plugin would be useful, so you could re-edit shapes and make two-way interaction between Dia and the Sheets & Objects window. However, there are still a few things that must be done by hand, such as setting connection points.
Aso. Great idea! Sorry this message is so long, but I thought it a good idea to address all of Lars comments. Thanks Lars! - michael - -- Public key on http://www.keyserver.net
Attachment:
dia-patch-020409.diff.gz
Description: Binary data
Attachment:
pgpTsUXjS4M4R.pgp
Description: PGP signature