From 32dff384b63c91ecec2a391c4891b499a04b6395 Mon Sep 17 00:00:00 2001 From: Leonardo Robol Date: Mon, 13 Apr 2009 13:42:08 +0200 Subject: [PATCH] Modified the function to add chords in the form of \Ch{}{..} to suit every type of chord.. understanding how long it is and behaving in an approriate mode. --- latex_manager.py | 40 ++++++++++++++++++++++++++++++++-------- songbook-editor.py | 2 +- 2 files changed, 33 insertions(+), 9 deletions(-) diff --git a/latex_manager.py b/latex_manager.py index 5ccdc02..f9a8b07 100644 --- a/latex_manager.py +++ b/latex_manager.py @@ -3,7 +3,7 @@ import re class latex_manager(): def __init__(self): ## TODO: Verify Latex Installation - print "LaTeX loaded" + return def create_song(self, song): # Ci aspettiamo di ottenere un oggetto song @@ -31,13 +31,37 @@ class latex_manager(): latex_song += "\n\\end{song}\n\n" - # Transform chords in LaTeX Chords - latex_song = re.sub("\[", "\\Ch{", latex_song) - latex_song = re.sub("\](\w|\s)(\w|\s)(\w|\s)(\w|\s)", self.quadra_to_chord_end, latex_song) - latex_song = re.sub("\]", "}{}", latex_song) + # Transform chords in LaTeX Chords (this part has to be removed..) + #latex_song = re.sub("\[", "\\Ch{", latex_song) + #latex_song = re.sub("\](\w|\s){4}", self.quadra_to_chord_end, latex_song) + #latex_song = re.sub("\]", "}{}", latex_song) + + latex_song = self.sub_chord(latex_song) return latex_song - def quadra_to_chord_end(self,m): - st = "}{" + m.group(1) + m.group(2) + m.group(3) + m.group(4) + "}" - return st + + def sub_chord(self,m): + j = 0 + print j, len(m) + while(j < len(m)): + if(m[j] == '['): + # We have a chord!, then... + # 1) How many letters is the chords? + count = 0 + while(m[count + j + 1] != ']'): + count += 1 + # 2) Are there count + 1 words "free" after the chord? + free = count + 2 + for i in range(j + count + 2,j + count + 2 + (count + 2) ): + print "m[i] = ", m[i] + if( (m[i] == '\n') | (m[i] == '[') | (m[i] == '{') ): + free = i - j - count - 2 + break + print "free = " , free + # Free what we need...and rebuild the new string... + m = m[0:j] + "\Ch{" + m[j+1:j+count+1] + "}{" + m[j+count+2:j+count+free+2] + "}" + m[j+count+free+2:len(m)] + j = j + count + free + 3 + else: + j += 1 + return m diff --git a/songbook-editor.py b/songbook-editor.py index a49cfee..afdc250 100755 --- a/songbook-editor.py +++ b/songbook-editor.py @@ -122,7 +122,7 @@ class interface(QtGui.QMainWindow): def import_song_from_file(self): filetoimport = QtGui.QFileDialog.getOpenFileName(self, "Importa canzone", "", "Canzoni di RobolCanzoniere (*.rcs)") handle = open(filetoimport, 'r') - buf = handle.read() + buf = handle.read().decode("utf-8") handle.close() buf = buf.split(self.sep) newsong = song(buf[0], [], buf[1], buf[2], buf[3], buf[4]) -- 2.1.4