1 TODO : x = resolu, - = a faire
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)
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
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)
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)
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
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)
65 - touches raccourci actions importantes (save ou save as...)
66 - <CTRL>+ et <CTRL>- pour zoom graphique
67 - mise en oeuvre undo/redo
69 - edition, destruction instance composant
70 - edition, destruction container
71 - edition, modification objet
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
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)
83 - design panneaux (edition/execution)
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 ?
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
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
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)
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
122 PROBLEMES : x = resolu, - = a faire
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
183 = SIGSEV en sortie de SALOME apres destruction de la fenetre execution
184 x destruction d'un lien, impact sur la disposition des noeuds
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 ?)
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
200 - renommage d'un item autre que noeud non repercute:
201 il manque des fonctions de renommage:
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
207 - analyse performances vue 2D
209 - control port : SceneItem separe mais subject = subject du node,
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é
221 - fermeture vue SALOME, object Browser pas mis a jour mais schema detruit...
224 Boutons Souris et Controles
225 ===========================
231 cf. QGraphicsItem::mousePressEvent ( QGraphicsSceneMouseEvent * event )
232 QGraphicsSceneMouseEvent::modifiers()
235 - partout : RMB : popup menu
240 : menu puis LMB : fit area, zoom , fit all
242 : CMB : deplacer la vue
244 - Proc : CMB : deplacer la vue
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
251 - Port : LMB : creer un lien par drag & drop
258 - bloc : CMB : changer le parent d'un noeud par drag & drop
259 : LMB : creer un lien par drag & drop
261 - elemNode : CMB : changer le parent d'un noeud par drag & drop
262 : LMB : affecter a un composant / drag and drop sur arbre
264 - port : LMB : creer un lien par drag & drop
268 - dataType : LMB : definir un type de port / drag and drop sur panneau
272 - component: LMB : affecter a un container / drag and drop sur arbre
275 - Panneau, tableau de ports
276 -------------------------
279 - Panneau, onglet catalogue
280 -------------------------
282 - noeud : LMB : ajouter un noeud /drag and drop sur vue ou arbre
284 - dataType : LMB : ajouter un type de port / drag and drop sur arbre
285 : changer un type de port / drag and drop sur panneau...
287 Modes de representation du noeud
288 ================================
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 ?)
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
311 lecture ecriture des valeurs initiales des input ports :
312 string au format python : a=[23,45,12.5,{"a":3,"b":[3,5]}]
314 passer par une methode PyObject * getPyObj() du port derive (cf. SALOMERuntime.i),
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