GSoC/GCI Archive
Google Code-in 2012 KDE

KDE Edu (Rocs): Extend Graph Tools and Improve UI

completed by: Andromeda Galaxy

mentors: Andreas Cord-Landwehr

Rocs is a Graph Theory IDE for everybody interested in designing and analyzing graph algorithms. (For more information please refer to the Rocs handbook or the website). In this task, you have to work at the "Generate Graph" and "Assign Values" tools. Both tools are handy for users how want to get automatically generated graphs or change several values at once.

The Task in Detail:

  1. Automatically set the seeds in the tool dialogs to a random integer when opening the dialog.
  2. Add a "Show advanced" button that shows/hides advanced settings for the graphs (the button should be only on picture to not use too much space). Advanced settings should be hidden by default. Advanced settings are
    • Assign Value Tool: "Override existing values", "Generator Seed"
    • Generate Graph Tool: "Generator Seed"
  3. Improve and extend the "Assign Value Tool":
    • Change checkboxes at "Connection" and "Data" selection to radioboxes.
    • Add an "Enumerate Alpha" option that uses the enumerateAlpha(...)-method from ValueModifier. By default this should enumerate the values starting by "a", but also allow advanced settings that can start at an arbitrary string.
    • Add an "Enumerate Alpha-Numeric" option that uses the corresponding method from ValueModifier. For this the user has to set a prefix and the the suffix is enumerated by the method.
  4. Extend the "Generate Graph Tool" by adding the option to create a random tree and implement that method. (e.g. by creating a connected random graph and performing a spanning tree algorithm on it.)
Additional Information: You must use the GIT branch "next", since only there you find the changes from a previous GCI task that you need for your changes. For details how to compile and run Rocs, see http://techbase.kde.org/Projects/Edu/Rocs.

Contact: For any questions, please search me on irc.freenode.net in #kde-edu or #kde-soc. My time zone is UTC+1.