From cb86232866f29c9f65732c3beb9371cfc4aaeb75 Mon Sep 17 00:00:00 2001 From: Leonardo Robol Date: Sun, 26 Apr 2009 19:00:14 +0200 Subject: [PATCH] Sistema l'interfaccia, riorganizzando i pulsanti e aggiustato un bug quando l'utente decide di salvare ma poi clicca annulla --- interface.py | 52 ++++++++++++++++++++++++++++++++--------- interface.pyc | Bin 5756 -> 7676 bytes interface.ui | 66 +++++++++++++++++++++++++++++++++++++++++++++-------- songbook-editor.py | 14 +++++++++++- 4 files changed, 110 insertions(+), 22 deletions(-) diff --git a/interface.py b/interface.py index 1d249dc..15ddc98 100644 --- a/interface.py +++ b/interface.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'interface.ui' # -# Created: Sun Apr 19 19:39:41 2009 +# Created: Sun Apr 26 18:50:24 2009 # by: PyQt4 UI code generator 4.4.4 # # WARNING! All changes made in this file will be lost! @@ -28,7 +28,7 @@ class Ui_MainWindow(object): sizePolicy.setHeightForWidth(self.list_songs.sizePolicy().hasHeightForWidth()) self.list_songs.setSizePolicy(sizePolicy) self.list_songs.setObjectName("list_songs") - self.gridLayout.addWidget(self.list_songs, 0, 0, 1, 1) + self.gridLayout.addWidget(self.list_songs, 1, 0, 1, 1) self.horizontalLayout = QtGui.QHBoxLayout() self.horizontalLayout.setObjectName("horizontalLayout") self.btn_new_song = QtGui.QPushButton(self.gridLayoutWidget) @@ -37,7 +37,7 @@ class Ui_MainWindow(object): self.btn_delete_song = QtGui.QPushButton(self.gridLayoutWidget) self.btn_delete_song.setObjectName("btn_delete_song") self.horizontalLayout.addWidget(self.btn_delete_song) - self.gridLayout.addLayout(self.horizontalLayout, 1, 0, 2, 1) + self.gridLayout.addLayout(self.horizontalLayout, 2, 0, 2, 1) self.verticalLayout = QtGui.QVBoxLayout() self.verticalLayout.setObjectName("verticalLayout") self.gridLayout_2 = QtGui.QGridLayout() @@ -77,7 +77,7 @@ class Ui_MainWindow(object): self.te_body.setAcceptRichText(False) self.te_body.setObjectName("te_body") self.verticalLayout.addWidget(self.te_body) - self.gridLayout.addLayout(self.verticalLayout, 0, 1, 1, 1) + self.gridLayout.addLayout(self.verticalLayout, 1, 1, 1, 1) self.horizontalLayout_2 = QtGui.QHBoxLayout() self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.btn_savesong = QtGui.QPushButton(self.gridLayoutWidget) @@ -86,13 +86,25 @@ class Ui_MainWindow(object): self.btn_create_latex_song = QtGui.QPushButton(self.gridLayoutWidget) self.btn_create_latex_song.setObjectName("btn_create_latex_song") self.horizontalLayout_2.addWidget(self.btn_create_latex_song) - self.gridLayout.addLayout(self.horizontalLayout_2, 1, 1, 2, 1) + self.gridLayout.addLayout(self.horizontalLayout_2, 2, 1, 2, 1) + self.label_6 = QtGui.QLabel(self.gridLayoutWidget) + self.label_6.setTextFormat(QtCore.Qt.RichText) + self.label_6.setAlignment(QtCore.Qt.AlignCenter) + self.label_6.setObjectName("label_6") + self.gridLayout.addWidget(self.label_6, 0, 0, 1, 1) + self.label_7 = QtGui.QLabel(self.gridLayoutWidget) + self.label_7.setObjectName("label_7") + self.gridLayout.addWidget(self.label_7, 0, 1, 1, 1) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtGui.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 23)) self.menubar.setObjectName("menubar") self.menuFile = QtGui.QMenu(self.menubar) self.menuFile.setObjectName("menuFile") + self.menuCanzoniere = QtGui.QMenu(self.menubar) + self.menuCanzoniere.setObjectName("menuCanzoniere") + self.menuCanzone = QtGui.QMenu(self.menubar) + self.menuCanzone.setObjectName("menuCanzone") MainWindow.setMenuBar(self.menubar) self.statusbar = QtGui.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") @@ -109,13 +121,18 @@ class Ui_MainWindow(object): self.actionSalva_canzone.setObjectName("actionSalva_canzone") self.actionImporta_canzone = QtGui.QAction(MainWindow) self.actionImporta_canzone.setObjectName("actionImporta_canzone") + self.actionEsporta_in_LaTeX = QtGui.QAction(MainWindow) + self.actionEsporta_in_LaTeX.setObjectName("actionEsporta_in_LaTeX") self.menuFile.addAction(self.actionApri) self.menuFile.addAction(self.actionSalva) - self.menuFile.addAction(self.actionSalva_canzone) - self.menuFile.addAction(self.actionImporta_canzone) self.menuFile.addSeparator() self.menuFile.addAction(self.actionEsci_2) + self.menuCanzoniere.addAction(self.actionEsporta_in_LaTeX) + self.menuCanzone.addAction(self.actionSalva_canzone) + self.menuCanzone.addAction(self.actionImporta_canzone) self.menubar.addAction(self.menuFile.menuAction()) + self.menubar.addAction(self.menuCanzoniere.menuAction()) + self.menubar.addAction(self.menuCanzone.menuAction()) self.retranslateUi(MainWindow) QtCore.QObject.connect(self.actionEsci_2, QtCore.SIGNAL("activated()"), MainWindow.close) @@ -123,20 +140,33 @@ class Ui_MainWindow(object): def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "SongBook Editor 0.1", None, QtGui.QApplication.UnicodeUTF8)) - self.btn_new_song.setText(QtGui.QApplication.translate("MainWindow", "New Song", None, QtGui.QApplication.UnicodeUTF8)) - self.btn_delete_song.setText(QtGui.QApplication.translate("MainWindow", "Delete Song", None, QtGui.QApplication.UnicodeUTF8)) + self.btn_new_song.setText(QtGui.QApplication.translate("MainWindow", "Nuova Canzone", None, QtGui.QApplication.UnicodeUTF8)) + self.btn_delete_song.setText(QtGui.QApplication.translate("MainWindow", "Elimina Canzone", None, QtGui.QApplication.UnicodeUTF8)) self.label.setText(QtGui.QApplication.translate("MainWindow", "Titolo", None, QtGui.QApplication.UnicodeUTF8)) self.label_2.setText(QtGui.QApplication.translate("MainWindow", "Autore", None, QtGui.QApplication.UnicodeUTF8)) self.label_3.setText(QtGui.QApplication.translate("MainWindow", "Copyright", None, QtGui.QApplication.UnicodeUTF8)) self.label_4.setText(QtGui.QApplication.translate("MainWindow", "Anno", None, QtGui.QApplication.UnicodeUTF8)) self.label_5.setText(QtGui.QApplication.translate("MainWindow", "Tonalità", None, QtGui.QApplication.UnicodeUTF8)) - self.btn_savesong.setText(QtGui.QApplication.translate("MainWindow", "Salva", None, QtGui.QApplication.UnicodeUTF8)) - self.btn_create_latex_song.setText(QtGui.QApplication.translate("MainWindow", "Esporta in LaTeX", None, QtGui.QApplication.UnicodeUTF8)) + self.btn_savesong.setText(QtGui.QApplication.translate("MainWindow", "Aggiungi al canzoniere", None, QtGui.QApplication.UnicodeUTF8)) + self.btn_create_latex_song.setText(QtGui.QApplication.translate("MainWindow", "Esporta canzone in LaTeX", None, QtGui.QApplication.UnicodeUTF8)) + self.label_6.setText(QtGui.QApplication.translate("MainWindow", "\n" +"\n" +"

