#1 Le 10/05/2014, à 11:09
- Christophe C
[résolu] traitement d'un bug zenity
Bonjour,
j'ai un problème sur un bug pénible. les boites -list de zenity renvoient le nom de la colonne choisit si on clic dessus puis qu'on appuie sur le bouton "valider". Mais si on double clic, elles renvoient 2 fois le nom de la colonne.
Par exemple, ci dessous si je clic sur COL1 + valider, PARAM est égal à "COL1".
Si je double clic, PARAM est égal à "COL1| COL1".
#!/bin/bash
PARAM=$(zenity --list \
--title="TEST" \
--column="OPTION" \
"COL1" \
"COL2" \
"COL3")
PARAM=$(echo $PARAM | cut -d'|' -f1)
Pas de pb pour récupérer la bonne valeur : je fais un cut et je ne récupère que la première partie. Jusque là tout va bien.
MAIS, le bouton "annuler" de la boite zenity ne marche alors plus (du moins si je suis dans une boucle sans fin, ce qui est mon cas). En effet, ce bouton renvoie une valeur par défaut $?=1. Et c'est ce "1" que je test pour sortir de la boucle.
Sauf que j'ai mis un retraitement de la variable PARAM, et que la variable $? devient =0 (a fonction a fonctionnée). Quand je clic sur "Annuler" dans la boucle, il repasse la boucle, efface la réponse du bouton, et je suis baisé.
Quelqu'un connait il un autre moyen d'intercepter la réponse du bouton annuler ?
(par convention dans zenity, ok-label (bouton "valider") à un retour $?=0, et cancel-label ("annuler") $?=1)
Dernière modification par Christophe C (Le 15/05/2014, à 11:54)
BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».
Hors ligne
#2 Le 10/05/2014, à 11:16
- Compte anonymisé
Re : [résolu] traitement d'un bug zenity
Bonjour,
Je viens de faire le test sous 14.04 et annuler me renvoie $?=1...
#3 Le 10/05/2014, à 13:28
- Christophe C
Re : [résolu] traitement d'un bug zenity
Bien sur. Sauf que comme indiqué, ma boucle sans fin repasse sur param, et son retraitement par cut écrase la variable $?. Il faudrait donc que je puisse récupérer le clic sur le bouton annuler d'une autre façon.
BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».
Hors ligne
#4 Le 10/05/2014, à 14:19
- Compte anonymisé
Re : [résolu] traitement d'un bug zenity
Bien sur. Sauf que comme indiqué...
Désolé de m'intéresser à ton problème et de ne rien y comprendre.
#!/bin/bash
PARAM=$(zenity --list \
--title="TEST" \
--column="OPTION" \
"COL1" \
"COL2" \
"COL3")
RET="$?"
PARAM=$(echo $PARAM | cut -d'|' -f1)
if [ "$RET" = "1" ] ; then
exit 1
fi
Bon continuation.........
#5 Le 10/05/2014, à 14:43
- Watael
Re : [résolu] traitement d'un bug zenity
salut,
`cut' n'est pas utile
PARAM="${PARAM%|*}"
et hop ! une commande externe en moins = quelques millisecondes en moins * n boucles
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#6 Le 10/05/2014, à 17:22
- Christophe C
Re : [résolu] traitement d'un bug zenity
Je ne comprends pas bien la syntaxe ?
Sinon la réponse d'alx devrait marcher. J'aurais du y penser, c'est évident. Merci !
Dernière modification par Christophe C (Le 10/05/2014, à 17:24)
BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».
Hors ligne