Add double clicks to songs and customSlide

More code cleanups
This commit is contained in:
Tim Bentley 2009-06-07 20:34:24 +01:00
commit ed73a78e95
7 changed files with 105 additions and 164 deletions

View File

@ -41,7 +41,6 @@ class OpenLP(QtGui.QApplication):
#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(u'openlpprocessevents'), self.processEvents) QtCore.SIGNAL(u'openlpprocessevents'), self.processEvents)
self.setApplicationName(u'openlp.org') self.setApplicationName(u'openlp.org')
self.setApplicationVersion(u'1.9.0') self.setApplicationVersion(u'1.9.0')
self.splash = SplashScreen(self.applicationVersion()) self.splash = SplashScreen(self.applicationVersion())
@ -66,4 +65,3 @@ class OpenLP(QtGui.QApplication):
if __name__ == u'__main__': if __name__ == u'__main__':
app = OpenLP(sys.argv) app = OpenLP(sys.argv)
app.run() app.run()

View File

@ -60,7 +60,7 @@ class MainDisplay(QtGui.QWidget):
if not screen[u'primary']: if not screen[u'primary']:
self.showFullScreen() self.showFullScreen()
else: else:
self.hide() self.showMinimized()
painter = QtGui.QPainter() painter = QtGui.QPainter()
self.blankFrame = QtGui.QPixmap(screen[u'size'].width(), screen[u'size'].height()) self.blankFrame = QtGui.QPixmap(screen[u'size'].width(), screen[u'size'].height())
painter.begin(self.blankFrame) painter.begin(self.blankFrame)

View File

@ -99,8 +99,6 @@ class MainWindow(object):
""" """
self.mainWindow.showMaximized() self.mainWindow.showMaximized()
self.mainDisplay.setup(self.settingsForm.GeneralTab.MonitorNumber) self.mainDisplay.setup(self.settingsForm.GeneralTab.MonitorNumber)
self.mainDisplay.show()
#self.mainWindow.setFocus(QtCore.Qt.OtherFocusReason)
def onHelpAboutItemClicked(self): def onHelpAboutItemClicked(self):
""" """

View File

@ -135,11 +135,10 @@ class SlideController(QtGui.QWidget):
self.PreviewListView = QtGui.QListView(self.Controller) self.PreviewListView = QtGui.QListView(self.Controller)
self.PreviewListData = SlideData() self.PreviewListData = SlideData()
self.PreviewListView.isLive = self.isLive self.PreviewListView.isLive = self.isLive
self.PreviewListView.setFlow(1) #self.PreviewListView.setFlow(1)
self.PreviewListView.setViewMode(1) #self.PreviewListView.setViewMode(1)
self.PreviewListView.setWrapping(False) self.PreviewListView.setWrapping(False)
self.PreviewListView.setModel(self.PreviewListData) self.PreviewListView.setModel(self.PreviewListData)
#self.PreviewListView.setSelectionRectVisible(True)
self.PreviewListView.setSpacing(0) self.PreviewListView.setSpacing(0)
self.PreviewListView.setObjectName(u'PreviewListView') self.PreviewListView.setObjectName(u'PreviewListView')
self.ControllerLayout.addWidget(self.PreviewListView) self.ControllerLayout.addWidget(self.PreviewListView)

View File

