Une nouvelle action

N'hésitez pas à poster si vous avez une idée d'amélioration du programme
Post Reply
Fredy123
Posts: 163
Joined: 15 Jun 2011, 23:07

Une nouvelle action

Post by Fredy123 »

Salut,

Tout à l'heure (pendant que je dormais dans mon cours de français), j'ai eu un flash ! Une bonne idée selon moi. :D

Mais bon, c'est à toi de juger de mon idée. ^^

Pour le moment, il existe une commande nommée : "Boîte de dialogue" Avec celle-ci, nous pouvons mettre comme type : "Oui - Non" ou bien "Ok". Il y a aussi "Entrée de texte" qui peut être très pratique dans certain cas, mais parfois, il serait plus pratique d'avoir des choix de réponses.

Par exemple, je demande à l'utilisateur :

Dans les 4 choix de sport ci-dessous, lequel est votre préférés ?

Hockey
Soccer
Tennis
Basketball

Au lieu de demander à l'utilisateur d'écrire sont choix, il le choisi comme un "oui ou non". C'est comme si je remplacerais "Oui ou Non" par "Choix1 ou Choix2". Mais avec la possibilité de mettre (exemple) 4 choix (ou plus ...).

L'avantage des choix sont :

- Rend le code moins compliqué. (Pas besoin de faire une condition et un retour à la ligne pour chaque choix ....)
- Rend plus simple les choses pour l'utilisateur. Moins besoin d'écrire. :roll:

Même si il y en n'a que 2, ils sont de très gros avantage pour moi (et sûrement pour d'autres gens).

Voici l'exemple des sports en code :

Code: Select all

<?xml version="1.0" encoding="UTF-8"?>
<scriptfile>
    <settings program="actionaz" version="0.0.6" scriptVersion="0.0.1" os="Windows"/>
    <actions>
        <action name="ActionGoto" version="1.0.0"/>
        <action name="ActionMessageBox" version="1.0.0"/>
        <action name="ActionVariableCondition" version="1.0.0"/>
        <action name="ActionStop" version="1.0.0"/>
        <action name="ActionTextInput" version="1.0.0"/>
    </actions>
    <parameters/>
    <script pauseBefore="0" pauseAfter="0">
        <action name="ActionTextInput" comment=" Var : sport">
            <exception id="0" action="0" line="001"/>
            <exception id="1" action="0" line="001"/>
            <exception id="2" action="1" line="001"/>
            <parameter name="defaultValue">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="variable">
                <subParameter name="value" code="0">sport</subParameter>
            </parameter>
            <parameter name="question">
                <subParameter name="value" code="0">Quel est votre sport préférés parmit ses choix ? 

