Table des matières
Notes du dév' : TODO pour la version 0.2 de QElectroTech
Commun / non attribué
Question à étudier : la licence des éléments : actuellement, ce doit être la GPL, par héritage implicite du logiciel ; mais pour autoriser la création de schémas non libres, ne faudrait-il pas les mettre sous une autre licence (LGPL, BSD, WTFPL, LAL, CC-BY…) ? ⇒ pour le moment, orientation vers la CC-BY modifiée : fichier ELEMENTS.LICENSE
Benoît
Ajout d'interrupteurs différentiels dans la collection d'éléments : 4 interrupteurs ajoutés.
Ajout de fichiers projets en guise d'exemples ; cf topic dédié sur le forum
Ajout d'éléments « Cellules HT » (Haute-Tension) dans la collection d'éléments (cf dépôt d'éléments).
Traitement des éléments sur le dépôt d'éléments
Youssef
Traduction de QET en espagnol : cf la page dédiée aux traductions
Trem
Mandriva : Corrections et améliorations du paquet - les bugs signalés ont été corrigés
Mandriva : documentation à rédiger sur le wiki
Tester le packaging de la branche 0.2, pour plus de sûreté lors des prochaines releases (effectué dans Cooker).
Xavier
Fonctionnalités restant à implémenter dans la 0.2
rendre l'interface pour gérer les catégories plus sympathique :
pour créer une catégorie : utiliser la catégorie sélectionnée dans le panel d'éléments comme catégorie parente
pour créer un élément : pré-selectionner la catégorie sélectionnée dans le panel d'éléments comme catégorie parente
pour les éléments et catégories : toujours permettre de spécifier le nom “fichier” mais le limiter à [0-9a-z_-.]
Gestion des éléments par drag'n drop :
copie
déplacement (interface à implémenter pour choisir entre la copie et le déplacement)
API et gestion des erreurs à fignoler
Ajout d'un moyen pour repérer rapidement les éléments embarqués non utilisés
Ajouter une action “Nettoyer le projet”
Gérer l'ordre des schémas dans le projet ; cet ordre est visible graphiquement au niveau des onglets et dans le panel d'éléments
donner un moyen à l'utilisateur de changer l'ordre des schémas : implémenter le déplacement d'onglets dans la classe QETTabBar
dans l'export XML du projet, ajouter un attribut, sans doute “order”
Nettoyage des chaînes de caractères dans le code (formes plurielles et utilisation de QString::arg(…) plutôt que des concaténations de chaînes traduites); cf :
Éditeur d'élément : Avertissement lorsque le cadre d'un élément n'englobe pas toutes les parties
Éditeur d'élément : Copier-coller
Éditeur d'élément : Forme “Rectangle”
Import automatique d'un élément lors de sa pose sur le schéma :
ajouter une méthode bool ElementDefinition::equals(const ElementDefinition &) pour comparer rapidement deux ElementDefinition
lors de l'intégration d'un élément, si celui-ci existe déjà dans le projet et est différent de celui à importer, poser la question à l'utilisateur
Éditeur d'élément : snap-to-grid.
Impression PDF (et PostScript tant qu'à faire) proposé sur X11 et sur Windows
Aperçu avant impression
Ajouter une liste déroulante avec les zooms les plus courants (25, 50, 75, 100, 200, 400, 800 …) ainsi que le zoom en cours
Régression : rétablir la possibilité de choisir les pages à imprimer ⇒ faut-il le réimplémenter sachant qu'il est déjà possible de choisir les schémas à imprimer et que l'impression d'un schéma sur plusieurs pages est implémentée mais rarement utilisée dans la pratique ? ⇒ on s'en tape.
Ajouter les propriétés par défaut des schémas (dimensions, types de conducteurs et cartouche) au niveau des projets.
Idée : À l'instar du cadre vide affiché par un navigateur lorsqu'une image est manquante sur une page, on pourrait imaginer un concept d'“élément fantôme” dans QElectroTech : il s'agirait d'un élément graphique simple (rectangle) qui reproduirait au mieux le comportement de l'élément manquant, notamment la présence d'un même nombre de bornes, aux mêmes positions. À l'enregistrement, son export XML serait identique à celui de l'élément manquant. On éviterait ainsi de défigurer un schéma simplement en l'ouvrant sur une machine ne possédant pas les bons éléments.
Icônes dignes de ce nom pour les fichiers .qet et .elmt- À ce stade, l'essentiel de la notion de projet est implémenté ; il faut alors adapter certaines fonctionnalités en conséquence :
générer automatiquement les numéros de folios des schémas (= dans leur cartouche) à partir de l'ordre des schémas
impression de projets : imprimer plusieurs schémas d'un projet à la fois
export de projets : exporter plusieurs schémas d'un projet à la fois
Correction du bug #2
copier/coller entre projets : import automatique des éléments ?
Liste des petites conneries bien chiantes qu'il faudra implémenter / vérifier / améliorer / ...
Implémenter la possibilité de recharger partiellement le panel d'éléments puis lier cette fonctionnalité à la suppression, la création, le déplacement et la copie d'items via le panel d'éléments. L'ajouter également dans le menu contextuel.
Ergonomie : dans l'éditeur d'élément, l'utilisation des touches Ctrl (travail en coordonnées libres) et Shift (conservation de l'outil en cours) dans une moindre mesure n'est pas intuitive.
Tester le rendu sous Gnome (ou est-ce que CleanLooks suffit ?) pour détecter les problèmes de dimensions.
Peaufiner le comportement des éditeurs de parties dans l'éditeur d'élément, notamment lorsqu'on réduit leur taille ⇒ QScrollArea + QStackedWidget
Le panel d'éléments liste désormais les collections commune et personnelle mais aussi les projets ouverts ; actuellement, tous les projets ouverts par l'application sont listés. Or, il faudrait ne lister que les projets ouverts dans le QETDiagramEditor en cours. Cela éviterait des incohérences dans l'interface.
Problèmes connus au niveau de l'enregistrement sur disque des fichiers projets :
Faire “Enregistrer” dans un projet sans schéma retient le nom de fichier à utiliser mais il n'est pas écrit ; le fichier est écrit plus tard, lorsqu'on ajoute un élément par exemple.
Lorsqu'un fichier est ouvert en lecture seule, il ne peut être écrit lors de sa fermeture, ce qui empêche de quitter l'application sans la tuer + peaufinage du mode lecture seule en général : API et cohérence de l'interface.
Documenter le format des projets (.qet = 0.2)
Lors d'un drag'n drop dans le panel d'élément, il faudrait scroller lentement le panel lorsque le curseur est prêt des bords supérieur et inférieur.
Lors de la fermeture des projets :
Ne pas demander à l'utilisateur s'il souhaite sauvegarder un projet alors qu'il n'y a pas touché.
Demander un chemin à l'utilisateur si le projet n'a jamais été enregistré.
Bien gérer l'état “modifié” des schémas
Concernant l'API des ElementsCollectionItem :
Distinction ElementsCollection / ElementsCategory :
Ajouter une méthode ElementsCollectionItem::toPureCategory() ayant le même comportement que l'actuelle méthode toCategory()
Faire en sorte que ElementsCollection::toCategory() renvoie la catégorie racine d'une collection
Faire en sorte que ElementDefinition::toCategory() renvoie la catégorie parente de l'élément
Simplifier les morceaux de code faisant appel à cet API ; sont visés les endroits où les collections sont repérées à part, où on récupère leur catégorie racine, et où on y applique le même traitement que pour une catégorie normale.
Méthodes move/copy récursive : uniformiser l'API
bien qu'il n'y ait pas de sens à spécifier que la recopie d'un élément doit être récursive, cela permet d'utiliser les mêmes méthodes move(bool deep_copy = true) et copy(bool deep_copy = true) pour toutes les classes héritant de ElementsCollectionItem.
Empêcher la copie / le déplacement d'une catégorie vers elle-même ou une de ses sous-catégories (récursivement bien sûr)
Gestion des branches et versions
La branche 0.2 est destinée à être rapatriée par copie dans le trunk :
# Dans un checkout du trunk : SVN_ROOT="svn+ssh://xavier@svn.tuxfamily.org/svnroot/qet/qet" svn merge ${SVN_ROOT}/trunk ${SVN_ROOT}/branches/0.2 .
Release
Avant tout :
Rédiger le Changelog complet et détaillé pour mettre a jour la page Fonctionnalités et roadmap
Tags prévus :
- 0.2a (alpha)
- 0.2b (beta)
- 0.2rc1
- 0.2
Pour chaque tag :
- Modifier le displayedVersion et le splash screen
- Générer la documentation du code
- Prévenir les packageurs du tag à venir
- Vérifier l'état des traductions
- Tagger la version dans le dépôt Subversion
- Générer le paquet src et l'uploader
- News : qelectrotech.org, linuxfr.org pour la beta et la finale
- Paquets pour Windows, Slackware, Debian, Fedora, Mandriva
0.2a (alpha)
Modifier le displayedVersion et le splash screen
Générer la documentation du code
Prévenir les packageurs du tag à venir (trem, scorpio, Remi)
Vérifier l'état des traductions : 98.4 % pour les éléments comme pour le logiciel
Tagger la version dans le dépôt Subversion : SVN_ROOT="svn+ssh://xavier@svn.tuxfamily.org/svnroot/qet/qet" svn cp ${SVN_ROOT}/trunk ${SVN_ROOT}/tags/0.2a -m "Tag de la version 0.2 alpha"
Générer le paquet src et l'uploader : SVN_ROOT="svn+ssh://xavier@svn.tuxfamily.org/svnroot/qet/qet" SSH_ACCESS="xavier@ssh.tuxfamily.org" SSH_TAGS_PATH="/home/qet/qet-repository/tags" SSH_DEBIANWATCH_PATH="/home/qet/qet-repository/debianwatch" QET_VERSION="0.2a" archive_name="qelectrotech-${QET_VERSION}-src" now_date="$(date "+%Y%m%d")" ssh_tags_dir="${SSH_TAGS_PATH}/${now_date}" cd /tmp svn export $SVN_ROOT/tags/${QET_VERSION} ${archive_name} tar czvf ${archive_name}.tar.gz ${archive_name}/ chmod 664 ${archive_name}.tar.gz ssh ${SSH_ACCESS} "mkdir -p ${ssh_tags_dir} && chmod g+w ${ssh_tags_dir}" scp ${archive_name}.tar.gz ${SSH_ACCESS}:${ssh_tags_dir}/ rm -rf ${archive_name} ${archive_name}.tar.gz ssh ${SSH_ACCESS} "cd ${SSH_DEBIANWATCH_PATH} && ln -s ../tags/${now_date}/${archive_name}.tar.gz ${archive_name}.tar.gz"
Ajouter un lien symbolique dans http://download.tuxfamily.org/qet/debianwatch/ (cf script ci-dessus)
Paquets pour Windows (ne pas oublier les .dll dans bin\) et Slackware ; paquets Debian et Fedora ok ; paquets Mandriva ⇒ en attente de trem (mais freeze, non ?)
Mises à jour :
FreshMeat (putain, non, j'suis claqué là)
0.2b (beta)
Prévenir les packageurs du tag à venir (trem, scorpio, Remi)
Préparer la dépêche pour linuxfr.org
Préparer la news pour qelectrotech.org
Vérifier l'état des traductions : Traduction de l'application complète en anglais, espagnol, russe et portugais.
Modifier le displayedVersion et le splash screen
Générer la documentation du code
Tagger la version dans le dépôt Subversion : SVN_ROOT="svn+ssh://xavier@svn.tuxfamily.org/svnroot/qet/qet" svn cp ${SVN_ROOT}/trunk ${SVN_ROOT}/tags/0.2b -m "Tag de la version 0.2 beta"
Générer le paquet src et l'uploader : SVN_ROOT="svn+ssh://xavier@svn.tuxfamily.org/svnroot/qet/qet" SSH_ACCESS="xavier@ssh.tuxfamily.org" SSH_TAGS_PATH="/home/qet/qet-repository/tags" SSH_DEBIANWATCH_PATH="/home/qet/qet-repository/debianwatch" QET_VERSION="0.2b" archive_name="qelectrotech-${QET_VERSION}-src" now_date="$(date "+%Y%m%d")" ssh_tags_dir="${SSH_TAGS_PATH}/${now_date}" cd /tmp umask 0022 svn export $SVN_ROOT/tags/${QET_VERSION} ${archive_name} tar czvf ${archive_name}.tar.gz ${archive_name}/ chmod 664 ${archive_name}.tar.gz ssh ${SSH_ACCESS} "mkdir -p ${ssh_tags_dir} && chmod g+w ${ssh_tags_dir}" scp ${archive_name}.tar.gz ${SSH_ACCESS}:${ssh_tags_dir}/ rm -rf ${archive_name} ${archive_name}.tar.gz ssh ${SSH_ACCESS} "cd ${SSH_DEBIANWATCH_PATH} && ln -s ../tags/${now_date}/${archive_name}.tar.gz ${archive_name}.tar.gz"
Ajouter un lien symbolique dans http://download.tuxfamily.org/qet/debianwatch/ (cf script ci-dessus)- Paquets pour :
Windows (ne pas oublier les .dll dans bin\),
Slackware,
Debian,
Fedora,
MacOS,
et Mandriva
- Mises à jour :
News LinuxFr
FreshMeat (flemme, once again)
0.2 RC1
Prévenir les packageurs du tag à venir (trem, scorpio, Remi)
Préparer la news pour qelectrotech.org
Vérifier l'état des traductions
Modifier le displayedVersion et le splash screen
Générer la documentation du code ; note : générée sans graphes.
Tagger la version dans le dépôt Subversion : SVN_ROOT="svn+ssh://xavier@svn.tuxfamily.org/svnroot/qet/qet" svn cp ${SVN_ROOT}/trunk ${SVN_ROOT}/tags/0.2rc1 -m "Tag de la version 0.2 RC1"
Générer le paquet src et l'uploader : SVN_ROOT="svn+ssh://xavier@svn.tuxfamily.org/svnroot/qet/qet" SSH_ACCESS="xavier@ssh.tuxfamily.org" SSH_TAGS_PATH="/home/qet/qet-repository/tags" SSH_DEBIANWATCH_PATH="/home/qet/qet-repository/debianwatch" QET_VERSION="0.2rc1" archive_name="qelectrotech-${QET_VERSION}-src" now_date="$(date "+%Y%m%d")" ssh_tags_dir="${SSH_TAGS_PATH}/${now_date}" cd /tmp umask 0022 svn export $SVN_ROOT/tags/${QET_VERSION} ${archive_name} tar czvf ${archive_name}.tar.gz ${archive_name}/ chmod 664 ${archive_name}.tar.gz ssh ${SSH_ACCESS} "mkdir -p ${ssh_tags_dir} && chmod g+w ${ssh_tags_dir}" scp ${archive_name}.tar.gz ${SSH_ACCESS}:${ssh_tags_dir}/ rm -rf ${archive_name} ${archive_name}.tar.gz ssh ${SSH_ACCESS} "cd ${SSH_DEBIANWATCH_PATH} && ln -s ../tags/${now_date}/${archive_name}.tar.gz ${archive_name}.tar.gz"
Ajouter un lien symbolique dans http://download.tuxfamily.org/qet/debianwatch/ (cf script ci-dessus) et éditer le fichier releases.txt- Paquets pour :
Windows (ne pas oublier les .dll dans bin\),
Slackware,
Debian,
Fedora,
MacOS,
et Mandriva
- Mises à jour :
0.2 RC2
Prévenir les packageurs du tag à venir (trem, scorpio, Remi)
Préparer la news pour qelectrotech.org
Vérifier l'état des traductions
Modifier le displayedVersion et le splash screen
Générer la documentation du code et mettre à jour la page documentation ; note : générée sans graphes.
Tagger la version dans le dépôt Subversion : SVN_ROOT="svn+ssh://xavier@svn.tuxfamily.org/svnroot/qet/qet" svn cp ${SVN_ROOT}/trunk ${SVN_ROOT}/tags/0.2rc2 -m "Tag de la version 0.2 RC2"
Générer le paquet src et l'uploader : SVN_ROOT="svn+ssh://xavier@svn.tuxfamily.org/svnroot/qet/qet" SSH_ACCESS="xavier@ssh.tuxfamily.org" SSH_TAGS_PATH="/home/qet/qet-repository/tags" SSH_DEBIANWATCH_PATH="/home/qet/qet-repository/debianwatch" QET_VERSION="0.2rc2" archive_name="qelectrotech-${QET_VERSION}-src" now_date="$(date "+%Y%m%d")" ssh_tags_dir="${SSH_TAGS_PATH}/${now_date}" cd /tmp umask 0022 svn export $SVN_ROOT/tags/${QET_VERSION} ${archive_name} tar czvf ${archive_name}.tar.gz ${archive_name}/ chmod 664 ${archive_name}.tar.gz ssh ${SSH_ACCESS} "mkdir -p ${ssh_tags_dir} && chmod g+w ${ssh_tags_dir}" scp ${archive_name}.tar.gz ${SSH_ACCESS}:${ssh_tags_dir}/ rm -rf ${archive_name} ${archive_name}.tar.gz ssh ${SSH_ACCESS} "cd ${SSH_DEBIANWATCH_PATH} && ln -s ../tags/${now_date}/${archive_name}.tar.gz ${archive_name}.tar.gz"
Ajouter un lien symbolique dans http://download.tuxfamily.org/qet/debianwatch/ (cf script ci-dessus) et éditer le fichier releases.txt- Paquets pour :
Windows (ne pas oublier les .dll dans bin\),
Slackware,
Debian,
Fedora,
MacOS,
et Mandriva
- Mises à jour :
0.2
Prévenir les packageurs du tag à venir (trem, scorpio, Remi)
Préparer la dépêche pour linuxfr.org
Préparer la news pour qelectrotech.org
Vérifier l'état des traductions
Modifier le displayedVersion et le splash screen
Tagger la version dans le dépôt Subversion : SVN_ROOT="svn+ssh://xavier@svn.tuxfamily.org/svnroot/qet/qet" svn cp ${SVN_ROOT}/trunk ${SVN_ROOT}/tags/0.2 -m "Tag de la version 0.2"
Générer le paquet src et l'uploader : SVN_ROOT="svn+ssh://xavier@svn.tuxfamily.org/svnroot/qet/qet" SSH_ACCESS="xavier@ssh.tuxfamily.org" SSH_TAGS_PATH="/home/qet/qet-repository/tags" SSH_DEBIANWATCH_PATH="/home/qet/qet-repository/debianwatch" QET_VERSION="0.2" archive_name="qelectrotech-${QET_VERSION}-src" now_date="$(date "+%Y%m%d")" ssh_tags_dir="${SSH_TAGS_PATH}/${now_date}" cd /tmp umask 0022 svn export $SVN_ROOT/tags/${QET_VERSION} ${archive_name} tar czvf ${archive_name}.tar.gz ${archive_name}/ chmod 664 ${archive_name}.tar.gz ssh ${SSH_ACCESS} "mkdir -p ${ssh_tags_dir} && chmod g+w ${ssh_tags_dir}" scp ${archive_name}.tar.gz ${SSH_ACCESS}:${ssh_tags_dir}/ rm -rf ${archive_name} ${archive_name}.tar.gz ssh ${SSH_ACCESS} "cd ${SSH_DEBIANWATCH_PATH} && ln -s ../tags/${now_date}/${archive_name}.tar.gz ${archive_name}.tar.gz"
Ajouter un lien symbolique dans http://download.tuxfamily.org/qet/debianwatch/ (cf script ci-dessus) et mdifier releases.txt- Paquets pour :
Windows (ne pas oublier les .dll dans bin\),
Slackware,
Suite au mail de Yuriy: utiliser Qt 4.5.2 pour refaire le paquet Windows
Debian,
Fedora,
MacOS,
et Mandriva
Mises à jour :
jesuislibre.org (demandé)
News LinuxFr