Several problems with group properties, have been discussed at length, but without any solution. A selection of several objects should of course have their properties settable together like a group (esp. because of the GroupDisconnect problem). Main problem is to make sure that only those properties that are changed are actually applied. Not just enough to compare the values before and after (see below). Might just have a hook on each widget to see if it's fiddled with. Then we will need a way to reset all values to the original. Secondary problem is to somehow show when several objects have different settings for the same property. At first, we just need a way that it shows. Later it'd be nice to have a way to pick one of the settings.-- LarsClausen - 19 Mar 2004 Setting properties to a selection of objects could be done. First we need to restrict the set of properties to be edited to the intersection of property sets; this we already do for groups, it's almost just a matter of enabling the UI. I think I have an idea for the Multiple Value Problem. If we find out that a given property has different values for different objects, we don't render the normal property edit control. Instead, we put as single button with a useful label (with a general meaning of "multiple values; pick one"). When the user clicks this button, we present him with a list of the different effective values and a cancel button (I don't know how best to render this; I'm leaning towards a bunch of radio buttons next to the actual disabled property controls, maybe with the label text set in italics); the radiobutton labels would also have labels such as "1 object:", "2 objects:" etc. if gettext() has decent plurals support. Maybe we don't need to disable those controls; this way the user can also change on the spot the value. We certainly need a first radio button meaning "keep as is" so we don't need a cancel button but can follow the lame single-close-button GNOME style (aaah, the joys of U7Y). When the subdialog is closed, and if the user didn't select "use as is", we replace the "multiple values; pick one" button with the appropriate property edition widget, since we're not in the "uniform values" case anmore. When the dialog is closed (confirmed), we apply only properties for which there are uniform values, we leave the rest unchanged (we don't really cause a change if we reapply the same value to a property with a uniform value across the selection set; this way we don't need to keep track of whether controls actually changed, we can just use the undo stack as we do now. Does this look like the -holy gr- solution? -- CyrilleChepelov - 25 Mar 2004
- Text fields.
- Booleans.
- Integers.
- Reals.
- Arrows.
- Colors.
- Radiomenus.
- Multiline things.
- LineProp?, when that comes up.
| Edit -:- Attach -:- Ref-By -:- Printable -:- More |