hockey
soccer
tennis
basketball
</subParameter>
            </parameter>
        </action>
        <action name="ActionVariableCondition">
            <exception id="0" action="0" line="End"/>
            <exception id="1" action="0" line="End"/>
            <exception id="2" action="1" line="End"/>
            <parameter name="ifEqual">
                <subParameter name="line" code="0">8</subParameter>
                <subParameter name="action" code="0">goto</subParameter>
            </parameter>
            <parameter name="comparison">
                <subParameter name="value" code="0">equal</subParameter>
            </parameter>
            <parameter name="variable">
                <subParameter name="value" code="0">sport</subParameter>
            </parameter>
            <parameter name="value">
                <subParameter name="value" code="0">hockey</subParameter>
            </parameter>
            <parameter name="ifDifferent">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
        </action>
        <action name="ActionVariableCondition">
            <exception id="0" action="0" line="End"/>
            <exception id="1" action="0" line="End"/>
            <exception id="2" action="1" line="End"/>
            <parameter name="ifEqual">
                <subParameter name="line" code="0">10</subParameter>
                <subParameter name="action" code="0">goto</subParameter>
            </parameter>
            <parameter name="comparison">
                <subParameter name="value" code="0">equal</subParameter>
            </parameter>
            <parameter name="variable">
                <subParameter name="value" code="0">sport</subParameter>
            </parameter>
            <parameter name="ifDifferent">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
            <parameter name="value">
                <subParameter name="value" code="0">soccer</subParameter>
            </parameter>
        </action>
        <action name="ActionVariableCondition">
            <exception id="0" action="0" line="End"/>
            <exception id="1" action="0" line="End"/>
            <exception id="2" action="1" line="End"/>
            <parameter name="ifEqual">
                <subParameter name="line" code="0">12</subParameter>
                <subParameter name="action" code="0">goto</subParameter>
            </parameter>
            <parameter name="comparison">
                <subParameter name="value" code="0">equal</subParameter>
            </parameter>
            <parameter name="variable">
                <subParameter name="value" code="0">sport</subParameter>
            </parameter>
            <parameter name="ifDifferent">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
            <parameter name="value">
                <subParameter name="value" code="0">tennis</subParameter>
            </parameter>
        </action>
        <action name="ActionVariableCondition">
            <exception id="0" action="0" line="End"/>
            <exception id="1" action="0" line="End"/>
            <exception id="2" action="1" line="End"/>
            <parameter name="ifEqual">
                <subParameter name="line" code="0">14</subParameter>
                <subParameter name="action" code="0">goto</subParameter>
            </parameter>
            <parameter name="comparison">
                <subParameter name="value" code="0">equal</subParameter>
            </parameter>
            <parameter name="variable">
                <subParameter name="value" code="0">sport</subParameter>
            </parameter>
            <parameter name="ifDifferent">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
            <parameter name="value">
                <subParameter name="value" code="0">basketball</subParameter>
            </parameter>
        </action>
        <action name="ActionMessageBox">
            <exception id="0" action="0" line="001"/>
            <exception id="1" action="0" line="001"/>
            <exception id="2" action="1" line="001"/>
            <parameter name="message">
                <subParameter name="value" code="0">Erreur, vous avez écrit : $sport

