Fixed the displayResults method of SongMediaItem to display 1 song + all authors, rather than an instance of a song for each author of that song.

Fixed up the topics management dialog a bit.
Corrected the spacing on the eventreceiver.py file.
Corrected the calling of the receiver to use the static methods without creating an instance of the Receiver class each time.

bzr-revno: 403
This commit is contained in:
Raoul Snyman 2009-03-10 16:46:25 +00:00
parent 86bde695ea
commit 051b314da8
7 changed files with 362 additions and 349 deletions

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE UserProject SYSTEM "UserProject-4.0.dtd"> <!DOCTYPE UserProject SYSTEM "UserProject-4.0.dtd">
<!-- eric4 user project file for project openlp.org 2.0 --> <!-- eric4 user project file for project openlp.org 2.0 -->
<!-- Saved: 2009-03-07, 23:44:51 --> <!-- Saved: 2009-03-10, 19:41:39 -->
<!-- Copyright (C) 2009 Raoul Snyman, raoulsnyman@openlp.org --> <!-- Copyright (C) 2009 Raoul Snyman, raoulsnyman@openlp.org -->
<UserProject version="4.0"> <UserProject version="4.0">
</UserProject> </UserProject>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Tasks SYSTEM "Tasks-4.2.dtd"> <!DOCTYPE Tasks SYSTEM "Tasks-4.2.dtd">
<!-- eric4 tasks file for project openlp.org 2.0 --> <!-- eric4 tasks file for project openlp.org 2.0 -->
<!-- Saved: 2009-03-07, 23:45:01 --> <!-- Saved: 2009-03-10, 19:41:39 -->
<Tasks version="4.2"> <Tasks version="4.2">
<Task priority="1" completed="False" bugfix="False"> <Task priority="1" completed="False" bugfix="False">
<Summary>TODO: what is the tags for bridge, pre-chorus?</Summary> <Summary>TODO: what is the tags for bridge, pre-chorus?</Summary>

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Project SYSTEM "Project-4.6.dtd"> <!DOCTYPE Project SYSTEM "Project-4.6.dtd">
<!-- eric4 project file for project openlp.org 2.0 --> <!-- eric4 project file for project openlp.org 2.0 -->
<!-- Saved: 2009-03-08, 15:39:49 --> <!-- Saved: 2009-03-09, 22:34:51 -->
<!-- Copyright (C) 2009 Raoul Snyman, raoulsnyman@openlp.org --> <!-- Copyright (C) 2009 Raoul Snyman, raoulsnyman@openlp.org -->
<Project version="4.6"> <Project version="4.6">
<Language>en</Language> <Language>en</Language>
@ -151,6 +151,12 @@
<Source>openlp/plugins/custom/lib/models.py</Source> <Source>openlp/plugins/custom/lib/models.py</Source>
<Source>openlp/plugins/custom/lib/manager.py</Source> <Source>openlp/plugins/custom/lib/manager.py</Source>
<Source>openlp/plugins/images/lib/mediaitem.py</Source> <Source>openlp/plugins/images/lib/mediaitem.py</Source>
<Source>openlp/plugins/songs/lib/mediaitem.py</Source>
<Source>resources/forms/Ui_editsongdialog.py</Source>
<Source>resources/forms/Ui_editversedialog.py</Source>
<Source>resources/forms/Ui_settings.py</Source>
<Source>resources/forms/Ui_authorsdialog.py</Source>
<Source>resources/forms/Ui_songbookdialog.py</Source>
</Sources> </Sources>
<Forms> <Forms>
<Form>resources/forms/openlpexportform.ui</Form> <Form>resources/forms/openlpexportform.ui</Form>
@ -187,7 +193,7 @@
</Others> </Others>
<MainScript>openlp.pyw</MainScript> <MainScript>openlp.pyw</MainScript>
<Vcs> <Vcs>
<VcsType>None</VcsType> <VcsType>Subversion</VcsType>
<VcsOptions> <VcsOptions>
<dict> <dict>
<key> <key>

