2010-09-29 20:20:42 |
Mikkel Kamstrup Erlandsen |
bug |
|
|
added bug |
2010-09-29 20:21:52 |
Mikkel Kamstrup Erlandsen |
description |
It's a common pattern that model consumers needs to map each individual row to some internal data structure or value (fx. a widget). Currently this can only be achieved by maintaining a map of row iters to the data members which must then be kept in sync with the model.
I propose we add a "Model Annotation API" ala:
-------------------------------
typedef guint DeeModelAnnotation;
/**
* dee_model_register_annotation:
* @destroy: Callback to free annotation set on the model with dee_model_set_annotation().
* Called when the row is removed, the annotation is cleared, or the model is finalized.
*
* Create a new annotation
*/
DeeModelAnnotation dee_model_register_annotation (GDestroyNotify destroy);
void dee_model_set_annotation (DeeModel *model,
DeeModelIter *row,
DeeModelAnnotation anno,
gpointer anno_value);
gpointer dee_model_get_annotation (DeeModel *model,
DeeModelIter *row,
DeeModelAnnotation anno);
void dee_model_clear_annotation (DeeModel *model,
DeeModelIter *row,
DeeModelAnnotation anno);
------------------------------- |
It's a common pattern that model consumers needs to map each individual row to some internal data structure or value (fx. a widget). Currently this can only be achieved by maintaining a map of row iters to the data members which must then be kept in sync with the model.
I propose we add a "Model Annotation API" ala:
-------------------------------
typedef guint DeeModelAnnotation;
/**
* dee_model_register_annotation:
* @destroy: Callback to free annotation set on the model with dee_model_set_annotation().
* Called when the row is removed, the annotation is cleared, or the model is finalized.
*
* Create a new annotation
*/
DeeModelAnnotation dee_model_register_annotation (GDestroyNotify destroy);
void dee_model_set_annotation (DeeModel *model,
DeeModelIter *row,
DeeModelAnnotation anno,
gpointer anno_value);
gpointer dee_model_get_annotation (DeeModel *model,
DeeModelIter *row,
DeeModelAnnotation anno);
void dee_model_clear_annotation (DeeModel *model,
DeeModelIter *row,
DeeModelAnnotation anno);
-------------------------------
|
|
2010-09-29 20:23:00 |
Mikkel Kamstrup Erlandsen |
description |
It's a common pattern that model consumers needs to map each individual row to some internal data structure or value (fx. a widget). Currently this can only be achieved by maintaining a map of row iters to the data members which must then be kept in sync with the model.
I propose we add a "Model Annotation API" ala:
-------------------------------
typedef guint DeeModelAnnotation;
/**
* dee_model_register_annotation:
* @destroy: Callback to free annotation set on the model with dee_model_set_annotation().
* Called when the row is removed, the annotation is cleared, or the model is finalized.
*
* Create a new annotation
*/
DeeModelAnnotation dee_model_register_annotation (GDestroyNotify destroy);
void dee_model_set_annotation (DeeModel *model,
DeeModelIter *row,
DeeModelAnnotation anno,
gpointer anno_value);
gpointer dee_model_get_annotation (DeeModel *model,
DeeModelIter *row,
DeeModelAnnotation anno);
void dee_model_clear_annotation (DeeModel *model,
DeeModelIter *row,
DeeModelAnnotation anno);
-------------------------------
|
It's a common pattern that model consumers needs to map each individual row to some internal data structure or value (fx. a widget). Currently this can only be achieved by maintaining a map of row iters to the data members which must then be kept in sync with the model.
I propose we add a "Model Annotation API" ala:
-------------------------------
typedef guint DeeModelAnnotation;
/**
* dee_model_register_annotation:
* @destroy: Callback to free annotation set on the model with
* dee_model_set_annotation(). Called when the row is
* removed, the annotation is cleared, or the model is
* finalized.
*
* Create a new annotation.
*
* Returns: A new annotation key that can be used to get and
* set annotation values
*/
DeeModelAnnotation dee_model_register_annotation (GDestroyNotify destroy);
void dee_model_set_annotation (DeeModel *model,
DeeModelIter *row,
DeeModelAnnotation anno,
gpointer anno_value);
gpointer dee_model_get_annotation (DeeModel *model,
DeeModelIter *row,
DeeModelAnnotation anno);
void dee_model_clear_annotation (DeeModel *model,
DeeModelIter *row,
DeeModelAnnotation anno);
-------------------------------
|
|
2010-11-15 14:55:43 |
Mikkel Kamstrup Erlandsen |
dee: milestone |
|
0.5.1 |
|
2011-01-14 16:29:14 |
Mikkel Kamstrup Erlandsen |
dee: milestone |
0.5.4 |
0.5.6 |
|
2011-01-31 09:40:18 |
Mikkel Kamstrup Erlandsen |
dee: milestone |
0.5.6 |
|
|
2011-01-31 12:33:41 |
Mikkel Kamstrup Erlandsen |
dee: importance |
Undecided |
High |
|
2011-01-31 12:33:41 |
Mikkel Kamstrup Erlandsen |
dee: status |
New |
Triaged |
|
2011-01-31 12:33:41 |
Mikkel Kamstrup Erlandsen |
dee: milestone |
|
0.5.8 |
|
2011-01-31 12:33:41 |
Mikkel Kamstrup Erlandsen |
dee: assignee |
|
Mikkel Kamstrup Erlandsen (kamstrup) |
|
2011-02-21 16:53:06 |
Didier Roche-Tolomelli |
unity: status |
New |
Triaged |
|
2011-02-21 16:53:09 |
Didier Roche-Tolomelli |
dee (Ubuntu): status |
New |
Triaged |
|
2011-02-24 10:16:59 |
Mikkel Kamstrup Erlandsen |
dee: milestone |
0.5.8 |
0.5.12 |
|
2011-03-03 14:25:08 |
Mikkel Kamstrup Erlandsen |
branch linked |
|
lp:~unity-team/dee/annotations |
|
2011-03-03 14:25:19 |
Mikkel Kamstrup Erlandsen |
unity: status |
Triaged |
Fix Committed |
|
2011-03-03 14:25:24 |
Mikkel Kamstrup Erlandsen |
dee: status |
Triaged |
Fix Committed |
|
2011-03-03 19:21:07 |
Didier Roche-Tolomelli |
dee (Ubuntu): status |
Triaged |
Fix Committed |
|
2011-03-07 11:48:31 |
Mikkel Kamstrup Erlandsen |
unity: status |
Fix Committed |
Fix Released |
|
2011-03-07 11:48:46 |
Mikkel Kamstrup Erlandsen |
dee: status |
Fix Committed |
Fix Released |
|
2011-03-31 12:31:26 |
Mikkel Kamstrup Erlandsen |
dee (Ubuntu): status |
Fix Committed |
Fix Released |
|
2014-07-25 10:26:51 |
Marco Trevisan (Treviño) |
unity (Ubuntu): status |
New |
Fix Released |
|