{"action":"created","issue":{"url":"https://api.github.com/repos/Qucs/qucs/issues/563","repository_url":"https://api.github.com/repos/Qucs/qucs","labels_url":"https://api.github.com/repos/Qucs/qucs/issues/563/labels{/name}","comments_url":"https://api.github.com/repos/Qucs/qucs/issues/563/comments","events_url":"https://api.github.com/repos/Qucs/qucs/issues/563/events","html_url":"https://github.com/Qucs/qucs/issues/563","id":178308096,"number":563,"title":"Discussion: port graphics to Qt Graphics View Framework","user":{"login":"guitorri","id":1388949,"avatar_url":"https://avatars.githubusercontent.com/u/1388949?v=3","gravatar_id":"","url":"https://api.github.com/users/guitorri","html_url":"https://github.com/guitorri","followers_url":"https://api.github.com/users/guitorri/followers","following_url":"https://api.github.com/users/guitorri/following{/other_user}","gists_url":"https://api.github.com/users/guitorri/gists{/gist_id}","starred_url":"https://api.github.com/users/guitorri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/guitorri/subscriptions","organizations_url":"https://api.github.com/users/guitorri/orgs","repos_url":"https://api.github.com/users/guitorri/repos","events_url":"https://api.github.com/users/guitorri/events{/privacy}","received_events_url":"https://api.github.com/users/guitorri/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/Qucs/qucs/labels/question","name":"question","color":"cc317c"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2016-09-21T10:32:38Z","updated_at":"2016-09-23T11:06:08Z","closed_at":null,"body":"To be able to get rid of Qt3Support, the current graphics need to be ported/reimplemented. The proposal is to use the [Graphics View Framework](http://doc.qt.io/qt-4.8/graphicsview.html). Some old bits of discussion in our [Wiki](https://github.com/Qucs/qucs/wiki/QEP%3A-QGraphicsView).\r\n\r\nSome time ago I did a bit of exploration (very rough and unstable!), in the following branch:\r\n  - https://github.com/guitorri/qucs/tree/QGraphicView-exploration\r\n\r\nIt is based in a old version. To build you can:\r\n```./autogen.sh && ./configure && cd qucs/qucs && make```\r\nor\r\n```cd qucs/qucs && mkdir build && cd build && cmake .. && make```\r\n\r\nI did a bit of brute force to get the following working:\r\n- load/render most of the existing schematics \r\n- Pick and place (insert) components from dock\r\n- Move and edit (some?) component properties\r\n- Mouse hover changes for visual feedback and tooltip (eye candy and debug)\r\n- Partial fix for zoom and show all\r\n- Partial fix for scrolling (bars and key arrows)\r\n- partial fix for schematic area and grid\r\n- (other things you can see in the commit history)\r\n\r\nFor all the other features it can easily crash...\r\n\r\nThe following important things are not yet done:\r\n- mouse interactions for drawing/connecting wires\r\n- the contents/curves inside of _diagrams_\r\n- majority of mouse interactions (rotate, select, ...) \r\n- netlist/schematic to file\r\n- other things I don't see now...\r\n\r\nSo, it is certainly doable. But should we continue down this path? Do you see another route? Shall we do graphics first and refactor the model/view later?\r\n\r\nPlease take a careful look, let us discuss and try to move forward with this important topic."},"comment":{"url":"https://api.github.com/repos/Qucs/qucs/issues/comments/249163958","html_url":"https://github.com/Qucs/qucs/issues/563#issuecomment-249163958","issue_url":"https://api.github.com/repos/Qucs/qucs/issues/563","id":249163958,"user":{"login":"felix-salfelder","id":1772519,"avatar_url":"https://avatars.githubusercontent.com/u/1772519?v=3","gravatar_id":"","url":"https://api.github.com/users/felix-salfelder","html_url":"https://github.com/felix-salfelder","followers_url":"https://api.github.com/users/felix-salfelder/followers","following_url":"https://api.github.com/users/felix-salfelder/following{/other_user}","gists_url":"https://api.github.com/users/felix-salfelder/gists{/gist_id}","starred_url":"https://api.github.com/users/felix-salfelder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/felix-salfelder/subscriptions","organizations_url":"https://api.github.com/users/felix-salfelder/orgs","repos_url":"https://api.github.com/users/felix-salfelder/repos","events_url":"https://api.github.com/users/felix-salfelder/events{/privacy}","received_events_url":"https://api.github.com/users/felix-salfelder/received_events","type":"User","site_admin":false},"created_at":"2016-09-23T11:06:08Z","updated_at":"2016-09-23T11:06:08Z","body":"> What do you mean by \"implement properly one at a time\"?\r\n\r\nhaven't looked at the code much, but the todo list is very long... looks like the first step breaks everything, and then requires lots of refactoring... just wondering if it makes sense to refactor first and do the switch afterwards. (i will have a closer look!)\r\n\r\n> another data-structure which we can more easily traverse.\r\n\r\ni guess, a double linked list is optimal for the purpose. of course every \"thing\" must hold a reference to the list token. i don't know how this is currently (not) the case.\r\n\r\n> Ideally, I guess, the schematic data-structures should not depend on Qt.\r\n\r\nyes, definitely."}}
{"actor":{"display_login":"felix-salfelder"}}