RSS/Atom feed Twitter
Site is read-only, email is disabled

Tagging of Gimp Resources project status

This discussion is connected to the gimp-developer-list.gnome.org mailing list which is provided by the GIMP developers and not related to gimpusers.com.

This is a read-only list on gimpusers.com so this discussion thread is read-only, too.

9 of 9 messages available
Toggle history

Please log in to manage your subscriptions.

Tagging of Gimp Resources project status Aurimas Juška 13 Jul 23:03
  Tagging of Gimp Resources project status David Gowers 14 Jul 02:45
   Tagging of Gimp Resources project status Aurimas Juška 14 Jul 09:05
    Tagging of Gimp Resources project status Bill Skaggs 14 Jul 17:36
     Tagging of Gimp Resources project status David Gowers 15 Jul 02:31
      Tagging of Gimp Resources project status David Gowers 15 Jul 03:10
     Tagging of Gimp Resources project status David Gowers 15 Jul 02:33
  Tagging of Gimp Resources project status Aurimas Juška 17 Aug 15:53
   Tagging of Gimp Resources project status David Gowers 18 Aug 12:09
Aurimas Juška
2008-07-13 23:03:09 UTC (over 16 years ago)

Tagging of Gimp Resources project status

Hi,

Tagging of Gimp Resources project is an attempt to make it easy and efficient to organize Gimp resources (brushes, patterns, gradients, palettes). Currently the project is already somewhat usable, allowing user to assign tags, filter resources on selected tags, preserve tags between session and more.

