]> SALOME platform Git repositories - modules/yacs.git/blob - src/genericgui/journal
Salome HOME
mergefrom branch BR_V511_PR tag mergeto_trunk_03feb09
[modules/yacs.git] / src / genericgui / journal
1 TODO : x = resolu, - = a faire
2 ====
3
4 x pattern sujet / observateurs
5 x pattern command pour undo/redo
6 x Model/view arbre (schema) avec QAbstactItemModel
7 x Model/view panneau (noeud): NON, stack of widgets
8 x affichage panneau objet selectionne (stack widget)
9 x QScintilla / Qt4
10 x Graphic/view    avec QGraphicsScene et QGraphicsItem
11 x selection arbre, synchro scene
12 x selection canvas, synchro arbre
13 x expand automatique arbre
14 x popup menu arbre
15 x popup menu canvas
16 x fonction de recup port.value (deballage du dump ?)
17 x edition, ajout objet (Model editable)
18 x drag & drop en edition
19 x drag & drop type du catalogue vers arbre
20 x rubriques data types, link, containers, (nodes) dans arbre
21 x algorithme placement liens
22 x creation de liens  a la souris dans scene et arbre en drag and drop
23 x sauvegarde schema en edition
24 x import catalogues depuis schemas
25 x insertion dans SALOME 5
26 x boutons-actions zoom, panning, cadre zone à voir, reset vue, fit all
27 x proc remplit automatiquement toute la vue principale (bouton fit all)
28 x bouton save ou save as au lieu de export
29 x Model/view table (ports)
30 x affichage etat en edition
31 x dessins des liens de contrôle
32 x gestion etude SALOME : object browser
33 x design arbre (edition/execution)
34 x contournement bug confirmOverwrite QFileDialog Qt 4.3.3 (corrige en 4.3.5)
35 x selection lien dans canvas (shape du lien)
36 x fleche sur lien
37 x edition port presetNode (abort)
38 x edition nsteps dans forLoop
39 x edition condition dans whileLoop
40 x edition switch: valeurs des cas, edition select
41 x affichage etat en execution (couleurs)
42 x nommer vues SALOME
43 x mode execution, recuperer etats, update couleurs canvas, arbre
44 x mode execution, connecter les check box noeuds
45 x clic arbre ou canvas: basculer sur l'onglet input panel
46 x menu ajout de noeud depuis catalogue: basculer sur l'onglet catalogs, tooltip
47 x tentative mode execution: selectionner proc pour voir status.
48 x cut past de noeud (reparent) possible pas menus cut et paste, et drag&drop avec bouton milieu
49 x generalisation remontee message sur erreur commande (Message.cxx)
50 x tableau ports en edition
51 x insertion, deplacement, destruction port
52 x algorithmes placement noeuds
53 x proc menu edition: ajout action execution
54
55 - sauvegarde position des noeuds dans xml, lors du passage en exec
56
57 - edition port outNode (xml): definir fichier sortie
58 - edition ports studyInNode, studyOutNode (controle types possibles...)
59 - edition ForEachLoop: type, samples ? (nbBranch OK)
60
61 - touches raccourci actions importantes (save ou save as...)
62 - <CTRL>+ et <CTRL>- pour zoom graphique
63 - mise en oeuvre undo/redo
64
65 - edition, destruction instance composant 
66 - edition, destruction container 
67 - edition, modification objet
68
69 - affichage etat schema modifie depuis derniere sauvegarde fichier
70 - couleur differente des liens datastream, 
71   des liens de donnees simples (sans controle associe)
72
73 - differents designs / canvas (interface generique)
74 - vues differentes (expanded/collapsed, edition/execution)
75 - collapse des noeuds composes
76 - vues simplifiees d'un noeud
77   (que les controles, tous les ports sans les noms, complete)
78
79 - design panneaux (edition/execution)
80
81 - drag & drop de ports pour l'ordre dans le tableau, dans la scene
82 - creation de liens par menu
83   distinguer les liens simples (sans contrôle)
84 - deplacement de noeud a la souris: pouvoir passer par dessus un bloc
85   (pressed + touche...) transparence, finir le deplacement que s'il y a
86   la place, ou pousser le bloc ?
87 - pousser les noeuds et les blocs vers le haut ou la gauche ?
88
89 - creation de noeud : recadrage de la vue
90 - selection : recadrage de la vue
91
92 - gestion des conflits de types de meme nom et non isEquivalent,
93   maintenant: detectes, marques en bleu, et surcharge.
94   (alias dans typeCode pour un dump coherent)
95 - commandes manquantes: renommage (cf. apres), set valeur port
96 - les noeuds services peuvent recevoir des ports fichier (file) supplementaires
97
98 - editeur de types directement en xml
99 - mecanisme plugin menus/actions
100 - avoir in mecanisme de highlight autre que la selection :
101   - choix d'un port dans le panneau noeud -> arbre, vue
102   - selection multiples (arbre, tableau vue) pour action groupee
103     (deplacement scene, destruction...)
104 - connexion automatique de ports avec des noeuds bord à bord
105   (regle de correspondance de noms ? respect de l'ordre ?)
106 - dessiner les liens avec des ponts quand des liens se croisent !
107 - 2eme vue avec schema complet et cadre de la vue principale
108 - panneau de preferences des couleurs
109
110 - differents modes pour la creation d'instances de composant
111 - selection multiple de noeuds pour les affecter a une meme instance, ou tous les noeuds d'un bloc
112 - pouvoir initialiser un port dans le panneau edition du port
113
114 - ...
115
116 PROBLEMES : x = resolu, - = a faire
117 =========
118
119 x ajout de noeuds : arbres mal mis a jour.
120 x ajout de noeuds dans des blocs : probleme de presentation du canvas
121 x reorganisation suite a suppression: mismatch du stack widget
122 x dessin des liens: probleme de detection des noeuds lors de simplifications
123 x deux click de suite au meme endroit de l'arbre: toggle selection deselection
124   (pb potentiel avec popup)
125 x gerer plusieurs schemas simultanement : clarifier attributs GraphicMain,
126   initialisation scenes et trees
127 x chargement d'un schema: noeuds services non representes sous les instances de composant
128   dans l'arbre (pb de la creation differee container - instance composant)
129 x update panel node-container quand on change le container dans le panel node-component
130 x update panel node-component quand on associe un composant a un nouveau container,
131   avec plusieurs noeuds services associes au composant 
132 x destruction proc = abort
133 x etat items pas mis a jour au chargement d'un schema (noeuds invalides...)
134 x visualisation log containers : exception component no longer reachable :
135   observable uniquement avec COMPONENT_SRC, pas a niveau (container parallele, mauvaise initilisation)
136 x initialisation data node.
137 x execution de switch9.xml : manque un lien, n'empeche pas l'exec, abort
138 x menu creation cpp node: supprimer
139 x menu destruction port : selon type de noeud
140 x SubjectDataPort  --> commandRenameDataPort
141 x edition des ports (nom, valeur) interdite en execution
142 x interdire renommage des ports de service node dans vues schema (arbre, table)
143 x interdire renommage des ports de service node (desactiver dans port edition panel)
144 x component pas renommable -->  setReadOnly
145 x componentInstance pas renommable -->  setReadOnly
146 x type pas renommable -->  setReadOnly
147 x link pas renommable -->  setReadOnly
148 x menus contextuels : ports des noeuds service non destructibles (arbre)
149 x renommage port pas possible depuis la table des ports dans le panel node
150 x interdire renomer port avec un nom existant
151 x edition valeur impossible dans arbre
152 x passer script en read only en execution
153 x revoir methode SubjectNode.reparent(_parent) sous forme de commande
154 x renommage node pas propage dans les noeuds fils (rename or cut/paste)
155 x en execution, marquer execution mode dans arbre
156
157 - SIGSEV en sortie de SALOME apres destruction de la fenetre execution
158 - panneau edition container, rubriue instance ? a clarifier
159 - destruction d'un lien, impact sur la disposition des noeuds
160
161 - execution noeud default de switch : pas marque DONE dans arbre et vue 2D
162 - cut paste dans switch: valeur use case attribue automatiquement pas affiche
163 - passage en execution: arbre pas toujours cree la premiere fois
164 - update etat des inputPort apres creation de lien dans tableau,  (linked, not initialized)
165 - import de schema CORBA (foreach_LongCorba): exception
166 - chargement de schema pendant qu'un autre est running:
167   abort GuiExecutor Assertion `GuiContext::getCurrent()->_mapOfExecSubjectNode.count(iGui)' failed
168 - cut paste d'un noeud pour l'enlever d'une forLoop (toujours fils de la forloop: case prise, destruction...)
169 - QtGuiContext::getQtCurrent()->_mapOfEditionItem.count(_subject)' failed apres cut paste et creation de lien
170
171 - renommage d'un item autre que noeud non repercute:
172   il manque des fonctions de renommage:
173 - renommage container: 
174   - pas actif depuis le panel container (container, composant, service)
175   - arbre service pas a jour
176   - indicateur en edition (jaune) pas a jour dans l'arbre
177 - renommage node:
178   - pas propage dans les liens (noms de liens)
179   - arbre reference service sous component pas a jour
180   - si erreur (nom existant) l'indicateur en edition (jaune) reste actif meme apres correction
181
182 - analyse performances vue 2D
183
184 - control port : SceneItem separe mais subject = subject du node,
185   selection clignote
186 - couleur de selection du control port : incoherence de selection
187 - header : idem (pas besoin de SceneItem separe)
188 - deselection (click hors schema): le panneau de la stack widget reste au
189   dernier selectionne, idem pour la selection dans l'arbre
190   (avec correction SchemaItem 1.8)
191   lie au clearAndSelect dans SchemaItem::select (correction SchemaItem 1.8)
192 - selection rubrique containers ou types: précédente selection reste dans canvas et edition
193 - destruction component instance : mal repercuté (arbres, map proc...)
194 - caractères accentues dans script python d'un noeud python, fichier xml mal chargé
195
196 - fermeture vue SALOME, object Browser pas mis a jour mais schema detruit...
197
198
199 Boutons Souris et Controles
200 ===========================
201 LMB : bouton gauche
202 RMB : bouton droit
203 CMB : bouton central
204 MR  : molette
205
206 cf. QGraphicsItem::mousePressEvent ( QGraphicsSceneMouseEvent * event ) 
207     QGraphicsSceneMouseEvent::modifiers()
208
209
210 - partout    : RMB             : popup menu
211   -------
212
213 - Scene/vue
214   ---------
215              : menu puis LMB   : fit area, zoom , fit all
216              : MR              : zoom
217              : CMB             : deplacer la vue
218
219   - Proc     : CMB             : deplacer la vue
220
221   - Noeud    : LMB             : deplacer un noeud sur le graphe
222              : Shift LMB       : passer par dessus un noeud pour un deplacement
223              : CMB             : changer le parent d'un noeud par drag & drop vue ou arbre
224                                  
225
226   - Port     : LMB             : creer un lien par drag & drop
227
228 - Arbre
229   -----
230
231   - proc     :
232
233   - bloc     : CMB             : changer le parent d'un noeud par drag & drop
234              : LMB             : creer un lien par drag & drop
235
236   - elemNode : CMB             : changer le parent d'un noeud par drag & drop
237              : LMB             : affecter a un composant / drag and drop sur arbre
238
239   - port     : LMB             : creer un lien par drag & drop
240
241   - link     :
242
243   - dataType : LMB             : definir un type de port / drag and drop sur panneau
244
245   - container:
246
247   - component: LMB             : affecter a un container / drag and drop sur arbre
248
249
250 - Panneau, tableau de ports
251   -------------------------
252
253
254 - Panneau, onglet catalogue
255   -------------------------
256
257   - noeud    : LMB             : ajouter un noeud /drag and drop sur vue ou arbre
258
259   - dataType : LMB             : ajouter un type de port / drag and drop sur arbre
260                                : changer un type de port / drag and drop sur panneau...
261
262 Modes de representation du noeud
263 ================================
264
265 - noeud elementaire
266   -----------------
267   - developpé, edition   : entete + ports avec nom (valeurs = tooltip ou panneau)
268   - reduit, edition      : entete + ports sans nom
269   - collapsed, edition   : entete seul (que les control link ?)
270   memes vues en execution (faut il des valeurs sur les ports ?)
271
272 - noeud composé
273   -------------
274   - developpé, edition   : tout les internes de premier niveau visibles,
275                            au moins sous forme reduite
276   - macro noeud, edition : un seul macro noeud, presentation du noeud élémentaire developpé
277                            certains ports internes cachés
278                            (enrichir description IHM avec notion port privé ? ) 
279   - reduit, edition      : un seul macro noeud, presentation du noeud élémentaire réduit
280   - collapsed, édition   : entete seul
281   memes vues en execution 
282
283
284
285
286 lecture ecriture des valeurs initiales des input ports :
287 string au format python : a=[23,45,12.5,{"a":3,"b":[3,5]}]
288 lecture : 
289 passer par une methode PyObject * getPyObj() du port derive (cf. SALOMERuntime.i),
290 puis print python.
291 on peut ajouter 2 methodes dans le DataFlowPort :
292  recup valeur      : string fetch()
293  chargement valeur : void load(string)
294 à dériver dans les ports any, python, corba