Salome HOME
355a11a96d3c1dbed5b703594f3573f34f9fb2b5
[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 x sauvegarde position des noeuds dans xml, lors du passage en exec
55 x tooltips plus complets sur arbre et scenes
56 x afficher les types de donnees DataStream dans arbre et edition -> en exec: tooltips
57 x numerotation automatique objets cree tient compte des noms existant
58 x couleur differente des liens datastream
59
60 = ajouter un bouton create container dans panneau composant du noeud
61 - edition port outNode (xml): definir fichier sortie
62 - edition ports studyInNode, studyOutNode (controle types possibles...)
63 - edition ForEachLoop: type, samples ? (nbBranch OK)
64
65 - touches raccourci actions importantes (save ou save as...)
66 - <CTRL>+ et <CTRL>- pour zoom graphique
67 - mise en oeuvre undo/redo
68
69 - edition, destruction instance composant 
70 - edition, destruction container 
71 - edition, modification objet
72
73 - affichage etat schema modifie depuis derniere sauvegarde fichier
74 = couleur differente des liens de donnees simples (sans controle associe)
75 - icones differentes pour edition et run dans object browser
76
77 - differents designs / canvas (interface generique)
78 - vues differentes (expanded/collapsed, edition/execution)
79 - collapse des noeuds composes
80 - vues simplifiees d'un noeud
81   (que les controles, tous les ports sans les noms, complete)
82
83 - design panneaux (edition/execution)
84
85 - drag & drop de ports pour l'ordre dans le tableau, dans la scene
86 - creation de liens par menu
87 x distinguer les liens simples (sans contrôle)
88 - deplacement de noeud a la souris: pouvoir passer par dessus un bloc
89   (pressed + touche...) transparence, finir le deplacement que s'il y a
90   la place, ou pousser le bloc ?
91 - pousser les noeuds et les blocs vers le haut ou la gauche ?
92
93 - creer le noeud sous la souris s'il y a la place
94 - creation de noeud : recadrage de la vue
95 - selection : recadrage de la vue
96
97 - gestion des conflits de types de meme nom et non isEquivalent,
98   maintenant: detectes, marques en bleu, et surcharge.
99   (alias dans typeCode pour un dump coherent)
100 - commandes manquantes: renommage (cf. apres), set valeur port
101 - les noeuds services peuvent recevoir des ports fichier (file) supplementaires
102
103 - editeur de types directement en xml
104 - mecanisme plugin menus/actions
105 - avoir in mecanisme de highlight autre que la selection :
106   - choix d'un port dans le panneau noeud -> arbre, vue
107   - selection multiples (arbre, tableau vue) pour action groupee
108     (deplacement scene, destruction...)
109 - connexion automatique de ports avec des noeuds bord à bord
110   (regle de correspondance de noms ? respect de l'ordre ?)
111 - dessiner les liens avec des ponts quand des liens se croisent !
112 - 2eme vue avec schema complet et cadre de la vue principale
113 - panneau de preferences : couleurs... (Cf. V4)
114
115 - differents modes pour la creation d'instances de composant
116 - option de configuration : creer un service sans changer d'instance
117 - selection multiple de noeuds pour les affecter a une meme instance, ou tous les noeuds d'un bloc
118 - pouvoir initialiser un port dans le panneau edition du port
119
120 - ...
121
122 PROBLEMES : x = resolu, - = a faire
123 =========
124
125 x ajout de noeuds : arbres mal mis a jour.
126 x ajout de noeuds dans des blocs : probleme de presentation du canvas
127 x reorganisation suite a suppression: mismatch du stack widget
128 x dessin des liens: probleme de detection des noeuds lors de simplifications
129 x deux click de suite au meme endroit de l'arbre: toggle selection deselection
130   (pb potentiel avec popup)
131 x gerer plusieurs schemas simultanement : clarifier attributs GraphicMain,
132   initialisation scenes et trees
133 x chargement d'un schema: noeuds services non representes sous les instances de composant
134   dans l'arbre (pb de la creation differee container - instance composant)
135 x update panel node-container quand on change le container dans le panel node-component
136 x update panel node-component quand on associe un composant a un nouveau container,
137   avec plusieurs noeuds services associes au composant 
138 x destruction proc = abort
139 x etat items pas mis a jour au chargement d'un schema (noeuds invalides...)
140 x visualisation log containers : exception component no longer reachable :
141   observable uniquement avec COMPONENT_SRC, pas a niveau (container parallele, mauvaise initilisation)
142 x initialisation data node.
143 x execution de switch9.xml : manque un lien, n'empeche pas l'exec, abort
144 x menu creation cpp node: supprimer
145 x menu destruction port : selon type de noeud
146 x SubjectDataPort  --> commandRenameDataPort
147 x edition des ports (nom, valeur) interdite en execution
148 x interdire renommage des ports de service node dans vues schema (arbre, table)
149 x interdire renommage des ports de service node (desactiver dans port edition panel)
150 x component pas renommable -->  setReadOnly
151 x componentInstance pas renommable -->  setReadOnly
152 x type pas renommable -->  setReadOnly
153 x link pas renommable -->  setReadOnly
154 x menus contextuels : ports des noeuds service non destructibles (arbre)
155 x renommage port pas possible depuis la table des ports dans le panel node
156 x interdire renomer port avec un nom existant
157 x edition valeur impossible dans arbre
158 x passer script en read only en execution
159 x revoir methode SubjectNode.reparent(_parent) sous forme de commande
160 x renommage node pas propage dans les noeuds fils (rename or cut/paste)
161 x en execution, marquer execution mode dans arbre
162 x redessiner tout de suite les liens apres mouse release ( sans devoir bouger la souris)
163 x editer sauvegarder les proprietes des containers
164 x panneau edition container, rubrique instance:
165   a supprimer ou renommer runtime name, ou mettre dans les advanced parameters
166 x gerer tous les parametres du container, verifier coherence avec la doc
167 x mise a jour panneau container si changement container dans salomeNode
168 x renommage container: 
169   x pas actif depuis le panel container (container, composant, service)
170   x arbre service pas a jour
171   x indicateur en edition (jaune) pas a jour dans l'arbre
172 x cut paste d'un noeud pour l'enlever d'une forLoop (toujours fils de la forloop: case prise, destruction...)
173 x QtGuiContext::getQtCurrent()->_mapOfEditionItem.count(_subject)' failed apres cut paste et creation de lien
174 x passage en execution: arbre pas toujours cree la premiere fois
175 x message incomprehensible lors de l'ajout d'un deuxieme noeud dans un forloop
176 x libelle comboBox ajout de ports dans panneau edition: folklorique (newSchema_1)
177 x fermeture schema non sauvegarde : dialogues de sauvegarde
178 x lien nouvellement créé droit et très fin, pas toujours visible
179 x panneau edition function Node: controler nom de fonction saisie (validation)
180 x panneau edition function Node: remonter le nom de fonction
181 x remontee d'erreur en edition: le contenu de la log proc ne change pas, quand c'est en erreur
182
183 = SIGSEV en sortie de SALOME apres destruction de la fenetre execution
184 x destruction d'un lien, impact sur la disposition des noeuds
185
186 - remontee d'erreur en execution : log d'erreurs consolidees dans les blocs, affichee dans la proc 
187 - cases a cocher link automatique peu visibles
188 = verifier le python des scripts a l'edition (compiler)
189 = pas de tooltip quand on est sur le texte du scene item
190 = tooltip curieux HEADER...
191 - faire apparaitre le nom du composant quelque part sur le sceneNodeItem (tooltip ?)
192
193 - execution noeud default de switch : pas marque DONE dans arbre et vue 2D
194 - cut paste dans switch: valeur use case attribue automatiquement pas affiche
195 - update etat des inputPort apres creation de lien dans tableau,  (linked, not initialized)
196 - import de schema CORBA (foreach_LongCorba): exception
197 - chargement de schema pendant qu'un autre est running:
198   abort GuiExecutor Assertion `GuiContext::getCurrent()->_mapOfExecSubjectNode.count(iGui)' failed
199
200 - renommage d'un item autre que noeud non repercute:
201   il manque des fonctions de renommage:
202 - renommage node:
203   - pas propage dans les liens (noms de liens)
204   - arbre reference service sous component pas a jour
205   - si erreur (nom existant) l'indicateur en edition (jaune) reste actif meme apres correction
206
207 - analyse performances vue 2D
208
209 - control port : SceneItem separe mais subject = subject du node,
210   selection clignote
211 - couleur de selection du control port : incoherence de selection
212 - header : idem (pas besoin de SceneItem separe)
213 - deselection (click hors schema): le panneau de la stack widget reste au
214   dernier selectionne, idem pour la selection dans l'arbre
215   (avec correction SchemaItem 1.8)
216   lie au clearAndSelect dans SchemaItem::select (correction SchemaItem 1.8)
217 - selection rubrique containers ou types: précédente selection reste dans canvas et edition
218 - destruction component instance : mal repercuté (arbres, map proc...)
219 - caractères accentues dans script python d'un noeud python, fichier xml mal chargé
220
221 - fermeture vue SALOME, object Browser pas mis a jour mais schema detruit...
222
223
224 Boutons Souris et Controles
225 ===========================
226 LMB : bouton gauche
227 RMB : bouton droit
228 CMB : bouton central
229 MR  : molette
230
231 cf. QGraphicsItem::mousePressEvent ( QGraphicsSceneMouseEvent * event ) 
232     QGraphicsSceneMouseEvent::modifiers()
233
234
235 - partout    : RMB             : popup menu
236   -------
237
238 - Scene/vue
239   ---------
240              : menu puis LMB   : fit area, zoom , fit all
241              : MR              : zoom
242              : CMB             : deplacer la vue
243
244   - Proc     : CMB             : deplacer la vue
245
246   - Noeud    : LMB             : deplacer un noeud sur le graphe
247              : Shift LMB       : passer par dessus un noeud pour un deplacement
248              : CMB             : changer le parent d'un noeud par drag & drop vue ou arbre
249                                  
250
251   - Port     : LMB             : creer un lien par drag & drop
252
253 - Arbre
254   -----
255
256   - proc     :
257
258   - bloc     : CMB             : changer le parent d'un noeud par drag & drop
259              : LMB             : creer un lien par drag & drop
260
261   - elemNode : CMB             : changer le parent d'un noeud par drag & drop
262              : LMB             : affecter a un composant / drag and drop sur arbre
263
264   - port     : LMB             : creer un lien par drag & drop
265
266   - link     :
267
268   - dataType : LMB             : definir un type de port / drag and drop sur panneau
269
270   - container:
271
272   - component: LMB             : affecter a un container / drag and drop sur arbre
273
274
275 - Panneau, tableau de ports
276   -------------------------
277
278
279 - Panneau, onglet catalogue
280   -------------------------
281
282   - noeud    : LMB             : ajouter un noeud /drag and drop sur vue ou arbre
283
284   - dataType : LMB             : ajouter un type de port / drag and drop sur arbre
285                                : changer un type de port / drag and drop sur panneau...
286
287 Modes de representation du noeud
288 ================================
289
290 - noeud elementaire
291   -----------------
292   - developpé, edition   : entete + ports avec nom (valeurs = tooltip ou panneau)
293   - reduit, edition      : entete + ports sans nom
294   - collapsed, edition   : entete seul (que les control link ?)
295   memes vues en execution (faut il des valeurs sur les ports ?)
296
297 - noeud composé
298   -------------
299   - developpé, edition   : tout les internes de premier niveau visibles,
300                            au moins sous forme reduite
301   - macro noeud, edition : un seul macro noeud, presentation du noeud élémentaire developpé
302                            certains ports internes cachés
303                            (enrichir description IHM avec notion port privé ? ) 
304   - reduit, edition      : un seul macro noeud, presentation du noeud élémentaire réduit
305   - collapsed, édition   : entete seul
306   memes vues en execution 
307
308
309
310
311 lecture ecriture des valeurs initiales des input ports :
312 string au format python : a=[23,45,12.5,{"a":3,"b":[3,5]}]
313 lecture : 
314 passer par une methode PyObject * getPyObj() du port derive (cf. SALOMERuntime.i),
315 puis print python.
316 on peut ajouter 2 methodes dans le DataFlowPort :
317  recup valeur      : string fetch()
318  chargement valeur : void load(string)
319 à dériver dans les ports any, python, corba