From tkinter to Qt
For various reasons, passing to Qt is a good idea.
Minimal requirements:
-
deactivable RunnableView (via a checkbox) -
proper visualization of the generated png file -
handle suppression of RunnableView (clear, and per index) -
handle replacement of a RunnableView by another -
put all gui related modules into a gui subpackage -
mark raise NotImplementedError('xxx')
everywhere, withxxx
being the logic concept expected -
expose all buttons of the tkinter interface (menu or actions, depending on the good GUI practices) -
sort (trigger the sorting algorithm, modifying all Runnable position in interface) -
export (run a dialog allowing to export DOT, ASP and PNG (and SVG ?) files of current view) -
spawn script (add a ASPCodeWidget instance to runnables) -
spawn pyscript (add a PythonCodeWidget instance to runnables) -
help (do nothing currently) -
run (run the program compilation, therefore triggering the visualization and other things) -
quit
-
-
show button's tooltips -
window to export ASPCodeWidget
content into a rule in JSON format -
ScriptLoader: a dialog to load available scripts/Runnable (tkinter code) -
Runnable class are instanciated when they are pushed to the Program
-
-
when a Runnable is deactivated, all widgets in it should be too. -
default geometry : float, width>height. -
show which Runnable is running during compilation ; see biseau.gui.utils:SimpleCheckbox.set_running_color
-
gui.SourceEditorWindow
andgui.SourceShowerWindow
must be converted (and maybe merged ?)
Future requirements:
-
multishot vs union modes for visualization: user should be able to switch between modes. The multishot mode may generate tens of views. -
help message -
about window
Bonus:
-
drag&drop of RunnableView -
ASP syntax highlighting -
Python syntax highlighting -
tabs in main view, allowing user to look at generated ASP/DOT. Default is the view to generated graph (PNG/SVG) -
proper editor for code (lines, columns,…) -
ActionContextMenu on RunnableView instances -
use QIcon as icons (QStandardIcon) -
sessions: allow user to save the current state of program (could be not that hard). -
SVG visualization -
allow user to manipulate, using their mouse, nodes in SVG visualization, with their annotations and links.
Goals
-
possible to generate a graph by taping link(a,b).
and pushing one button. -
possible to load all scripts tagged with FCA
into program, choose a context using ContextPicker, and see the resulting lattice. -
edit an ASP rule, rerun the compilation with the change taken into account. -
save an ASPCodeWidget into a rule. -
view the source code of the script Concepts
. Edit it to provide alink/2
atom. Save it as another script.
Edited by BOURNEUF Lucas