-
Notifications
You must be signed in to change notification settings - Fork 6
/
README
94 lines (79 loc) · 4.51 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
========= what is this? ===============================================
this project features an automate editor class with a graphical- and tree- like editor.
this project can be used as a library to visualize directed graphs.
it was created at the University of Tuebingen, Germany as a 'Studienarbeit'.
Chair: Arbeitsbereich fuer Theoretische Informatik/Formale Sprachen
most of the code was written by me:
thanks very much for the help from the people in #qt@irc.freenode.org namely
ahigerd, kibab, chakie, rohanpm, thiago, blight_, martin- and those i have forgotten
thanks for the help of Christian Behle and Andreas Krebs who created the specification
for this work and always had time when i needed them.
all the code in this distribution is licensed to the terms of the LGPL v3 (if used with qt 4.5 or later)
most used icons are from the kde icon theme noia-kde-icons-1.00.tgz
- The Noia icons for KDE are under GNU LGPL license.
- my icons which were specially created for this project are under GNU LGPL license as well
please feel free to comment on that code:
8.6.2008 (C) Joachim Schiele <js@lastlog.de>
some explanations about this project (additional to the doxygen documentation)
http://lastlog.de/wiki/index.php/AutomateEditor
http://invalidmagic.wordpress.com/2009/12/10/qgraphicsscene-used-as-a-qabstractitemmodel/
the project is hosted on github.com:
http://github.com/qknight/automate
========== what is this not? ==================================================
there is no auto-layout function so all the stuff has to be done by you.
it would be nice if we could use the graphviz API for doing that...
========== how to use? ==================================================
i have to review this list again but in general it should give you an
idea what can be done.
treeView graphicsview
- start editable editable
- final editable editable
- next_node editable visible,no editor yet
- new connections editable editable
- new nodes editable editable
- deletable nodes editable editable
- deletable conns. editable editable
- multiple selection editable editable
- node label rename editable editable
- connection label ren editable -
- connection symbol editable -
- move nodes/labels sorting mouse drag
- ctrl+LMB add single - editable
node to a selection
- ctrl+LMB add single - editable
conn. to a selection - -
- select a single node
\ by boundingbox - editable
\ by click editable editable
- select a single conn.
\ by boundingbox - editable
\ by click editable -
- reconnect on the fly editable -
(in the graphicsView we need a handle for this)
using the GraphicsView
LMB on node or connection -> select node/connection
LMB pressed + drag -> bbox for selecting objects
MMB on nodes -> connect them
MMB on empty space ->
RMB on node/connection -> context menu
RMB on scene -> move view
LMB = left mouse button
========== class documentation using doxygen ============================
using 'cmake, make' will automatically generate the documentation using doxygen
see your build directory:
- build/doc/html/index.html
========== issues =======================================================
- items which are added via a GraphicsView (using two GraphicsViews attached to the same automate)
will (as expected) add the node at the same respecitve position. say x=204,y=250 on both views.
however: if a node is moved only the first view will update the new position correctly, the second
view will not see this since it is not done using 'setData and dataChanged()' via the model yet
FIX this is intended behaviour. if the second view should be 'similar' just use another 'view'
attached to the QGraphicsScene (which can be done without breaking anything)
========== documentation, project related ============================
doxygen class documentaion:
http://www.stack.nl/~dimitri/doxygen/docblocks.html
automate related:
- http://www.graphviz.org/doc/libguide/libguide.pdf
- http://www.boost.org/doc/libs/1_35_0/libs/graph/doc/index.html
- http://www.graphviz.org/
- http://www.boost.org/libs/graph/doc/fruchterman_reingold.html