Lista Canzoni

", None, QtGui.QApplication.UnicodeUTF8)) + self.label_7.setText(QtGui.QApplication.translate("MainWindow", "\n" +"\n" +"

Canzone selezionata

", None, QtGui.QApplication.UnicodeUTF8)) self.menuFile.setTitle(QtGui.QApplication.translate("MainWindow", "File", None, QtGui.QApplication.UnicodeUTF8)) + self.menuCanzoniere.setTitle(QtGui.QApplication.translate("MainWindow", "Canzoniere", None, QtGui.QApplication.UnicodeUTF8)) + self.menuCanzone.setTitle(QtGui.QApplication.translate("MainWindow", "Canzone", None, QtGui.QApplication.UnicodeUTF8)) self.actionApri.setText(QtGui.QApplication.translate("MainWindow", "Apri", None, QtGui.QApplication.UnicodeUTF8)) self.actionEsci.setText(QtGui.QApplication.translate("MainWindow", "Esci", None, QtGui.QApplication.UnicodeUTF8)) self.actionSalva.setText(QtGui.QApplication.translate("MainWindow", "Salva", None, QtGui.QApplication.UnicodeUTF8)) self.actionEsci_2.setText(QtGui.QApplication.translate("MainWindow", "Esci", None, QtGui.QApplication.UnicodeUTF8)) self.actionSalva_canzone.setText(QtGui.QApplication.translate("MainWindow", "Salva canzone", None, QtGui.QApplication.UnicodeUTF8)) self.actionImporta_canzone.setText(QtGui.QApplication.translate("MainWindow", "Importa canzone", None, QtGui.QApplication.UnicodeUTF8)) + self.actionEsporta_in_LaTeX.setText(QtGui.QApplication.translate("MainWindow", "Esporta in LaTeX", None, QtGui.QApplication.UnicodeUTF8)) diff --git a/interface.pyc b/interface.pyc index 5aabd908be461ee80ddc487c3661981578c69560..d72621bf23344da390d627bdab54b4464ccf2ca8 100644 GIT binary patch literal 7676 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 G-+us|I$=cs delta 1237 zcmZ`%O-vI}5T3U!ZLMvx{WBC=C`IUkfES}!egxX0@+Y($Of(^z?m}MDbV+vs6Nx?a zY>2+2G0~WKF&?y@Og!mP58OC-(RlTui6;)udo86EO#5cveDi%Xvom`*b~xnR|K)Z6 zoc#XC`AOPwz4>yNuy3{i8<(CCPxU}rv)SFCdDyVj&T@{&We+-_$=p`jfb0^Wmthxx z+Mz;#SQ5}HfG9eMu8oS=C{PDjPM|K(FdP0Q(0ZX#({MF10JQUs99QeQdYYtglR(SJ z>JuzpdF+@aDvvi+o)EDKk+;90n5?5my<*M#omY75Cl{+zHwV_#A)Qel$2usOv z5@qXhPe&J`*=}xP-1Kl0=cbpvlwZl0@T%ac8S^4jeF3SIXA99N+w=Lz0ekLy+9ne} ziL*QYM1O$PeqMZrB`@hCc?s40IPj$Km|vypTmL&kd~73_Abz$N9JB|3I@yQdAd`cN zJydfNEE)2%Kfy55@!1m!ImCPW7(Ev+yD-y|z7xwC#SQW5X}zFZy6`PtYL!|>!7x2| zo!+vHk{(;tP0KL7$H3y2N%N{@=SZ<=m}j`mD5?c&eS9Y7l~W7bswpF$F*l8prN(G6 zwxF)+k=sHxOR=cXZz)0Q(#~FVKAel7*5b{Yx`izj^z8p9jx2>wDx2lT x#$7xoN8jb1M;O0JFyriVB+PzCMmlonW;uSW5x3@@jSz#~k0wdW8h=FF{{pq9`WOHJ diff --git a/interface.ui b/interface.ui index 3fa3da4..6448a54 100644 --- a/interface.ui +++ b/interface.ui @@ -27,7 +27,7 @@ QLayout::SetMaximumSize - + @@ -37,25 +37,25 @@ - + - New Song + Nuova Canzone - Delete Song + Elimina Canzone - + @@ -120,24 +120,52 @@ - + - Salva + Aggiungi al canzoniere - Esporta in LaTeX + Esporta canzone in LaTeX + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Droid Sans'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Lista Canzoni</span></p></body></html> + + + Qt::RichText + + + Qt::AlignCenter + + + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Droid Sans'; font-size:9pt; font-weight:400; font-style:normal;"> +<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Canzone selezionata</span></p></body></html> + + + @@ -156,12 +184,25 @@ - - + + + Canzoniere + + + + + + Canzone + + + + + + @@ -194,6 +235,11 @@ Importa canzone + + + Esporta in LaTeX + + diff --git a/songbook-editor.py b/songbook-editor.py index 9ab80e8..ffbc86e 100755 --- a/songbook-editor.py +++ b/songbook-editor.py @@ -31,10 +31,13 @@ class interface(QtGui.QMainWindow): self.connect(self.ui.btn_new_song, QtCore.SIGNAL("clicked()"), self.new_song) self.connect(self.ui.btn_delete_song, QtCore.SIGNAL("clicked()"), self.delete_item_from_list) - # File menu + # Menu Canzone self.connect(self.ui.actionSalva_canzone, QtCore.SIGNAL("activated()"), self.save_song_to_file) self.connect(self.ui.actionImporta_canzone, QtCore.SIGNAL("activated()"), self.import_song_from_file) self.connect(self.ui.actionSalva, QtCore.SIGNAL("activated()"), self.save_songs_to_file) + + # Menu Canzoniere + self.connect(self.ui.actionEsporta_in_LaTeX, QtCore.SIGNAL("activated()"), self.export_songbook) # Functions to manage events def new_song(self): @@ -168,11 +171,20 @@ class interface(QtGui.QMainWindow): song = self.get_active_song() filetowrite = lm.create_song(song) filename = QtGui.QFileDialog.getSaveFileName(self, "Salva file latex", "/home/leonardo", "LaTeX Source File (*.tex)") + if(filename == ''): + # We do not have to do nothing, the user clicked Cancel + return 0 handle = open(filename, 'w') # Just remember that filetowrite is an "unicode" object, treat it # as it just deserve handle.write(filetowrite.encode("utf-8")) handle.close() + + def export_songbook(self): + # Chiedo al latex manager di farlo.. :) + return 0 + + -- 2.1.4