Screenshots [1] and [2] show how resource (brush, etc) docks look. As you can see, there are two tag entries: the one on top is to filter based on selected tags, on the bottom is for tag assignment. Tags can be typed with keyboard [1] (specifically for tagging a special autocompletion was implemented: autocompletes tags even in the middle of tag list, doesn't offer already selected tags, etc) and selected with some pointing device [2] (popup window stays open to allow multiple tag selection, it can be closed by clicking somewhere outside).

Tags cache is stored in tag cache file (~/.gimp-2.5/.tag-cache.xml). The file is user editable, but that is normally not needed. Should user rename or move resource file(s) (brushes, etc), tag cache would detect changes based on file contents and correctly remap tags.

Source code is available: svn://svn.gnome.org/svn/gimp/branches/soc-2008-tagging. Questions, comments and recommendations are appreciated.

[1] http://img137.imageshack.us/img137/829/autocompletioniw0.png [2] http://img175.imageshack.us/img175/7020/popupcg7.png

David Gowers
2008-07-14 02:45:02 UTC (over 16 years ago)

Tagging of Gimp Resources project status

Hi Aurimas,

On Mon, Jul 14, 2008 at 6:33 AM, Aurimas Juška wrote:

Hi,

Tagging of Gimp Resources project is an attempt to make it easy and efficient to organize Gimp resources (brushes, patterns, gradients, palettes). Currently the project is already somewhat usable, allowing user to assign tags, filter resources on selected tags, preserve tags between session and more.

Screenshots [1] and [2] show how resource (brush, etc) docks look. As you can see, there are two tag entries: the one on top is to filter based on selected tags, on the bottom is for tag assignment. Tags can be typed with keyboard [1] (specifically for tagging a special autocompletion was implemented: autocompletes tags even in the middle of tag list, doesn't offer already selected tags, etc) and selected with some pointing device [2] (popup window stays open to allow multiple tag selection, it can be closed by clicking somewhere outside).

Tags cache is stored in tag cache file (~/.gimp-2.5/.tag-cache.xml). The file is user editable, but that is normally not needed. Should user rename or move resource file(s) (brushes, etc), tag cache would detect changes based on file contents and correctly remap tags.

Source code is available: svn://svn.gnome.org/svn/gimp/branches/soc-2008-tagging. Questions, comments and recommendations are appreciated.

[1] http://img137.imageshack.us/img137/829/autocompletioniw0.png [2] http://img175.imageshack.us/img175/7020/popupcg7.png

Nice work! :) I like especially seeing how GimpData have no particular name, just tags. (I am guessing that their name is currently added as a tag though :)

After seeing how you have set up things here, I thought of this: There is probably a need to import tags when adding a set of patterns. As in, person A packages up eight patterns into a .zip file; They've tagged these patterns with a few things that make universal sense (eg 'stone', 'stippling', or 'hi contrast'). It would help persons B,C and D (users of these patterns) to be able to import tags for those patterns from an existing tag-cache.xml file. This is particularly useful as the number of resources in the packages increases, for example my package of dithering patterns (http://gimpstuff.org/content/show.php/dithering%2Bhalftoning+patterns?content=81817) could definitely benefit from it.
I am assuming that tag-cache.xml can easily be filtered by a script to contain only information about the items that are being distributed. So I envision a package containing something like

blackgranite.pat diamondstippling.pat
electricity.pat
mypackagename-tags.xml

and when the user initially unpacks the package, they import the tags. If they later want to recover the tags (since they may have deleted some of them from their own tags.) they can import the tags again.

Do you have a plan to address importation of tags?

I'm sure you have a plan to provide tag renaming -- this would be helpful for i18n, allowing a person to easily rename the original tag to something in their preferred language. eg 'stippling' -> 'miksi?i desino'

Do you plan to implement NOT filtering? as in 'dithering -diamond' filtering for patterns tagged 'dithering' that are not tagged 'diamond'.

Thanks,
David

Aurimas Juška
2008-07-14 09:05:34 UTC (over 16 years ago)

Tagging of Gimp Resources project status

Hi,

On Mon, Jul 14, 2008 at 3:45 AM, David Gowers

There is probably a need to import tags when adding a set of patterns. As in, person A packages up eight patterns into a .zip file; They've tagged these patterns with a few things that make universal sense (eg 'stone', 'stippling', or 'hi contrast'). It would help persons B,C and D (users of these patterns) to be able to import tags for those patterns from an existing tag-cache.xml file. This is particularly useful as the number of resources in the packages increases, for example my package of dithering patterns (http://gimpstuff.org/content/show.php/dithering%2Bhalftoning+patterns?content=81817) could definitely benefit from it.
I am assuming that tag-cache.xml can easily be filtered by a script to contain only information about the items that are being distributed. So I envision a package containing something like

blackgranite.pat diamondstippling.pat
electricity.pat
mypackagename-tags.xml

and when the user initially unpacks the package, they import the tags. If they later want to recover the tags (since they may have deleted some of them from their own tags.) they can import the tags again.

Do you have a plan to address importation of tags?

It is planned to create a platform independent resource file export and import functionality. One user exports some resources to a package (tags associated with resources are also stored in the package). Other user can import resources from the package together with their assigned tags.

I'm sure you have a plan to provide tag renaming -- this would be helpful for i18n, allowing a person to easily rename the original tag to something in their preferred language. eg 'stippling' -> 'miksi?i desino'

Yes, it will surely be possible.

Do you plan to implement NOT filtering? as in 'dithering -diamond' filtering for patterns tagged 'dithering' that are not tagged 'diamond'.

I haven't thought of it yet but it seems a good idea. Also, currently there is only AND search in tag queries. Maybe it would be good to add even more flexibility to advanced users.

Bill Skaggs
2008-07-14 17:36:04 UTC (over 16 years ago)

Tagging of Gimp Resources project status

Here is to me the most important question. Suppose the user wants to switch back and forth among a few brushes that don't have any natural relationship. Suppose for example that the user wants to draw with a pencil brush, and then erase parts of the drawing with a round parametric brush, and repeat the cycle. Is this sort of thing going to be supported in a way that is easy for the user?

-- Bill

David Gowers
2008-07-15 02:31:26 UTC (over 16 years ago)

Tagging of Gimp Resources project status

On Tue, Jul 15, 2008 at 1:06 AM, Bill Skaggs wrote:

Here is to me the most important question. Suppose the user wants to switch back and forth among a few brushes that don't have any natural relationship. Suppose for example that the user wants to draw with a pencil brush, and then erase parts of the drawing with a round parametric brush, and repeat the cycle. Is this sort of thing going to be supported in a way that is easy for the user?

-- Bill

Cycling between the brushes in the filtered view could do this (so, tag both with 'quickdraw' then use the action -- notice their ordering is not user-controllable in this scenario). I think 'next brush' and 'previous brush' actions that already exist should handle this.

However, they appear not to cycle currently -- ie going back from the first brush leaves you at the first brush rather than the last, and vice versa.
This should really be fixed -- cycling makes more sense for GimpData's (brush, pattern, palette) than the current, clipping, behaviour.
Looking at the code in app/actions/actions.c, it seems that all we need is to change action_select_object() to support wrapping, and then use that parameter (in context-commands.c and layers-commands.c).

A diff is attached that implements the suggested changes.

David Gowers
2008-07-15 02:33:06 UTC (over 16 years ago)

Tagging of Gimp Resources project status

On Tue, Jul 15, 2008 at 1:06 AM, Bill Skaggs wrote:

Here is to me the most important question. Suppose the user wants to switch back and forth among a few brushes that don't have any natural relationship. Suppose for example that the user wants to draw with a pencil brush, and then erase parts of the drawing with a round parametric brush, and repeat the cycle. Is this sort of thing going to be supported in a way that is easy for the user?

-- Bill

Cycling between the brushes in the filtered view could do this (so, tag both with 'quickdraw' then use the action -- notice their ordering is not user-controllable in this scenario). I think 'next brush' and 'previous brush' actions that already exist should handle this.

However, they appear not to cycle currently -- ie going back from the first brush leaves you at the first brush rather than the last, and vice versa.
This should really be fixed -- cycling makes more sense for GimpData's (brush, pattern, palette) than the current, clipping, behaviour.
Looking at the code in app/actions/actions.c, it seems that all we need is to change action_select_object() to support wrapping, and then use that parameter (in context-commands.c and layers-commands.c).

A diff is attached that implements the suggested changes.

David Gowers
2008-07-15 03:10:34 UTC (over 16 years ago)

Tagging of Gimp Resources project status

Hello,

On Tue, Jul 15, 2008 at 10:01 AM, David Gowers wrote:

On Tue, Jul 15, 2008 at 1:06 AM, Bill Skaggs wrote:

Here is to me the most important question. Suppose the user wants to switch back and forth among a few brushes that don't have any natural relationship. Suppose for example that the user wants to draw with a pencil brush, and then erase parts of the drawing with a round parametric brush, and repeat the cycle. Is this sort of thing going to be supported in a way that is easy for the user?

-- Bill

Cycling between the brushes in the filtered view could do this (so, tag both with 'quickdraw' then use the action -- notice their ordering is not user-controllable in this scenario). I think 'next brush' and 'previous brush' actions that already exist should handle this.

However, they appear not to cycle currently -- ie going back from the first brush leaves you at the first brush rather than the last, and vice versa.
This should really be fixed -- cycling makes more sense for GimpData's (brush, pattern, palette) than the current, clipping, behaviour.
Looking at the code in app/actions/actions.c, it seems that all we need is to change action_select_object() to support wrapping, and then use that parameter (in context-commands.c and layers-commands.c).

A diff is attached that implements the suggested changes.

.. I am puzzled by how this message got double posted.

I left a file out of the diff and some formatting was incorrect. Here is the revised diff.

Aurimas Juška
2008-08-17 15:53:15 UTC (over 16 years ago)

Tagging of Gimp Resources project status

Hi,

Here is some information about the current status of Tagging of Gimp Resources GSoC project.

If you're interested how Gimp resource tagging works now and what related features could be implemented in the future, there is a small introduction at
http://sites.google.com/site/aurijusk/gimp-resource-tagging

Technical information about tagging implementation in Gimp can be found in soc-2008-tagging branch [1], file devel-docs/tagging.txt (tag implementation overview) and also Gimp app reference manual.

[1] svn://svn.gnome.org/svn/gimp/branches/soc-2008-tagging

David Gowers
2008-08-18 12:09:07 UTC (over 16 years ago)

Tagging of Gimp Resources project status

Hi Aurimas, I've tried this out and read your PDF, this is what I think:

The basic idea is good and neatly implemented. It needs more consistency upon integration with SVN HEAD. For example
* 'Next Brush' / 'Previous Brush' actions don't move through the filtered view, they move through the entire set of brushes, including ones that aren't currently shown. Personally, most of the selection of resources I do occurs when no dialogs at all are visible, just the image window, so this makes tagging much more of a real benefit for me.
* brush selector button and pattern selector button in tool options is unfiltered

We would need a notion of 'current brush filter','current pattern filter', 'current gradient filter'... and it needs to apply globally, so that navigating to the next or previous item works, and filtering occurs for all brush/pattern/gradient selection popups.

PDB-wise, plug-ins need to be able to filter resources by tags, and it should be easy to get the e.g. 'current brush filter' for use in filtering.

As it is, this helps me a lot in organizing my palettes, and I hope to see it committed to SVN HEAD :)

David