{"action":"created","issue":{"url":"https://api.github.com/repos/mltframework/shotcut/issues/281","repository_url":"https://api.github.com/repos/mltframework/shotcut","labels_url":"https://api.github.com/repos/mltframework/shotcut/issues/281/labels{/name}","comments_url":"https://api.github.com/repos/mltframework/shotcut/issues/281/comments","events_url":"https://api.github.com/repos/mltframework/shotcut/issues/281/events","html_url":"https://github.com/mltframework/shotcut/pull/281","id":167198518,"number":281,"title":"Paint playlist items using a custom delegate","user":{"login":"metellius","id":9467,"avatar_url":"https://avatars.githubusercontent.com/u/9467?v=3","gravatar_id":"","url":"https://api.github.com/users/metellius","html_url":"https://github.com/metellius","followers_url":"https://api.github.com/users/metellius/followers","following_url":"https://api.github.com/users/metellius/following{/other_user}","gists_url":"https://api.github.com/users/metellius/gists{/gist_id}","starred_url":"https://api.github.com/users/metellius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/metellius/subscriptions","organizations_url":"https://api.github.com/users/metellius/orgs","repos_url":"https://api.github.com/users/metellius/repos","events_url":"https://api.github.com/users/metellius/events{/privacy}","received_events_url":"https://api.github.com/users/metellius/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":13,"created_at":"2016-07-23T19:07:34Z","updated_at":"2016-08-05T18:54:13Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/mltframework/shotcut/pulls/281","html_url":"https://github.com/mltframework/shotcut/pull/281","diff_url":"https://github.com/mltframework/shotcut/pull/281.diff","patch_url":"https://github.com/mltframework/shotcut/pull/281.patch"},"body":"This uses the screen space more efficiently because we are no longer\r\nconstrained to a tabular layout with one cell for each piece of information.\r\n\r\nShort summary of the changes so far:\r\n\r\n- A class inheriting from QStyledItemDelegate is introduced, which handles painting of items\r\n- PlaylistModel is modified so the different pieces of information are available as different roles, and not columns. This lets the delegate painter retrieve all it wants even though it's just painting a single cell.\r\n\r\nThis pull request is not ready for merge, because there is still one issue remaining that will affect how to proceed: compact playlists without thumbnails.\r\nFor the thumbnail case, there is enough space next to the thumbnail to present clip in/duration/start, like this:\r\n\r\n![](http://i.imgur.com/PUzt0cV.png)\r\n\r\nBut, when choosing the compact style AKA \"hidden\", the row height is too small to fit all of this. For reference, here's how it looks in the latest release:\r\n\r\n![](http://i.imgur.com/6DwLY6L.png)\r\n\r\nHere's two suggested solutions:\r\n\r\n(1) We set the row height to font lineheight * 2, and wrap the time fields into two lines. Pros: still no horizontal scrollbars. Cons: Less compact than before\r\n\r\n(2) When choosing \"hidden\", the model goes back to COLUMN_COUNT like today, and shows the in/duration/start fields in columns. For thumbnail modes, there is only one column and painting is done with the delegate painter. Pros: Rows are just as compact as today. Cons: more code complexity, horizontal scroll bars\r\n\r\nI'm leaning towards (1), but I'd like your opinion before I do any more because going for (2) would need more refactoring."},"comment":{"url":"https://api.github.com/repos/mltframework/shotcut/issues/comments/237933637","html_url":"https://github.com/mltframework/shotcut/pull/281#issuecomment-237933637","issue_url":"https://api.github.com/repos/mltframework/shotcut/issues/281","id":237933637,"user":{"login":"ddennedy","id":1146683,"avatar_url":"https://avatars.githubusercontent.com/u/1146683?v=3","gravatar_id":"","url":"https://api.github.com/users/ddennedy","html_url":"https://github.com/ddennedy","followers_url":"https://api.github.com/users/ddennedy/followers","following_url":"https://api.github.com/users/ddennedy/following{/other_user}","gists_url":"https://api.github.com/users/ddennedy/gists{/gist_id}","starred_url":"https://api.github.com/users/ddennedy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ddennedy/subscriptions","organizations_url":"https://api.github.com/users/ddennedy/orgs","repos_url":"https://api.github.com/users/ddennedy/repos","events_url":"https://api.github.com/users/ddennedy/events{/privacy}","received_events_url":"https://api.github.com/users/ddennedy/received_events","type":"User","site_admin":false},"created_at":"2016-08-05T18:54:13Z","updated_at":"2016-08-05T18:54:13Z","body":"> when in multitrack mode\r\n\r\nYou can not assume the playlist is used as a media bin simply because the project is multitrack. See Export > From > Playlist. You can still use the playlist as a true playlist. Or, another use case is to use it to stage a track and choose \"Add All to Timeline.\" So, the question is: does the user expect the sorted order to affect the sequence of those operations? Probably so, but it will not with a simple model sort. Therefore, sorting must reorder the MLT playlist.\r\n"}}
{"actor":{"display_login":"ddennedy"}}