KDEEdu/Rocs/Todo

From KDE Community Wiki
Revision as of 07:21, 18 September 2011 by Cola (talk | contribs)

List of Rocs ToDos

Data-Structure

  • TODO: there is a high probability of certain raise conditions (update boarders and iterate on dataList() while one of those data items is removed): maybe a port of all Data-pointers to smart-pointers solve this problem

Graph Editor

  • TODO: add option to automatically give each node a name after creation (e.g., like "a,b,c..." or "1,2,3...")

Load and Save

  • TODO: add projects that gather graphs and scripts
  • TODO: add a "recently used" option for loading
  • TODO: fix loading of graphs
  • TODO: re-enable loading of different standard file types for graphs
  • TODO: load scripts into existing script listing if this listing is empty
  • TODO: add/re-enable load/save tests for graphs (GraphML - http://graphml.graphdrawing.org/)
  • TODO: add load/save buttons to menu-bar, also separate ones at script listing
  • TODO: tell the user if a file is changed and unsaved

General Options

  • TODO: add switch to allow different edge style for directed edges (current style makes problems to recognize structure of larger graphs)

UI

  • TODO: the graph-list takes to much unused space
  • TODO: cleanup/restructure File-menu
  • TODO: add shortcuts for all graph editor actions
  • TODO: Animations on the nodes and edges. ( fade in when they are placed on the canvas, fade out when they are removed. ) doesn't need to be a huge thing, but a small fade in is better on the eyes.

Script-Interface

  • TODO: check if property system is still working at script
  • TODO: re-enable Kross iff it is stable enough for us

Documentation

  • TODO: document extra properties

Ideas for the Future

  • Port from QtScript to Kross
  • Trees.
  • Nice Animations on inserting and deleting nodes and edges.
  • a Node.moveTo(x, y) method that will animate things.
  • LinkedList and DoubleLinkedList objects on the script part for linked list visualization of the manipulation (confusing?)
    l = newLinkedList(linkedList.ordered)
    l.append(1); // an node gracefully fades in on the scene
    l.append(3); // an node gracefully fades and search for it's location on the scene.
    l.append(5); // ditto.
    l.remove(3); // 3 is gracefully removed, with an fade out, and a new edge is connected between 1 and 5.