Hi folks,

I pimped an GtkEntry widget for the metadata editor - thanks to Sven for
his help.

the problem:

 The XMP metadata is stored in a treemodel. The metadata browser has
 currently two notebook panes where the user can enter data: the
 description tab for title, author, description and the advanced tab
 which is a view onto that treemodel.

 If I type in the title in the description tab, the change is reflected
 in the treemodel therefore also visible in the advanced tab. If I
 change values in the advanced tab I was not able to e.g. update the
 title entry widget.

my possible solution:

 My GtkEntry is instantiated with the xmp_model (read treemodel), the
 schema uri (e.g. http://purl.org/dc/elements/1.1/) and the property
 name (e.g. "title"). I subscribe to the 'row-changed' signal of the
 treemodel (now maybe that's my first mistake), as well as the entry
 changed signal (maybe another mistake).
 During initialisation nothing is written to the model and my entry
 widget is not emitting any signals.

 When I enter the first characters in the entry, the following happens:

    1. the schema is set (row-changed signal is emitted)
    2. the property *value* is set (another row-changed signal)

 That raises actually to a big problem, because when I populate two
 of my Entry widgets in the browser I get a pingpong going on between
 the Entries. Funny, but not usable.

Is it possible to subscribe to a row-changed event by also using a
GtkTreePath as some kind of selector? The problem is, that on
instantiation time, I don't have a value set in the treestore, therefore
also no path :( Maybe using the treestore as a view (model) as well as a
data (model) is another problem here.

I also thought about changing the xmp-model to emit custom signals, like
a 'property changed' event, which uses the schema_uri and the property
as an identifier. I can't really see that solving my problem here

Additionally, I've read the GtkEntry and GtkCellView source code for any
additional information. The GtkCellView is storing the model in a
private (need to read what this is about) and a it is using a reference
for the row. Maybe that's something I should try...

Any help or pointers to documentation or source code would be very much

Roman Joost
www: http://www.romanofski.de
email: romanof...@gimp.org

Attachment: signature.asc
Description: Digital signature

Gimp-developer mailing list

Reply via email to