@ -41,9 +41,7 @@ class CustomList(QtGui.QListView):
mimeData = QtCore.QMimeData() mimeData = QtCore.QMimeData()
drag.setMimeData(mimeData) drag.setMimeData(mimeData)
mimeData.setText(u'Custom') mimeData.setText(u'Custom')
dropAction = drag.start(QtCore.Qt.CopyAction) dropAction = drag.start(QtCore.Qt.CopyAction)
if dropAction == QtCore.Qt.CopyAction: if dropAction == QtCore.Qt.CopyAction:
self.close() self.close()
@ -65,36 +63,36 @@ class CustomMediaItem(MediaManagerItem):
# Create buttons for the toolbar # Create buttons for the toolbar
## New Custom Button ## ## New Custom Button ##
self.addToolbarButton( self.addToolbarButton(
translate('CustomMediaItem',u'New Custom Item'), translate(u'CustomMediaItem',u'New Custom Item'),
translate('CustomMediaItem',u'Add a new Custom Item'), translate(u'CustomMediaItem',u'Add a new Custom Item'),
':/custom/custom_new.png', self.onCustomNewClick, 'CustomNewItem') u':/custom/custom_new.png', self.onCustomNewClick, u'CustomNewItem')
## Edit Custom Button ## ## Edit Custom Button ##
self.addToolbarButton( self.addToolbarButton(
translate('CustomMediaItem',u'Edit Custom Item'), translate(u'CustomMediaItem',u'Edit Custom Item'),
translate('CustomMediaItem',u'Edit the selected Custom Item'), translate(u'CustomMediaItem',u'Edit the selected Custom Item'),
':/custom/custom_edit.png', self.onCustomEditClick, 'CustomEditItem') u':/custom/custom_edit.png', self.onCustomEditClick, u'CustomEditItem')
## Delete Custom Button ## ## Delete Custom Button ##
self.addToolbarButton( self.addToolbarButton(
translate('CustomMediaItem',u'Delete Custom Item'), translate(u'CustomMediaItem',u'Delete Custom Item'),
translate('CustomMediaItem',u'Delete the selected Custom Item'), translate(u'CustomMediaItem',u'Delete the selected Custom Item'),
':/custom/custom_delete.png', self.onCustomDeleteClick, 'CustomDeleteItem') u':/custom/custom_delete.png', self.onCustomDeleteClick, u'CustomDeleteItem')
## Separator Line ## ## Separator Line ##
self.addToolbarSeparator() self.addToolbarSeparator()
## Preview Custom Button ## ## Preview Custom Button ##
self.addToolbarButton( self.addToolbarButton(
translate('CustomMediaItem',u'Preview Custom Item'), translate(u'CustomMediaItem',u'Preview Custom Item'),
translate('CustomMediaItem',u'Preview the selected Custom Item'), translate(u'CustomMediaItem',u'Preview the selected Custom Item'),
':/system/system_preview.png', self.onCustomPreviewClick, 'CustomPreviewItem') u':/system/system_preview.png', self.onCustomPreviewClick, u'CustomPreviewItem')
## Live Custom Button ## ## Live Custom Button ##
self.addToolbarButton( self.addToolbarButton(
translate('CustomMediaItem',u'Go Live'), translate(u'CustomMediaItem',u'Go Live'),
translate('CustomMediaItem', u'Send the selected Custom live'), translate(u'CustomMediaItem', u'Send the selected Custom live'),
':/system/system_live.png', self.onCustomLiveClick, 'CustomLiveItem') u':/system/system_live.png', self.onCustomLiveClick, u'CustomLiveItem')
## Add Custom Button ## ## Add Custom Button ##
self.addToolbarButton( self.addToolbarButton(
translate('CustomMediaItem',u'Add Custom To Service'), translate(u'CustomMediaItem',u'Add Custom To Service'),
translate('CustomMediaItem',u'Add the selected Custom(s) to the service'), translate(u'CustomMediaItem',u'Add the selected Custom(s) to the service'),
':/system/system_add.png', self.onCustomAddClick, 'CustomAddItem') u':/system/system_add.png', self.onCustomAddClick, u'CustomAddItem')
# Add the Customlist widget # Add the Customlist widget
self.CustomWidget = QtGui.QWidget(self) self.CustomWidget = QtGui.QWidget(self)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
@ -103,64 +101,36 @@ class CustomMediaItem(MediaManagerItem):
sizePolicy.setHeightForWidth(self.CustomWidget.sizePolicy().hasHeightForWidth()) sizePolicy.setHeightForWidth(self.CustomWidget.sizePolicy().hasHeightForWidth())
self.CustomWidget.setSizePolicy(sizePolicy) self.CustomWidget.setSizePolicy(sizePolicy)
self.CustomWidget.setObjectName(u'CustomWidget') self.CustomWidget.setObjectName(u'CustomWidget')
# self.SearchLayout = QtGui.QGridLayout(self.CustomWidget)
# self.SearchLayout.setObjectName('SearchLayout')
# self.SearchTextLabel = QtGui.QLabel(self.CustomWidget)
# self.SearchTextLabel.setObjectName('SearchTextLabel')
# self.SearchTextLabel.setText('Search Text:')
# self.SearchLayout.addWidget(self.SearchTextLabel, 2, 0, 1, 1)
# self.SearchTextEdit = QtGui.QLineEdit(self.CustomWidget)
# self.SearchTextEdit.setObjectName('SearchTextEdit')
# self.SearchLayout.addWidget(self.SearchTextEdit, 2, 1, 1, 2)
#
# self.ClearTextButton = QtGui.QPushButton(self.CustomWidget)
# self.ClearTextButton.setObjectName('ClearTextButton')
#
# self.SearchLayout.addWidget(self.ClearTextButton, 3, 1, 1, 1)
# self.SearchTextButton = QtGui.QPushButton(self.CustomWidget)
# self.SearchTextButton.setObjectName('SearchTextButton')
# self.SearchLayout.addWidget(self.SearchTextButton, 3, 2, 1, 1)
# Add the Custom widget to the page layout # Add the Custom widget to the page layout
self.PageLayout.addWidget(self.CustomWidget) self.PageLayout.addWidget(self.CustomWidget)
self.CustomListView = CustomList() self.CustomListView = CustomList()
self.CustomListView.setAlternatingRowColors(True) self.CustomListView.setAlternatingRowColors(True)
self.CustomListData = TextListData() self.CustomListData = TextListData()
self.CustomListView.setModel(self.CustomListData) self.CustomListView.setModel(self.CustomListData)
self.CustomListView.setDragEnabled(True) self.CustomListView.setDragEnabled(True)
self.PageLayout.addWidget(self.CustomListView) self.PageLayout.addWidget(self.CustomListView)
# Signals # Signals
# QtCore.QObject.connect(self.SearchTextButton, QtCore.QObject.connect(self.CustomListView,
# QtCore.SIGNAL("pressed()"), self.onSearchTextButtonClick) QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), self.onCustomPreviewClick)
# QtCore.QObject.connect(self.ClearTextButton,
# QtCore.SIGNAL("pressed()"), self.onClearTextButtonClick)
# QtCore.QObject.connect(self.SearchTextEdit,
# QtCore.SIGNAL("textChanged(const QString&)"), self.onSearchTextEditChanged)
# QtCore.QObject.connect(self.CustomListView,
# QtCore.SIGNAL("itemPressed(QTableWidgetItem * item)"), self.onCustomSelected)
#define and add the context menu #define and add the context menu
self.CustomListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) self.CustomListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
self.CustomListView.addAction(self.contextMenuAction(self.CustomListView, self.CustomListView.addAction(self.contextMenuAction(self.CustomListView,
':/custom/custom_edit.png', translate('CustomMediaItem', u'&Edit Custom'), ':/custom/custom_edit.png', translate(u'CustomMediaItem', u'&Edit Custom'),
self.onCustomEditClick)) self.onCustomEditClick))
self.CustomListView.addAction(self.contextMenuSeparator(self.CustomListView)) self.CustomListView.addAction(self.contextMenuSeparator(self.CustomListView))
self.CustomListView.addAction(self.contextMenuAction( self.CustomListView.addAction(self.contextMenuAction(
self.CustomListView, ':/system/system_preview.png', self.CustomListView, ':/system/system_preview.png',
translate('CustomMediaItem',u'&Preview Custom'), self.onCustomPreviewClick)) translate(u'CustomMediaItem',u'&Preview Custom'), self.onCustomPreviewClick))
self.CustomListView.addAction(self.contextMenuAction( self.CustomListView.addAction(self.contextMenuAction(
self.CustomListView, ':/system/system_live.png', self.CustomListView, ':/system/system_live.png',
translate('CustomMediaItem',u'&Show Live'), self.onCustomLiveClick)) translate(u'CustomMediaItem',u'&Show Live'), self.onCustomLiveClick))
self.CustomListView.addAction(self.contextMenuAction( self.CustomListView.addAction(self.contextMenuAction(
self.CustomListView, ':/system/system_add.png', self.CustomListView, ':/system/system_add.png',
translate('CustomMediaItem',u'&Add to Service'), self.onCustomAddClick)) translate(u'CustomMediaItem',u'&Add to Service'), self.onCustomAddClick))
# def retranslateUi(self): # def retranslateUi(self):
# self.ClearTextButton.setText(translate('CustomMediaItem', u'Clear')) # self.ClearTextButton.setText(translate(u'CustomMediaItem', u'Clear'))
# self.SearchTextButton.setText(translate('CustomMediaItem', u'Search')) # self.SearchTextButton.setText(translate(u'CustomMediaItem', u'Search'))
def initialise(self): def initialise(self):
self.loadCustomList(self.parent.custommanager.get_all_slides()) self.loadCustomList(self.parent.custommanager.get_all_slides())
@ -177,7 +147,8 @@ class CustomMediaItem(MediaManagerItem):
self.SearchTextEdit.clear() self.SearchTextEdit.clear()
def onSearchTextEditChanged(self, text): def onSearchTextEditChanged(self, text):
if len(text) > 3: # only search if > 3 characters # only search if > 3 characters
if len(text) > 3:
self.onSearchTextButtonClick() self.onSearchTextButtonClick()
def onSearchTextButtonClick(self): def onSearchTextButtonClick(self):
@ -209,21 +180,21 @@ class CustomMediaItem(MediaManagerItem):
def onCustomPreviewClick(self): def onCustomPreviewClick(self):
log.debug(u'Custom Preview Requested') log.debug(u'Custom Preview Requested')
service_item = ServiceItem(self.parent) service_item = ServiceItem(self.parent)
service_item.addIcon( ":/media/media_song.png") service_item.addIcon(u':/media/media_song.png')
self.generateSlideData(service_item) self.generateSlideData(service_item)
self.parent.preview_controller.addServiceItem(service_item) self.parent.preview_controller.addServiceItem(service_item)
def onCustomLiveClick(self): def onCustomLiveClick(self):
log.debug(u'Custom Live Requested') log.debug(u'Custom Live Requested')
service_item = ServiceItem(self.parent) service_item = ServiceItem(self.parent)
service_item.addIcon( ":/media/media_song.png") service_item.addIcon(u':/media/media_song.png')
self.generateSlideData(service_item) self.generateSlideData(service_item)
self.parent.live_controller.addServiceItem(service_item) self.parent.live_controller.addServiceItem(service_item)
def onCustomAddClick(self): def onCustomAddClick(self):
log.debug(u'Custom Add Requested') log.debug(u'Custom Add Requested')
service_item = ServiceItem(self.parent) service_item = ServiceItem(self.parent)
service_item.addIcon( ":/media/media_song.png") service_item.addIcon(u':/media/media_song.png')
self.generateSlideData(service_item) self.generateSlideData(service_item)
self.parent.service_manager.addServiceItem(service_item) self.parent.service_manager.addServiceItem(service_item)

