From cf5b41564048ff1e9868d85de18b6e6996f6a8dd Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Wed, 22 Jul 2009 10:20:42 +0200 Subject: [PATCH] Added the start of a song maintenance dialog. --- openlp/plugins/songs/forms/maintenanceform.py | 133 ++++++++++ resources/forms/songmaintenance.ui | 251 ++++++++++++++++++ resources/images/author_maintenance.png | Bin 0 -> 1810 bytes resources/images/book_maintenance.png | Bin 0 -> 1906 bytes resources/images/openlp-2.qrc | 3 + resources/images/topic_maintenance.png | Bin 0 -> 2468 bytes 6 files changed, 387 insertions(+) create mode 100644 openlp/plugins/songs/forms/maintenanceform.py create mode 100644 resources/forms/songmaintenance.ui create mode 100644 resources/images/author_maintenance.png create mode 100644 resources/images/book_maintenance.png create mode 100644 resources/images/topic_maintenance.png diff --git a/openlp/plugins/songs/forms/maintenanceform.py b/openlp/plugins/songs/forms/maintenanceform.py new file mode 100644 index 000000000..efd826d63 --- /dev/null +++ b/openlp/plugins/songs/forms/maintenanceform.py @@ -0,0 +1,133 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file '/home/raoul/Projects/openlp/songmaintenance/resources/forms/songmaintenance.ui' +# +# Created: Wed Jul 22 10:03:53 2009 +# by: PyQt4 UI code generator 4.4.4 +# +# WARNING! All changes made in this file will be lost! + +from PyQt4 import QtCore, QtGui + +class Ui_SongMaintenanceDialog(object): + def setupUi(self, SongMaintenanceDialog): + SongMaintenanceDialog.setObjectName("SongMaintenanceDialog") + SongMaintenanceDialog.resize(486, 361) + self.verticalLayout = QtGui.QVBoxLayout(SongMaintenanceDialog) + self.verticalLayout.setSpacing(8) + self.verticalLayout.setMargin(8) + self.verticalLayout.setObjectName("verticalLayout") + self.ContentWidget = QtGui.QWidget(SongMaintenanceDialog) + self.ContentWidget.setObjectName("ContentWidget") + self.horizontalLayout = QtGui.QHBoxLayout(self.ContentWidget) + self.horizontalLayout.setSpacing(8) + self.horizontalLayout.setMargin(0) + self.horizontalLayout.setObjectName("horizontalLayout") + self.TypeListWidget = QtGui.QListWidget(self.ContentWidget) + self.TypeListWidget.setMaximumSize(QtCore.QSize(150, 16777215)) + self.TypeListWidget.setProperty("showDropIndicator", QtCore.QVariant(False)) + self.TypeListWidget.setIconSize(QtCore.QSize(32, 32)) + self.TypeListWidget.setFlow(QtGui.QListView.TopToBottom) + self.TypeListWidget.setSpacing(0) + self.TypeListWidget.setViewMode(QtGui.QListView.IconMode) + self.TypeListWidget.setUniformItemSizes(True) + self.TypeListWidget.setObjectName("TypeListWidget") + #self.TypeListWidget.setColumnWidth(0, self.TypeListWidget.viewport().size().width()) + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(":/songs/author_maintenance.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + item = QtGui.QListWidgetItem(self.TypeListWidget) + item.setIcon(icon) + icon1 = QtGui.QIcon() + icon1.addPixmap(QtGui.QPixmap(":/songs/topic_maintenance.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + item = QtGui.QListWidgetItem(self.TypeListWidget) + item.setIcon(icon1) + icon2 = QtGui.QIcon() + icon2.addPixmap(QtGui.QPixmap(":/songs/book_maintenance.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + item = QtGui.QListWidgetItem(self.TypeListWidget) + item.setIcon(icon2) + self.horizontalLayout.addWidget(self.TypeListWidget) + self.TypeStackedWidget = QtGui.QStackedWidget(self.ContentWidget) + self.TypeStackedWidget.setObjectName("TypeStackedWidget") + self.AuthorsPage = QtGui.QWidget() + self.AuthorsPage.setObjectName("AuthorsPage") + self.verticalLayout_2 = QtGui.QVBoxLayout(self.AuthorsPage) + self.verticalLayout_2.setSpacing(8) + self.verticalLayout_2.setMargin(0) + self.verticalLayout_2.setObjectName("verticalLayout_2") + self.AuthorsListWidget = QtGui.QListWidget(self.AuthorsPage) + self.AuthorsListWidget.setObjectName("AuthorsListWidget") + self.verticalLayout_2.addWidget(self.AuthorsListWidget) + self.AuthorWidget = QtGui.QWidget(self.AuthorsPage) + self.AuthorWidget.setObjectName("AuthorWidget") + self.horizontalLayout_2 = QtGui.QHBoxLayout(self.AuthorWidget) + self.horizontalLayout_2.setSpacing(8) + self.horizontalLayout_2.setMargin(0) + self.horizontalLayout_2.setObjectName("horizontalLayout_2") + spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.horizontalLayout_2.addItem(spacerItem) + self.AuthorAddButton = QtGui.QPushButton(self.AuthorWidget) + icon3 = QtGui.QIcon() + icon3.addPixmap(QtGui.QPixmap(":/songs/song_author_edit.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.AuthorAddButton.setIcon(icon3) + self.AuthorAddButton.setObjectName("AuthorAddButton") + self.horizontalLayout_2.addWidget(self.AuthorAddButton) + self.AuthorEditButton = QtGui.QPushButton(self.AuthorWidget) + icon4 = QtGui.QIcon() + icon4.addPixmap(QtGui.QPixmap(":/songs/song_edit.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.AuthorEditButton.setIcon(icon4) + self.AuthorEditButton.setObjectName("AuthorEditButton") + self.horizontalLayout_2.addWidget(self.AuthorEditButton) + self.AuthorDeleteButton = QtGui.QPushButton(self.AuthorWidget) + icon5 = QtGui.QIcon() + icon5.addPixmap(QtGui.QPixmap(":/songs/song_delete.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.AuthorDeleteButton.setIcon(icon5) + self.AuthorDeleteButton.setObjectName("AuthorDeleteButton") + self.horizontalLayout_2.addWidget(self.AuthorDeleteButton) + self.verticalLayout_2.addWidget(self.AuthorWidget) + self.TypeStackedWidget.addWidget(self.AuthorsPage) + self.TopicsPage = QtGui.QWidget() + self.TopicsPage.setObjectName("TopicsPage") + self.TypeStackedWidget.addWidget(self.TopicsPage) + self.BooksPage = QtGui.QWidget() + self.BooksPage.setObjectName("BooksPage") + self.listWidget = QtGui.QListWidget(self.BooksPage) + self.listWidget.setGeometry(QtCore.QRect(30, 20, 256, 192)) + self.listWidget.setObjectName("listWidget") + self.TypeStackedWidget.addWidget(self.BooksPage) + self.horizontalLayout.addWidget(self.TypeStackedWidget) + self.verticalLayout.addWidget(self.ContentWidget) + self.MaintenanceButtonBox = QtGui.QDialogButtonBox(SongMaintenanceDialog) + self.MaintenanceButtonBox.setOrientation(QtCore.Qt.Horizontal) + self.MaintenanceButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Close) + self.MaintenanceButtonBox.setObjectName("MaintenanceButtonBox") + self.verticalLayout.addWidget(self.MaintenanceButtonBox) + + self.retranslateUi(SongMaintenanceDialog) + self.TypeStackedWidget.setCurrentIndex(0) + QtCore.QObject.connect(self.MaintenanceButtonBox, QtCore.SIGNAL("rejected()"), SongMaintenanceDialog.accept) + QtCore.QObject.connect(self.TypeListWidget, QtCore.SIGNAL("currentRowChanged(int)"), self.TypeStackedWidget.setCurrentIndex) + QtCore.QMetaObject.connectSlotsByName(SongMaintenanceDialog) + + def retranslateUi(self, SongMaintenanceDialog): + SongMaintenanceDialog.setWindowTitle(QtGui.QApplication.translate("SongMaintenanceDialog", "Song Maintenance", None, QtGui.QApplication.UnicodeUTF8)) + __sortingEnabled = self.TypeListWidget.isSortingEnabled() + self.TypeListWidget.setSortingEnabled(False) + self.TypeListWidget.item(0).setText(QtGui.QApplication.translate("SongMaintenanceDialog", "Authors", None, QtGui.QApplication.UnicodeUTF8)) + self.TypeListWidget.item(1).setText(QtGui.QApplication.translate("SongMaintenanceDialog", "Topics", None, QtGui.QApplication.UnicodeUTF8)) + self.TypeListWidget.item(2).setText(QtGui.QApplication.translate("SongMaintenanceDialog", "Books/Hymnals", None, QtGui.QApplication.UnicodeUTF8)) + self.TypeListWidget.setSortingEnabled(__sortingEnabled) + self.AuthorAddButton.setText(QtGui.QApplication.translate("SongMaintenanceDialog", "Add", None, QtGui.QApplication.UnicodeUTF8)) + self.AuthorEditButton.setText(QtGui.QApplication.translate("SongMaintenanceDialog", "Edit", None, QtGui.QApplication.UnicodeUTF8)) + self.AuthorDeleteButton.setText(QtGui.QApplication.translate("SongMaintenanceDialog", "Delete", None, QtGui.QApplication.UnicodeUTF8)) + +from openlp.core.resources import * + +if __name__ == "__main__": + import sys + app = QtGui.QApplication(sys.argv) + SongMaintenanceDialog = QtGui.QDialog() + ui = Ui_SongMaintenanceDialog() + ui.setupUi(SongMaintenanceDialog) + SongMaintenanceDialog.show() + sys.exit(app.exec_()) + diff --git a/resources/forms/songmaintenance.ui b/resources/forms/songmaintenance.ui new file mode 100644 index 000000000..444e444ec --- /dev/null +++ b/resources/forms/songmaintenance.ui @@ -0,0 +1,251 @@ + + + SongMaintenanceDialog + + + + 0 + 0 + 486 + 361 + + + + Song Maintenance + + + + 8 + + + 8 + + + + + + 8 + + + 0 + + + + + + 150 + 16777215 + + + + false + + + + 32 + 32 + + + + QListView::TopToBottom + + + 0 + + + QListView::IconMode + + + true + + + + Authors + + + AlignHCenter|AlignVCenter|AlignCenter + + + + :/songs/author_maintenance.png:/songs/author_maintenance.png + + + ItemIsSelectable|ItemIsEnabled + + + + + Topics + + + AlignHCenter|AlignVCenter|AlignCenter + + + + :/songs/topic_maintenance.png:/songs/topic_maintenance.png + + + ItemIsSelectable|ItemIsEnabled + + + + + Books/Hymnals + + + AlignHCenter|AlignVCenter|AlignCenter + + + + :/songs/book_maintenance.png:/songs/book_maintenance.png + + + ItemIsSelectable|ItemIsEnabled + + + + + + + + 0 + + + + + 8 + + + 0 + + + + + + + + + 8 + + + 0 + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Add + + + + :/songs/song_author_edit.png:/songs/song_author_edit.png + + + + + + + Edit + + + + :/songs/song_edit.png:/songs/song_edit.png + + + + + + + Delete + + + + :/songs/song_delete.png:/songs/song_delete.png + + + + + + + + + + + + + + 30 + 20 + 256 + 192 + + + + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Close + + + + + + + + + + + MaintenanceButtonBox + accepted() + SongMaintenanceDialog + accept() + + + 242 + 340 + + + 242 + 180 + + + + + TypeListWidget + currentRowChanged(int) + TypeStackedWidget + setCurrentIndex(int) + + + 82 + 163 + + + 321 + 163 + + + + + diff --git a/resources/images/author_maintenance.png b/resources/images/author_maintenance.png new file mode 100644 index 0000000000000000000000000000000000000000..9a1f551591b49dfc5a26094d7a5ce462856f93c2 GIT binary patch literal 1810 zcmV+t2krQYP)-zF_X((qItbe2cR{zavT3;rz9e7v?YiPXye% zqrFGxr4#MU?#qf0@(u$C5uA&s-Z+=~EtY}e3xpHv1+LRRsZ!Kw92>ghpdJLz?A_kE z9m}9#1zvgX$7C)w{~bce{zxPZ`q1l zx9vptjr}GqlTs<9IeB;=9X^8lpXo(!riYw z|FZ{19{ZJp8kC_s5{=>q-+c@N16#oYF%YWa&U;3XN+xmQ#L0#=bs(KgjGCr73QD1A z65Mg%SQelHf{T%Iq4Yfff4n|?dq$cmb^c$Ls%8? zY973jg)j@aIx#Mvc>0&gRSUTA>Y?5(0~_N&4Ov@+0HlP+S8iC}D7n1>OK7^|iPL6b z@uaj$u7I2`!YO5O^!Q6ea?V#Rz=*^q!jW(ZQos+$YrC)k$$eh~x;7r|>AQr_kVqx2 z6f;RkuM6coCO;WRa%Ktv$)l?l&^NT76Jh@p+=g_jAYNf^LAv4Zb{U$k{k&^n1fQj& zv#Z&Jiqz~3=F%CgYwLpISO^ldtZ4`v>!U|Z%Y5ARaDWqeZ3qd0ur05(2}M(m!)0u2 ztkE!xq4oC1?Gc^qq`~L|4G|53*Moo{mn%V+4*GBY+LJ%}#pAaYjrfG*&YMGb3@@xW zgwbvLBpHjnW+ z^K9y!L$@&_dV~^66h(nl1E5}qT(OV<4aWSrNsWI54L~71i^OySjlF|_VnnGC`|JFv z!*Plg*mlppoQ%Y+iF6eoPb6{4jRo7ljT<-3Q$73;QFS5&hliA22v9u)q6Z-TnXxf5 zJp)TJR4oTnSI)yjat^8*bs%*2iUJbj?0%X!xR)2(eTlkfB3n=yY9D1xo=quCMVO>s1pzpV1TPT$Z;6kD_|0%TM zGzgI(OobF2j#=@2ubLK`J33)(xD7@igv5vM$a+njPc8D_To>^6sSEpCTk8JYP!|pu zy6P5Ypp*dqn?Nq}_sO$>3*Q3o#|hI@(K)lyCu?Cc@GwG{b@XKADjeXwiSeET~KvP+5 z@Rmo`R>u+7J2#ikXWTfm<_D8!55E>>R2k~+X&GKuAHF3V(tBJnb(9cINH8G;@jV9M zYLpV!hTC28w#}zYW%K+eSLaS;7E5D_sU;5_*!}sRjE)?AkJ#MQxp1OV%82doh>%hx z0QCw}5Qj2aR2VC`TJplOtC>_#96UILFZn$D7t@xWtlnb?Q~&?~07*qoM6N<$f@PCh A4gdfE literal 0 HcmV?d00001 diff --git a/resources/images/book_maintenance.png b/resources/images/book_maintenance.png new file mode 100644 index 0000000000000000000000000000000000000000..062249fe9e7466800ec33979bfa250652cae1756 GIT binary patch literal 1906 zcmV-&2aWiNP)XQ`Z??`{*uNci9fu*kB+r<`S2dlqQAJkdRK& zmg$YWWYXt8^k4KTZ)yA5Jhcx^A9@{Tn$T&dBn)+NfsimT0b_i@vMn7Q9Z5%*bIW2| z$6!g8JCko_&E98pw7+%Mx4!R4!gXDInGiyNp%8-b5q=^#tsr;y$dO~CV`B#|UcC65 z4{W!99w7%>Bi6A2h) zglh@Zu6_ik)dU#nSI$AZbses0%4=Iq~qA2kBd}ubC zXfzs713{JwAU4BPi%5R+6ufBVR}kL254|EI+`zYeI042^1cFQ&CIMLvlXA9NEtJC% zDW^l&?gq3gSCIMcc^cwXkeFmA_`O~cBZh&O{~rPtjZ$M$v`I(>ssjTX$qA20?ZF(@ z{`^NINg(~b^ROY{fN&w`Y#+qO}3T*=J#(2<~U`QLc-{_kP)$%lV(0jZbI z0^#tM`x363OaQ5!2)M)pD&SB7NkIC5D&&O%yIo(dU7pbI-a+mDeKb`Sv7^WE%v*0G zdgLfvo?~wq(f6W)Z}cVLGPtbOYPG887q1f@D!#4KdPJUDm3SNrzxyrnfBP#;!$9iA zmykRE0|a)DAh1z}Q=LBaqdSU*VN|F|#Rs2cCp@7+UnZVm&J zhmf3}MusJ+KYWNipWK{6K~n%Yy%g|5qYxFZ75z+15~zp59kO@t9TN1eEysa&`!g*4 z;eC$iTL=yhV`}>NBmnl-(yvgpdx3;Qm&C-qQ(j&^g ziA?*Q(CVi^ozPeYuN9>Nm0)Q5CnuC-5=~9(YC#XJdL7REgXj^yIlE2RJqrpnqIWG7 z(EI@!O~7u$+k1(E&+I~@RO(9ZkxReub?klZJK{tpeQu``n8Z320KEXt0SOg=-OGIL z##MON2((XcNmAbDk>Nq4*ox8JyU`*!^}jP{EiN5nY31455paox`eVr)XLA@;ScZEL zn2;ZLkLB>l2PiOkKy?e`cV6{y7AbrXePoLUzJ-1RP?XFCm)* zd~Fi440H6vxMO!ESJ)|mOa_s$G337bHH6Y>SX6NB+BJ5-C+rSu^Zv9@CICACpxKLn zl!g+mb2ZriajxKR14$r8AJ{D$qC;n*#;w zAkY;mQD?-#U?)fwTqbc^TMtbiI)wc{{1F@yEwJD7EJKU3i*1Hg$aP~=0%HJf^&_AY zH4;E56p{*X4=qRq+$V>PeCrIxUVTOO`tA4LLv3lXJ88!nASQ%3wG#n@sIUZb5_&!; z1V{jYLP7`m*2^6`iaZVGkHw%b_DL=X`bV@&%(@=;Izd72Xb@%A-RlC00^tA{fBg+a z>H67s--XRXmalxgrT;}VDu18|mJTEh4l$Shkx+azqB!KupzR1)#2P1{M?k7jz^_)B}Fh6lP&1btW_p69Y^k6D&mVL5anEG2p;^whcjq2%zgx1 z;tnAR(1a2p${H9QMU_O7=U&4~s|k$>6`E1R<1h(}V|VD_K|Fu_I0m?Ajl`RSdwa? zfLgJL{LBpU3k!C+RH_$OSM`;J1x>HlHPtZGJG%Z(ze(r~qr%Y8kapq1g&hAK$wXl) z5C`C6cNCVF@!&Duep{iQd1(@0Cn*4nV%0pwdpzBCIyt$ALc4 skARQMej-b#gih4k2~5xQU-s|)7xQJ@X3;fT;s5{u07*qoM6N<$f=qOOfB*mh literal 0 HcmV?d00001 diff --git a/resources/images/openlp-2.qrc b/resources/images/openlp-2.qrc index 14f05e56e..de5da6a9f 100644 --- a/resources/images/openlp-2.qrc +++ b/resources/images/openlp-2.qrc @@ -1,5 +1,8 @@ + book_maintenance.png + author_maintenance.png + topic_maintenance.png song_delete.png song_edit.png song_export.png diff --git a/resources/images/topic_maintenance.png b/resources/images/topic_maintenance.png new file mode 100644 index 0000000000000000000000000000000000000000..e3b8555dd99ef5de2097c4fa5134630d260c9b06 GIT binary patch literal 2468 zcmV;V30wAwP)y{D4^00|aJL_t(|+NG6wY+Th9#=m>-d-G;< z#>Vk(Cvm)BXLlfBDUdd8Aw}$gCJ7&nihWj4E zeb4?4`H=!J01flz;&9Iqr23-ph=i+)%WLy%B1M5ppWmD%U1i5cl70OrV{OrijzMVZ z)?A2XHFX#rNdk<)nH0Eky@fyC`6jYqIFH|~{}m3LJBd^x4JV{GjZCiu!{2 zx-k(~Ou~U87sM1eBh<@$`(Y5l&SMp4jg5})pDc*SIcp2 z*fLGbBFZlh76uB;t55e1q*nj3`m^U_JLJBKw@}gG$6r@Ji5s1paI*6RJPc$LAXJ75 zu<_C-P`-01LwcCH8xG#w@T1ueS(VI+CC3#PTo22^8Hh3c!vGL4_2jN}wJ9m{tNp=p z8F}#F2i-mFUu*}$v++{Po%r>h>+xk}EO!DIHZ)?u8O2i{ZAEOKA9b_pONy`K8v=EF zelneu#FcPKk)D}3kj!ODuLu&Jpmzi<(tB>Zt~4Sdkc`_!#fiDQte(8d_ES-$Qvwi# zj?YfzNWhTTH}(N)t7};(Uy(oLzlxQ!m2r2HOftAl4j2=R3kJp+yb7k*Kt>#yHG_r} zapHhciA!aXb4h&R@XkKh$M$}Bl5YRrT4-_@;J`iO_oMkwf2N57p#0$rRyuwX%r&G- zu23LwFMi3OePrr1q{TdWhR8FZ3z2dy>1W02;>7LUJBffNp8h*p5_@tRAO#HBBZw{} zya(_H?^{-p_5yV!q>^xzf)E^BOL!)DwgCbWK@q@oH6V0l9-^bHb9C_XHD^iCttWz}d6`uQ7ogeNC4`xdzKGbh5|PL9}}7B4Iz**!8sVTrlwb(NI^;k9}I-JAA<2r zdJ}2YSMnc*`R{|xN!L=lIy*xGjALWdBdEQ%jJcCUEa5vG0Ko`&!!i=WyMdV_$V~6O zvJFVdAh|ZF3=lv{NZ}@x>-395!AIx8y1>BWWe;Gjb8~J3k`z`v(M5OiH{-&<53IwO+>5a%>fC8 zX*ja*BAY+E6m{n=qU-4sEa}-iOP~)hG;y0hi@Yz@toYY@4+gfyO4*eIiAR=K23wdXal; z{t|OOxlEac$qjA*1h{ZAw?ipHib(G`Or|lI@(003I&o}dSE#x7+2ybrO&lnF55BG; z%&SNY=oKLupk5j z7XV{`lmy2Hpg4ts217#O^iK8rfr~%hTYqhe?LOOq(<}BN->N|K)@?H<00M^FlW3p& z8b%u$X~-Eu1lH!NOXLlW*MwG?c0l-Lfz zW4HoV&_}l}U4xybVMA6D+?=Fj{{2Y}?EBlZio<30N3Oon@a0&9f)&y*P@df0c=9hev*11br=I7;c@!XM2wvinRg@#1)L4n2p^Vj-Y#29KT)nI2t3D=-(ebhCblj z5yeXHCCK>V9T(D- zcxC&m-_3wWVPOG?Xxf0`8RCpn+D@}%GD)^=!!QhTrTo7Er4*{G=Rot_4U9!&-cb-V zO5v+Oz&|Mj7p7sV;^JZ!4u{dz)rH~VVFKVlQpbj3HB`vvS|eZ0pqbp|B!6n z`qKJvIB$z#n&|I8qqG68!PwZ?y=`r6n}je->E#b7Ey~unF(9U7PRW;D4I%tG>hZd| z+Pj;UEqfr6Uyw1dfB*hRT3T8*nWj0*aU6RpiSw%`S4+-x3z!z4YUtOp&ab+;PfuIg z)!FraV?#rt#BWvU&q42@Lx(<{9B6?I2D?NY%?PN(TTo*alb-Q_5Tb0000