Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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:
http://liveusb.info/tmp/ms-bug.png

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 smile

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 sad

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

#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.  smile

Pour complété le test, j'ai fait la même chose en machine virtuelle et j'obtiens le même résultat...
1459196668.png


«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 smile

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 sad


«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... neutral


«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. smile

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