Veuillez réessayer.</subParameter>
            </parameter>
            <parameter name="title">
                <subParameter name="value" code="0">Erreur !</subParameter>
            </parameter>
            <parameter name="ifYes">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
            <parameter name="icon">
                <subParameter name="value" code="0">error</subParameter>
            </parameter>
            <parameter name="type">
                <subParameter name="value" code="0">ok</subParameter>
            </parameter>
            <parameter name="ifNo">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
        </action>
        <action name="ActionGoto">
            <exception id="0" action="0" line="End"/>
            <exception id="1" action="0" line="End"/>
            <exception id="2" action="1" line="End"/>
            <parameter name="line">
                <subParameter name="value" code="0">1</subParameter>
            </parameter>
        </action>
        <action name="ActionMessageBox" comment="Hockey">
            <exception id="0" action="0" line="001"/>
            <exception id="1" action="0" line="001"/>
            <exception id="2" action="1" line="001"/>
            <parameter name="message">
                <subParameter name="value" code="0">Vous avez choisi le Hockey !</subParameter>
            </parameter>
            <parameter name="title">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="ifYes">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
            <parameter name="icon">
                <subParameter name="value" code="0">none</subParameter>
            </parameter>
            <parameter name="type">
                <subParameter name="value" code="0">ok</subParameter>
            </parameter>
            <parameter name="ifNo">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
        </action>
        <action name="ActionGoto">
            <exception id="0" action="0" line="End"/>
            <exception id="1" action="0" line="End"/>
            <exception id="2" action="1" line="End"/>
            <parameter name="line">
                <subParameter name="value" code="0">End</subParameter>
            </parameter>
        </action>
        <action name="ActionMessageBox" comment="Soccer">
            <exception id="0" action="0" line="001"/>
            <exception id="1" action="0" line="001"/>
            <exception id="2" action="1" line="001"/>
            <parameter name="title">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="message">
                <subParameter name="value" code="0">Vous avez choisi le Soccer !</subParameter>
            </parameter>
            <parameter name="ifYes">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
            <parameter name="icon">
                <subParameter name="value" code="0">none</subParameter>
            </parameter>
            <parameter name="type">
                <subParameter name="value" code="0">ok</subParameter>
            </parameter>
            <parameter name="ifNo">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
        </action>
        <action name="ActionGoto">
            <exception id="0" action="0" line="001"/>
            <exception id="1" action="0" line="001"/>
            <exception id="2" action="1" line="001"/>
            <parameter name="line">
                <subParameter name="value" code="0">End</subParameter>
            </parameter>
        </action>
        <action name="ActionMessageBox" comment="Tennis">
            <exception id="0" action="0" line="001"/>
            <exception id="1" action="0" line="001"/>
            <exception id="2" action="1" line="001"/>
            <parameter name="title">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="message">
                <subParameter name="value" code="0">Vous avez choisi le Tennis !</subParameter>
            </parameter>
            <parameter name="ifYes">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
            <parameter name="icon">
                <subParameter name="value" code="0">none</subParameter>
            </parameter>
            <parameter name="type">
                <subParameter name="value" code="0">ok</subParameter>
            </parameter>
            <parameter name="ifNo">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
        </action>
        <action name="ActionGoto">
            <exception id="0" action="0" line="001"/>
            <exception id="1" action="0" line="001"/>
            <exception id="2" action="1" line="001"/>
            <parameter name="line">
                <subParameter name="value" code="0">End</subParameter>
            </parameter>
        </action>
        <action name="ActionMessageBox" comment="Basketball">
            <exception id="0" action="0" line="001"/>
            <exception id="1" action="0" line="001"/>
            <exception id="2" action="1" line="001"/>
            <parameter name="title">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="message">
                <subParameter name="value" code="0">Vous avez choisi le Basketball !</subParameter>
            </parameter>
            <parameter name="ifYes">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
            <parameter name="icon">
                <subParameter name="value" code="0">none</subParameter>
            </parameter>
            <parameter name="type">
                <subParameter name="value" code="0">ok</subParameter>
            </parameter>
            <parameter name="ifNo">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
        </action>
        <action name="ActionMessageBox" label="End" comment="On voit bien le bug ici lorsqu'on fait "Non".">
            <exception id="0" action="0" line="End"/>
            <exception id="1" action="0" line="End"/>
            <exception id="2" action="1" line="End"/>
            <parameter name="message">
                <subParameter name="value" code="0">Voulez-vous recommencer ?</subParameter>
            </parameter>
            <parameter name="title">
                <subParameter name="value" code="0"></subParameter>
            </parameter>
            <parameter name="ifYes">
                <subParameter name="line" code="0">1</subParameter>
                <subParameter name="action" code="0">goto</subParameter>
            </parameter>
            <parameter name="icon">
                <subParameter name="value" code="0">none</subParameter>
            </parameter>
            <parameter name="type">
                <subParameter name="value" code="0">yesno</subParameter>
            </parameter>
            <parameter name="ifNo">
                <subParameter name="line" code="0"></subParameter>
                <subParameter name="action" code="0">do_nothing</subParameter>
            </parameter>
        </action>
        <action name="ActionStop">
            <exception id="0" action="0" line="001"/>
            <exception id="1" action="0" line="001"/>
            <exception id="2" action="1" line="001"/>
        </action>
    </script>
</scriptfile>
 
Si il y aurait des choix de réponses, ce code serait divisé par 1.5. Mais l'utilisateur aurait la vie plus simple et le scripteur un script avec moins de condition. Dans mes propre script par exemple, j'ajoute beaucoup de questions pour avoir un script plus paramètrable.... Donc toujours devoir écrire la réponse (sans erreur) peut devenir long et très peu pratique ...

J'espère que l'idée te plaira et qu'elle arrivera un jour ou l'autre, loin ou bien pas, peu importe. Si tu ne l'aimes pas ou tu ne compte pas réaliser cette commande, j'aurai essayé.

Bonne journée. :D
User avatar
Jmgr
Admin
Posts: 1649
Joined: 07 Dec 2005, 15:45
Contact:

Re: Une nouvelle action

Post by Jmgr »

Oui c'est prévu pour une version après la 1.0. En fait c'est l'action DataInput qui sera étendue pour gérer les listes de choix. (exclusifs ou non)
"My software never has bugs. It just develops random features."
Fredy123
Posts: 163
Joined: 15 Jun 2011, 23:07

Re: Une nouvelle action

Post by Fredy123 »

Je suis ravi de l'apprendre ! :D
Fredy123
Posts: 163
Joined: 15 Jun 2011, 23:07