View File

@ -42,9 +42,7 @@ class ImageList(QtGui.QListView):
mimeData = QtCore.QMimeData() mimeData = QtCore.QMimeData()
drag.setMimeData(mimeData) drag.setMimeData(mimeData)
mimeData.setText(u'Image') mimeData.setText(u'Image')
dropAction = drag.start(QtCore.Qt.CopyAction) dropAction = drag.start(QtCore.Qt.CopyAction)
if dropAction == QtCore.Qt.CopyAction: if dropAction == QtCore.Qt.CopyAction:
self.close() self.close()
@ -65,32 +63,31 @@ class ImageMediaItem(MediaManagerItem):
# Create buttons for the toolbar # Create buttons for the toolbar
## New Song Button ## ## New Song Button ##
self.addToolbarButton( self.addToolbarButton(
translate('ImageMediaItem', u'Load Image'), translate(u'ImageMediaItem', u'Load Image'),
translate('ImageMediaItem', u'Load images into openlp.org'), translate(u'ImageMediaItem', u'Load images into openlp.org'),
':/images/image_load.png', self.onImagesNewClick, 'ImageNewItem') u':/images/image_load.png', self.onImagesNewClick, u'ImageNewItem')
## Delete Song Button ## ## Delete Song Button ##
self.addToolbarButton( self.addToolbarButton(
translate('ImageMediaItem', u'Delete Image'), translate(u'ImageMediaItem', u'Delete Image'),
translate('ImageMediaItem', u'Delete the selected image'), translate(u'ImageMediaItem', u'Delete the selected image'),
':/images/image_delete.png', self.onImageDeleteClick, 'ImageDeleteItem') u':/images/image_delete.png', self.onImageDeleteClick, u'ImageDeleteItem')
## Separator Line ## ## Separator Line ##
self.addToolbarSeparator() self.addToolbarSeparator()
## Preview Song Button ## ## Preview Song Button ##
self.addToolbarButton( self.addToolbarButton(
translate('ImageMediaItem', u'Preview Song'), translate(u'ImageMediaItem', u'Preview Song'),
translate('ImageMediaItem', u'Preview the selected image'), translate(u'ImageMediaItem', u'Preview the selected image'),
':/system/system_preview.png', self.onImagePreviewClick, 'ImagePreviewItem') u':/system/system_preview.png', self.onImagePreviewClick, u'ImagePreviewItem')
## Live Song Button ## ## Live Song Button ##
self.addToolbarButton( self.addToolbarButton(
translate('ImageMediaItem', u'Go Live'), translate(u'ImageMediaItem', u'Go Live'),
translate('ImageMediaItem', u'Send the selected image live'), translate(u'ImageMediaItem', u'Send the selected image live'),
':/system/system_live.png', self.onImageLiveClick, 'ImageLiveItem') u':/system/system_live.png', self.onImageLiveClick, u'ImageLiveItem')
## Add Song Button ## ## Add Song Button ##
self.addToolbarButton( self.addToolbarButton(
translate('ImageMediaItem', u'Add Image To Service'), translate(u'ImageMediaItem', u'Add Image To Service'),
translate('ImageMediaItem', u'Add the selected image(s) to the service'), translate(u'ImageMediaItem', u'Add the selected image(s) to the service'),
':/system/system_add.png', self.onImageAddClick, 'ImageAddItem') u':/system/system_add.png', self.onImageAddClick, u'ImageAddItem')
#Add the Image List widget #Add the Image List widget
self.ImageListView = ImageList() self.ImageListView = ImageList()
self.ImageListView.uniformItemSizes = True self.ImageListView.uniformItemSizes = True
@ -101,33 +98,29 @@ class ImageMediaItem(MediaManagerItem):
self.ImageListView.setSelectionMode(QtGui.QAbstractItemView.MultiSelection) self.ImageListView.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
self.ImageListView.setAlternatingRowColors(True) self.ImageListView.setAlternatingRowColors(True)
self.ImageListView.setDragEnabled(True) self.ImageListView.setDragEnabled(True)
self.ImageListView.setObjectName('ImageListView') self.ImageListView.setObjectName(u'ImageListView')
self.PageLayout.addWidget(self.ImageListView) self.PageLayout.addWidget(self.ImageListView)
#define and add the context menu #define and add the context menu
self.ImageListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) self.ImageListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
self.ImageListView.addAction(self.contextMenuAction( self.ImageListView.addAction(self.contextMenuAction(
self.ImageListView, ':/system/system_preview.png', self.ImageListView, ':/system/system_preview.png',
translate('ImageMediaItem', u'&Preview Image'), translate(u'ImageMediaItem', u'&Preview Image'),
self.onImagePreviewClick)) self.onImagePreviewClick))
self.ImageListView.addAction(self.contextMenuAction( self.ImageListView.addAction(self.contextMenuAction(
self.ImageListView, ':/system/system_live.png', self.ImageListView, ':/system/system_live.png',
translate('ImageMediaItem', u'&Show Live'), translate(u'ImageMediaItem', u'&Show Live'),
self.onImageLiveClick)) self.onImageLiveClick))
self.ImageListView.addAction(self.contextMenuAction( self.ImageListView.addAction(self.contextMenuAction(
self.ImageListView, ':/system/system_add.png', self.ImageListView, ':/system/system_add.png',
translate('ImageMediaItem', u'&Add to Service'), translate(u'ImageMediaItem', u'&Add to Service'),
self.onImageAddClick)) self.onImageAddClick))
def initialise(self): def initialise(self):
self.loadImageList(self.parent.config.load_list(u'images')) self.loadImageList(self.parent.config.load_list(u'images'))
def onImagesNewClick(self): def onImagesNewClick(self):
files = QtGui.QFileDialog.getOpenFileNames(None, files = QtGui.QFileDialog.getOpenFileNames(None,
translate('ImageMediaItem', u'Select Image(s)'), translate(u'ImageMediaItem', u'Select Image(s)'),
self.parent.config.get_last_dir(), self.parent.config.get_last_dir(),
u'Images (*.jpg *.gif *.png *.bmp)') u'Images (*.jpg *.gif *.png *.bmp)')
log.info(u'New image(s)', str(files)) log.info(u'New image(s)', str(files))
@ -160,20 +153,20 @@ class ImageMediaItem(MediaManagerItem):
def onImagePreviewClick(self): def onImagePreviewClick(self):
log.debug(u'Image Preview Requested') log.debug(u'Image Preview Requested')
service_item = ServiceItem(self.parent) service_item = ServiceItem(self.parent)
service_item.addIcon( ":/media/media_image.png") service_item.addIcon(u':/media/media_image.png')
self.generateSlideData(service_item) self.generateSlideData(service_item)
self.parent.preview_controller.addServiceItem(service_item) self.parent.preview_controller.addServiceItem(service_item)
def onImageLiveClick(self): def onImageLiveClick(self):
log.debug(u'Image Live Requested') log.debug(u'Image Live Requested')
service_item = ServiceItem(self.parent) service_item = ServiceItem(self.parent)
service_item.addIcon( ":/media/media_image.png") service_item.addIcon(u':/media/media_image.png')
self.generateSlideData(service_item) self.generateSlideData(service_item)
self.parent.live_controller.addServiceItem(service_item) self.parent.live_controller.addServiceItem(service_item)
def onImageAddClick(self): def onImageAddClick(self):
log.debug(u'Image Add Requested') log.debug(u'Image Add Requested')
service_item = ServiceItem(self.parent) service_item = ServiceItem(self.parent)
service_item.addIcon( ":/media/media_image.png") service_item.addIcon(u':/media/media_image.png')
self.generateSlideData(service_item) self.generateSlideData(service_item)
self.parent.service_manager.addServiceItem(service_item) self.parent.service_manager.addServiceItem(service_item)

