Dans le cadre de mon projet open source Art Of Sequence (http://artofsequence.org) je développe un outil de montage de "séquence digitale". L'outil s'appelle AOS Designer. (tout un programme).
En gros j'ai une fenetre principale et des document qui sont en fait des "vues" de données, enfin peu importe.
Mon souci ici est de mettre en place un système simple pour me permettre d'avoir de fenetres qui peuvent passer de l'intérieur de la fenetre principale à l'extérieur. J'apelle le principe "FreeWindows" et j'ai fait une implémentation partielle dans un clone du repository de mon projet. Je prends comme exemple les fenetres de Visual Studio 201x mais je n'ai pas besoin de faire aussi "balaise", quelque chose de simple suffira.
Ca se résume à 2 classes, FreeWindowsManager et FreeWindows qui permettent la dite fonctionalité MAIS il manque unchose : j'ai des QAction qui permettent de faire sortir la fenetre et de la faire rerentrer mais je ne trouve pas de moyen générique de permettre à l'utilisateur d'avoir l'action visuelle pour revenir dans l'écran.
En gros, dans la fenetre interne (QMdiSubWindow), j'ai ajouté une action dans le menu contextuel si on click droit sur la barre de la fenetre, "Float Window" pour faire sortir la fenetre.
En revanche pour la fenetre externe (QWidget) je ne trouve pas de manière de fournir l'action "Dock Window" visuellement à l'utilisateur, de manière générique et le moins intrusif possible.
Comme il y a des experts Qt peut être qu'ils pourraient vérifier mon code et me faire des suggestions?
C'est un peu expérimental alors je n'ai pas vraiment commenté mais c'est je pense assez simple à comprendre :
http://code.google.com/r/mjklaim-fre...dowManager.hpp
http://code.google.com/r/mjklaim-fre...dowManager.cpp
http://code.google.com/r/mjklaim-fre...FreeWindow.hpp
http://code.google.com/r/mjklaim-fre...FreeWindow.cpp
Théoriquement vous n'avez pas besoin de lire tout le code du projet, juste ces fichiers ci qui devraient être réutilisables (hors macros d'assertions et de log)
Postez ici pour les commentaires ou bien utiliser le système de reviews de Google.
Note à part : Vous pouvez aussi, si ça vous interesse et que vous avez le temps, vous pouvez m'aider en jettant un oeil au code de l'ensemble du projet là : http://dev.artofsequence.org (le système de code review est totalement activé)
C'est peut être encore un peu tot mais j'avoue qu'avec le peu d'expérience que j'ai avec Qt j'ai encore du mal à bien organiser tout ça... Et puis c'est la première fois que je fais un éditeur (je suis plus habitué au code de jeux vidéos et projets similaires).
Donc les retours sont toujours bienvenus.
Partager