#1 Le 27/03/2016, à 21:44
- frafa
Passer fonction dans fenêtre gtkdialog
Bonjour,
Je suis le dev de multisystem
http://liveusb.info/dotclear/index.php?pages/install
Je viens vers vous car multisystem ne fonctionne plus sous 16.04 et je n'arrive pas a corriger le bug...
Je vous explique plus moyen de récupérer une fonction dans une fenêtre gtkdialog
Je vous met un exemple qui fonctione depuis des lustres et plus sous 16.04,
si vous me trouvez la solution, ben je vous serait redevable ...
#! /bin/bash --posix
GTKDIALOG=gtkdialog
export GTKDIALOG
function FCT_vte()
{
echo whoami
echo ls
}
export -f FCT_vte
TEST='<window title="Terminal Widget" resizable="true">
<vbox>
<terminal has-focus="true" argv0="/bin/bash">
<variable>vte0</variable>
<input>/bin/bash -c "FCT_vte"</input>
</terminal>
<hbox homogeneous="true" space-expand="false" space-fill="false">
<button use-stock="true" label="gtk-quit">
</button>
</hbox>
</vbox>
</window>'
export TEST
$GTKDIALOG --program=TEST
Résultat:
Le même condensé pour passer en copier/coller dans un terminal:
#! /bin/bash --posix
GTKDIALOG=gtkdialog
export GTKDIALOG
function FCT_vte()
{
echo whoami
echo ls
}
export -f FCT_vte
TEST='<window title="Terminal Widget" resizable="true"><vbox><terminal has-focus="true" argv0="/bin/bash"><variable>vte0</variable><input>/bin/bash -c "FCT_vte"</input></terminal><hbox homogeneous="true" space-expand="false" space-fill="false"><button use-stock="true" label="gtk-quit"></button></hbox></vbox></window>'
export TEST
$GTKDIALOG --program=TEST
Gtkdialog 64 bits (compilé avec terminal VTE):
http://liveusb.info/multisystem/depot/d … y-amd64/g/
Gtkdialog 32 bits (compilé avec terminal VTE):
http://liveusb.info/multisystem/depot/d … ry-i386/g/
Dernière modification par frafa (Le 27/03/2016, à 22:03)
Hors ligne
#2 Le 28/03/2016, à 07:50
- frafa
Re : Passer fonction dans fenêtre gtkdialog
Re
J'ai trouvé une solution qui m'oblige a faire pas mal de modifs dans le code, j'aurai aimé trouver plus simple ...
la solution est de mettre toute les fonctions dans un fichier séparé, et de les appeler avec source ou . juste avant l'appel de fonction dans la fenêtre de gtkdialog ...
Exemple
on met les fonctions dans un fichier fct.sh rendu executable
export GTKDIALOG
function FCT_vte()
{
echo whoami
echo ls
}
et la fenêtre gtkdialog deviens:
#! /bin/bash --posix
GTKDIALOG=gtkdialog
export GTKDIALOG
function FCT_vte()
{
echo whoami
echo ls
}
export -f FCT_vte
TEST='<window title="Terminal Widget" resizable="true">
<vbox>
<terminal has-focus="true" argv0="/bin/bash">
<variable>vte0</variable>
<input>/bin/bash -c "source ./fct.sh;FCT_vte"</input>
</terminal>
<hbox homogeneous="true" space-expand="false" space-fill="false">
<button use-stock="true" label="gtk-quit">
</button>
</hbox>
</vbox>
</window>'
export TEST
$GTKDIALOG --program=TEST
la seule différence est: <input>/bin/bash -c "source ./fct.sh;FCT_vte"</input>
et là miracle bash accepte bien de m'executer la fonction dans gtkdialog.
si vous avez mieux ....
Tout ces correctif de sécurité rendent vraiment les fonctions de moins en moins portables en bash
Dernière modification par frafa (Le 28/03/2016, à 08:15)
Hors ligne
#3 Le 28/03/2016, à 08:40
- lynn
Re : Passer fonction dans fenêtre gtkdialog
Bonjour Frafa,
Malgré les corrections, ça ne fonctionne pas; Au moment de choisir un fichier iso, il y a ces messages
bash: FCT_multi_sel_addsel : commande introuvable
bash: FCT_multi_sel_calcsize : commande introuvable
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne
#4 Le 28/03/2016, à 18:51
- frafa
Re : Passer fonction dans fenêtre gtkdialog
@lynn
Bonjour,
Quellle version/architecture d'Ubuntu tu utilise ?
Hors ligne
#5 Le 28/03/2016, à 19:09
- lynn
Re : Passer fonction dans fenêtre gtkdialog
Ubuntu 16.04 64 bits.
Je viens de m'apercevoir que ce problème est présent quand tu essaies de choisir une iso par l'intermédiaire de la flèche blanche dans le rond rouge à droite; Si tu passes par l'icône du cd à gauche, ça fonctionne....
Edit: correctif de syntaxe
Dernière modification par lynn (Le 28/03/2016, à 19:13)
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne
#6 Le 28/03/2016, à 19:39
- frafa
Re : Passer fonction dans fenêtre gtkdialog
@lynn
Salut,
Hum je n'arrive pas a reproduire ...
tu est sur de faire un double clic pour sélectionner l'iso et que elle passe dans la partie de gauche du panel ?
le bouton en bas a droite c'est pour faire de la multi-sélection d'iso par double clic.
Hors ligne
#7 Le 28/03/2016, à 21:26
- lynn
Re : Passer fonction dans fenêtre gtkdialog
@Frafa
Ça ne fonctionne pas avec le bouton qui est représenté par une flèche vers le bas avec l'intitulé ajouter un Livecd mais ça fonctionne avec le bouton de gauche intitulé Utiliser ce bouton si le glisser/déposer ne fonctionne pas.
Je n'utilise jamais le glisser/déposer. J'aime bien faire ma sélection via l'explorateur de fichier.
Pour complété le test, j'ai fait la même chose en machine virtuelle et j'obtiens le même résultat...
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne
#8 Le 28/03/2016, à 21:34
- frafa
Re : Passer fonction dans fenêtre gtkdialog
@lynn
ok, vu ou est le problème, je corrige, merci pour le retour
Dernière modification par frafa (Le 28/03/2016, à 21:35)
Hors ligne
#9 Le 28/03/2016, à 22:24
- frafa
Re : Passer fonction dans fenêtre gtkdialog
Re,
Je viens de ripper un correctif dans le dépôt officiel,
tu peux donc maintenant tester la version du dépôt simplement.
Hors ligne
#10 Le 28/03/2016, à 22:25
- lynn
Re : Passer fonction dans fenêtre gtkdialog
Ç'est toujours pareil... Même message
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne
#11 Le 28/03/2016, à 22:30
- frafa
Re : Passer fonction dans fenêtre gtkdialog
Hum j’étais tellement sur de moi que je n'ai testé que sous 14.04,
je teste en live sous 16.04 ...
Hors ligne
#12 Le 28/03/2016, à 22:36
- lynn
Re : Passer fonction dans fenêtre gtkdialog
Je n'avais pas précisé mais sous 14.04, il n'y pas ce problème...
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne
#13 Le 29/03/2016, à 00:36
- frafa
Re : Passer fonction dans fenêtre gtkdialog
Reteste normalement c'est ok avec version 1.0346
http://liveusb.info/tmp/multisystel-16.04.png
Modération : merci d'utiliser des images de petite taille (300x300) ou des miniatures pointant sur ces images (Des hébergeurs comme Toile Libre ou TDCT'Pix le permettent).
Dernière modification par cqfd93 (Le 29/03/2016, à 07:57)
Hors ligne
#14 Le 29/03/2016, à 07:00
- lynn
Re : Passer fonction dans fenêtre gtkdialog
Ça fonctionne à nouveau.
Merci Frafa.
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne
#15 Le 29/03/2016, à 10:21
- LapiGNU
Re : Passer fonction dans fenêtre gtkdialog
Bonjour,
je me permets de m'incruster pour un petit hors sujet, tant que Frafa est par là :
Merci de nous maintenir à disposition une version compilée de GtkDialog. Ce logiciel est une pépite (trop) cachée, un vrai bonheur pour les p'tits gars qui font du Bash et du KISS !
frenchKISS sur www.tchitcha.info, Ubuntu clé en main pour les réseaux de postes de travail.
et surtout : Sauvez les arbres, mangez des castors. Sauvez les castors, ne mangez pas d'arbres !
Hors ligne
#16 Le 29/03/2016, à 12:10
- frafa
Re : Passer fonction dans fenêtre gtkdialog
@LapiGNU
Salut,
Merci, je pense aussi que Gtkdialog n'est pas assez plébiscité, plus de mainteneur actuellement pour le faire évoluer c'est bien dommage, perso pas assez a l'aise avec le "C" pour le faire évoluer...
Je me contente don uniquement de le maintenir fonctionnel dans mon dépôt.
Hors ligne