[Shotwell] Enhansment to shotwell

Ruslan A. Bondar fsat at proton-sss.ru
Fri Apr 23 05:20:15 PDT 2010


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello, Adam.

I think the code change will contain following steps:
1. Add field "ParentTagId" to TagTable
2. Change the TagTable class to handle this field.
3. Change the find_parent_marker and add_tag_page methods in LibraryWindow to provide recursive tree creation for tag tree.
4. Change drag'n'drop handler to allow moving tags between branches.

And something more, such as listeners of tag tree alteration etc. I think these changes will not affect any other functionality. And no major changes in design are required.

I think it would be better to store only photos "owned" by this tag, but on load build the full list, containing photos from this and all child tags. And for now I see several ways:
1. Create helper table to speedup loading, but this will slow down tag reassigning (Tag moving between branches). This table may contain only 2 fields: TagId and AllTagPhotos.
2. Walk over the table recursively and build the list via concatenation, this will be slightly slower.

These are the common thoughts. I'll dig the source deeper during the weekend.

On Thu, 22 Apr 2010 19:25:51 -0700
Adam Dingle <adam at yorba.org> wrote:

> Ruslan,
> 
> thanks for your email.  As you probably know, we're also interested
> in hierarchical tagging.
> 
> I think at this point we'd like to implement a single-parent system,
> in which each tag can have multiple children but only one parent.
> This is ticket 1401.  After that, we might consider extending the
> system to support multiple parents in some way.
> 
> A single-parent tag system in Shotwell would work like this.  In the 
> sidebar, the user should be able to drag any tag A onto any other tag
> B; then A becomes a child of B.  If the user drags any tag onto the
> Tags heading, then it becomes a top-level tag.
> 
> If the user selects any tag, then Shotwell should display all photos 
> which belong to the tag or any of its children.  The set of photos is 
> sorted according to the View->Sort Photos settings.  If a photo
> belongs to multiple child tags, it is displayed only once in the
> sorted set.
> 
> All tag names must be globally unique.  For example, I can't create a 
> tag named "washington" under a parent "states", and another tag also 
> named "washington" under a parent tag "cities".
> 
> You said you might like to participate in coding this feature - that 
> would be great.  If the description above sounds reasonable to you,
> as a next step maybe you could look at the Shotwell code and send a
> brief design proposal to this mailing list.   In your proposal,
> please describe the database schema changes you intend, plus any new
> major classes introduced (if any) and any major changes to existing
> classes. We'd be happy to comment on your implementation plan.
> Thanks!
> 
> adam
> 
> Ruslan A. Bondar wrote:
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > Hello all.
> >
> > I have an idea, maybe similar to http://trac.yorba.org/ticket/1401,
> > but I'll tell in more details.
> >
> > It would be great to allow organizing tags into graph.
> > So one tag may have multiple parent and multiple children tags. And
> > each of them may be assigned to the photo. It will be more flexible
> > to organize your photos. As an owner of large, enough, photo album
> > (~100 GB of photos) I can say - This feature is VERY useful.
> >
> > Also I'd like to participate in coding of this feature.
> > -----BEGIN PGP SIGNATURE-----
> > Version: GnuPG v2.0.14 (GNU/Linux)
> >
> > iEYEARECAAYFAkvNx+QACgkQRadsTlsSykPASgCcDBrgeobgyNweH2CLTaFt1xZu
> > gqUAn3jfVCjMrDPuwQJQWvh3KBYqdq7q
> > =4KsN
> > -----END PGP SIGNATURE-----
> > _______________________________________________
> > Shotwell mailing list
> > Shotwell at lists.yorba.org
> > http://lists.yorba.org/cgi-bin/mailman/listinfo/shotwell
> >
> >   
> 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)

iEYEARECAAYFAkvRkIYACgkQRadsTlsSykNC4gCeJ6XCVc9RzUwluOwj/lo960xg
G30AnAvyDgsu+DK9raFT2LUZFOtf3APZ
=LAuc
-----END PGP SIGNATURE-----


More information about the Shotwell mailing list