{"action":"created","comment":{"url":"https://api.github.com/repos/dimitar-asenov/Envision/pulls/comments/35303666","id":35303666,"diff_hunk":"@@ -55,20 +55,68 @@ class VISUALIZATIONBASE_API ViewItem : public Super<DeclarativeItem<ViewItem>> {\n \t\t */\n \t\tstatic int publicInterfacePurpose();\n \n+\t\t/**\n+\t\t * Insert an empty column into the grid of nodes\n+\t\t */\n \t\tvoid insertColumn(int column);\n+\t\t/**\n+\t\t * Insert the given node into the grid at the given position, rendering\n+\t\t * it with the given purpose.\n+\t\t */\n \t\tModel::Node* insertNode(Model::Node* node, int column = 0, int row = 0, int purpose = -1);\n+\t\t/**\n+\t\t * Remove the given node from the view (this does not delete the node from the model)\n+\t\t */\n \t\tvoid removeNode(Model::Node* node);\n+\t\t/**\n+\t\t * Returns all nodes in the grid in list form.\n+\t\t */\n \t\tQList<Model::Node*> allNodes() const;\n+\t\t/**\n+\t\t * Returns the position of the given node in the grid, or (-1, -1) if it doesn't exist.\n+\t\t */\n \t\tQPoint positionOfNode(Model::Node* node) const;\n+\t\t/**\n+\t\t * Returns the position of the given item's node in the grid, or (-1, -1) if the item\n+\t\t * has no node, or the node is not part of the grid.\n+\t\t */\n \t\tQPoint positionOfItem(Item* item) const;\n+\t\t/**\n+\t\t * Returns the node at the given position. If the position is invalid, returns nullptr.\n+\t\t */\n \t\tModel::Node* nodeAt(int column, int row) const;\n \n+\t\t/**\n+\t\t * Notify the view about an item being removed externally (e.g. by deleting its node).\n+\t\t */\n+\t\tvoid notifyAboutRemoval(Item* item);\n+\t\t/**\n+\t\t * Notify the view about a node being removed externally (e.g. by deleting it from the tree).\n+\t\t */\n+\t\tvoid notifyAboutRemoval(Model::Node* node);\n+\n+\t\t/**\n+\t\t * Adds a spacing node at the given position, using the given target and parent\n+\t\t * to determine the spacing.\n+\t\t */\n \t\tvoid addSpacing(int column, int row, Model::Node* spacingTarget,\n \t\t\t\t\t\tViewItemNode* spacingParent);\n \n+\t\t/**\n+\t\t * Adds an arrow from the first to the second node on the given arrow layer.\n+\t\t * If fromParent and toParent are set, only one arrow will be drawn. Otherwise, an arrow\n+\t\t * will be drawn between any two instances of the given nodes.\n+\t\t */\n \t\tvoid addArrow(Model::Node* from, Model::Node* to, QString layer,\n \t\t\t\t\t  ViewItemNode* fromParent = nullptr, ViewItemNode* toParent = nullptr);\n+\t\t/**\n+\t\t * Returns the items for which an arrow should be drawn in the given arrow layer.\n+\t\t */\n \t\tQList<QPair<Item*, Item*>> arrowsForLayer(QString layer);\n+\t\t/**\n+\t\t * Returns the full layer name of the local arrow layer, as used in the overlay which\n+\t\t * exists in the scene itself.\n+\t\t */","path":"VisualizationBase/src/items/ViewItem.h","position":65,"original_position":65,"commit_id":"37d41c75799a7ff6911b15ef156e9d14458e9bee","original_commit_id":"37d41c75799a7ff6911b15ef156e9d14458e9bee","user":{"login":"dimitar-asenov","id":1152976,"avatar_url":"https://avatars.githubusercontent.com/u/1152976?v=3","gravatar_id":"","url":"https://api.github.com/users/dimitar-asenov","html_url":"https://github.com/dimitar-asenov","followers_url":"https://api.github.com/users/dimitar-asenov/followers","following_url":"https://api.github.com/users/dimitar-asenov/following{/other_user}","gists_url":"https://api.github.com/users/dimitar-asenov/gists{/gist_id}","starred_url":"https://api.github.com/users/dimitar-asenov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dimitar-asenov/subscriptions","organizations_url":"https://api.github.com/users/dimitar-asenov/orgs","repos_url":"https://api.github.com/users/dimitar-asenov/repos","events_url":"https://api.github.com/users/dimitar-asenov/events{/privacy}","received_events_url":"https://api.github.com/users/dimitar-asenov/received_events","type":"User","site_admin":false},"body":"Thanks for putting all these comments here.","created_at":"2015-07-23T09:20:38Z","updated_at":"2015-07-23T09:20:38Z","html_url":"https://github.com/dimitar-asenov/Envision/pull/109#discussion_r35303666","pull_request_url":"https://api.github.com/repos/dimitar-asenov/Envision/pulls/109","_links":{"self":{"href":"https://api.github.com/repos/dimitar-asenov/Envision/pulls/comments/35303666"},"html":{"href":"https://github.com/dimitar-asenov/Envision/pull/109#discussion_r35303666"},"pull_request":{"href":"https://api.github.com/repos/dimitar-asenov/Envision/pulls/109"}}},"pull_request":{"url":"https://api.github.com/repos/dimitar-asenov/Envision/pulls/109","id":40558849,"html_url":"https://github.com/dimitar-asenov/Envision/pull/109","diff_url":"https://github.com/dimitar-asenov/Envision/pull/109.diff","patch_url":"https://github.com/dimitar-asenov/Envision/pull/109.patch","issue_url":"https://api.github.com/repos/dimitar-asenov/Envision/issues/109","number":109,"state":"open","locked":false,"title":"Task views","user":{"login":"cyril-steimer","id":11210821,"avatar_url":"https://avatars.githubusercontent.com/u/11210821?v=3","gravatar_id":"","url":"https://api.github.com/users/cyril-steimer","html_url":"https://github.com/cyril-steimer","followers_url":"https://api.github.com/users/cyril-steimer/followers","following_url":"https://api.github.com/users/cyril-steimer/following{/other_user}","gists_url":"https://api.github.com/users/cyril-steimer/gists{/gist_id}","starred_url":"https://api.github.com/users/cyril-steimer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cyril-steimer/subscriptions","organizations_url":"https://api.github.com/users/cyril-steimer/orgs","repos_url":"https://api.github.com/users/cyril-steimer/repos","events_url":"https://api.github.com/users/cyril-steimer/events{/privacy}","received_events_url":"https://api.github.com/users/cyril-steimer/received_events","type":"User","site_admin":false},"body":"A few changes were made here:\r\n- Can now store and load Json from file (I needed to create a views folder in the DebugBuild folder, is there a way to do this without extra code, and without others having to manually create it?)\r\n- The names to create a new ViewItem must now be unique.\r\n- In the menu, when typing a name referring to a stored ViewItem, loads that.\r\n- Added a command to add nodes by its name. I am again using the AllTreeManagers first TreeManager to access its root - is there a way to find the \"current root\"? It also uses AutoComplete in a way similar to the creating methods/classes thing, there is no need to spell the entire name. Separating parts of the name is done by _, using dots didn't work somehow.","created_at":"2015-07-22T12:23:21Z","updated_at":"2015-07-23T09:20:38Z","closed_at":null,"merged_at":null,"merge_commit_sha":"83e2e56e671b57b86f244063a604a38fab354dcf","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/dimitar-asenov/Envision/pulls/109/commits","review_comments_url":"https://api.github.com/repos/dimitar-asenov/Envision/pulls/109/comments","review_comment_url":"https://api.github.com/repos/dimitar-asenov/Envision/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dimitar-asenov/Envision/issues/109/comments","statuses_url":"https://api.github.com/repos/dimitar-asenov/Envision/statuses/37d41c75799a7ff6911b15ef156e9d14458e9bee","head":{"label":"cyril-steimer:task-views","ref":"task-views","sha":"37d41c75799a7ff6911b15ef156e9d14458e9bee","user":{"login":"cyril-steimer","id":11210821,"avatar_url":"https://avatars.githubusercontent.com/u/11210821?v=3","gravatar_id":"","url":"https://api.github.com/users/cyril-steimer","html_url":"https://github.com/cyril-steimer","followers_url":"https://api.github.com/users/cyril-steimer/followers","following_url":"https://api.github.com/users/cyril-steimer/following{/other_user}","gists_url":"https://api.github.com/users/cyril-steimer/gists{/gist_id}","starred_url":"https://api.github.com/users/cyril-steimer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cyril-steimer/subscriptions","organizations_url":"https://api.github.com/users/cyril-steimer/orgs","repos_url":"https://api.github.com/users/cyril-steimer/repos","events_url":"https://api.github.com/users/cyril-steimer/events{/privacy}","received_events_url":"https://api.github.com/users/cyril-steimer/received_events","type":"User","site_admin":false},"repo":{"id":31468586,"name":"Envision","full_name":"cyril-steimer/Envision","owner":{"login":"cyril-steimer","id":11210821,"avatar_url":"https://avatars.githubusercontent.com/u/11210821?v=3","gravatar_id":"","url":"https://api.github.com/users/cyril-steimer","html_url":"https://github.com/cyril-steimer","followers_url":"https://api.github.com/users/cyril-steimer/followers","following_url":"https://api.github.com/users/cyril-steimer/following{/other_user}","gists_url":"https://api.github.com/users/cyril-steimer/gists{/gist_id}","starred_url":"https://api.github.com/users/cyril-steimer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cyril-steimer/subscriptions","organizations_url":"https://api.github.com/users/cyril-steimer/orgs","repos_url":"https://api.github.com/users/cyril-steimer/repos","events_url":"https://api.github.com/users/cyril-steimer/events{/privacy}","received_events_url":"https://api.github.com/users/cyril-steimer/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/cyril-steimer/Envision","description":"A next generation IDE with a visual programming interface","fork":true,"url":"https://api.github.com/repos/cyril-steimer/Envision","forks_url":"https://api.github.com/repos/cyril-steimer/Envision/forks","keys_url":"https://api.github.com/repos/cyril-steimer/Envision/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cyril-steimer/Envision/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cyril-steimer/Envision/teams","hooks_url":"https://api.github.com/repos/cyril-steimer/Envision/hooks","issue_events_url":"https://api.github.com/repos/cyril-steimer/Envision/issues/events{/number}","events_url":"https://api.github.com/repos/cyril-steimer/Envision/events","assignees_url":"https://api.github.com/repos/cyril-steimer/Envision/assignees{/user}","branches_url":"https://api.github.com/repos/cyril-steimer/Envision/branches{/branch}","tags_url":"https://api.github.com/repos/cyril-steimer/Envision/tags","blobs_url":"https://api.github.com/repos/cyril-steimer/Envision/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cyril-steimer/Envision/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cyril-steimer/Envision/git/refs{/sha}","trees_url":"https://api.github.com/repos/cyril-steimer/Envision/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cyril-steimer/Envision/statuses/{sha}","languages_url":"https://api.github.com/repos/cyril-steimer/Envision/languages","stargazers_url":"https://api.github.com/repos/cyril-steimer/Envision/stargazers","contributors_url":"https://api.github.com/repos/cyril-steimer/Envision/contributors","subscribers_url":"https://api.github.com/repos/cyril-steimer/Envision/subscribers","subscription_url":"https://api.github.com/repos/cyril-steimer/Envision/subscription","commits_url":"https://api.github.com/repos/cyril-steimer/Envision/commits{/sha}","git_commits_url":"https://api.github.com/repos/cyril-steimer/Envision/git/commits{/sha}","comments_url":"https://api.github.com/repos/cyril-steimer/Envision/comments{/number}","issue_comment_url":"https://api.github.com/repos/cyril-steimer/Envision/issues/comments{/number}","contents_url":"https://api.github.com/repos/cyril-steimer/Envision/contents/{+path}","compare_url":"https://api.github.com/repos/cyril-steimer/Envision/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cyril-steimer/Envision/merges","archive_url":"https://api.github.com/repos/cyril-steimer/Envision/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cyril-steimer/Envision/downloads","issues_url":"https://api.github.com/repos/cyril-steimer/Envision/issues{/number}","pulls_url":"https://api.github.com/repos/cyril-steimer/Envision/pulls{/number}","milestones_url":"https://api.github.com/repos/cyril-steimer/Envision/milestones{/number}","notifications_url":"https://api.github.com/repos/cyril-steimer/Envision/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cyril-steimer/Envision/labels{/name}","releases_url":"https://api.github.com/repos/cyril-steimer/Envision/releases{/id}","created_at":"2015-02-28T16:40:30Z","updated_at":"2015-03-05T13:45:04Z","pushed_at":"2015-07-22T16:51:54Z","git_url":"git://github.com/cyril-steimer/Envision.git","ssh_url":"git@github.com:cyril-steimer/Envision.git","clone_url":"https://github.com/cyril-steimer/Envision.git","svn_url":"https://github.com/cyril-steimer/Envision","homepage":"http://dimitar-asenov.github.com/Envision/","size":42235,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"development"}},"base":{"label":"dimitar-asenov:development","ref":"development","sha":"1812695d68d4833891ffbe9cf14d66556e5d301a","user":{"login":"dimitar-asenov","id":1152976,"avatar_url":"https://avatars.githubusercontent.com/u/1152976?v=3","gravatar_id":"","url":"https://api.github.com/users/dimitar-asenov","html_url":"https://github.com/dimitar-asenov","followers_url":"https://api.github.com/users/dimitar-asenov/followers","following_url":"https://api.github.com/users/dimitar-asenov/following{/other_user}","gists_url":"https://api.github.com/users/dimitar-asenov/gists{/gist_id}","starred_url":"https://api.github.com/users/dimitar-asenov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dimitar-asenov/subscriptions","organizations_url":"https://api.github.com/users/dimitar-asenov/orgs","repos_url":"https://api.github.com/users/dimitar-asenov/repos","events_url":"https://api.github.com/users/dimitar-asenov/events{/privacy}","received_events_url":"https://api.github.com/users/dimitar-asenov/received_events","type":"User","site_admin":false},"repo":{"id":2650576,"name":"Envision","full_name":"dimitar-asenov/Envision","owner":{"login":"dimitar-asenov","id":1152976,"avatar_url":"https://avatars.githubusercontent.com/u/1152976?v=3","gravatar_id":"","url":"https://api.github.com/users/dimitar-asenov","html_url":"https://github.com/dimitar-asenov","followers_url":"https://api.github.com/users/dimitar-asenov/followers","following_url":"https://api.github.com/users/dimitar-asenov/following{/other_user}","gists_url":"https://api.github.com/users/dimitar-asenov/gists{/gist_id}","starred_url":"https://api.github.com/users/dimitar-asenov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dimitar-asenov/subscriptions","organizations_url":"https://api.github.com/users/dimitar-asenov/orgs","repos_url":"https://api.github.com/users/dimitar-asenov/repos","events_url":"https://api.github.com/users/dimitar-asenov/events{/privacy}","received_events_url":"https://api.github.com/users/dimitar-asenov/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/dimitar-asenov/Envision","description":"A next generation IDE with a visual programming interface","fork":false,"url":"https://api.github.com/repos/dimitar-asenov/Envision","forks_url":"https://api.github.com/repos/dimitar-asenov/Envision/forks","keys_url":"https://api.github.com/repos/dimitar-asenov/Envision/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dimitar-asenov/Envision/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dimitar-asenov/Envision/teams","hooks_url":"https://api.github.com/repos/dimitar-asenov/Envision/hooks","issue_events_url":"https://api.github.com/repos/dimitar-asenov/Envision/issues/events{/number}","events_url":"https://api.github.com/repos/dimitar-asenov/Envision/events","assignees_url":"https://api.github.com/repos/dimitar-asenov/Envision/assignees{/user}","branches_url":"https://api.github.com/repos/dimitar-asenov/Envision/branches{/branch}","tags_url":"https://api.github.com/repos/dimitar-asenov/Envision/tags","blobs_url":"https://api.github.com/repos/dimitar-asenov/Envision/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dimitar-asenov/Envision/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dimitar-asenov/Envision/git/refs{/sha}","trees_url":"https://api.github.com/repos/dimitar-asenov/Envision/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dimitar-asenov/Envision/statuses/{sha}","languages_url":"https://api.github.com/repos/dimitar-asenov/Envision/languages","stargazers_url":"https://api.github.com/repos/dimitar-asenov/Envision/stargazers","contributors_url":"https://api.github.com/repos/dimitar-asenov/Envision/contributors","subscribers_url":"https://api.github.com/repos/dimitar-asenov/Envision/subscribers","subscription_url":"https://api.github.com/repos/dimitar-asenov/Envision/subscription","commits_url":"https://api.github.com/repos/dimitar-asenov/Envision/commits{/sha}","git_commits_url":"https://api.github.com/repos/dimitar-asenov/Envision/git/commits{/sha}","comments_url":"https://api.github.com/repos/dimitar-asenov/Envision/comments{/number}","issue_comment_url":"https://api.github.com/repos/dimitar-asenov/Envision/issues/comments{/number}","contents_url":"https://api.github.com/repos/dimitar-asenov/Envision/contents/{+path}","compare_url":"https://api.github.com/repos/dimitar-asenov/Envision/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dimitar-asenov/Envision/merges","archive_url":"https://api.github.com/repos/dimitar-asenov/Envision/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dimitar-asenov/Envision/downloads","issues_url":"https://api.github.com/repos/dimitar-asenov/Envision/issues{/number}","pulls_url":"https://api.github.com/repos/dimitar-asenov/Envision/pulls{/number}","milestones_url":"https://api.github.com/repos/dimitar-asenov/Envision/milestones{/number}","notifications_url":"https://api.github.com/repos/dimitar-asenov/Envision/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dimitar-asenov/Envision/labels{/name}","releases_url":"https://api.github.com/repos/dimitar-asenov/Envision/releases{/id}","created_at":"2011-10-26T12:03:58Z","updated_at":"2015-07-10T16:22:24Z","pushed_at":"2015-07-22T16:51:55Z","git_url":"git://github.com/dimitar-asenov/Envision.git","ssh_url":"git@github.com:dimitar-asenov/Envision.git","clone_url":"https://github.com/dimitar-asenov/Envision.git","svn_url":"https://github.com/dimitar-asenov/Envision","homepage":"http://dimitar-asenov.github.com/Envision/","size":47273,"stargazers_count":18,"watchers_count":18,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":14,"mirror_url":null,"open_issues_count":32,"forks":14,"open_issues":32,"watchers":18,"default_branch":"development"}},"_links":{"self":{"href":"https://api.github.com/repos/dimitar-asenov/Envision/pulls/109"},"html":{"href":"https://github.com/dimitar-asenov/Envision/pull/109"},"issue":{"href":"https://api.github.com/repos/dimitar-asenov/Envision/issues/109"},"comments":{"href":"https://api.github.com/repos/dimitar-asenov/Envision/issues/109/comments"},"review_comments":{"href":"https://api.github.com/repos/dimitar-asenov/Envision/pulls/109/comments"},"review_comment":{"href":"https://api.github.com/repos/dimitar-asenov/Envision/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dimitar-asenov/Envision/pulls/109/commits"},"statuses":{"href":"https://api.github.com/repos/dimitar-asenov/Envision/statuses/37d41c75799a7ff6911b15ef156e9d14458e9bee"}}}}