Hello, First a summary of how we currently handle the properties of multiple objects. For now we don't actually do it ... instead we delegate that job to groups. This leads to the following problem. When the properties dialog is invoked on an object, it uses an internal copy to try the new property values. The purpose is to update the widgets shown by the dialog based on how the object changes its properties.
But in the case of a group object, s copy of the entire group has to be made, which can be arbitrarily large as well as nested. When a property is applied to the copy, the purpose is to get the new values of all properties that might have changed. Since the same property is applied to a large number of objects inside the group, only one of them is actually relevant ... the last object to which we apply the property and get the new values from. For a property dialog that handles multiple objects, all this is the same, except that the dialog must maintain a copy of each object passed to it. Now here's a new way to track object copies, that tackles both these issues: instead of keeping a copy of the object in the dialog, we extend the property description itself, to carry a copy of the object from which it was derived. As a result, no matter how many objects are involved, only one object is used for updating the widget for each property. As a result, a lot of unnecessary copying of objects is saved, as well as a lot of getting and setting of properties on objects that don't matter. Also, the dialog box becomes truly independent of the number of objects involved. The big question is ... can we safely change the PropDescription struct? My suspicion is that we can't ... although I honestly still don't know much about what is important in terms of binary compatibility. If modifying property descriptions is not an option, then the only thing we can do is to have a dialog that maintains copies of a list of objects. This can even supersede the dialog that has a single object, since that is the only real difference between the two. Sameer. -- http://www.it.iitb.ac.in/~sameerds/ _______________________________________________ dia-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/dia-list FAQ at http://live.gnome.org/Dia/Faq Main page at http://live.gnome.org/Dia
