Re: Announcing the 'Sheets and Objects' dialog

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

Attached is a *new patch* against the cvs addressing some of the issues
Lars brought up.

567c5bf1de60c3f8829dba222f4b4c88  dia-patch-020409.diff.gz


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).


[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

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 '><|/.').

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.


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

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

Attachment: dia-patch-020409.diff.gz
Description: Binary data

Attachment: pgpTsUXjS4M4R.pgp
Description: PGP signature

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]