Fragments frescobaldi

Bonjour,

Pour les fragments de frescobaldi, il y a une variable $FILE_NAME qui permet d'afficher le chemin d'accès du fichier courant dans l'éditeur de texte.

Est-ce qu'il serait possible de récupérer le contenu de cette variable directement dans le fragment lui-même, s'il est écrit en code python?

Au plaisir,

Ben

Bonjour, je n'ai pas compris la question, pourriez-vous préciser ?

Bonjour Jean,

Merci pour cette réponse.

Je créé un nouveau fragment dans frescobaldi avec le code suivant:

-*- menu blocks;
$FILE_NAME

Si j'exécute le fragment, il m'affichera le chemin d'accès du fichier courant dans l'éditeur de texte.

Cependant, ce qui me serait utile, ce n'est pas de récupérer ce chemin dans l'éditeur de texte, mais dans un fragment python comme par exemple celui-ci:

-*- set: Ben; menu: Modifier; python; indent: no;

from PyQt5.QtWidgets import QMessageBox

fichier = $FILE_NAME

msg = QMessageBox()
msg.setIcon(QMessageBox.Information)
msg.setText("Le fichier est: " + fichier )
msg.setWindowTitle("Information")
msg.setStandardButtons(QMessageBox.Ok)
retval = msg.exec_()

Evidemment, cela ne fonctionne pas, mais il y a sûrement une variable python derrière $FILE_NAME, et j'aurais voulu savoir si elle est accessible depuis les fragments.

Au plaisir,

Ben

Je vois, essayez avec fichier = cursor.document().url().toLocalFile().

Excellent, cela fonctionne! Merci!

Et par hasard, savez-vous aussi comment récupérer de la même manière les emplacements d'inclusion Lilypond et le chemin d'accès lilypond des préférences?

J'ai pensé à lire directement dans le fichier de préférences, mais s'il y a plus simple…

Au plaisir,

Ben

Je me réponds moi-même, il suffit d'écrire:

from PyQt5.QtCore import QSettings
s = QSettings()
s.beginGroup("lilypond_settings")
dossiers_inclus = s.value("include_path")
programme_lilypond = s.value("default")

J'ai également enfin trouvé comment passer une variable en ligne de commande de manière facultative, la doc indique qu'il faut écrire dans la ligne de commande:

lilypond -e '(define-public Variable "Coucou")' Test.ly

et ajouter dans le fichier .ly:

#(use-modules (guile-user))

Mais pour avoir le facultatif, il faut encore en plus ajouter:

#(define Variable (if (defined? 'Variable) Variable "" ))

Ouf…

Merci pour l'aide,

Ben