Bug#431962: python-gnome2-desktop: gtksourceview.SourceTagStyle().mask is not writable
* Josselin Mouette [Tue, 17 Jul 2007 23:55:33 +0200]: Le vendredi 06 juillet 2007 à 13:29 +0200, Adeodato Simó a écrit : Package: python-gnome2-desktop Version: 2.18.0-2 Severity: normal Tags: upstream Hello. It seems that the 'mask' attribute of gtksourceview.SourceTagStyle objects is not writable, but instead derived whenever SourceTagSytle.foreground or SourceTagStyle.background are set (see gtksourceview.override). I see no reason for this to be this way, since it breaks setting all three foreground, background and mask, letting the TagStyle object figure out which colors to finally use. Which works from C (it's what gedit does, see string_to_tag_style() in gedit-languages-manager.c). All this makes it necessary when working in Python code to check the value of mask, and refraining from setting foreground or background colors according to its value, which seems more unpythonic to me than having the attribute writable. The upstream developers don't intend to change that: I disagree. The 'mask' field only exists because of limitations in the C language. In Python we can instead automatically compute mask based on the attributes that have been actually set, which is more intuitive and less error prone. I don't know why you'd ever want to e.g. modify style.background but not set the flag in style.mask saying background was set. ^^ Bah, I made that very clear in my text: it breaks setting all three foreground, background and mask, letting the TagStyle object figure out which colors to finally use. Which works from C (it's what gedit does, see string_to_tag_style() in gedit-languages-manager.c). If you read from gedit's configuration files, background and foreground are stored, even if only the foreground was configured (the background is set to #000). So what gedit does is set both colors, plus the mask (which is also stored), and let the tagstyle code figure out what to use. That is not possible from Python. If you need more information, I suggest you followup on the upstream bug: http://bugzilla.gnome.org/show_bug.cgi?id=456750 Many thanks for forwarding the bug upstream. Would you mind forwarding the above as well, so that the developer can see at least what's the use case? (Since I doubt he'll change his mind; so this should be the last comment on this bug.) Thanks, -- Adeodato Simó dato at net.com.org.es Debian Developer adeodato at debian.org Listening to: The Rolling Stones - Undercover of the Night
Bug#431962: python-gnome2-desktop: gtksourceview.SourceTagStyle().mask is not writable
Le vendredi 06 juillet 2007 à 13:29 +0200, Adeodato Simó a écrit : Package: python-gnome2-desktop Version: 2.18.0-2 Severity: normal Tags: upstream Hello. It seems that the 'mask' attribute of gtksourceview.SourceTagStyle objects is not writable, but instead derived whenever SourceTagSytle.foreground or SourceTagStyle.background are set (see gtksourceview.override). I see no reason for this to be this way, since it breaks setting all three foreground, background and mask, letting the TagStyle object figure out which colors to finally use. Which works from C (it's what gedit does, see string_to_tag_style() in gedit-languages-manager.c). All this makes it necessary when working in Python code to check the value of mask, and refraining from setting foreground or background colors according to its value, which seems more unpythonic to me than having the attribute writable. The upstream developers don't intend to change that: I disagree. The 'mask' field only exists because of limitations in the C language. In Python we can instead automatically compute mask based on the attributes that have been actually set, which is more intuitive and less error prone. I don't know why you'd ever want to e.g. modify style.background but not set the flag in style.mask saying background was set. AIUI you don't need to refrain from setting anything and the mask is automatically computed. If you need more information, I suggest you followup on the upstream bug: http://bugzilla.gnome.org/show_bug.cgi?id=456750 Cheers, -- .''`. : :' : We are debian.org. Lower your prices, surrender your code. `. `' We will add your hardware and software distinctiveness to `-our own. Resistance is futile. signature.asc Description: Ceci est une partie de message numériquement signée
Bug#431962: python-gnome2-desktop: gtksourceview.SourceTagStyle().mask is not writable
Package: python-gnome2-desktop Version: 2.18.0-2 Severity: normal Tags: upstream Hello. It seems that the 'mask' attribute of gtksourceview.SourceTagStyle objects is not writable, but instead derived whenever SourceTagSytle.foreground or SourceTagStyle.background are set (see gtksourceview.override). I see no reason for this to be this way, since it breaks setting all three foreground, background and mask, letting the TagStyle object figure out which colors to finally use. Which works from C (it's what gedit does, see string_to_tag_style() in gedit-languages-manager.c). All this makes it necessary when working in Python code to check the value of mask, and refraining from setting foreground or background colors according to its value, which seems more unpythonic to me than having the attribute writable. Thanks. -- Adeodato Simó dato at net.com.org.es Debian Developer adeodato at debian.org If you want the holes in your knowledge showing up try teaching someone. -- Alan Cox