Re: Une nouvelle action

Post by Fredy123 »

Je voudrais simplement savoir si cette idée tourne toujours dans ta tête. :)
User avatar
Jmgr
Admin
Posts: 1649
Joined: 07 Dec 2005, 15:45
Contact:

Re: Une nouvelle action

Post by Jmgr »

Elle fait partie de la todolist : http://wiki.actionaz.org/doku.php?id=fr:todolist, donc oui :)
"My software never has bugs. It just develops random features."
Fredy123
Posts: 163
Joined: 15 Jun 2011, 23:07

Re: Une nouvelle action

Post by Fredy123 »

Parfait !

Je vois qu'il en reste beaucoup à faire, tiens bon. :)
manudragon
Posts: 9
Joined: 06 Mar 2012, 10:50

Re: Une nouvelle action

Post by manudragon »

Bonjour ^^

Voici donc l'action que j'attends si impatiemment
A défaut d'arriver à linker Actionaz dans mon environnement Qt (j'en peux plus du "LINK : fatal error LNK1146: aucun argument spécifié avec l'option '/LIBPATH:"), je vais donc attendre la sortie de la prochaine release (en espérant que cette action soit dedans)
Au passage, j'ai vu dans la todo list qu'il était prévu un wiki pour créer de nouvelles actions, si au passage ça pouvait présenter la mise en place de l'environnement et les settings propres au projet actionaz, ça serait une super idée

Un grand bravo pour le travail accompli :mrgreen:
User avatar
Jmgr
Admin
Posts: 1649
Joined: 07 Dec 2005, 15:45
Contact:

Re: Une nouvelle action

Post by Jmgr »

Je n'ai pas trop de temps en ce moment et je développe également un autre projet en parallèle, du coup ça n'avance pas trop...
Si tu veux développer pour Actionaz je te conseille vraiment d'utiliser un environnement GNU/Linux comme Ubuntu ou Debian. Windows pour le développement c'est vraiment galère. C'est quand même mieux que Mac mais ça reste assez merdique, typiquement il faut déjà recompiler tout Qt et ça prend déjà 4-5 heures sur un bon PC. Après tu as toutes les dépendances, qui ont parfois elle-même d'autres dépendances...

En tous cas oui, il faudra que je rédige un petit guide pour ça.
"My software never has bugs. It just develops random features."
manudragon
Posts: 9
Joined: 06 Mar 2012, 10:50

Re: Une nouvelle action

Post by manudragon »

Je suis 100% d'accord
mais j'ai + de temps au boulot (WIndows) qu'à la maison (Xubuntu) :mrgreen:
je tente ce soir
User avatar
Jmgr
Admin
Posts: 1649
Joined: 07 Dec 2005, 15:45
Contact:

Re: Une nouvelle action

Post by Jmgr »

Tu peux toujours utiliser une machine virtuelle :p
"My software never has bugs. It just develops random features."
manudragon
Posts: 9
Joined: 06 Mar 2012, 10:50

Re: Une nouvelle action

Post by manudragon »

bon... j'ai la flemme de remettre un qt sur ma vm Voyager na :D
manudragon
Posts: 9
Joined: 06 Mar 2012, 10:50

Re: Une nouvelle action

Post by manudragon »

pour info, j'ai été obligé d'ajouter unix:!mac:LIBS += -L/usr/lib -lQtSystemInfo dans gui.pro
sinon impossible de faire trouver QSystemInfo à QTCreator

idem dans actionpacksystem.pro:
unix:!mac:LIBS += -L/usr/lib -lQtMultimediaKit
manudragon
Posts: 9
Joined: 06 Mar 2012, 10:50

Re: Une nouvelle action

Post by manudragon »

J'ai fini l'implémentation de la comboBox pour l'action DataInput

Image
Image

Je sais juste pas où paramétrer le splitter mais bon :)
User avatar
Jmgr
Admin
Posts: 1649
Joined: 07 Dec 2005, 15:45
Contact:

Re: Une nouvelle action

Post by Jmgr »

Wah ! :D
pour info, j'ai été obligé d'ajouter unix:!mac:LIBS += -L/usr/lib -lQtSystemInfo dans gui.pro
sinon impossible de faire trouver QSystemInfo à QTCreator

