{"action":"created","issue":{"url":"https://api.github.com/repos/qutebrowser/qutebrowser/issues/4602","repository_url":"https://api.github.com/repos/qutebrowser/qutebrowser","labels_url":"https://api.github.com/repos/qutebrowser/qutebrowser/issues/4602/labels{/name}","comments_url":"https://api.github.com/repos/qutebrowser/qutebrowser/issues/4602/comments","events_url":"https://api.github.com/repos/qutebrowser/qutebrowser/issues/4602/events","html_url":"https://github.com/qutebrowser/qutebrowser/pull/4602","id":413449321,"node_id":"MDExOlB1bGxSZXF1ZXN0MjU1NDMwNzIz","number":4602,"title":"Implement Tree Tabs","user":{"login":"pinusc","id":9137158,"node_id":"MDQ6VXNlcjkxMzcxNTg=","avatar_url":"https://avatars2.githubusercontent.com/u/9137158?v=4","gravatar_id":"","url":"https://api.github.com/users/pinusc","html_url":"https://github.com/pinusc","followers_url":"https://api.github.com/users/pinusc/followers","following_url":"https://api.github.com/users/pinusc/following{/other_user}","gists_url":"https://api.github.com/users/pinusc/gists{/gist_id}","starred_url":"https://api.github.com/users/pinusc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pinusc/subscriptions","organizations_url":"https://api.github.com/users/pinusc/orgs","repos_url":"https://api.github.com/users/pinusc/repos","events_url":"https://api.github.com/users/pinusc/events{/privacy}","received_events_url":"https://api.github.com/users/pinusc/received_events","type":"User","site_admin":false},"labels":[{"id":708435425,"node_id":"MDU6TGFiZWw3MDg0MzU0MjU=","url":"https://api.github.com/repos/qutebrowser/qutebrowser/labels/status:%20needs%20review","name":"status: needs review","color":"fef2c0","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":34,"created_at":"2019-02-22T15:18:32Z","updated_at":"2019-06-02T12:06:00Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/qutebrowser/qutebrowser/pulls/4602","html_url":"https://github.com/qutebrowser/qutebrowser/pull/4602","diff_url":"https://github.com/qutebrowser/qutebrowser/pull/4602.diff","patch_url":"https://github.com/qutebrowser/qutebrowser/pull/4602.patch"},"body":"As discussed in #927. \r\n\r\nThis pull request implements Tree Tabs in qutebrowser in a similar fashion to Firefox's Tree-Style-Tabs plugin. **It is stable enough for everyday use**, but it needs testing and review. \r\n\r\n**Implemented features:**\r\n- [x] Basic tree-stabs functionality\r\n- [x] Setting to toggle tree-tabs functionality\r\n- [x] Folding tab groups\r\n- [x] User-created groups (`qute://tabgroup/title`)\r\n- [x] Commands to manipulate tree-tabs:\r\n    - [x] `:tree-tab-bubble [up, down]`\r\n    - [x] `:tree-tab-rotate [up, down]`\r\n    - [x] `:tab-close --recursive`\r\n    - [x] `:tree-tab-navigate-on-same-level [up, down]i`\r\n    - [x] `:tree-tab-promote` and `:tree-tab-demote`\r\n- [x] `notree.py` module to replace `anytree` dependency\r\n- [x] `:session-save` preserves tree structures\r\n- [x] `:tab-move` moves entire subtrees correctly\r\n- [x] Unrelated tabs are created under root node, and they follow `set tabs.new_position.unrelated`\r\n- [x] `undo` restores correct parent & children of the tab, and restores the entrire tree closed by `:tab-close -r`\r\n\r\n**To Do:**\r\n- [x] Possibly improve performance by reducing calls to `TabWidget.update_tab_titles()` and `TabWidget.tree_tabs_update_positions()`\r\n- [x] Add more tests for `notree`\r\n- [x] Add unit tests\r\n\r\n**Other problems:**\r\n- There are no known bugs, but more testing is needed.\r\n- Tab dragging with the mouse does not work, and it probably won't be fixed in this pull request.\r\n\r\nEdit: undo feature: wontfix -> working now\r\n\r\n<!-- Reviewable:start -->\r\n---\r\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/qutebrowser/qutebrowser/4602)\r\n<!-- Reviewable:end -->\r\n"},"comment":{"url":"https://api.github.com/repos/qutebrowser/qutebrowser/issues/comments/498025210","html_url":"https://github.com/qutebrowser/qutebrowser/pull/4602#issuecomment-498025210","issue_url":"https://api.github.com/repos/qutebrowser/qutebrowser/issues/4602","id":498025210,"node_id":"MDEyOklzc3VlQ29tbWVudDQ5ODAyNTIxMA==","user":{"login":"pinusc","id":9137158,"node_id":"MDQ6VXNlcjkxMzcxNTg=","avatar_url":"https://avatars2.githubusercontent.com/u/9137158?v=4","gravatar_id":"","url":"https://api.github.com/users/pinusc","html_url":"https://github.com/pinusc","followers_url":"https://api.github.com/users/pinusc/followers","following_url":"https://api.github.com/users/pinusc/following{/other_user}","gists_url":"https://api.github.com/users/pinusc/gists{/gist_id}","starred_url":"https://api.github.com/users/pinusc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pinusc/subscriptions","organizations_url":"https://api.github.com/users/pinusc/orgs","repos_url":"https://api.github.com/users/pinusc/repos","events_url":"https://api.github.com/users/pinusc/events{/privacy}","received_events_url":"https://api.github.com/users/pinusc/received_events","type":"User","site_admin":false},"created_at":"2019-06-02T12:06:00Z","updated_at":"2019-06-02T12:06:00Z","author_association":"NONE","body":"Thank you very much for the feedback.\r\n\r\nI fixed `:tree-tab-create-group` command. Before, you needed to quote the title like this: `:tree-tab-create-group \"Foo bar\"`. Now quotes are no longer needed.\r\n\r\nI'll look into making the documentation clearer. "}}
{"actor":{"display_login":"pinusc"}}