View File

@ -38,8 +38,8 @@ class OpenLP(QtGui.QApplication):
def run(self): def run(self):
#provide a listener for widgets to reqest a screen update. #provide a listener for widgets to reqest a screen update.
QtCore.QObject.connect(Receiver().get_receiver(), QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL('openlpprocessevents'),self.processEvents) QtCore.SIGNAL('openlpprocessevents'), self.processEvents)
self.setApplicationName('openlp.org') self.setApplicationName('openlp.org')
self.setApplicationVersion('1.9.0') self.setApplicationVersion('1.9.0')

View File

@ -33,6 +33,7 @@ class EventReceiver(QObject):
def received(self, msg=None): def received(self, msg=None):
print msg print msg
class Receiver(): class Receiver():
""" """
Class to allow events to be passed from different parts of the system. Class to allow events to be passed from different parts of the system.
@ -45,14 +46,16 @@ class Receiver():
Receive Message Receive Message
QtCore.QObject.connect(Receiver().get_receiver(),QtCore.SIGNAL("openlprepaint"),<<ACTION>>) QtCore.QObject.connect(Receiver().get_receiver(),QtCore.SIGNAL("openlprepaint"),<<ACTION>>)
""" """
eventreceiver=EventReceiver() eventreceiver = EventReceiver()
@staticmethod @staticmethod
def send_message(event, msg=None): def send_message(event, msg=None):
Receiver.eventreceiver.send_message(event, msg) Receiver.eventreceiver.send_message(event, msg)
@staticmethod @staticmethod
def receive(): def receive():
Receiver.eventreceiver.receive() Receiver.eventreceiver.receive()
@staticmethod @staticmethod
def get_receiver(): def get_receiver():
return Receiver.eventreceiver return Receiver.eventreceiver

View File