idem dans actionpacksystem.pro:
unix:!mac:LIBS += -L/usr/lib -lQtMultimediaKit
Quelle distribution utilises-tu ? Normalement le code du dépôt Git fonctionne avec Debian unstable et Ubuntu 11.04 et supérieur.

EDIT: Normalement pas besoin, CONFIG += mobility et MOBILITY += systeminfo permettent à Qt de détecter tout seul que Mobility est installé et d'ajouter les LIBS qui vont bien.
J'ai fini l'implémentation de la comboBox pour l'action DataInput
Ah, bien :)
Je suis aussi en train de bosser dessus en fait, le truc c'est que séparer les valeurs par un ; c'est rapide à coder mais je ne trouve pas ça très intuitif. Je pensais plutôt créer un nouveau Widget utilisant un QListView avec des boutons pour ajouter/renommer/supprimer des items. (+ drag & drop)

L'idée c'est d'ajouter également un paramètre de type "Vrai/Faux", une checkbox en fait, qui permette de choisir si on autorise ou non une sélection multiple.
Si c'est le cas alors on affiche une liste de checkbox, sinon une liste de radiobutton.

En tous cas bravo, c'est la première fois qu'un développeur contribue si rapidement au projet ^^
D'ailleurs que penses-tu du code ? Pas trop moche ?
"My software never has bugs. It just develops random features."
manudragon
Posts: 9
Joined: 06 Mar 2012, 10:50

Re: Une nouvelle action

Post by manudragon »

Jmgr wrote:Wah ! :D
pour info, j'ai été obligé d'ajouter unix:!mac:LIBS += -L/usr/lib -lQtSystemInfo dans gui.pro
sinon impossible de faire trouver QSystemInfo à QTCreator
idem dans actionpacksystem.pro:
unix:!mac:LIBS += -L/usr/lib -lQtMultimediaKit
Quelle distribution utilises-tu ? Normalement le code du dépôt Git fonctionne avec Debian unstable et Ubuntu 11.04 et supérieur.
Voyager 11.10 (Xubuntu donc)
QT4 SDK et j'ai installé toutes les librairies dépendantes, il y a juste celle là qui m'a donné du fil à retordre
Jmgr wrote: EDIT: Normalement pas besoin, CONFIG += mobility et MOBILITY += systeminfo permettent à Qt de détecter tout seul que Mobility est installé et d'ajouter les LIBS qui vont bien.
J'ai lu de tout à ce sujet.... donc quand j'ai eu trouvé la solution, j'ai arrêté de chercher :p
Jmgr wrote:
J'ai fini l'implémentation de la comboBox pour l'action DataInput
Ah, bien :)
Je suis aussi en train de bosser dessus en fait, le truc c'est que séparer les valeurs par un ; c'est rapide à coder mais je ne trouve pas ça très intuitif. Je pensais plutôt créer un nouveau Widget utilisant un QListView avec des boutons pour ajouter/renommer/supprimer des items. (+ drag & drop)

L'idée c'est d'ajouter également un paramètre de type "Vrai/Faux", une checkbox en fait, qui permette de choisir si on autorise ou non une sélection multiple.
Si c'est le cas alors on affiche une liste de checkbox, sinon une liste de radiobutton.
J'avoue que je l'ai joué vite fait sur ce coup là. J'ai juste mis en place le strict nécessaire pour me permettre d'avancer dans ce que je veux faire avec ton soft :D
J'ai plus qu'à trouver comment sortir un build Windows depuis mon nunux et je pourrais me débrouiller :wink:
Effectivement une checkbox serait plus pratique et un contrôle dans lequel on peut ajouter/supprimer/éditer les éléments de la comboBox serait un grand +
Jmgr wrote: En tous cas bravo, c'est la première fois qu'un développeur contribue si rapidement au projet ^^
D'ailleurs que penses-tu du code ? Pas trop moche ?
j'ai pas fait grand chose.... d'un autre côté, je découvre complètement l'api Qt
Le code me parait clair par contre en dehors de cette action là, je me suis pas aventuré dans grand chose
Post Reply