Re: [anjuta-devel] Change project property interface
- From: Sébastien Granjoux <seb sfo free fr>
- To: Abderrahim Kitouni <a kitouni gmail com>
- Cc: anjuta-devel-list <anjuta-devel-list gnome org>
- Subject: Re: [anjuta-devel] Change project property interface
- Date: Thu, 10 Nov 2011 22:23:28 +0100
Hi Abderrahim,
Le 09/11/2011 23:09, Abderrahim Kitouni a écrit :
AnjutaProjectProperty *ianjuta_project_set_property (AnjutaProjectNode
*parent, const gchar *id, const gchar *value); (transfer none)
I think this is really nice, but this wouldn't allow one to set a map
property, would it?
Yes, it is needed to add a map property.
Do we need to add a set_map_property? (I also like
the symmetry with anjuta_project_node_get_property and
anjuta_project_node_get_map_property. The same goes for
anjuta_project_property_new below.
As I have defined it the anjuta_project_property_new already take a name
argument so it could be considered as anjuta_project_map_property_new. I
think it's better to keep it as anjuta_project_property_new as the name
is simple enough.
Then, for set and get functions here 3 new proposals.
1. Have only ianjuta_project_set_property (AnjutaProjectNode *parent,
const gchar *id, const gchar *value) and a map property should use a
value with the form "name=value".
- It means that such property couldn't include a character = in the name.
- It's not problem for autotools it could be an issue for another format.
+ It stay quite simple
2. Have only ianjuta_project_set_property (AnjutaProjectNode *parent,
const gchar *id, const gchar *value, const gchar *name) and non map
property can pass a NULL name.
+ No limitation on property name
+ It stay quite simple
- One additional argument.
3. Have bother functions ianjuta_project_set_property (AnjutaProjectNode
*parent, const gchar *id, const gchar *value) and
ianjuta_project_set_map_property (AnjutaProjectNode *parent, const gchar
*id, const gchar *value, const gchar *name)
+ No limitation on property name
- Two functions
I will do the same for all related public functions:
ianjuta_project_set_property, ianjuta_project_remove_property,
anjuta_project_node_get_property.
I think it's better to anjuta_project_property_new as it is (like
solution 2).
* I'd prefer to have the list owned by the node, so I don't really like
this.
Well, it doesn't means that the list is not owned by the node, all node
could get a reference on it. I think it's done by default with a python
list. Anyway, I will keep it as it is.
* Regarding having something shared between all the objects of the same
type, they could be put in the AnjutaProjectNodeClass struct. This is
used in gtk, so I think it should work well with introspection. We
should probably test it first. The method would then be
void anjuta_project_node_class_insert_property_info (
AnjutaProjectNodeClass *klass,
AnjutaProjectPropertyInfo *info);
Yes, but it's not a class object at least in the autotools backend. I
mean the difference between two node could be only this list of properties.
This list is read only, so the nodes don't need to own it and can keep
only a reference on it.
I think a property info could be considered constant and thus doesn't
need setters.
Ok.
Property could use setters. Getters are not strictly
necessary but may be a good idea for symmetry.
It's as you want. Let's say I will try to make all this changes first,
then if you need setter or getters you can ask them to me or add them
directly.
I think it is enough to add a note in the documentation comments stating
that this function should only be used by backend implementation.
Ok.
Regards,
Sébastien
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]