After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 583266 - Clarification of Linking and Grouping
Clarification of Linking and Grouping
Status: RESOLVED FIXED
Product: pitivi
Classification: Other
Component: User interface
Git
Other Linux
: Normal normal
: 0.91
Assigned To: Pitivi maintainers
Pitivi maintainers
: 582378 585739 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2009-05-19 21:40 UTC by Brandon Lewis
Modified: 2013-09-21 15:23 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Brandon Lewis 2009-05-19 21:40:32 UTC
PiTiVi's concept of linking and grouping is a bit counter-intuitive. Currently we support:

Linking currently means:
* syncing start times of distinct timeline objects (linking)

While grouping currently means:
* combining / decomposing timeline objects from / into separate track objects 

A proposed (but unimplemented) extension of the concept of grouping is
* recursive composition of timelines

Idea: Replacing existing notion of linking with the current sense of "grouping". "Linking" becomes "reparenting of track objects", while "Grouping" becomes "recursive combination of groups of timeline objects into sub-timelines.

The new notion of linking would involve the following: When linking multiple objects from the same factory, this just reduces combining them all into a timeline object with their native factory. Linking linked clips merges all the TimelineObjects together into a single flat object. When linking track objects created from different factories, a special TimelineObject designed to handle track objects from multiple factories would be used which would keep start times in relative sync but would allow free trimming and positioning of separate track objects.

Whatever the case, unlinking simply becomes separating specified TrackObjects from their parent TimelineObject object and adding them to the timeline as children of a new TimelineObject created with their native factory.

The new notion of grouping would involve the following: A sequence of TimelineObjects are used to define a new TimelineSourceFactory, an instance of which is then added to the project library (enabling cloning of the sub-sequence). The original timeline objects are then removed from the timeline, while a new TimelineObject, created using the TimelineSourceFactory, is inserted into the timeline. Ungrouping should replace this sub-timeline with its component TimelineObjects.

Using this scheme it should be logically possible to nest Timelines infinitely. Creating groups of groups should preserve the hierarchical ordering as it would in a vector drawing application. With the current UI the effect of grouping several distinct timeline objects together should be that they appear as one object, occupying one layer in each track, regardless of whether the original objects spanned multiple layers. This is because these objects have been replaced a single track object in each track, representing the output of a gnlcomposition behind the underlying timeline. Changes to the group will involve ungrouping and regrouping for the time being. Operations on this sub-sequence should now apply to the sequence as a whole, including splitting, trimming, and effects.

If we did this, we would only need to implement Linking and Unlinking when we add effects processing to PiTiVi.
Comment 1 Brandon Lewis 2009-05-19 21:45:08 UTC
"Linking linked clips merges all the TimelineObjects together into a single flat object." shoudl read "...merges all the TrackObjects into a single TimelineObject, flattening the hierarchy".

"If we did this, we would only need to implement Linking and Unlinking when we
add effects processing to PiTiVi."

should read "...until we add effects processing to PiTiVi"
Comment 2 Brandon Lewis 2009-05-30 15:15:20 UTC
Starting a branch "better_linking_and_grouping" in my repository to work on this
Comment 3 Edward Hervey 2009-06-26 05:48:42 UTC
*** Bug 585739 has been marked as a duplicate of this bug. ***
Comment 4 Brandon Lewis 2009-07-17 04:14:37 UTC
I've been furiously rebasing and cleaning up the better_linking_and_grouping branch. I split out linking portion of code into a separate branch called "linking", which i'm currently trying to rebase against master. 

I don't think it's going to make it in before the code freeze.
Comment 5 Jean-François Fortin Tam 2010-02-06 01:47:43 UTC
*** Bug 582378 has been marked as a duplicate of this bug. ***
Comment 6 antistress 2010-09-24 11:26:45 UTC
I was about to fill a bug report to write that, as a user, i don't understand the difference between Linking and Grouping.

From a usability point of view, having 2 (supposed) major tools that i don't understand is a big fail for PiTiVi and for me

I've read the 1st post of this report but i still don't understand (maybe it's too technical for me, or my english is not good enough)

Do we really need 2 tools ? i understand what liking or grouping mean and for me it's quite interchangeable. From my point of view, i can group (or link) 2 movies together in the time line, or an audio track with a video track. It's the same tool for me.

If i want to ungroup (or unlink) i understand that 2 tools are needed depending if the user mean "splitting audio/video track" or "splitting 2 movies that have been grouped before"

Therefore i see 3 possible actions :
- grouping what is selected (no matter if it's audio/video or several movies)
- ungrouping/unlinking audio & video
- ungrouping/unlinking 2 movies that have beeen grouped before

I think there is some work to find an understandable GUI for that.

How is it handle in other video editor ? Maybe a wiki should be create to think about that ?

I would set the priority of that bug quite high since it seems to me a major usability problem (not understanding what basic tools do)

thanks
Comment 7 Jean-François Fortin Tam 2010-09-24 13:32:26 UTC
There's already a wiki page for it:

http://wiki.pitivi.org/wiki/UI_Design#Linking
http://wiki.pitivi.org/wiki/UI_Design#Grouping

But I never remember how this all works, and if users have to look in this wiki page, we have failed.

> How is it handled in other video editors?

Vegas doesn't have such a notion. You just group/ungroup anything (like the "3 possible actions" you suggested, I think). Other video editors have the same kind of grouping behavior, I think. No wonder I'm confused.

> Whyyyy?!

I think the reason it is the way it is in pitivi is that the ui maps to how "gnonlin thinks" instead of mapping to how users think; and/or it is designed with to the assumption that we would like to apply effects (or whatever) to linked (I think?) clips, which is a concept/metaphor I've always been against (I instead advocate the approach of being able to apply effects to "layers" in addition to applying them per-clip; this is how it's done in Veg' and a couple of other apps, and it works).

I haven't spent gigantic amounts of time defending this position so far because we have/had so much more pressing things to fix before that (we didn't even have effects, so it didn't matter that much).

I'm guessing that I would be so much easier to have a hackfest (where I can physically meet the devs) to have a chance to clean up the confusion :)