@ -111,17 +111,17 @@ class SongMediaItem(MediaManagerItem):
self.SongListView.horizontalHeader().setVisible(False) self.SongListView.horizontalHeader().setVisible(False)
self.SongListView.verticalHeader().setVisible(False) self.SongListView.verticalHeader().setVisible(False)
self.SongListView.setGeometry(QtCore.QRect(10, 100, 256, 591)) self.SongListView.setGeometry(QtCore.QRect(10, 100, 256, 591))
self.SongListView.setObjectName('listView') self.SongListView.setObjectName('SongListView')
self.PageLayout.addWidget(self.SongListView) self.PageLayout.addWidget(self.SongListView)
# Signals and slots # Signals and slots
QtCore.QObject.connect(self.SearchTextButton, QtCore.QObject.connect(self.SearchTextButton,
QtCore.SIGNAL("pressed()"), self.onSearchTextButtonClick) QtCore.SIGNAL('pressed()'), self.onSearchTextButtonClick)
QtCore.QObject.connect(self.ClearTextButton, QtCore.QObject.connect(self.ClearTextButton,
QtCore.SIGNAL("pressed()"), self.onClearTextButtonClick) QtCore.SIGNAL('pressed()'), self.onClearTextButtonClick)
QtCore.QObject.connect(self.SearchTextEdit, QtCore.QObject.connect(self.SearchTextEdit,
QtCore.SIGNAL("textChanged(const QString&)"), self.onSearchTextEditChanged) QtCore.SIGNAL('textChanged(const QString&)'), self.onSearchTextEditChanged)
QtCore.QObject.connect(self.SongListView, QtCore.QObject.connect(self.SongListView,
QtCore.SIGNAL("itemPressed(QTableWidgetItem * item)"), self.onSongSelected) QtCore.SIGNAL('itemPressed(QTableWidgetItem * item)'), self.onSongSelected)
#define and add the context menu #define and add the context menu
self.SongListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) self.SongListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
self.SongListView.addAction(self.contextMenuAction(self.SongListView, self.SongListView.addAction(self.contextMenuAction(self.SongListView,
@ -157,15 +157,19 @@ class SongMediaItem(MediaManagerItem):
self.SongListView.setRowCount(0) self.SongListView.setRowCount(0)
#log.debug("Records returned from search %s", len(searchresults)) #log.debug("Records returned from search %s", len(searchresults))
for song in searchresults: for song in searchresults:
row_count = self.SongListView.rowCount()
self.SongListView.setRowCount(row_count + 1)
song_index = QtGui.QTableWidgetItem(str(song.id))
self.SongListView.setItem(row_count, 0, song_index)
author_list = u''
for author in song.authors: for author in song.authors:
c = self.SongListView.rowCount() if author_list != u'':
self.SongListView.setRowCount(c + 1) author_list = author_list + u', '
song_index = QtGui.QTableWidgetItem(str(song.id)) author_list = author_list + author.display_name
self.SongListView.setItem(c , 0, song_index) song_detail = QtGui.QTableWidgetItem(
song_detail = QtGui.QTableWidgetItem( u'%s (%s)' % (str(song.title), str(author_list)))
u'%s (%s)' % (str(song.title), str(author.display_name))) self.SongListView.setItem(row_count, 1, song_detail)
self.SongListView.setItem(c , 1, song_detail) self.SongListView.setRowHeight(row_count, 20)
self.SongListView.setRowHeight(c, 20)
def onClearTextButtonClick(self): def onClearTextButtonClick(self):
""" """

View File

@ -38,10 +38,10 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="1" colspan="5" > <item row="0" column="1" colspan="6" >
<widget class="QLineEdit" name="TopicNameEdit" /> <widget class="QLineEdit" name="TopicNameEdit" />
</item> </item>
<item row="1" column="0" colspan="2" > <item row="1" column="0" colspan="3" >
<spacer name="ButtonsSpacer" > <spacer name="ButtonsSpacer" >
<property name="orientation" > <property name="orientation" >
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
@ -54,7 +54,7 @@
</property> </property>
</spacer> </spacer>
</item> </item>
<item row="1" column="4" > <item row="1" column="5" >
<widget class="QPushButton" name="DeleteButton" > <widget class="QPushButton" name="DeleteButton" >
<property name="toolTip" > <property name="toolTip" >
<string>Delete Author</string> <string>Delete Author</string>
@ -68,31 +68,31 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="2" > <item row="1" column="4" >
<widget class="QPushButton" name="AddUpdateButton" > <widget class="QPushButton" name="AddUpdateButton" >
<property name="toolTip" > <property name="toolTip" >
<string>Add Update Author</string> <string>Add Update Author</string>
</property> </property>
<property name="text" > <property name="text" >
<string>Add/Update</string> <string>Save</string>
</property> </property>
<property name="icon" > <property name="icon" >
<iconset resource="../images/openlp-2.qrc" > <iconset resource="../images/openlp-2.qrc" >
<normaloff>:/system/system_settings.png</normaloff>:/system/system_settings.png</iconset> <normaloff>:/services/service_save.png</normaloff>:/services/service_save.png</iconset>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="5" > <item row="1" column="3" >
<widget class="QPushButton" name="ClearButton" > <widget class="QPushButton" name="ClearButton" >
<property name="toolTip" > <property name="toolTip" >
<string>Clear Selection</string> <string>Clear Selection</string>
</property> </property>
<property name="text" > <property name="text" >
<string>Clear</string> <string>New</string>
</property> </property>
<property name="icon" > <property name="icon" >
<iconset resource="../images/openlp-2.qrc" > <iconset resource="../images/openlp-2.qrc" >
<normaloff>:/songs/song_edit.png</normaloff>:/songs/song_edit.png</iconset> <normaloff>:/services/service_new.png</normaloff>:/services/service_new.png</iconset>
</property> </property>
</widget> </widget>
</item> </item>