View File

@ -43,9 +43,7 @@ class SongList(QtGui.QListView):
mimeData = QtCore.QMimeData() mimeData = QtCore.QMimeData()
drag.setMimeData(mimeData) drag.setMimeData(mimeData)
mimeData.setText(u'Song') mimeData.setText(u'Song')
dropAction = drag.start(QtCore.Qt.CopyAction) dropAction = drag.start(QtCore.Qt.CopyAction)
if dropAction == QtCore.Qt.CopyAction: if dropAction == QtCore.Qt.CopyAction:
self.close() self.close()
@ -54,8 +52,8 @@ class SongMediaItem(MediaManagerItem):
This is the custom media manager item for Songs. This is the custom media manager item for Songs.
""" """
global log global log
log = logging.getLogger("SongMediaItem") log = logging.getLogger(u'SongMediaItem')
log.info("Song Media Item loaded") log.info(u'Song Media Item loaded')
def __init__(self, parent, icon, title): def __init__(self, parent, icon, title):
MediaManagerItem.__init__(self, parent, icon, title) MediaManagerItem.__init__(self, parent, icon, title)
@ -66,30 +64,30 @@ class SongMediaItem(MediaManagerItem):
self.addToolbar() self.addToolbar()
# Create buttons for the toolbar # Create buttons for the toolbar
## New Song Button ## ## New Song Button ##
self.addToolbarButton(translate('SongMediaItem', u'New Song'), self.addToolbarButton(translate(u'SongMediaItem', u'New Song'),
translate('SongMediaItem', u'Add a new song'), translate(u'SongMediaItem', u'Add a new song'),
':/songs/song_new.png', self.onSongNewClick, 'SongNewItem') ':/songs/song_new.png', self.onSongNewClick, 'SongNewItem')
## Edit Song Button ## ## Edit Song Button ##
self.addToolbarButton(translate('SongMediaItem', u'Edit Song'), self.addToolbarButton(translate(u'SongMediaItem', u'Edit Song'),
translate('SongMediaItem', u'Edit the selected song'), translate(u'SongMediaItem', u'Edit the selected song'),
':/songs/song_edit.png', self.onSongEditClick, 'SongEditItem') ':/songs/song_edit.png', self.onSongEditClick, 'SongEditItem')
## Delete Song Button ## ## Delete Song Button ##
self.addToolbarButton(translate('SongMediaItem', u'Delete Song'), self.addToolbarButton(translate(u'SongMediaItem', u'Delete Song'),
translate('SongMediaItem', u'Delete the selected song'), translate(u'SongMediaItem', u'Delete the selected song'),
':/songs/song_delete.png', self.onSongDeleteClick, 'SongDeleteItem') ':/songs/song_delete.png', self.onSongDeleteClick, 'SongDeleteItem')
## Separator Line ## ## Separator Line ##
self.addToolbarSeparator() self.addToolbarSeparator()
## Preview Song Button ## ## Preview Song Button ##
self.addToolbarButton(translate('SongMediaItem', u'Preview Song'), self.addToolbarButton(translate(u'SongMediaItem', u'Preview Song'),
translate('SongMediaItem', u'Preview the selected song'), translate(u'SongMediaItem', u'Preview the selected song'),
':/system/system_preview.png', self.onSongPreviewClick, 'SongPreviewItem') ':/system/system_preview.png', self.onSongPreviewClick, 'SongPreviewItem')
## Live Song Button ## ## Live Song Button ##
self.addToolbarButton(translate('SongMediaItem', u'Go Live'), self.addToolbarButton(translate(u'SongMediaItem', u'Go Live'),
translate('SongMediaItem', u'Send the selected song live'), translate(u'SongMediaItem', u'Send the selected song live'),
':/system/system_live.png', self.onSongLiveClick, 'SongLiveItem') ':/system/system_live.png', self.onSongLiveClick, 'SongLiveItem')
## Add Song Button ## ## Add Song Button ##
self.addToolbarButton(translate('SongMediaItem', u'Add Song To Service'), self.addToolbarButton(translate(u'SongMediaItem', u'Add Song To Service'),
translate('SongMediaItem', u'Add the selected song(s) to the service'), translate(u'SongMediaItem', u'Add the selected song(s) to the service'),
':/system/system_add.png', self.onSongAddClick, 'SongAddItem') ':/system/system_add.png', self.onSongAddClick, 'SongAddItem')
## Add the songlist widget ## ## Add the songlist widget ##
# Create the tab widget # Create the tab widget
@ -99,92 +97,77 @@ class SongMediaItem(MediaManagerItem):
sizePolicy.setVerticalStretch(0) sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.SongWidget.sizePolicy().hasHeightForWidth()) sizePolicy.setHeightForWidth(self.SongWidget.sizePolicy().hasHeightForWidth())
self.SongWidget.setSizePolicy(sizePolicy) self.SongWidget.setSizePolicy(sizePolicy)
self.SongWidget.setObjectName('SongWidget') self.SongWidget.setObjectName(u'SongWidget')
self.SearchLayout = QtGui.QGridLayout(self.SongWidget) self.SearchLayout = QtGui.QGridLayout(self.SongWidget)
self.SearchLayout.setObjectName('SearchLayout') self.SearchLayout.setObjectName(u'SearchLayout')
self.SearchTypeComboBox = QtGui.QComboBox(self.SongWidget) self.SearchTypeComboBox = QtGui.QComboBox(self.SongWidget)
self.SearchTypeComboBox.setObjectName('SearchTypeComboBox') self.SearchTypeComboBox.setObjectName(u'SearchTypeComboBox')
self.SearchLayout.addWidget(self.SearchTypeComboBox, 0, 1, 1, 2) self.SearchLayout.addWidget(self.SearchTypeComboBox, 0, 1, 1, 2)
self.SearchTypeLabel = QtGui.QLabel(self.SongWidget) self.SearchTypeLabel = QtGui.QLabel(self.SongWidget)
self.SearchTypeLabel.setObjectName('SearchTypeLabel') self.SearchTypeLabel.setObjectName(u'SearchTypeLabel')
self.SearchLayout.addWidget(self.SearchTypeLabel, 0, 0, 1, 1) self.SearchLayout.addWidget(self.SearchTypeLabel, 0, 0, 1, 1)
self.SearchTextLabel = QtGui.QLabel(self.SongWidget) self.SearchTextLabel = QtGui.QLabel(self.SongWidget)
self.SearchTextLabel.setObjectName('SearchTextLabel') self.SearchTextLabel.setObjectName(u'SearchTextLabel')
self.SearchLayout.addWidget(self.SearchTextLabel, 2, 0, 1, 1) self.SearchLayout.addWidget(self.SearchTextLabel, 2, 0, 1, 1)
self.SearchTextEdit = QtGui.QLineEdit(self.SongWidget) self.SearchTextEdit = QtGui.QLineEdit(self.SongWidget)
self.SearchTextEdit.setObjectName('SearchTextEdit') self.SearchTextEdit.setObjectName(u'SearchTextEdit')
self.SearchLayout.addWidget(self.SearchTextEdit, 2, 1, 1, 2) self.SearchLayout.addWidget(self.SearchTextEdit, 2, 1, 1, 2)
self.ClearTextButton = QtGui.QPushButton(self.SongWidget) self.ClearTextButton = QtGui.QPushButton(self.SongWidget)
self.ClearTextButton.setObjectName('ClearTextButton') self.ClearTextButton.setObjectName(u'ClearTextButton')
self.SearchLayout.addWidget(self.ClearTextButton, 3, 1, 1, 1) self.SearchLayout.addWidget(self.ClearTextButton, 3, 1, 1, 1)
self.SearchTextButton = QtGui.QPushButton(self.SongWidget) self.SearchTextButton = QtGui.QPushButton(self.SongWidget)
self.SearchTextButton.setObjectName('SearchTextButton') self.SearchTextButton.setObjectName(u'SearchTextButton')
self.SearchLayout.addWidget(self.SearchTextButton, 3, 2, 1, 1) self.SearchLayout.addWidget(self.SearchTextButton, 3, 2, 1, 1)
# Add the song widget to the page layout # Add the song widget to the page layout
self.PageLayout.addWidget(self.SongWidget) self.PageLayout.addWidget(self.SongWidget)
self.SongListView = SongList() self.SongListView = SongList()
self.SongListView.setAlternatingRowColors(True) self.SongListView.setAlternatingRowColors(True)
self.SongListData = TextListData() self.SongListData = TextListData()
self.SongListView.setModel(self.SongListData) self.SongListView.setModel(self.SongListData)
self.SongListView.setDragEnabled(True) self.SongListView.setDragEnabled(True)
self.SongListView.setObjectName(u'SongListView')
# self.SongListView = QtGui.QTableWidget()
# self.SongListView.setColumnCount(2)
# self.SongListView.setColumnHidden(0, True)
# self.SongListView.setColumnWidth(1, 240)
# self.SongListView.setShowGrid(False)
# self.SongListView.setSortingEnabled(False)
# self.SongListView.setAlternatingRowColors(True)
# self.SongListView.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows)
# self.SongListView.horizontalHeader().setVisible(False)
# self.SongListView.verticalHeader().setVisible(False)
# self.SongListView.setGeometry(QtCore.QRect(10, 100, 256, 591))
self.SongListView.setObjectName('SongListView')
self.PageLayout.addWidget(self.SongListView) self.PageLayout.addWidget(self.SongListView)
self.SongListView.setDragEnabled(True) self.SongListView.setDragEnabled(True)
# Signals and slots # Signals and slots
QtCore.QObject.connect(self.SearchTextButton, QtCore.QObject.connect(self.SearchTextButton,
QtCore.SIGNAL('pressed()'), self.onSearchTextButtonClick) QtCore.SIGNAL(u'pressed()'), self.onSearchTextButtonClick)
QtCore.QObject.connect(self.ClearTextButton, QtCore.QObject.connect(self.ClearTextButton,
QtCore.SIGNAL('pressed()'), self.onClearTextButtonClick) QtCore.SIGNAL(u'pressed()'), self.onClearTextButtonClick)
QtCore.QObject.connect(self.SearchTextEdit, QtCore.QObject.connect(self.SearchTextEdit,
QtCore.SIGNAL('textChanged(const QString&)'), self.onSearchTextEditChanged) QtCore.SIGNAL(u'textChanged(const QString&)'), self.onSearchTextEditChanged)
# QtCore.QObject.connect(self.SongListView, QtCore.QObject.connect(self.SongListView,
# QtCore.SIGNAL('itemPressed(QTableWidgetItem * item)'), self.onSongSelected) QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), self.onSongPreviewClick)
#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,
':/songs/song_new.png', translate('SongMediaItem', u'&Edit Song'), ':/songs/song_new.png', translate(u'SongMediaItem', u'&Edit Song'),
self.onSongEditClick)) self.onSongEditClick))
self.SongListView.addAction(self.contextMenuSeparator(self.SongListView)) self.SongListView.addAction(self.contextMenuSeparator(self.SongListView))
self.SongListView.addAction(self.contextMenuAction(self.SongListView, self.SongListView.addAction(self.contextMenuAction(self.SongListView,
':/system/system_preview.png', translate('SongMediaItem', u'&Preview Song'), ':/system/system_preview.png', translate(u'SongMediaItem', u'&Preview Song'),
self.onSongPreviewClick)) self.onSongPreviewClick))
self.SongListView.addAction(self.contextMenuAction(self.SongListView, self.SongListView.addAction(self.contextMenuAction(self.SongListView,
':/system/system_live.png', translate('SongMediaItem', u'&Show Live'), ':/system/system_live.png', translate(u'SongMediaItem', u'&Show Live'),
self.onSongLiveClick)) self.onSongLiveClick))
self.SongListView.addAction(self.contextMenuAction(self.SongListView, self.SongListView.addAction(self.contextMenuAction(self.SongListView,
':/system/system_add.png', translate('SongMediaItem', u'&Add to Service'), ':/system/system_add.png', translate(u'SongMediaItem', u'&Add to Service'),
self.onSongAddClick)) self.onSongAddClick))
def retranslateUi(self): def retranslateUi(self):
self.SearchTypeLabel.setText(translate('SongMediaItem', u'Search Type:')) self.SearchTypeLabel.setText(translate(u'SongMediaItem', u'Search Type:'))
self.SearchTextLabel.setText(translate('SongMediaItem', u'Search Text:')) self.SearchTextLabel.setText(translate(u'SongMediaItem', u'Search Text:'))
self.ClearTextButton.setText(translate('SongMediaItem', u'Clear')) self.ClearTextButton.setText(translate(u'SongMediaItem', u'Clear'))
self.SearchTextButton.setText(translate('SongMediaItem', u'Search')) self.SearchTextButton.setText(translate(u'SongMediaItem', u'Search'))
def initialise(self): def initialise(self):
self.SearchTypeComboBox.addItem(translate('SongMediaItem', u'Titles')) self.SearchTypeComboBox.addItem(translate(u'SongMediaItem', u'Titles'))
self.SearchTypeComboBox.addItem(translate('SongMediaItem', u'Lyrics')) self.SearchTypeComboBox.addItem(translate(u'SongMediaItem', u'Lyrics'))
self.SearchTypeComboBox.addItem(translate('SongMediaItem', u'Authors')) self.SearchTypeComboBox.addItem(translate(u'SongMediaItem', u'Authors'))
def displayResults(self, searchresults): def displayResults(self, searchresults):
log.debug("display results") log.debug(u'display results')
self.SongListData.resetStore() self.SongListData.resetStore()
#log.debug("Records returned from search %s", len(searchresults)) #log.debug(u'Records returned from search %s", len(searchresults))
for song in searchresults: for song in searchresults:
author_list = u'' author_list = u''
for author in song.authors: for author in song.authors:
@ -192,7 +175,6 @@ class SongMediaItem(MediaManagerItem):
author_list = author_list + u', ' author_list = author_list + u', '
author_list = author_list + author.display_name author_list = author_list + author.display_name
song_detail = str(u'%s (%s)' % (str(song.title), str(author_list))) song_detail = str(u'%s (%s)' % (str(song.title), str(author_list)))
self.SongListData.addRow(song.id,song_detail) self.SongListData.addRow(song.id,song_detail)
def onClearTextButtonClick(self): def onClearTextButtonClick(self):
@ -205,7 +187,7 @@ class SongMediaItem(MediaManagerItem):
search_length = 3 search_length = 3
if self.SearchTypeComboBox.currentIndex() == 1: if self.SearchTypeComboBox.currentIndex() == 1:
search_length = 7 search_length = 7
if len(text) > search_length: # only search if > 3 characters if len(text) > search_length:
self.onSearchTextButtonClick() self.onSearchTextButtonClick()
def onSearchTextButtonClick(self): def onSearchTextButtonClick(self):
@ -213,13 +195,13 @@ class SongMediaItem(MediaManagerItem):
search_results = [] search_results = []
search_type = self.SearchTypeComboBox.currentIndex() search_type = self.SearchTypeComboBox.currentIndex()
if search_type == 0: if search_type == 0:
log.debug("Titles Search") log.debug(u'Titles Search')
search_results = self.parent.songmanager.search_song_title(search_keywords) search_results = self.parent.songmanager.search_song_title(search_keywords)
elif search_type == 1: elif search_type == 1:
log.debug("Lyrics Search") log.debug(u'Lyrics Search')
search_results = self.parent.songmanager.search_song_lyrics(search_keywords) search_results = self.parent.songmanager.search_song_lyrics(search_keywords)
elif search_type == 2: elif search_type == 2:
log.debug("Authors Search") log.debug(u'Authors Search')
#searchresults = self.songmanager.get_song_from_author(searchtext) #searchresults = self.songmanager.get_song_from_author(searchtext)
self.displayResults(search_results) self.displayResults(search_results)
@ -242,7 +224,7 @@ class SongMediaItem(MediaManagerItem):
def onSongPreviewClick(self): def onSongPreviewClick(self):
service_item = ServiceItem(self.parent) service_item = ServiceItem(self.parent)
service_item.addIcon( ":/media/media_song.png") service_item.addIcon(u':/media/media_song.png')
self.generateSlideData(service_item) self.generateSlideData(service_item)
self.parent.preview_controller.addServiceItem(service_item) self.parent.preview_controller.addServiceItem(service_item)
@ -267,12 +249,12 @@ class SongMediaItem(MediaManagerItem):
def onSongLiveClick(self): def onSongLiveClick(self):
service_item = ServiceItem(self.parent) service_item = ServiceItem(self.parent)
service_item.addIcon( ":/media/media_song.png") service_item.addIcon(u':/media/media_song.png')
self.generateSlideData(service_item) self.generateSlideData(service_item)
self.parent.live_controller.addServiceItem(service_item) self.parent.live_controller.addServiceItem(service_item)
def onSongAddClick(self): def onSongAddClick(self):
service_item = ServiceItem(self.parent) service_item = ServiceItem(self.parent)
service_item.addIcon( ":/media/media_song.png") service_item.addIcon( u':/media/media_song.png')
self.generateSlideData(service_item) self.generateSlideData(service_item)
self.parent.service_manager.addServiceItem(service_item) self.parent.service_manager.addServiceItem(service_item)