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
55 - sauvegarde position des noeuds dans xml, lors du passage en exec
57 - edition port outNode (xml): definir fichier sortie
58 - edition ports studyInNode, studyOutNode (controle types possibles...)
59 - edition ForEachLoop: type, samples ? (nbBranch OK)
61 - touches raccourci actions importantes (save ou save as...)
62 - <CTRL>+ et <CTRL>- pour zoom graphique
63 - mise en oeuvre undo/redo
65 - edition, destruction instance composant
66 - edition, destruction container
67 - edition, modification objet
69 - affichage etat schema modifie depuis derniere sauvegarde fichier
70 - couleur differente des liens datastream,
71 des liens de donnees simples (sans controle associe)
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)
79 - design panneaux (edition/execution)
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 ?
89 - creation de noeud : recadrage de la vue
90 - selection : recadrage de la vue
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
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
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
116 PROBLEMES : x = resolu, - = a faire
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
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
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
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
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
182 - analyse performances vue 2D
184 - control port : SceneItem separe mais subject = subject du node,
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é
196 - fermeture vue SALOME, object Browser pas mis a jour mais schema detruit...
199 Boutons Souris et Controles
200 ===========================
206 cf. QGraphicsItem::mousePressEvent ( QGraphicsSceneMouseEvent * event )
207 QGraphicsSceneMouseEvent::modifiers()
210 - partout : RMB : popup menu
215 : menu puis LMB : fit area, zoom , fit all
217 : CMB : deplacer la vue
219 - Proc : CMB : deplacer la vue
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
226 - Port : LMB : creer un lien par drag & drop
233 - bloc : CMB : changer le parent d'un noeud par drag & drop
234 : LMB : creer un lien par drag & drop
236 - elemNode : CMB : changer le parent d'un noeud par drag & drop
237 : LMB : affecter a un composant / drag and drop sur arbre
239 - port : LMB : creer un lien par drag & drop
243 - dataType : LMB : definir un type de port / drag and drop sur panneau
247 - component: LMB : affecter a un container / drag and drop sur arbre
250 - Panneau, tableau de ports
251 -------------------------
254 - Panneau, onglet catalogue
255 -------------------------
257 - noeud : LMB : ajouter un noeud /drag and drop sur vue ou arbre
259 - dataType : LMB : ajouter un type de port / drag and drop sur arbre
260 : changer un type de port / drag and drop sur panneau...
262 Modes de representation du noeud
263 ================================
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 ?)
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
286 lecture ecriture des valeurs initiales des input ports :
287 string au format python : a=[23,45,12.5,{"a":3,"b":[3,5]}]
289 passer par une methode PyObject * getPyObj() du port derive (cf. SALOMERuntime.i),
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