Now you can open songbook you previously saved :)

Leonardo Robol [2009-05-04 17:41]
Now you can open songbook you previously saved :)
Filename
songbook-editor.py
diff --git a/songbook-editor.py b/songbook-editor.py
index a12fdd5..28c90f4 100755
--- a/songbook-editor.py
+++ b/songbook-editor.py
@@ -37,6 +37,7 @@ class interface(QtGui.QMainWindow):

         # Menu File
         self.connect(self.ui.actionSalva, QtCore.SIGNAL("activated()"), self.save_songbook)
+        self.connect(self.ui.actionApri, QtCore.SIGNAL("activated()"), self.load_songbook)

         # Menu Canzone
         self.connect(self.ui.actionSalva_canzone, QtCore.SIGNAL("activated()"), self.save_song_to_file)
@@ -111,6 +112,27 @@ class interface(QtGui.QMainWindow):
             handle = open(filename, 'w')
             handle.write(saving.encode("utf-8"))
             handle.close()
+
+    def load_songbook(self):
+        filename = QtGui.QFileDialog.getOpenFileName(self, "Apri Canzoniere", "", "Canzoniere di RobolCanzoniere (*.rcc)")
+        if(filename != ""):
+            handle = open(filename, 'r')
+            buf = handle.read().decode("utf-8")
+            handle.close()
+        song_list = buf.split(self.sep_song)
+        self.song_db = []
+        for raw_song in song_list:
+            if(raw_song != ""):
+                self.song_db.append(self.file_to_song(raw_song))
+        # Update the list view
+        self.list_update()
+
+    def list_update(self):
+        self.ui.list_songs.clear()
+        for song in self.song_db:
+            self.ui.list_songs.addItem(song.title)
+
+


     def create_song_file(self, song_to_save=''):
@@ -141,15 +163,9 @@ class interface(QtGui.QMainWindow):
         for song in song_files:
             handle.write((song + self.sep_song).encode("utf-8"))
         handle.close()
-
-

-    def import_song_from_file(self):
-        filetoimport = QtGui.QFileDialog.getOpenFileName(self, "Importa canzone", "", "Canzoni di RobolCanzoniere (*.rcs)")
-        handle = open(filetoimport, 'r')
-        buf = handle.read().decode("utf-8")
-        handle.close()
-        buf = buf.split(self.sep)
+    def file_to_song(self, file_content):
+        buf = file_content.split(self.sep)
         newsong = song(buf[0], [], buf[1], buf[2], buf[3], buf[4])
         for j in range(5,1024):
             try:
@@ -159,7 +175,15 @@ class interface(QtGui.QMainWindow):
                     newsong.add_verse(buf[j])
             except:
                 break
-        self.set_active_song(newsong)
+        return newsong
+
+
+    def import_song_from_file(self):
+        filetoimport = QtGui.QFileDialog.getOpenFileName(self, "Importa canzone", "", "Canzoni di RobolCanzoniere (*.rcs)")
+        handle = open(filetoimport, 'r')
+        buf = handle.read().decode("utf-8")
+        handle.close()
+        self.set_active_song(self.file_to_song(buf))

     def set_active_song(self, newsong):
         self.ui.le_title.setText(newsong.title)
ViewGit