forked from openlp/openlp
Add Autocompletion to the Songs Dialog
Fix up some lost and confused Camels bzr-revno: 1143
This commit is contained in:
commit
52803af6d3
@ -108,7 +108,7 @@ class Plugin(QtCore.QObject):
|
|||||||
"""
|
"""
|
||||||
log.info(u'loaded')
|
log.info(u'loaded')
|
||||||
|
|
||||||
def __init__(self, name, version=None, plugin_helpers=None):
|
def __init__(self, name, version=None, pluginHelpers=None):
|
||||||
"""
|
"""
|
||||||
This is the constructor for the plugin object. This provides an easy
|
This is the constructor for the plugin object. This provides an easy
|
||||||
way for descendent plugins to populate common data. This method *must*
|
way for descendent plugins to populate common data. This method *must*
|
||||||
@ -124,7 +124,7 @@ class Plugin(QtCore.QObject):
|
|||||||
``version``
|
``version``
|
||||||
Defaults to *None*. The version of the plugin.
|
Defaults to *None*. The version of the plugin.
|
||||||
|
|
||||||
``plugin_helpers``
|
``pluginHelpers``
|
||||||
Defaults to *None*. A list of helper objects.
|
Defaults to *None*. A list of helper objects.
|
||||||
"""
|
"""
|
||||||
QtCore.QObject.__init__(self)
|
QtCore.QObject.__init__(self)
|
||||||
@ -139,14 +139,14 @@ class Plugin(QtCore.QObject):
|
|||||||
self.status = PluginStatus.Inactive
|
self.status = PluginStatus.Inactive
|
||||||
# Set up logging
|
# Set up logging
|
||||||
self.log = logging.getLogger(self.name)
|
self.log = logging.getLogger(self.name)
|
||||||
self.previewController = plugin_helpers[u'preview']
|
self.previewController = pluginHelpers[u'preview']
|
||||||
self.liveController = plugin_helpers[u'live']
|
self.liveController = pluginHelpers[u'live']
|
||||||
self.renderManager = plugin_helpers[u'render']
|
self.renderManager = pluginHelpers[u'render']
|
||||||
self.serviceManager = plugin_helpers[u'service']
|
self.serviceManager = pluginHelpers[u'service']
|
||||||
self.settingsForm = plugin_helpers[u'settings form']
|
self.settingsForm = pluginHelpers[u'settings form']
|
||||||
self.mediadock = plugin_helpers[u'toolbox']
|
self.mediadock = pluginHelpers[u'toolbox']
|
||||||
self.pluginManager = plugin_helpers[u'pluginmanager']
|
self.pluginManager = pluginHelpers[u'pluginmanager']
|
||||||
self.formparent = plugin_helpers[u'formparent']
|
self.formparent = pluginHelpers[u'formparent']
|
||||||
QtCore.QObject.connect(Receiver.get_receiver(),
|
QtCore.QObject.connect(Receiver.get_receiver(),
|
||||||
QtCore.SIGNAL(u'%s_add_service_item' % self.name),
|
QtCore.SIGNAL(u'%s_add_service_item' % self.name),
|
||||||
self.processAddServiceEvent)
|
self.processAddServiceEvent)
|
||||||
|
@ -97,16 +97,16 @@ class Ui_MainWindow(object):
|
|||||||
self.ControlSplitter.setObjectName(u'ControlSplitter')
|
self.ControlSplitter.setObjectName(u'ControlSplitter')
|
||||||
self.MainContentLayout.addWidget(self.ControlSplitter)
|
self.MainContentLayout.addWidget(self.ControlSplitter)
|
||||||
# Create slide controllers
|
# Create slide controllers
|
||||||
self.PreviewController = SlideController(self, self.settingsmanager,
|
self.previewController = SlideController(self, self.settingsmanager,
|
||||||
self.screens)
|
self.screens)
|
||||||
self.LiveController = SlideController(self, self.settingsmanager,
|
self.liveController = SlideController(self, self.settingsmanager,
|
||||||
self.screens, True)
|
self.screens, True)
|
||||||
previewVisible = QtCore.QSettings().value(
|
previewVisible = QtCore.QSettings().value(
|
||||||
u'user interface/preview panel', QtCore.QVariant(True)).toBool()
|
u'user interface/preview panel', QtCore.QVariant(True)).toBool()
|
||||||
self.PreviewController.Panel.setVisible(previewVisible)
|
self.previewController.Panel.setVisible(previewVisible)
|
||||||
liveVisible = QtCore.QSettings().value(u'user interface/live panel',
|
liveVisible = QtCore.QSettings().value(u'user interface/live panel',
|
||||||
QtCore.QVariant(True)).toBool()
|
QtCore.QVariant(True)).toBool()
|
||||||
self.LiveController.Panel.setVisible(liveVisible)
|
self.liveController.Panel.setVisible(liveVisible)
|
||||||
# Create menu
|
# Create menu
|
||||||
self.MenuBar = QtGui.QMenuBar(MainWindow)
|
self.MenuBar = QtGui.QMenuBar(MainWindow)
|
||||||
self.MenuBar.setGeometry(QtCore.QRect(0, 0, 1087, 27))
|
self.MenuBar.setGeometry(QtCore.QRect(0, 0, 1087, 27))
|
||||||
@ -362,8 +362,8 @@ class Ui_MainWindow(object):
|
|||||||
"""
|
"""
|
||||||
Splitter between the Preview and Live Controllers.
|
Splitter between the Preview and Live Controllers.
|
||||||
"""
|
"""
|
||||||
self.LiveController.widthChanged()
|
self.liveController.widthChanged()
|
||||||
self.PreviewController.widthChanged()
|
self.previewController.widthChanged()
|
||||||
|
|
||||||
def retranslateUi(self, MainWindow):
|
def retranslateUi(self, MainWindow):
|
||||||
"""
|
"""
|
||||||
@ -548,8 +548,8 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
self.recentFiles = QtCore.QStringList()
|
self.recentFiles = QtCore.QStringList()
|
||||||
# Set up the path with plugins
|
# Set up the path with plugins
|
||||||
pluginpath = AppLocation.get_directory(AppLocation.PluginsDir)
|
pluginpath = AppLocation.get_directory(AppLocation.PluginsDir)
|
||||||
self.plugin_manager = PluginManager(pluginpath)
|
self.pluginManager = PluginManager(pluginpath)
|
||||||
self.plugin_helpers = {}
|
self.pluginHelpers = {}
|
||||||
# Set up the interface
|
# Set up the interface
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
# Load settings after setupUi so default UI sizes are overwritten
|
# Load settings after setupUi so default UI sizes are overwritten
|
||||||
@ -633,33 +633,33 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
self.mediaDockManager = MediaDockManager(self.MediaToolBox)
|
self.mediaDockManager = MediaDockManager(self.MediaToolBox)
|
||||||
log.info(u'Load Plugins')
|
log.info(u'Load Plugins')
|
||||||
# make the controllers available to the plugins
|
# make the controllers available to the plugins
|
||||||
self.plugin_helpers[u'preview'] = self.PreviewController
|
self.pluginHelpers[u'preview'] = self.previewController
|
||||||
self.plugin_helpers[u'live'] = self.LiveController
|
self.pluginHelpers[u'live'] = self.liveController
|
||||||
self.plugin_helpers[u'render'] = self.renderManager
|
self.pluginHelpers[u'render'] = self.renderManager
|
||||||
self.plugin_helpers[u'service'] = self.ServiceManagerContents
|
self.pluginHelpers[u'service'] = self.ServiceManagerContents
|
||||||
self.plugin_helpers[u'settings form'] = self.settingsForm
|
self.pluginHelpers[u'settings form'] = self.settingsForm
|
||||||
self.plugin_helpers[u'toolbox'] = self.mediaDockManager
|
self.pluginHelpers[u'toolbox'] = self.mediaDockManager
|
||||||
self.plugin_helpers[u'pluginmanager'] = self.plugin_manager
|
self.pluginHelpers[u'pluginmanager'] = self.pluginManager
|
||||||
self.plugin_helpers[u'formparent'] = self
|
self.pluginHelpers[u'formparent'] = self
|
||||||
self.plugin_manager.find_plugins(pluginpath, self.plugin_helpers)
|
self.pluginManager.find_plugins(pluginpath, self.pluginHelpers)
|
||||||
# hook methods have to happen after find_plugins. Find plugins needs
|
# hook methods have to happen after find_plugins. Find plugins needs
|
||||||
# the controllers hence the hooks have moved from setupUI() to here
|
# the controllers hence the hooks have moved from setupUI() to here
|
||||||
# Find and insert settings tabs
|
# Find and insert settings tabs
|
||||||
log.info(u'hook settings')
|
log.info(u'hook settings')
|
||||||
self.plugin_manager.hook_settings_tabs(self.settingsForm)
|
self.pluginManager.hook_settings_tabs(self.settingsForm)
|
||||||
# Find and insert media manager items
|
# Find and insert media manager items
|
||||||
log.info(u'hook media')
|
log.info(u'hook media')
|
||||||
self.plugin_manager.hook_media_manager(self.mediaDockManager)
|
self.pluginManager.hook_media_manager(self.mediaDockManager)
|
||||||
# Call the hook method to pull in import menus.
|
# Call the hook method to pull in import menus.
|
||||||
log.info(u'hook menus')
|
log.info(u'hook menus')
|
||||||
self.plugin_manager.hook_import_menu(self.FileImportMenu)
|
self.pluginManager.hook_import_menu(self.FileImportMenu)
|
||||||
# Call the hook method to pull in export menus.
|
# Call the hook method to pull in export menus.
|
||||||
self.plugin_manager.hook_export_menu(self.FileExportMenu)
|
self.pluginManager.hook_export_menu(self.FileExportMenu)
|
||||||
# Call the hook method to pull in tools menus.
|
# Call the hook method to pull in tools menus.
|
||||||
self.plugin_manager.hook_tools_menu(self.ToolsMenu)
|
self.pluginManager.hook_tools_menu(self.ToolsMenu)
|
||||||
# Call the initialise method to setup plugins.
|
# Call the initialise method to setup plugins.
|
||||||
log.info(u'initialise plugins')
|
log.info(u'initialise plugins')
|
||||||
self.plugin_manager.initialise_plugins()
|
self.pluginManager.initialise_plugins()
|
||||||
# Once all components are initialised load the Themes
|
# Once all components are initialised load the Themes
|
||||||
log.info(u'Load Themes')
|
log.info(u'Load Themes')
|
||||||
self.ThemeManagerContents.loadThemes()
|
self.ThemeManagerContents.loadThemes()
|
||||||
@ -695,10 +695,10 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
Show the main form, as well as the display form
|
Show the main form, as well as the display form
|
||||||
"""
|
"""
|
||||||
QtGui.QWidget.show(self)
|
QtGui.QWidget.show(self)
|
||||||
self.LiveController.display.setup()
|
self.liveController.display.setup()
|
||||||
self.PreviewController.display.setup()
|
self.previewController.display.setup()
|
||||||
if self.LiveController.display.isVisible():
|
if self.liveController.display.isVisible():
|
||||||
self.LiveController.display.setFocus()
|
self.liveController.display.setFocus()
|
||||||
self.activateWindow()
|
self.activateWindow()
|
||||||
if QtCore.QSettings().value(
|
if QtCore.QSettings().value(
|
||||||
self.generalSettingsSection + u'/auto open',
|
self.generalSettingsSection + u'/auto open',
|
||||||
@ -723,7 +723,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
settings = QtCore.QSettings()
|
settings = QtCore.QSettings()
|
||||||
if settings.value(u'%s/screen blank' % self.generalSettingsSection,
|
if settings.value(u'%s/screen blank' % self.generalSettingsSection,
|
||||||
QtCore.QVariant(False)).toBool():
|
QtCore.QVariant(False)).toBool():
|
||||||
self.LiveController.mainDisplaySetBackground()
|
self.liveController.mainDisplaySetBackground()
|
||||||
if settings.value(u'blank warning',
|
if settings.value(u'blank warning',
|
||||||
QtCore.QVariant(False)).toBool():
|
QtCore.QVariant(False)).toBool():
|
||||||
QtGui.QMessageBox.question(self,
|
QtGui.QMessageBox.question(self,
|
||||||
@ -852,11 +852,11 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
QtCore.QVariant(self.MediaToolBox.currentIndex()))
|
QtCore.QVariant(self.MediaToolBox.currentIndex()))
|
||||||
# Call the cleanup method to shutdown plugins.
|
# Call the cleanup method to shutdown plugins.
|
||||||
log.info(u'cleanup plugins')
|
log.info(u'cleanup plugins')
|
||||||
self.plugin_manager.finalise_plugins()
|
self.pluginManager.finalise_plugins()
|
||||||
# Save settings
|
# Save settings
|
||||||
self.saveSettings()
|
self.saveSettings()
|
||||||
# Close down the display
|
# Close down the display
|
||||||
self.LiveController.display.close()
|
self.liveController.display.close()
|
||||||
|
|
||||||
def serviceChanged(self, reset=False, serviceName=None):
|
def serviceChanged(self, reset=False, serviceName=None):
|
||||||
"""
|
"""
|
||||||
@ -910,7 +910,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
True - Visible
|
True - Visible
|
||||||
False - Hidden
|
False - Hidden
|
||||||
"""
|
"""
|
||||||
self.PreviewController.Panel.setVisible(visible)
|
self.previewController.Panel.setVisible(visible)
|
||||||
QtCore.QSettings().setValue(u'user interface/preview panel',
|
QtCore.QSettings().setValue(u'user interface/preview panel',
|
||||||
QtCore.QVariant(visible))
|
QtCore.QVariant(visible))
|
||||||
self.ViewPreviewPanel.setChecked(visible)
|
self.ViewPreviewPanel.setChecked(visible)
|
||||||
@ -925,7 +925,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
True - Visible
|
True - Visible
|
||||||
False - Hidden
|
False - Hidden
|
||||||
"""
|
"""
|
||||||
self.LiveController.Panel.setVisible(visible)
|
self.liveController.Panel.setVisible(visible)
|
||||||
QtCore.QSettings().setValue(u'user interface/live panel',
|
QtCore.QSettings().setValue(u'user interface/live panel',
|
||||||
QtCore.QVariant(visible))
|
QtCore.QVariant(visible))
|
||||||
self.ViewLivePanel.setChecked(visible)
|
self.ViewLivePanel.setChecked(visible)
|
||||||
|
@ -61,7 +61,7 @@ class PluginForm(QtGui.QDialog, Ui_PluginViewDialog):
|
|||||||
self.programaticChange = True
|
self.programaticChange = True
|
||||||
self._clearDetails()
|
self._clearDetails()
|
||||||
self.programaticChange = True
|
self.programaticChange = True
|
||||||
for plugin in self.parent.plugin_manager.plugins:
|
for plugin in self.parent.pluginManager.plugins:
|
||||||
item = QtGui.QListWidgetItem(self.pluginListWidget)
|
item = QtGui.QListWidgetItem(self.pluginListWidget)
|
||||||
# We do this just to make 100% sure the status is an integer as
|
# We do this just to make 100% sure the status is an integer as
|
||||||
# sometimes when it's loaded from the config, it isn't cast to int.
|
# sometimes when it's loaded from the config, it isn't cast to int.
|
||||||
@ -110,7 +110,7 @@ class PluginForm(QtGui.QDialog, Ui_PluginViewDialog):
|
|||||||
plugin_name_plural = \
|
plugin_name_plural = \
|
||||||
self.pluginListWidget.currentItem().text().split(u' ')[0]
|
self.pluginListWidget.currentItem().text().split(u' ')[0]
|
||||||
self.activePlugin = None
|
self.activePlugin = None
|
||||||
for plugin in self.parent.plugin_manager.plugins:
|
for plugin in self.parent.pluginManager.plugins:
|
||||||
name_string = plugin.getString(StringContent.Name)
|
name_string = plugin.getString(StringContent.Name)
|
||||||
if name_string[u'plural'] == plugin_name_plural:
|
if name_string[u'plural'] == plugin_name_plural:
|
||||||
self.activePlugin = plugin
|
self.activePlugin = plugin
|
||||||
|
@ -880,7 +880,7 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
newItem.merge(item[u'service_item'])
|
newItem.merge(item[u'service_item'])
|
||||||
item[u'service_item'] = newItem
|
item[u'service_item'] = newItem
|
||||||
self.repaintServiceList(itemcount + 1, 0)
|
self.repaintServiceList(itemcount + 1, 0)
|
||||||
self.parent.LiveController.replaceServiceManagerItem(newItem)
|
self.parent.liveController.replaceServiceManagerItem(newItem)
|
||||||
self.parent.serviceChanged(False, self.serviceName)
|
self.parent.serviceChanged(False, self.serviceName)
|
||||||
|
|
||||||
def addServiceItem(self, item, rebuild=False, expand=None, replace=False):
|
def addServiceItem(self, item, rebuild=False, expand=None, replace=False):
|
||||||
@ -902,7 +902,7 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
item.merge(self.serviceItems[sitem][u'service_item'])
|
item.merge(self.serviceItems[sitem][u'service_item'])
|
||||||
self.serviceItems[sitem][u'service_item'] = item
|
self.serviceItems[sitem][u'service_item'] = item
|
||||||
self.repaintServiceList(sitem + 1, 0)
|
self.repaintServiceList(sitem + 1, 0)
|
||||||
self.parent.LiveController.replaceServiceManagerItem(item)
|
self.parent.liveController.replaceServiceManagerItem(item)
|
||||||
else:
|
else:
|
||||||
# nothing selected for dnd
|
# nothing selected for dnd
|
||||||
if self.droppos == 0:
|
if self.droppos == 0:
|
||||||
@ -923,7 +923,7 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
self.repaintServiceList(self.droppos, 0)
|
self.repaintServiceList(self.droppos, 0)
|
||||||
# if rebuilding list make sure live is fixed.
|
# if rebuilding list make sure live is fixed.
|
||||||
if rebuild:
|
if rebuild:
|
||||||
self.parent.LiveController.replaceServiceManagerItem(item)
|
self.parent.liveController.replaceServiceManagerItem(item)
|
||||||
self.droppos = 0
|
self.droppos = 0
|
||||||
self.parent.serviceChanged(False, self.serviceName)
|
self.parent.serviceChanged(False, self.serviceName)
|
||||||
|
|
||||||
@ -933,7 +933,7 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
"""
|
"""
|
||||||
item, count = self.findServiceItem()
|
item, count = self.findServiceItem()
|
||||||
if self.serviceItems[item][u'service_item'].is_valid:
|
if self.serviceItems[item][u'service_item'].is_valid:
|
||||||
self.parent.PreviewController.addServiceManagerItem(
|
self.parent.previewController.addServiceManagerItem(
|
||||||
self.serviceItems[item][u'service_item'], count)
|
self.serviceItems[item][u'service_item'], count)
|
||||||
else:
|
else:
|
||||||
QtGui.QMessageBox.critical(self,
|
QtGui.QMessageBox.critical(self,
|
||||||
@ -957,7 +957,7 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
"""
|
"""
|
||||||
item, count = self.findServiceItem()
|
item, count = self.findServiceItem()
|
||||||
if self.serviceItems[item][u'service_item'].is_valid:
|
if self.serviceItems[item][u'service_item'].is_valid:
|
||||||
self.parent.LiveController.addServiceManagerItem(
|
self.parent.liveController.addServiceManagerItem(
|
||||||
self.serviceItems[item][u'service_item'], count)
|
self.serviceItems[item][u'service_item'], count)
|
||||||
if QtCore.QSettings().value(
|
if QtCore.QSettings().value(
|
||||||
self.parent.generalSettingsSection + u'/auto preview',
|
self.parent.generalSettingsSection + u'/auto preview',
|
||||||
@ -966,9 +966,9 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
if self.serviceItems and item < len(self.serviceItems) and \
|
if self.serviceItems and item < len(self.serviceItems) and \
|
||||||
self.serviceItems[item][u'service_item'].is_capable(
|
self.serviceItems[item][u'service_item'].is_capable(
|
||||||
ItemCapabilities.AllowsPreview):
|
ItemCapabilities.AllowsPreview):
|
||||||
self.parent.PreviewController.addServiceManagerItem(
|
self.parent.previewController.addServiceManagerItem(
|
||||||
self.serviceItems[item][u'service_item'], 0)
|
self.serviceItems[item][u'service_item'], 0)
|
||||||
self.parent.LiveController.PreviewListWidget.setFocus()
|
self.parent.liveController.PreviewListWidget.setFocus()
|
||||||
else:
|
else:
|
||||||
QtGui.QMessageBox.critical(self,
|
QtGui.QMessageBox.critical(self,
|
||||||
translate('OpenLP.ServiceManager', 'Missing Display Handler'),
|
translate('OpenLP.ServiceManager', 'Missing Display Handler'),
|
||||||
|
@ -957,7 +957,7 @@ class SlideController(QtGui.QWidget):
|
|||||||
"""
|
"""
|
||||||
row = self.PreviewListWidget.currentRow()
|
row = self.PreviewListWidget.currentRow()
|
||||||
if row > -1 and row < self.PreviewListWidget.rowCount():
|
if row > -1 and row < self.PreviewListWidget.rowCount():
|
||||||
self.parent.LiveController.addServiceManagerItem(
|
self.parent.liveController.addServiceManagerItem(
|
||||||
self.serviceItem, row)
|
self.serviceItem, row)
|
||||||
|
|
||||||
def onMediaStart(self, item):
|
def onMediaStart(self, item):
|
||||||
|
@ -310,7 +310,7 @@ class ThemeManager(QtGui.QWidget):
|
|||||||
translate('OpenLP.ThemeManager',
|
translate('OpenLP.ThemeManager',
|
||||||
'You are unable to delete the default theme.'))
|
'You are unable to delete the default theme.'))
|
||||||
else:
|
else:
|
||||||
for plugin in self.parent.plugin_manager.plugins:
|
for plugin in self.parent.pluginManager.plugins:
|
||||||
if plugin.usesTheme(theme):
|
if plugin.usesTheme(theme):
|
||||||
QtGui.QMessageBox.critical(self,
|
QtGui.QMessageBox.critical(self,
|
||||||
translate('OpenLP.ThemeManager', 'Error'),
|
translate('OpenLP.ThemeManager', 'Error'),
|
||||||
@ -663,7 +663,7 @@ class ThemeManager(QtGui.QWidget):
|
|||||||
(QtGui.QMessageBox.Yes | QtGui.QMessageBox.No),
|
(QtGui.QMessageBox.Yes | QtGui.QMessageBox.No),
|
||||||
QtGui.QMessageBox.No)
|
QtGui.QMessageBox.No)
|
||||||
if self.saveThemeName != u'':
|
if self.saveThemeName != u'':
|
||||||
for plugin in self.parent.plugin_manager.plugins:
|
for plugin in self.parent.pluginManager.plugins:
|
||||||
if plugin.usesTheme(self.saveThemeName):
|
if plugin.usesTheme(self.saveThemeName):
|
||||||
plugin.renameTheme(self.saveThemeName, name)
|
plugin.renameTheme(self.saveThemeName, name)
|
||||||
if unicode(self.serviceComboBox.currentText()) == name:
|
if unicode(self.serviceComboBox.currentText()) == name:
|
||||||
|
@ -120,35 +120,55 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
|||||||
order_by_ref=Author.display_name)
|
order_by_ref=Author.display_name)
|
||||||
self.AuthorsSelectionComboItem.clear()
|
self.AuthorsSelectionComboItem.clear()
|
||||||
self.AuthorsSelectionComboItem.addItem(u'')
|
self.AuthorsSelectionComboItem.addItem(u'')
|
||||||
|
self.authors = []
|
||||||
for author in authors:
|
for author in authors:
|
||||||
row = self.AuthorsSelectionComboItem.count()
|
row = self.AuthorsSelectionComboItem.count()
|
||||||
self.AuthorsSelectionComboItem.addItem(author.display_name)
|
self.AuthorsSelectionComboItem.addItem(author.display_name)
|
||||||
self.AuthorsSelectionComboItem.setItemData(
|
self.AuthorsSelectionComboItem.setItemData(
|
||||||
row, QtCore.QVariant(author.id))
|
row, QtCore.QVariant(author.id))
|
||||||
|
self.authors.append(author.display_name)
|
||||||
|
completer = QtGui.QCompleter(self.authors)
|
||||||
|
completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive)
|
||||||
|
self.AuthorsSelectionComboItem.setCompleter(completer)
|
||||||
|
|
||||||
def loadTopics(self):
|
def loadTopics(self):
|
||||||
topics = self.manager.get_all_objects(Topic, order_by_ref=Topic.name)
|
topics = self.manager.get_all_objects(Topic, order_by_ref=Topic.name)
|
||||||
self.SongTopicCombo.clear()
|
self.SongTopicCombo.clear()
|
||||||
self.SongTopicCombo.addItem(u'')
|
self.SongTopicCombo.addItem(u'')
|
||||||
|
self.topics = []
|
||||||
for topic in topics:
|
for topic in topics:
|
||||||
row = self.SongTopicCombo.count()
|
row = self.SongTopicCombo.count()
|
||||||
self.SongTopicCombo.addItem(topic.name)
|
self.SongTopicCombo.addItem(topic.name)
|
||||||
|
self.topics.append(topic.name)
|
||||||
self.SongTopicCombo.setItemData(row, QtCore.QVariant(topic.id))
|
self.SongTopicCombo.setItemData(row, QtCore.QVariant(topic.id))
|
||||||
|
completer = QtGui.QCompleter(self.topics)
|
||||||
|
completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive)
|
||||||
|
self.SongTopicCombo.setCompleter(completer)
|
||||||
|
|
||||||
def loadBooks(self):
|
def loadBooks(self):
|
||||||
books = self.manager.get_all_objects(Book, order_by_ref=Book.name)
|
books = self.manager.get_all_objects(Book, order_by_ref=Book.name)
|
||||||
self.SongbookCombo.clear()
|
self.SongbookCombo.clear()
|
||||||
self.SongbookCombo.addItem(u'')
|
self.SongbookCombo.addItem(u'')
|
||||||
|
self.books = []
|
||||||
for book in books:
|
for book in books:
|
||||||
row = self.SongbookCombo.count()
|
row = self.SongbookCombo.count()
|
||||||
self.SongbookCombo.addItem(book.name)
|
self.SongbookCombo.addItem(book.name)
|
||||||
|
self.books.append(book.name)
|
||||||
self.SongbookCombo.setItemData(row, QtCore.QVariant(book.id))
|
self.SongbookCombo.setItemData(row, QtCore.QVariant(book.id))
|
||||||
|
completer = QtGui.QCompleter(self.books)
|
||||||
|
completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive)
|
||||||
|
self.SongbookCombo.setCompleter(completer)
|
||||||
|
|
||||||
def loadThemes(self, theme_list):
|
def loadThemes(self, theme_list):
|
||||||
self.ThemeSelectionComboItem.clear()
|
self.ThemeSelectionComboItem.clear()
|
||||||
self.ThemeSelectionComboItem.addItem(u'')
|
self.ThemeSelectionComboItem.addItem(u'')
|
||||||
|
self.themes = []
|
||||||
for theme in theme_list:
|
for theme in theme_list:
|
||||||
self.ThemeSelectionComboItem.addItem(theme)
|
self.ThemeSelectionComboItem.addItem(theme)
|
||||||
|
self.themes.append(theme)
|
||||||
|
completer = QtGui.QCompleter(self.themes)
|
||||||
|
completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive)
|
||||||
|
self.ThemeSelectionComboItem.setCompleter(completer)
|
||||||
|
|
||||||
def newSong(self):
|
def newSong(self):
|
||||||
log.debug(u'New Song')
|
log.debug(u'New Song')
|
||||||
@ -614,12 +634,29 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog):
|
|||||||
self.saveSong(True):
|
self.saveSong(True):
|
||||||
Receiver.send_message(u'songs_preview')
|
Receiver.send_message(u'songs_preview')
|
||||||
|
|
||||||
|
def clearCaches(self):
|
||||||
|
"""
|
||||||
|
Free up autocompletion memory on dialog exit
|
||||||
|
"""
|
||||||
|
self.authors = []
|
||||||
|
self.themes = []
|
||||||
|
self.books = []
|
||||||
|
self.topics = []
|
||||||
|
|
||||||
def closePressed(self):
|
def closePressed(self):
|
||||||
|
"""
|
||||||
|
Exit Dialog and do not save
|
||||||
|
"""
|
||||||
Receiver.send_message(u'songs_edit_clear')
|
Receiver.send_message(u'songs_edit_clear')
|
||||||
|
self.clearCaches()
|
||||||
self.close()
|
self.close()
|
||||||
|
|
||||||
def accept(self):
|
def accept(self):
|
||||||
|
"""
|
||||||
|
Exit Dialog and save soong if valid
|
||||||
|
"""
|
||||||
log.debug(u'accept')
|
log.debug(u'accept')
|
||||||
|
self.clearCaches()
|
||||||
if not self.song:
|
if not self.song:
|
||||||
self.song = Song()
|
self.song = Song()
|
||||||
item = int(self.SongbookCombo.currentIndex())
|
item = int(self.SongbookCombo.currentIndex())
|
||||||
|
Loading…
Reference in New Issue
Block a user