forked from openlp/openlp
Song fixes
Bug fixes to event receiver and presentations
This commit is contained in:
commit
b365090544
@ -28,7 +28,7 @@ class EventReceiver(QtCore.QObject):
|
|||||||
QtCore.QObject.__init__(self)
|
QtCore.QObject.__init__(self)
|
||||||
|
|
||||||
def send_message(self, event, msg=None):
|
def send_message(self, event, msg=None):
|
||||||
self.emit(SIGNAL(event), msg)
|
self.emit(QtCore.SIGNAL(event), msg)
|
||||||
|
|
||||||
def received(self, msg=None):
|
def received(self, msg=None):
|
||||||
print msg
|
print msg
|
||||||
|
@ -65,7 +65,6 @@ class ServiceItem():
|
|||||||
if len(self.frames) == 0 and len(self.raw_slides) > 0 :
|
if len(self.frames) == 0 and len(self.raw_slides) > 0 :
|
||||||
for slide in self.raw_slides:
|
for slide in self.raw_slides:
|
||||||
formated = self.plugin.render_manager.format_slide(slide)
|
formated = self.plugin.render_manager.format_slide(slide)
|
||||||
#print formated
|
|
||||||
for format in formated:
|
for format in formated:
|
||||||
frame = self.plugin.render_manager.generate_slide(format, self.raw_footer)
|
frame = self.plugin.render_manager.generate_slide(format, self.raw_footer)
|
||||||
self.frames.append({u'title': format, u'image': frame})
|
self.frames.append({u'title': format, u'image': frame})
|
||||||
|
@ -23,12 +23,21 @@ from PyQt4 import QtCore, QtGui
|
|||||||
from openlp.core.lib import translate
|
from openlp.core.lib import translate
|
||||||
|
|
||||||
class AboutForm(QtGui.QDialog):
|
class AboutForm(QtGui.QDialog):
|
||||||
|
"""
|
||||||
|
The About dialog
|
||||||
|
"""
|
||||||
|
|
||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None):
|
||||||
|
"""
|
||||||
|
Do some initialisation stuff
|
||||||
|
"""
|
||||||
QtGui.QDialog.__init__(self, parent)
|
QtGui.QDialog.__init__(self, parent)
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
|
|
||||||
def setupUi(self, AboutForm):
|
def setupUi(self, AboutForm):
|
||||||
|
"""
|
||||||
|
Set up user interface
|
||||||
|
"""
|
||||||
AboutForm.setObjectName(u'AboutForm')
|
AboutForm.setObjectName(u'AboutForm')
|
||||||
AboutForm.resize(470, 481)
|
AboutForm.resize(470, 481)
|
||||||
icon = QtGui.QIcon()
|
icon = QtGui.QIcon()
|
||||||
@ -41,11 +50,10 @@ class AboutForm(QtGui.QDialog):
|
|||||||
self.Logo = QtGui.QLabel(AboutForm)
|
self.Logo = QtGui.QLabel(AboutForm)
|
||||||
self.Logo.setAutoFillBackground(False)
|
self.Logo.setAutoFillBackground(False)
|
||||||
self.Logo.setStyleSheet(u'background-color: rgb(255, 255, 255);')
|
self.Logo.setStyleSheet(u'background-color: rgb(255, 255, 255);')
|
||||||
self.Logo.setFrameShape(QtGui.QFrame.StyledPanel)
|
self.Logo.setLineWidth(0)
|
||||||
self.Logo.setLineWidth(1)
|
|
||||||
self.Logo.setPixmap(QtGui.QPixmap(u':/graphics/openlp-about-logo.png'))
|
self.Logo.setPixmap(QtGui.QPixmap(u':/graphics/openlp-about-logo.png'))
|
||||||
self.Logo.setScaledContents(False)
|
self.Logo.setScaledContents(False)
|
||||||
self.Logo.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
|
self.Logo.setAlignment(QtCore.Qt.AlignCenter)
|
||||||
self.Logo.setObjectName(u'Logo')
|
self.Logo.setObjectName(u'Logo')
|
||||||
AboutFormLayout.addWidget(self.Logo)
|
AboutFormLayout.addWidget(self.Logo)
|
||||||
self.AboutNotebook = QtGui.QTabWidget(AboutForm)
|
self.AboutNotebook = QtGui.QTabWidget(AboutForm)
|
||||||
@ -60,22 +68,26 @@ class AboutForm(QtGui.QDialog):
|
|||||||
self.CopyrightLabel.setObjectName(u'CopyrightLabel')
|
self.CopyrightLabel.setObjectName(u'CopyrightLabel')
|
||||||
self.LicenseTabLayout.addWidget(self.CopyrightLabel)
|
self.LicenseTabLayout.addWidget(self.CopyrightLabel)
|
||||||
self.AboutAuthors = QtGui.QLabel(self.LicenseTab)
|
self.AboutAuthors = QtGui.QLabel(self.LicenseTab)
|
||||||
self.AboutAuthors.setAlignment(QtCore.Qt.AlignJustify|QtCore.Qt.AlignVCenter)
|
self.AboutAuthors.setAlignment(
|
||||||
|
QtCore.Qt.AlignJustify | QtCore.Qt.AlignVCenter)
|
||||||
self.AboutAuthors.setWordWrap(True)
|
self.AboutAuthors.setWordWrap(True)
|
||||||
self.AboutAuthors.setObjectName(u'AboutAuthors')
|
self.AboutAuthors.setObjectName(u'AboutAuthors')
|
||||||
self.LicenseTabLayout.addWidget(self.AboutAuthors)
|
self.LicenseTabLayout.addWidget(self.AboutAuthors)
|
||||||
self.License1Label = QtGui.QLabel(self.LicenseTab)
|
self.License1Label = QtGui.QLabel(self.LicenseTab)
|
||||||
self.License1Label.setAlignment(QtCore.Qt.AlignJustify|QtCore.Qt.AlignVCenter)
|
self.License1Label.setAlignment(
|
||||||
|
QtCore.Qt.AlignJustify | QtCore.Qt.AlignVCenter)
|
||||||
self.License1Label.setWordWrap(True)
|
self.License1Label.setWordWrap(True)
|
||||||
self.License1Label.setObjectName(u'License1Label')
|
self.License1Label.setObjectName(u'License1Label')
|
||||||
self.LicenseTabLayout.addWidget(self.License1Label)
|
self.LicenseTabLayout.addWidget(self.License1Label)
|
||||||
self.License2Label = QtGui.QLabel(self.LicenseTab)
|
self.License2Label = QtGui.QLabel(self.LicenseTab)
|
||||||
self.License2Label.setAlignment(QtCore.Qt.AlignJustify|QtCore.Qt.AlignVCenter)
|
self.License2Label.setAlignment(
|
||||||
|
QtCore.Qt.AlignJustify | QtCore.Qt.AlignVCenter)
|
||||||
self.License2Label.setWordWrap(True)
|
self.License2Label.setWordWrap(True)
|
||||||
self.License2Label.setObjectName(u'License2Label')
|
self.License2Label.setObjectName(u'License2Label')
|
||||||
self.LicenseTabLayout.addWidget(self.License2Label)
|
self.LicenseTabLayout.addWidget(self.License2Label)
|
||||||
self.License3Label = QtGui.QLabel(self.LicenseTab)
|
self.License3Label = QtGui.QLabel(self.LicenseTab)
|
||||||
self.License3Label.setAlignment(QtCore.Qt.AlignJustify|QtCore.Qt.AlignVCenter)
|
self.License3Label.setAlignment(
|
||||||
|
QtCore.Qt.AlignJustify | QtCore.Qt.AlignVCenter)
|
||||||
self.License3Label.setWordWrap(True)
|
self.License3Label.setWordWrap(True)
|
||||||
self.License3Label.setObjectName(u'License3Label')
|
self.License3Label.setObjectName(u'License3Label')
|
||||||
self.LicenseTabLayout.addWidget(self.License3Label)
|
self.LicenseTabLayout.addWidget(self.License3Label)
|
||||||
@ -83,8 +95,8 @@ class AboutForm(QtGui.QDialog):
|
|||||||
self.CreditsTab = QtGui.QWidget()
|
self.CreditsTab = QtGui.QWidget()
|
||||||
self.CreditsTab.setObjectName(u'CreditsTab')
|
self.CreditsTab.setObjectName(u'CreditsTab')
|
||||||
self.CreditsTabLayout = QtGui.QVBoxLayout(self.CreditsTab)
|
self.CreditsTabLayout = QtGui.QVBoxLayout(self.CreditsTab)
|
||||||
self.CreditsTabLayout.setSpacing(0) #
|
self.CreditsTabLayout.setSpacing(0)
|
||||||
self.CreditsTabLayout.setMargin(8) #
|
self.CreditsTabLayout.setMargin(8)
|
||||||
self.CreditsTabLayout.setObjectName(u'CreditsTabLayout')
|
self.CreditsTabLayout.setObjectName(u'CreditsTabLayout')
|
||||||
self.CreditsTextEdit = QtGui.QTextEdit(self.CreditsTab)
|
self.CreditsTextEdit = QtGui.QTextEdit(self.CreditsTab)
|
||||||
self.CreditsTextEdit.setReadOnly(True)
|
self.CreditsTextEdit.setReadOnly(True)
|
||||||
@ -98,7 +110,8 @@ class AboutForm(QtGui.QDialog):
|
|||||||
self.ButtonWidgetLayout.setSpacing(8)
|
self.ButtonWidgetLayout.setSpacing(8)
|
||||||
self.ButtonWidgetLayout.setMargin(0)
|
self.ButtonWidgetLayout.setMargin(0)
|
||||||
self.ButtonWidgetLayout.setObjectName(u'ButtonWidgetLayout')
|
self.ButtonWidgetLayout.setObjectName(u'ButtonWidgetLayout')
|
||||||
spacerItem = QtGui.QSpacerItem(275, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
|
spacerItem = QtGui.QSpacerItem(275, 20, QtGui.QSizePolicy.Expanding,
|
||||||
|
QtGui.QSizePolicy.Minimum)
|
||||||
self.ButtonWidgetLayout.addItem(spacerItem)
|
self.ButtonWidgetLayout.addItem(spacerItem)
|
||||||
self.ContributeButton = QtGui.QPushButton(self.ButtonWidget)
|
self.ContributeButton = QtGui.QPushButton(self.ButtonWidget)
|
||||||
self.ContributeButton.setObjectName(u'ContributeButton')
|
self.ContributeButton.setObjectName(u'ContributeButton')
|
||||||
@ -109,39 +122,55 @@ class AboutForm(QtGui.QDialog):
|
|||||||
AboutFormLayout.addWidget(self.ButtonWidget)
|
AboutFormLayout.addWidget(self.ButtonWidget)
|
||||||
self.extContributeItem = QtGui.QAction(AboutForm)
|
self.extContributeItem = QtGui.QAction(AboutForm)
|
||||||
self.extContributeItem.setObjectName(u'extContributeItem')
|
self.extContributeItem.setObjectName(u'extContributeItem')
|
||||||
|
# Do translation
|
||||||
self.retranslateUi(AboutForm)
|
self.retranslateUi(AboutForm)
|
||||||
self.AboutNotebook.setCurrentIndex(0)
|
self.AboutNotebook.setCurrentIndex(0)
|
||||||
QtCore.QObject.connect(self.CloseButton, QtCore.SIGNAL(u'clicked()'), AboutForm.close)
|
QtCore.QObject.connect(self.CloseButton, QtCore.SIGNAL(u'clicked()'),
|
||||||
|
AboutForm.close)
|
||||||
|
QtCore.QObject.connect(self.ContributeButton,
|
||||||
|
QtCore.SIGNAL(u'clicked()'), self.onContributeButtonClicked)
|
||||||
QtCore.QMetaObject.connectSlotsByName(AboutForm)
|
QtCore.QMetaObject.connectSlotsByName(AboutForm)
|
||||||
|
|
||||||
QtCore.QObject.connect(self.ContributeButton, QtCore.SIGNAL(u'clicked()'), self.onContributeButtonClicked)
|
|
||||||
|
|
||||||
def retranslateUi(self, AboutForm):
|
def retranslateUi(self, AboutForm):
|
||||||
AboutForm.setWindowTitle(translate(u'AboutDialog', u'About openlp.org',))
|
"""
|
||||||
self.CopyrightLabel.setText(translate(u'AboutDialog', u'Copyright (c) 2004-2009 openlp.org Foundation'))
|
Set up translation
|
||||||
self.AboutAuthors.setText(translate(u'AboutDialog', u'openlp.org is written and maintained by volunteers. If you would like to see more free Christian software being written, please consider contributing by using the button below.'))
|
"""
|
||||||
self.License1Label.setText(translate(u'AboutDialog', u'This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.'))
|
AboutForm.setWindowTitle(translate(u'AboutDialog', u'About openlp.org'))
|
||||||
self.License2Label.setText(translate(u'AboutDialog', u'You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.'))
|
self.CopyrightLabel.setText(translate(u'AboutDialog',
|
||||||
self.License3Label.setText(translate(u'AboutDialog', u'This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.'))
|
u'Copyright (c) 2004-2009 openlp.org Foundation'))
|
||||||
self.AboutNotebook.setTabText(self.AboutNotebook.indexOf(self.LicenseTab), translate(u'AboutDialog', u'License'))
|
self.AboutAuthors.setText(translate(u'AboutDialog',
|
||||||
|
u'openlp.org is written and maintained by volunteers. If you would like to see more free Christian software being written, please consider contributing by using the button below.'))
|
||||||
|
self.License1Label.setText(translate(u'AboutDialog',
|
||||||
|
u'This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.'))
|
||||||
|
self.License2Label.setText(translate(u'AboutDialog',
|
||||||
|
u'You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.'))
|
||||||
|
self.License3Label.setText(translate(u'AboutDialog',
|
||||||
|
u'This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.'))
|
||||||
|
self.AboutNotebook.setTabText(
|
||||||
|
self.AboutNotebook.indexOf(self.LicenseTab),
|
||||||
|
translate(u'AboutDialog', u'License'))
|
||||||
self.CreditsTextEdit.setPlainText(translate(u'AboutDialog',
|
self.CreditsTextEdit.setPlainText(translate(u'AboutDialog',
|
||||||
u'Project Lead\n'
|
u'Project Lead\n'
|
||||||
u' Raoul \"superfly\" Snyman\n'
|
u' Raoul \"superfly\" Snyman\n'
|
||||||
u'\n'
|
u'\n'
|
||||||
u'Developers\n'
|
u'Developers\n'
|
||||||
u' Tim \"TRB143\" Bentley\n'
|
u' Tim \"TRB143\" Bentley\n'
|
||||||
u' Jonathan \"gushie\" Corwin\n'
|
u' Jonathan \"gushie\" Corwin\n'
|
||||||
u' Scott \"sguerrieri\" Guerrieri\n'
|
u' Scott \"sguerrieri\" Guerrieri\n'
|
||||||
u' Raoul \"superfly\" Snyman\n'
|
u' Raoul \"superfly\" Snyman\n'
|
||||||
u' Martin \"mijiti\" Thompson\n'
|
u' Martin \"mijiti\" Thompson\n'
|
||||||
u' Carsten \"catini\" Tingaard'))
|
u' Carsten \"catini\" Tingaard'))
|
||||||
self.AboutNotebook.setTabText(self.AboutNotebook.indexOf(self.CreditsTab), translate(u'AboutDialog', u'Credits'))
|
self.AboutNotebook.setTabText(
|
||||||
|
self.AboutNotebook.indexOf(self.CreditsTab),
|
||||||
|
translate(u'AboutDialog', u'Credits'))
|
||||||
self.ContributeButton.setText(translate(u'AboutDialog', u'Contribute'))
|
self.ContributeButton.setText(translate(u'AboutDialog', u'Contribute'))
|
||||||
self.CloseButton.setText(translate(u'AboutDialog', u'Close'))
|
self.CloseButton.setText(translate(u'AboutDialog', u'Close'))
|
||||||
self.extContributeItem.setText(translate(u'AboutDialog', u'&Contribute'))
|
self.extContributeItem.setText(translate(u'AboutDialog', u'&Contribute'))
|
||||||
|
|
||||||
def onContributeButtonClicked(self):
|
def onContributeButtonClicked(self):
|
||||||
|
"""
|
||||||
|
Launch a web browser and go to the contribute page on the site.
|
||||||
|
"""
|
||||||
import webbrowser
|
import webbrowser
|
||||||
url = "http://www.openlp.org/en/documentation/introduction/contributing.html"
|
url = "http://www.openlp.org/en/documentation/introduction/contributing.html"
|
||||||
webbrowser.open_new(url)
|
webbrowser.open_new(url)
|
||||||
|
@ -19,22 +19,28 @@ Place, Suite 330, Boston, MA 02111-1307 USA
|
|||||||
"""
|
"""
|
||||||
import os
|
import os
|
||||||
import logging
|
import logging
|
||||||
from time import sleep
|
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
|
||||||
from openlp.core.ui import AboutForm, SettingsForm, AlertForm, \
|
from openlp.core.ui import AboutForm, SettingsForm, AlertForm, ServiceManager, \
|
||||||
SlideController, ServiceManager, ThemeManager, MainDisplay
|
ThemeManager, MainDisplay, SlideController
|
||||||
from openlp.core.lib import Plugin, MediaManagerItem, SettingsTab, EventManager, RenderManager, translate
|
from openlp.core.lib import translate, Plugin, MediaManagerItem, SettingsTab, \
|
||||||
|
EventManager, RenderManager
|
||||||
from openlp.core import PluginManager
|
from openlp.core import PluginManager
|
||||||
|
|
||||||
class MainWindow(object):
|
class MainWindow(object):
|
||||||
|
"""
|
||||||
|
The main window.
|
||||||
|
"""
|
||||||
global log
|
global log
|
||||||
log = logging.getLogger(u'MainWindow')
|
log = logging.getLogger(u'MainWindow')
|
||||||
log.info(u'MainWindow loaded')
|
log.info(u'MainWindow loaded')
|
||||||
|
|
||||||
def __init__(self, screens):
|
def __init__(self, screens):
|
||||||
|
"""
|
||||||
|
This constructor sets up the interface, the various managers, and the
|
||||||
|
plugins.
|
||||||
|
"""
|
||||||
self.mainWindow = QtGui.QMainWindow()
|
self.mainWindow = QtGui.QMainWindow()
|
||||||
self.mainWindow.__class__.closeEvent = self.onCloseEvent
|
self.mainWindow.__class__.closeEvent = self.onCloseEvent
|
||||||
self.mainDisplay = MainDisplay(None, screens)
|
self.mainDisplay = MainDisplay(None, screens)
|
||||||
@ -43,19 +49,18 @@ class MainWindow(object):
|
|||||||
self.alertForm = AlertForm(self)
|
self.alertForm = AlertForm(self)
|
||||||
self.aboutForm = AboutForm()
|
self.aboutForm = AboutForm()
|
||||||
self.settingsForm = SettingsForm(self.screenList, self)
|
self.settingsForm = SettingsForm(self.screenList, self)
|
||||||
|
# Set up the path with plugins
|
||||||
pluginpath = os.path.split(os.path.abspath(__file__))[0]
|
pluginpath = os.path.split(os.path.abspath(__file__))[0]
|
||||||
pluginpath = os.path.abspath(os.path.join(pluginpath, u'..', u'..', u'plugins'))
|
pluginpath = os.path.abspath(
|
||||||
|
os.path.join(pluginpath, u'..', u'..', u'plugins'))
|
||||||
self.plugin_manager = PluginManager(pluginpath)
|
self.plugin_manager = PluginManager(pluginpath)
|
||||||
self.plugin_helpers = {}
|
self.plugin_helpers = {}
|
||||||
|
# Set up the interface
|
||||||
self.setupUi()
|
self.setupUi()
|
||||||
|
|
||||||
#warning cyclic dependency
|
#warning cyclic dependency
|
||||||
#RenderManager needs to call ThemeManager and
|
#RenderManager needs to call ThemeManager and
|
||||||
#ThemeManager needs to call RenderManager
|
#ThemeManager needs to call RenderManager
|
||||||
self.RenderManager = RenderManager(self.ThemeManagerContents, self.screenList)
|
self.RenderManager = RenderManager(self.ThemeManagerContents, self.screenList)
|
||||||
|
|
||||||
log.info(u'Load Plugins')
|
log.info(u'Load Plugins')
|
||||||
self.plugin_helpers[u'preview'] = self.PreviewController
|
self.plugin_helpers[u'preview'] = self.PreviewController
|
||||||
self.plugin_helpers[u'live'] = self.LiveController
|
self.plugin_helpers[u'live'] = self.LiveController
|
||||||
@ -63,60 +68,54 @@ class MainWindow(object):
|
|||||||
self.plugin_helpers[u'theme'] = self.ThemeManagerContents
|
self.plugin_helpers[u'theme'] = self.ThemeManagerContents
|
||||||
self.plugin_helpers[u'render'] = self.RenderManager
|
self.plugin_helpers[u'render'] = self.RenderManager
|
||||||
self.plugin_helpers[u'service'] = self.ServiceManagerContents
|
self.plugin_helpers[u'service'] = self.ServiceManagerContents
|
||||||
|
self.plugin_manager.find_plugins(pluginpath, self.plugin_helpers,
|
||||||
self.plugin_manager.find_plugins(pluginpath, self.plugin_helpers, self.EventManager)
|
self.EventManager)
|
||||||
# hook methods have to happen after find_plugins. Find plugins needs the controllers
|
# hook methods have to happen after find_plugins. Find plugins needs the
|
||||||
# hence the hooks have moved from setupUI() to here
|
# controllershence the hooks have moved from setupUI() to here
|
||||||
|
|
||||||
# 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.MediaToolBox)
|
self.plugin_manager.hook_media_manager(self.MediaToolBox)
|
||||||
|
|
||||||
# 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.plugin_manager.hook_settings_tabs(self.settingsForm)
|
||||||
|
|
||||||
# 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.plugin_manager.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.plugin_manager.hook_export_menu(self.FileExportMenu)
|
||||||
|
|
||||||
# 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.plugin_manager.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()
|
||||||
|
|
||||||
def onCloseEvent(self, event):
|
|
||||||
"""
|
|
||||||
Hook to close the main window and display windows on exit
|
|
||||||
"""
|
|
||||||
self.mainDisplay.close()
|
|
||||||
event.accept()
|
|
||||||
|
|
||||||
def setupUi(self):
|
def setupUi(self):
|
||||||
|
"""
|
||||||
|
Set up the user interface
|
||||||
|
"""
|
||||||
self.mainWindow.setObjectName(u'mainWindow')
|
self.mainWindow.setObjectName(u'mainWindow')
|
||||||
self.mainWindow.resize(1087, 847)
|
self.mainWindow.resize(1087, 847)
|
||||||
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
|
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
|
||||||
QtGui.QSizePolicy.Expanding)
|
QtGui.QSizePolicy.Expanding)
|
||||||
sizePolicy.setHorizontalStretch(0)
|
sizePolicy.setHorizontalStretch(0)
|
||||||
sizePolicy.setVerticalStretch(0)
|
sizePolicy.setVerticalStretch(0)
|
||||||
sizePolicy.setHeightForWidth(self.mainWindow.sizePolicy().hasHeightForWidth())
|
sizePolicy.setHeightForWidth(
|
||||||
|
self.mainWindow.sizePolicy().hasHeightForWidth())
|
||||||
self.mainWindow.setSizePolicy(sizePolicy)
|
self.mainWindow.setSizePolicy(sizePolicy)
|
||||||
main_icon = QtGui.QIcon()
|
main_icon = QtGui.QIcon()
|
||||||
main_icon.addPixmap(QtGui.QPixmap(u':/icon/openlp-logo-16x16.png'),
|
main_icon.addPixmap(QtGui.QPixmap(u':/icon/openlp-logo-16x16.png'),
|
||||||
QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||||
self.mainWindow.setWindowIcon(main_icon)
|
self.mainWindow.setWindowIcon(main_icon)
|
||||||
|
# Set up the main container, which contains all the other form widgets
|
||||||
self.MainContent = QtGui.QWidget(self.mainWindow)
|
self.MainContent = QtGui.QWidget(self.mainWindow)
|
||||||
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
|
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
|
||||||
|
QtGui.QSizePolicy.Expanding)
|
||||||
sizePolicy.setHorizontalStretch(0)
|
sizePolicy.setHorizontalStretch(0)
|
||||||
sizePolicy.setVerticalStretch(0)
|
sizePolicy.setVerticalStretch(0)
|
||||||
sizePolicy.setHeightForWidth(self.MainContent.sizePolicy().hasHeightForWidth())
|
sizePolicy.setHeightForWidth(
|
||||||
|
self.MainContent.sizePolicy().hasHeightForWidth())
|
||||||
self.MainContent.setSizePolicy(sizePolicy)
|
self.MainContent.setSizePolicy(sizePolicy)
|
||||||
self.MainContent.setObjectName(u'MainContent')
|
self.MainContent.setObjectName(u'MainContent')
|
||||||
self.MainContentLayout = QtGui.QHBoxLayout(self.MainContent)
|
self.MainContentLayout = QtGui.QHBoxLayout(self.MainContent)
|
||||||
@ -128,10 +127,10 @@ class MainWindow(object):
|
|||||||
self.ControlSplitter.setOrientation(QtCore.Qt.Horizontal)
|
self.ControlSplitter.setOrientation(QtCore.Qt.Horizontal)
|
||||||
self.ControlSplitter.setObjectName(u'ControlSplitter')
|
self.ControlSplitter.setObjectName(u'ControlSplitter')
|
||||||
self.MainContentLayout.addWidget(self.ControlSplitter)
|
self.MainContentLayout.addWidget(self.ControlSplitter)
|
||||||
|
# Create slide controllers
|
||||||
self.PreviewController = SlideController( self.ControlSplitter, self, False)
|
self.PreviewController = SlideController(self.ControlSplitter, self)
|
||||||
self.LiveController = SlideController(self.ControlSplitter, self, True)
|
self.LiveController = SlideController(self.ControlSplitter, self, True)
|
||||||
|
# Create menu
|
||||||
self.MenuBar = QtGui.QMenuBar(self.mainWindow)
|
self.MenuBar = QtGui.QMenuBar(self.mainWindow)
|
||||||
self.MenuBar.setGeometry(QtCore.QRect(0, 0, 1087, 27))
|
self.MenuBar.setGeometry(QtCore.QRect(0, 0, 1087, 27))
|
||||||
self.MenuBar.setObjectName(u'MenuBar')
|
self.MenuBar.setObjectName(u'MenuBar')
|
||||||
@ -139,7 +138,6 @@ class MainWindow(object):
|
|||||||
self.FileMenu.setObjectName(u'FileMenu')
|
self.FileMenu.setObjectName(u'FileMenu')
|
||||||
self.FileImportMenu = QtGui.QMenu(self.FileMenu)
|
self.FileImportMenu = QtGui.QMenu(self.FileMenu)
|
||||||
self.FileImportMenu.setObjectName(u'FileImportMenu')
|
self.FileImportMenu.setObjectName(u'FileImportMenu')
|
||||||
|
|
||||||
self.FileExportMenu = QtGui.QMenu(self.FileMenu)
|
self.FileExportMenu = QtGui.QMenu(self.FileMenu)
|
||||||
self.FileExportMenu.setObjectName(u'FileExportMenu')
|
self.FileExportMenu.setObjectName(u'FileExportMenu')
|
||||||
self.OptionsMenu = QtGui.QMenu(self.MenuBar)
|
self.OptionsMenu = QtGui.QMenu(self.MenuBar)
|
||||||
@ -158,65 +156,55 @@ class MainWindow(object):
|
|||||||
self.StatusBar = QtGui.QStatusBar(self.mainWindow)
|
self.StatusBar = QtGui.QStatusBar(self.mainWindow)
|
||||||
self.StatusBar.setObjectName(u'StatusBar')
|
self.StatusBar.setObjectName(u'StatusBar')
|
||||||
self.mainWindow.setStatusBar(self.StatusBar)
|
self.mainWindow.setStatusBar(self.StatusBar)
|
||||||
|
# Create the MediaManager
|
||||||
self.MediaManagerDock = QtGui.QDockWidget(self.mainWindow)
|
self.MediaManagerDock = QtGui.QDockWidget(self.mainWindow)
|
||||||
#MmSizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
|
|
||||||
#MmSizePolicy.setHorizontalStretch(0)
|
|
||||||
#MmSizePolicy.setVerticalStretch(0)
|
|
||||||
#MmSizePolicy.setHeightForWidth(self.MediaManagerDock.sizePolicy().hasHeightForWidth())
|
|
||||||
#self.MediaManagerDock.setSizePolicy(MmSizePolicy)
|
|
||||||
icon = QtGui.QIcon()
|
icon = QtGui.QIcon()
|
||||||
icon.addPixmap(QtGui.QPixmap(u':/system/system_mediamanager.png'),
|
icon.addPixmap(QtGui.QPixmap(u':/system/system_mediamanager.png'),
|
||||||
QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||||
|
|
||||||
self.MediaManagerDock.setWindowIcon(icon)
|
self.MediaManagerDock.setWindowIcon(icon)
|
||||||
self.MediaManagerDock.setFloating(False)
|
self.MediaManagerDock.setFloating(False)
|
||||||
self.MediaManagerDock.setObjectName(u'MediaManagerDock')
|
self.MediaManagerDock.setObjectName(u'MediaManagerDock')
|
||||||
self.MediaManagerDock.setMinimumWidth(250)
|
self.MediaManagerDock.setMinimumWidth(300)
|
||||||
self.MediaManagerContents = QtGui.QWidget()
|
self.MediaManagerContents = QtGui.QWidget()
|
||||||
#sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
|
|
||||||
#sizePolicy.setHorizontalStretch(0)
|
|
||||||
#sizePolicy.setVerticalStretch(0)
|
|
||||||
#sizePolicy.setHeightForWidth(self.MediaManagerContents.sizePolicy().hasHeightForWidth())
|
|
||||||
#self.MediaManagerContents.setSizePolicy(sizePolicy)
|
|
||||||
self.MediaManagerContents.setObjectName(u'MediaManagerContents')
|
self.MediaManagerContents.setObjectName(u'MediaManagerContents')
|
||||||
self.MediaManagerLayout = QtGui.QHBoxLayout(self.MediaManagerContents)
|
self.MediaManagerLayout = QtGui.QHBoxLayout(self.MediaManagerContents)
|
||||||
self.MediaManagerLayout.setContentsMargins(0, 2, 0, 0)
|
self.MediaManagerLayout.setContentsMargins(0, 2, 0, 0)
|
||||||
self.MediaManagerLayout.setObjectName(u'MediaManagerLayout')
|
self.MediaManagerLayout.setObjectName(u'MediaManagerLayout')
|
||||||
self.MediaToolBox = QtGui.QToolBox(self.MediaManagerContents)
|
self.MediaToolBox = QtGui.QToolBox(self.MediaManagerContents)
|
||||||
self.MediaToolBox.setObjectName(u'MediaToolBox')
|
self.MediaToolBox.setObjectName(u'MediaToolBox')
|
||||||
|
|
||||||
self.MediaManagerLayout.addWidget(self.MediaToolBox)
|
self.MediaManagerLayout.addWidget(self.MediaToolBox)
|
||||||
self.MediaManagerDock.setWidget(self.MediaManagerContents)
|
self.MediaManagerDock.setWidget(self.MediaManagerContents)
|
||||||
self.mainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(1), self.MediaManagerDock)
|
self.mainWindow.addDockWidget(
|
||||||
|
QtCore.Qt.DockWidgetArea(1), self.MediaManagerDock)
|
||||||
#Sevice Manager Defined
|
# Create the service manager
|
||||||
self.ServiceManagerDock = QtGui.QDockWidget(self.mainWindow)
|
self.ServiceManagerDock = QtGui.QDockWidget(self.mainWindow)
|
||||||
ServiceManagerIcon = QtGui.QIcon()
|
ServiceManagerIcon = QtGui.QIcon()
|
||||||
ServiceManagerIcon.addPixmap(QtGui.QPixmap(u':/system/system_servicemanager.png'),
|
ServiceManagerIcon.addPixmap(
|
||||||
|
QtGui.QPixmap(u':/system/system_servicemanager.png'),
|
||||||
QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||||
self.ServiceManagerDock.setWindowIcon(ServiceManagerIcon)
|
self.ServiceManagerDock.setWindowIcon(ServiceManagerIcon)
|
||||||
self.ServiceManagerDock.setFeatures(QtGui.QDockWidget.AllDockWidgetFeatures)
|
self.ServiceManagerDock.setFeatures(
|
||||||
|
QtGui.QDockWidget.AllDockWidgetFeatures)
|
||||||
self.ServiceManagerDock.setObjectName(u'ServiceManagerDock')
|
self.ServiceManagerDock.setObjectName(u'ServiceManagerDock')
|
||||||
|
self.ServiceManagerDock.setMinimumWidth(300)
|
||||||
self.ServiceManagerContents = ServiceManager(self)
|
self.ServiceManagerContents = ServiceManager(self)
|
||||||
self.ServiceManagerDock.setWidget(self.ServiceManagerContents)
|
self.ServiceManagerDock.setWidget(self.ServiceManagerContents)
|
||||||
self.mainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(2), self.ServiceManagerDock)
|
self.mainWindow.addDockWidget(
|
||||||
|
QtCore.Qt.DockWidgetArea(2), self.ServiceManagerDock)
|
||||||
#Theme Manager Defined
|
# Create the theme manager
|
||||||
self.ThemeManagerDock = QtGui.QDockWidget(self.mainWindow)
|
self.ThemeManagerDock = QtGui.QDockWidget(self.mainWindow)
|
||||||
ThemeManagerIcon = QtGui.QIcon()
|
ThemeManagerIcon = QtGui.QIcon()
|
||||||
ThemeManagerIcon.addPixmap(QtGui.QPixmap(u':/system/system_thememanager.png'),
|
ThemeManagerIcon.addPixmap(
|
||||||
|
QtGui.QPixmap(u':/system/system_thememanager.png'),
|
||||||
QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
||||||
self.ThemeManagerDock.setWindowIcon(ThemeManagerIcon)
|
self.ThemeManagerDock.setWindowIcon(ThemeManagerIcon)
|
||||||
self.ThemeManagerDock.setFloating(False)
|
self.ThemeManagerDock.setFloating(False)
|
||||||
self.ThemeManagerDock.setObjectName(u'ThemeManagerDock')
|
self.ThemeManagerDock.setObjectName(u'ThemeManagerDock')
|
||||||
|
|
||||||
self.ThemeManagerContents = ThemeManager(self)
|
self.ThemeManagerContents = ThemeManager(self)
|
||||||
|
|
||||||
self.ThemeManagerDock.setWidget(self.ThemeManagerContents)
|
self.ThemeManagerDock.setWidget(self.ThemeManagerContents)
|
||||||
self.mainWindow.addDockWidget(QtCore.Qt.DockWidgetArea(2), self.ThemeManagerDock)
|
self.mainWindow.addDockWidget(
|
||||||
|
QtCore.Qt.DockWidgetArea(2), self.ThemeManagerDock)
|
||||||
#Menu Items define
|
# Create the menu items
|
||||||
self.FileNewItem = QtGui.QAction(self.mainWindow)
|
self.FileNewItem = QtGui.QAction(self.mainWindow)
|
||||||
self.FileNewItem.setIcon(
|
self.FileNewItem.setIcon(
|
||||||
self.ServiceManagerContents.Toolbar.getIconFromTitle(u'New Service'))
|
self.ServiceManagerContents.Toolbar.getIconFromTitle(u'New Service'))
|
||||||
@ -346,9 +334,10 @@ class MainWindow(object):
|
|||||||
self.MenuBar.addAction(self.OptionsMenu.menuAction())
|
self.MenuBar.addAction(self.OptionsMenu.menuAction())
|
||||||
self.MenuBar.addAction(self.ToolsMenu.menuAction())
|
self.MenuBar.addAction(self.ToolsMenu.menuAction())
|
||||||
self.MenuBar.addAction(self.HelpMenu.menuAction())
|
self.MenuBar.addAction(self.HelpMenu.menuAction())
|
||||||
|
# Initialise the translation
|
||||||
self.retranslateUi()
|
self.retranslateUi()
|
||||||
self.MediaToolBox.setCurrentIndex(0)
|
self.MediaToolBox.setCurrentIndex(0)
|
||||||
|
# Connect up some signals and slots
|
||||||
QtCore.QObject.connect(self.FileExitItem,
|
QtCore.QObject.connect(self.FileExitItem,
|
||||||
QtCore.SIGNAL(u'triggered()'), self.mainWindow.close)
|
QtCore.SIGNAL(u'triggered()'), self.mainWindow.close)
|
||||||
QtCore.QObject.connect(self.ViewMediaManagerItem,
|
QtCore.QObject.connect(self.ViewMediaManagerItem,
|
||||||
@ -373,9 +362,11 @@ class MainWindow(object):
|
|||||||
QtCore.SIGNAL(u'triggered()'), self.onOptionsSettingsItemClicked)
|
QtCore.SIGNAL(u'triggered()'), self.onOptionsSettingsItemClicked)
|
||||||
QtCore.QMetaObject.connectSlotsByName(self.mainWindow)
|
QtCore.QMetaObject.connectSlotsByName(self.mainWindow)
|
||||||
|
|
||||||
|
|
||||||
def retranslateUi(self):
|
def retranslateUi(self):
|
||||||
self.mainWindow.setWindowTitle(translate(u'mainWindow', u'openlp.org 2.0'))
|
"""
|
||||||
|
Set up the translation system
|
||||||
|
"""
|
||||||
|
self.mainWindow.setWindowTitle(translate(u'mainWindow', u'OpenLP 2.0'))
|
||||||
self.FileMenu.setTitle(translate(u'mainWindow', u'&File'))
|
self.FileMenu.setTitle(translate(u'mainWindow', u'&File'))
|
||||||
self.FileImportMenu.setTitle(translate(u'mainWindow', u'&Import'))
|
self.FileImportMenu.setTitle(translate(u'mainWindow', u'&Import'))
|
||||||
self.FileExportMenu.setTitle(translate(u'mainWindow', u'&Export'))
|
self.FileExportMenu.setTitle(translate(u'mainWindow', u'&Export'))
|
||||||
@ -385,27 +376,35 @@ class MainWindow(object):
|
|||||||
self.OptionsLanguageMenu.setTitle(translate(u'mainWindow', u'&Language'))
|
self.OptionsLanguageMenu.setTitle(translate(u'mainWindow', u'&Language'))
|
||||||
self.ToolsMenu.setTitle(translate(u'mainWindow', u'&Tools'))
|
self.ToolsMenu.setTitle(translate(u'mainWindow', u'&Tools'))
|
||||||
self.HelpMenu.setTitle(translate(u'mainWindow', u'&Help'))
|
self.HelpMenu.setTitle(translate(u'mainWindow', u'&Help'))
|
||||||
self.MediaManagerDock.setWindowTitle(translate(u'mainWindow', u'Media Manager'))
|
self.MediaManagerDock.setWindowTitle(
|
||||||
self.ServiceManagerDock.setWindowTitle(translate(u'mainWindow', u'Service Manager'))
|
translate(u'mainWindow', u'Media Manager'))
|
||||||
self.ThemeManagerDock.setWindowTitle(translate(u'mainWindow', u'Theme Manager'))
|
self.ServiceManagerDock.setWindowTitle(
|
||||||
|
translate(u'mainWindow', u'Service Manager'))
|
||||||
|
self.ThemeManagerDock.setWindowTitle(
|
||||||
|
translate(u'mainWindow', u'Theme Manager'))
|
||||||
self.FileNewItem.setText(translate(u'mainWindow', u'&New'))
|
self.FileNewItem.setText(translate(u'mainWindow', u'&New'))
|
||||||
self.FileNewItem.setToolTip(translate(u'mainWindow', u'New Service'))
|
self.FileNewItem.setToolTip(translate(u'mainWindow', u'New Service'))
|
||||||
self.FileNewItem.setStatusTip(translate(u'mainWindow', u'Create a new Service'))
|
self.FileNewItem.setStatusTip(
|
||||||
|
translate(u'mainWindow', u'Create a new Service'))
|
||||||
self.FileNewItem.setShortcut(translate(u'mainWindow', u'Ctrl+N'))
|
self.FileNewItem.setShortcut(translate(u'mainWindow', u'Ctrl+N'))
|
||||||
self.FileOpenItem.setText(translate(u'mainWindow', u'&Open'))
|
self.FileOpenItem.setText(translate(u'mainWindow', u'&Open'))
|
||||||
self.FileOpenItem.setToolTip(translate(u'mainWindow', u'Open Service'))
|
self.FileOpenItem.setToolTip(translate(u'mainWindow', u'Open Service'))
|
||||||
self.FileOpenItem.setStatusTip(translate(u'mainWindow', u'Open an existing service'))
|
self.FileOpenItem.setStatusTip(
|
||||||
|
translate(u'mainWindow', u'Open an existing service'))
|
||||||
self.FileOpenItem.setShortcut(translate(u'mainWindow', u'Ctrl+O'))
|
self.FileOpenItem.setShortcut(translate(u'mainWindow', u'Ctrl+O'))
|
||||||
self.FileSaveItem.setText(translate(u'mainWindow', u'&Save'))
|
self.FileSaveItem.setText(translate(u'mainWindow', u'&Save'))
|
||||||
self.FileSaveItem.setToolTip(translate(u'mainWindow', u'Save Service'))
|
self.FileSaveItem.setToolTip(translate(u'mainWindow', u'Save Service'))
|
||||||
self.FileSaveItem.setStatusTip(translate(u'mainWindow', u'Save the current service to disk'))
|
self.FileSaveItem.setStatusTip(
|
||||||
|
translate(u'mainWindow', u'Save the current service to disk'))
|
||||||
self.FileSaveItem.setShortcut(translate(u'mainWindow', u'Ctrl+S'))
|
self.FileSaveItem.setShortcut(translate(u'mainWindow', u'Ctrl+S'))
|
||||||
self.FileSaveAsItem.setText(translate(u'mainWindow', u'Save &As...'))
|
self.FileSaveAsItem.setText(translate(u'mainWindow', u'Save &As...'))
|
||||||
self.FileSaveAsItem.setToolTip(translate(u'mainWindow', u'Save Service As'))
|
self.FileSaveAsItem.setToolTip(
|
||||||
self.FileSaveAsItem.setStatusTip(translate(u'mainWindow', u'Save the current service under a new name'))
|
translate(u'mainWindow', u'Save Service As'))
|
||||||
|
self.FileSaveAsItem.setStatusTip(translate(u'mainWindow',
|
||||||
|
u'Save the current service under a new name'))
|
||||||
self.FileSaveAsItem.setShortcut(translate(u'mainWindow', u'F12'))
|
self.FileSaveAsItem.setShortcut(translate(u'mainWindow', u'F12'))
|
||||||
self.FileExitItem.setText(translate(u'mainWindow', u'E&xit'))
|
self.FileExitItem.setText(translate(u'mainWindow', u'E&xit'))
|
||||||
self.FileExitItem.setStatusTip(translate(u'mainWindow', u'Quit OpenLP 2.0'))
|
self.FileExitItem.setStatusTip(translate(u'mainWindow', u'Quit OpenLP'))
|
||||||
self.FileExitItem.setShortcut(translate(u'mainWindow', u'Alt+F4'))
|
self.FileExitItem.setShortcut(translate(u'mainWindow', u'Alt+F4'))
|
||||||
self.ImportThemeItem.setText(translate(u'mainWindow', u'&Theme'))
|
self.ImportThemeItem.setText(translate(u'mainWindow', u'&Theme'))
|
||||||
self.ImportLanguageItem.setText(translate(u'mainWindow', u'&Language'))
|
self.ImportLanguageItem.setText(translate(u'mainWindow', u'&Language'))
|
||||||
@ -413,46 +412,83 @@ class MainWindow(object):
|
|||||||
self.ExportLanguageItem.setText(translate(u'mainWindow', u'&Language'))
|
self.ExportLanguageItem.setText(translate(u'mainWindow', u'&Language'))
|
||||||
self.actionLook_Feel.setText(translate(u'mainWindow', u'Look && &Feel'))
|
self.actionLook_Feel.setText(translate(u'mainWindow', u'Look && &Feel'))
|
||||||
self.OptionsSettingsItem.setText(translate(u'mainWindow', u'&Settings'))
|
self.OptionsSettingsItem.setText(translate(u'mainWindow', u'&Settings'))
|
||||||
self.ViewMediaManagerItem.setText(translate(u'mainWindow', u'&Media Manager'))
|
self.ViewMediaManagerItem.setText(
|
||||||
self.ViewMediaManagerItem.setToolTip(translate(u'mainWindow', u'Toggle Media Manager'))
|
translate(u'mainWindow', u'&Media Manager'))
|
||||||
self.ViewMediaManagerItem.setStatusTip(translate(u'mainWindow', u'Toggle the visibility of the Media Manager'))
|
self.ViewMediaManagerItem.setToolTip(
|
||||||
|
translate(u'mainWindow', u'Toggle Media Manager'))
|
||||||
|
self.ViewMediaManagerItem.setStatusTip(translate(u'mainWindow',
|
||||||
|
u'Toggle the visibility of the Media Manager'))
|
||||||
self.ViewMediaManagerItem.setShortcut(translate(u'mainWindow', u'F8'))
|
self.ViewMediaManagerItem.setShortcut(translate(u'mainWindow', u'F8'))
|
||||||
self.ViewThemeManagerItem.setText(translate(u'mainWindow', u'&Theme Manager'))
|
self.ViewThemeManagerItem.setText(
|
||||||
self.ViewThemeManagerItem.setToolTip(translate(u'mainWindow', u'Toggle Theme Manager'))
|
translate(u'mainWindow', u'&Theme Manager'))
|
||||||
self.ViewThemeManagerItem.setStatusTip(translate(u'mainWindow', u'Toggle the visibility of the Theme Manager'))
|
self.ViewThemeManagerItem.setToolTip(
|
||||||
|
translate(u'mainWindow', u'Toggle Theme Manager'))
|
||||||
|
self.ViewThemeManagerItem.setStatusTip(translate(u'mainWindow',
|
||||||
|
u'Toggle the visibility of the Theme Manager'))
|
||||||
self.ViewThemeManagerItem.setShortcut(translate(u'mainWindow', u'F10'))
|
self.ViewThemeManagerItem.setShortcut(translate(u'mainWindow', u'F10'))
|
||||||
self.ViewServiceManagerItem.setText(translate(u'mainWindow', u'&Service Manager'))
|
self.ViewServiceManagerItem.setText(
|
||||||
self.ViewServiceManagerItem.setToolTip(translate(u'mainWindow', u'Toggle Service Manager'))
|
translate(u'mainWindow', u'&Service Manager'))
|
||||||
self.ViewServiceManagerItem.setStatusTip(translate(u'mainWindow', u'Toggle the visibility of the Service Manager'))
|
self.ViewServiceManagerItem.setToolTip(
|
||||||
|
translate(u'mainWindow', u'Toggle Service Manager'))
|
||||||
|
self.ViewServiceManagerItem.setStatusTip(translate(u'mainWindow',
|
||||||
|
u'Toggle the visibility of the Service Manager'))
|
||||||
self.ViewServiceManagerItem.setShortcut(translate(u'mainWindow', u'F9'))
|
self.ViewServiceManagerItem.setShortcut(translate(u'mainWindow', u'F9'))
|
||||||
self.ToolsAlertItem.setText(translate(u'mainWindow', u'&Alert'))
|
self.ToolsAlertItem.setText(translate(u'mainWindow', u'&Alert'))
|
||||||
self.ToolsAlertItem.setStatusTip(translate(u'mainWindow', u'Show an alert message'))
|
self.ToolsAlertItem.setStatusTip(
|
||||||
|
translate(u'mainWindow', u'Show an alert message'))
|
||||||
self.ToolsAlertItem.setShortcut(translate(u'mainWindow', u'F7'))
|
self.ToolsAlertItem.setShortcut(translate(u'mainWindow', u'F7'))
|
||||||
self.HelpDocumentationItem.setText(translate(u'mainWindow', u'&User Guide'))
|
self.HelpDocumentationItem.setText(
|
||||||
|
translate(u'mainWindow', u'&User Guide'))
|
||||||
self.HelpAboutItem.setText(translate(u'mainWindow', u'&About'))
|
self.HelpAboutItem.setText(translate(u'mainWindow', u'&About'))
|
||||||
self.HelpAboutItem.setStatusTip(translate(u'mainWindow', u'More information about OpenLP'))
|
self.HelpAboutItem.setStatusTip(
|
||||||
|
translate(u'mainWindow', u'More information about OpenLP'))
|
||||||
self.HelpAboutItem.setShortcut(translate(u'mainWindow', u'Ctrl+F1'))
|
self.HelpAboutItem.setShortcut(translate(u'mainWindow', u'Ctrl+F1'))
|
||||||
self.HelpOnlineHelpItem.setText(translate(u'mainWindow', u'&Online Help'))
|
self.HelpOnlineHelpItem.setText(
|
||||||
|
translate(u'mainWindow', u'&Online Help'))
|
||||||
self.HelpWebSiteItem.setText(translate(u'mainWindow', u'&Web Site'))
|
self.HelpWebSiteItem.setText(translate(u'mainWindow', u'&Web Site'))
|
||||||
self.LanguageTranslateItem.setText(translate(u'mainWindow', u'&Translate'))
|
self.LanguageTranslateItem.setText(
|
||||||
self.LanguageTranslateItem.setStatusTip(translate(u'mainWindow', u'Translate the interface to your language'))
|
translate(u'mainWindow', u'&Translate'))
|
||||||
|
self.LanguageTranslateItem.setStatusTip(translate(u'mainWindow',
|
||||||
|
u'Translate the interface to your language'))
|
||||||
self.LanguageEnglishItem.setText(translate(u'mainWindow', u'English'))
|
self.LanguageEnglishItem.setText(translate(u'mainWindow', u'English'))
|
||||||
self.LanguageEnglishItem.setStatusTip(translate(u'mainWindow', u'Set the interface language to English'))
|
self.LanguageEnglishItem.setStatusTip(translate(u'mainWindow',
|
||||||
|
u'Set the interface language to English'))
|
||||||
self.ToolsAddToolItem.setText(translate(u'mainWindow', u'&Add Tool...'))
|
self.ToolsAddToolItem.setText(translate(u'mainWindow', u'&Add Tool...'))
|
||||||
self.ToolsAddToolItem.setStatusTip(translate(u'mainWindow', u'Add an application to the list of tools'))
|
self.ToolsAddToolItem.setStatusTip(translate(u'mainWindow',
|
||||||
self.action_Preview_Panel.setText(translate(u'mainWindow', u'&Preview Pane'))
|
u'Add an application to the list of tools'))
|
||||||
|
self.action_Preview_Panel.setText(
|
||||||
|
translate(u'mainWindow', u'&Preview Pane'))
|
||||||
self.ModeLiveItem.setText(translate(u'mainWindow', u'&Live'))
|
self.ModeLiveItem.setText(translate(u'mainWindow', u'&Live'))
|
||||||
|
|
||||||
def show(self):
|
def show(self):
|
||||||
|
"""
|
||||||
|
Show the main form, as well as the display form
|
||||||
|
"""
|
||||||
self.mainWindow.showMaximized()
|
self.mainWindow.showMaximized()
|
||||||
self.mainDisplay.setup(self.settingsForm.GeneralTab.MonitorNumber)
|
self.mainDisplay.setup(self.settingsForm.GeneralTab.MonitorNumber)
|
||||||
self.mainDisplay.show()
|
self.mainDisplay.show()
|
||||||
|
|
||||||
def onHelpAboutItemClicked(self):
|
def onHelpAboutItemClicked(self):
|
||||||
|
"""
|
||||||
|
Show the About form
|
||||||
|
"""
|
||||||
self.aboutForm.exec_()
|
self.aboutForm.exec_()
|
||||||
|
|
||||||
def onToolsAlertItemClicked(self):
|
def onToolsAlertItemClicked(self):
|
||||||
|
"""
|
||||||
|
Show the Alert form
|
||||||
|
"""
|
||||||
self.alertForm.exec_()
|
self.alertForm.exec_()
|
||||||
|
|
||||||
def onOptionsSettingsItemClicked(self):
|
def onOptionsSettingsItemClicked(self):
|
||||||
|
"""
|
||||||
|
Show the Settings dialog
|
||||||
|
"""
|
||||||
self.settingsForm.exec_()
|
self.settingsForm.exec_()
|
||||||
|
|
||||||
|
def onCloseEvent(self, event):
|
||||||
|
"""
|
||||||
|
Hook to close the main window and display windows on exit
|
||||||
|
"""
|
||||||
|
self.mainDisplay.close()
|
||||||
|
event.accept()
|
||||||
|
@ -132,7 +132,7 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
def addServiceItem(self, item):
|
def addServiceItem(self, item):
|
||||||
self.serviceItems.append({u'data': item, u'order': len(self.serviceItems)+1})
|
self.serviceItems.append({u'data': item, u'order': len(self.serviceItems)+1})
|
||||||
treewidgetitem = QtGui.QTreeWidgetItem(self.ServiceManagerList)
|
treewidgetitem = QtGui.QTreeWidgetItem(self.ServiceManagerList)
|
||||||
treewidgetitem.setText(0,item.title + u':' + item.shortname)
|
treewidgetitem.setText(0,item.title) # + u':' + item.shortname)
|
||||||
treewidgetitem.setIcon(0,item.iconic_representation)
|
treewidgetitem.setIcon(0,item.iconic_representation)
|
||||||
treewidgetitem.setData(0, QtCore.Qt.UserRole, QtCore.QVariant(len(self.serviceItems)))
|
treewidgetitem.setData(0, QtCore.Qt.UserRole, QtCore.QVariant(len(self.serviceItems)))
|
||||||
treewidgetitem.setExpanded(True)
|
treewidgetitem.setExpanded(True)
|
||||||
|
@ -31,13 +31,13 @@ class SlideData(QtCore.QAbstractListModel):
|
|||||||
Root contains a list of ThemeItems
|
Root contains a list of ThemeItems
|
||||||
"""
|
"""
|
||||||
global log
|
global log
|
||||||
log=logging.getLogger(u'SlideData')
|
log = logging.getLogger(u'SlideData')
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
QtCore.QAbstractListModel.__init__(self)
|
QtCore.QAbstractListModel.__init__(self)
|
||||||
self.items = []
|
self.items = []
|
||||||
self.rowheight = 50
|
self.rowheight = 50
|
||||||
self.maximagewidth = self.rowheight * 16/9.0;
|
self.maximagewidth = self.rowheight * 16 / 9.0;
|
||||||
log.info(u'Starting')
|
log.info(u'Starting')
|
||||||
|
|
||||||
def clear(self):
|
def clear(self):
|
||||||
@ -50,16 +50,17 @@ class SlideData(QtCore.QAbstractListModel):
|
|||||||
return len(self.items)
|
return len(self.items)
|
||||||
|
|
||||||
def insertRow(self, row, frame, framenumber):
|
def insertRow(self, row, frame, framenumber):
|
||||||
self.beginInsertRows(QtCore.QModelIndex(),row,row)
|
self.beginInsertRows(QtCore.QModelIndex(), row, row)
|
||||||
log.info(u'insert row %d' % row)
|
log.info(u'insert row %d' % row)
|
||||||
# create a preview image
|
# create a preview image
|
||||||
frame1 = frame.scaled(QtCore.QSize(300,225), QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)
|
frame1 = frame.scaled(QtCore.QSize(300, 225), QtCore.Qt.KeepAspectRatio,
|
||||||
self.items.insert(row,(frame1, framenumber))
|
QtCore.Qt.SmoothTransformation)
|
||||||
|
self.items.insert(row, (frame1, framenumber))
|
||||||
log.info(u'Items: %s' % self.items)
|
log.info(u'Items: %s' % self.items)
|
||||||
self.endInsertRows()
|
self.endInsertRows()
|
||||||
|
|
||||||
def removeRow(self, row):
|
def removeRow(self, row):
|
||||||
self.beginRemoveRows(QtCore.QModelIndex(), row,row)
|
self.beginRemoveRows(QtCore.QModelIndex(), row, row)
|
||||||
self.items.pop(row)
|
self.items.pop(row)
|
||||||
self.endRemoveRows()
|
self.endRemoveRows()
|
||||||
|
|
||||||
@ -67,21 +68,23 @@ class SlideData(QtCore.QAbstractListModel):
|
|||||||
self.insertRow(len(self.items), frame, framenumber)
|
self.insertRow(len(self.items), frame, framenumber)
|
||||||
|
|
||||||
def data(self, index, role):
|
def data(self, index, role):
|
||||||
row=index.row()
|
row = index.row()
|
||||||
if row > len(self.items): # if the last row is selected and deleted, we then get called with an empty row!
|
if row > len(self.items):
|
||||||
|
# if the last row is selected and deleted, we then get called with
|
||||||
|
# an empty row!
|
||||||
return QtCore.QVariant()
|
return QtCore.QVariant()
|
||||||
if role == QtCore.Qt.DecorationRole:
|
if role == QtCore.Qt.DecorationRole:
|
||||||
retval= self.items[row][0]
|
retval = self.items[row][0]
|
||||||
else:
|
else:
|
||||||
retval= QtCore.QVariant()
|
retval = QtCore.QVariant()
|
||||||
if type(retval) is not type(QtCore.QVariant):
|
if type(retval) is not type(QtCore.QVariant):
|
||||||
return QtCore.QVariant(retval)
|
return QtCore.QVariant(retval)
|
||||||
else:
|
else:
|
||||||
return retval
|
return retval
|
||||||
|
|
||||||
def __iter__(self):
|
def __iter__(self):
|
||||||
for i in self.items:
|
for item in self.items:
|
||||||
yield i
|
yield item
|
||||||
|
|
||||||
def getValue(self, index):
|
def getValue(self, index):
|
||||||
row = index.row()
|
row = index.row()
|
||||||
@ -97,29 +100,38 @@ class SlideData(QtCore.QAbstractListModel):
|
|||||||
|
|
||||||
|
|
||||||
class SlideController(QtGui.QWidget):
|
class SlideController(QtGui.QWidget):
|
||||||
|
"""
|
||||||
|
SlideController is THE slide controller widget. This widget is what the user
|
||||||
|
uses to control the displaying of verses/slides/etc on the screen.
|
||||||
|
"""
|
||||||
global log
|
global log
|
||||||
log = logging.getLogger(u'SlideController')
|
log = logging.getLogger(u'SlideController')
|
||||||
|
|
||||||
def __init__(self, control_splitter, parent, isLive):
|
def __init__(self, controlSplitter, parent, isLive=False):
|
||||||
|
"""
|
||||||
|
Set up the Slide Controller.
|
||||||
|
"""
|
||||||
QtGui.QWidget.__init__(self, parent.mainWindow)
|
QtGui.QWidget.__init__(self, parent.mainWindow)
|
||||||
self.isLive = isLive
|
self.isLive = isLive
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
self.Panel = QtGui.QWidget(control_splitter)
|
self.Panel = QtGui.QWidget(controlSplitter)
|
||||||
self.Splitter = QtGui.QSplitter(self.Panel)
|
self.Splitter = QtGui.QSplitter(self.Panel)
|
||||||
self.Splitter.setOrientation(QtCore.Qt.Vertical)
|
self.Splitter.setOrientation(QtCore.Qt.Vertical)
|
||||||
|
# Layout for holding panel
|
||||||
self.PanelLayout = QtGui.QVBoxLayout(self.Panel)
|
self.PanelLayout = QtGui.QVBoxLayout(self.Panel)
|
||||||
self.PanelLayout.addWidget(self.Splitter)
|
self.PanelLayout.addWidget(self.Splitter)
|
||||||
self.PanelLayout.setSpacing(0)
|
self.PanelLayout.setSpacing(0)
|
||||||
self.PanelLayout.setMargin(0)
|
self.PanelLayout.setMargin(0)
|
||||||
|
# Actual controller section
|
||||||
self.Controller = QtGui.QWidget(self.Splitter)
|
self.Controller = QtGui.QWidget(self.Splitter)
|
||||||
self.Controller.setGeometry(QtCore.QRect(0, 0, 800, 536))
|
self.Controller.setGeometry(QtCore.QRect(0, 0, 800, 536))
|
||||||
self.Controller.setSizePolicy(QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Maximum))
|
self.Controller.setSizePolicy(
|
||||||
|
QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred,
|
||||||
|
QtGui.QSizePolicy.Maximum))
|
||||||
self.ControllerLayout = QtGui.QVBoxLayout(self.Controller)
|
self.ControllerLayout = QtGui.QVBoxLayout(self.Controller)
|
||||||
self.ControllerLayout.setSpacing(0)
|
self.ControllerLayout.setSpacing(0)
|
||||||
self.ControllerLayout.setMargin(0)
|
self.ControllerLayout.setMargin(0)
|
||||||
|
# Controller list view
|
||||||
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
|
||||||
@ -128,35 +140,43 @@ class SlideController(QtGui.QWidget):
|
|||||||
self.PreviewListView.setWrapping(False)
|
self.PreviewListView.setWrapping(False)
|
||||||
self.PreviewListView.setModel(self.PreviewListData)
|
self.PreviewListView.setModel(self.PreviewListData)
|
||||||
#self.PreviewListView.setSelectionRectVisible(True)
|
#self.PreviewListView.setSelectionRectVisible(True)
|
||||||
|
|
||||||
self.PreviewListView.setSpacing(0)
|
self.PreviewListView.setSpacing(0)
|
||||||
self.PreviewListView.setObjectName("PreviewListView")
|
self.PreviewListView.setObjectName(u'PreviewListView')
|
||||||
self.ControllerLayout.addWidget(self.PreviewListView)
|
self.ControllerLayout.addWidget(self.PreviewListView)
|
||||||
|
# Controller toolbar
|
||||||
self.Toolbar = OpenLPToolbar(self.Controller)
|
self.Toolbar = OpenLPToolbar(self.Controller)
|
||||||
sizeToolbarPolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
|
sizeToolbarPolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,
|
||||||
|
QtGui.QSizePolicy.Fixed)
|
||||||
sizeToolbarPolicy.setHorizontalStretch(0)
|
sizeToolbarPolicy.setHorizontalStretch(0)
|
||||||
sizeToolbarPolicy.setVerticalStretch(0)
|
sizeToolbarPolicy.setVerticalStretch(0)
|
||||||
sizeToolbarPolicy.setHeightForWidth(self.Toolbar.sizePolicy().hasHeightForWidth())
|
sizeToolbarPolicy.setHeightForWidth(
|
||||||
|
self.Toolbar.sizePolicy().hasHeightForWidth())
|
||||||
if self.isLive:
|
if self.isLive:
|
||||||
self.Toolbar.addToolbarButton(u'First Slide', u':/slides/slide_first.png',
|
self.Toolbar.addToolbarButton(u'First Slide',
|
||||||
translate(u'SlideController', u'Move to first'), self.onSlideSelectedFirst)
|
u':/slides/slide_first.png',
|
||||||
self.Toolbar.addToolbarButton(u'Last Slide', u':/slides/slide_previous.png',
|
translate(u'SlideController', u'Move to first'),
|
||||||
translate(u'SlideController', u'Move to previous'), self.onSlideSelectedPrevious)
|
self.onSlideSelectedFirst)
|
||||||
self.Toolbar.addToolbarButton(u'First Slide', u':/slides/slide_next.png',
|
self.Toolbar.addToolbarButton(u'Last Slide',
|
||||||
translate(u'SlideController', u'Move to next'), self.onSlideSelectedNext)
|
u':/slides/slide_previous.png',
|
||||||
|
translate(u'SlideController', u'Move to previous'),
|
||||||
|
self.onSlideSelectedPrevious)
|
||||||
|
self.Toolbar.addToolbarButton(u'First Slide',
|
||||||
|
u':/slides/slide_next.png',
|
||||||
|
translate(u'SlideController', u'Move to next'),
|
||||||
|
self.onSlideSelectedNext)
|
||||||
if self.isLive:
|
if self.isLive:
|
||||||
self.Toolbar.addToolbarButton(u'Last Slide', u':/slides/slide_last.png',
|
self.Toolbar.addToolbarButton(u'Last Slide',
|
||||||
translate(u'SlideController', u'Move to last'), self.onSlideSelectedLast)
|
u':/slides/slide_last.png',
|
||||||
|
translate(u'SlideController', u'Move to last'),
|
||||||
|
self.onSlideSelectedLast)
|
||||||
self.Toolbar.addSeparator()
|
self.Toolbar.addSeparator()
|
||||||
self.Toolbar.addToolbarButton(u'Close Screen', u':/slides/slide_close.png',
|
self.Toolbar.addToolbarButton(u'Close Screen',
|
||||||
translate(u'SlideController', u'Close Screen'), self.onBlankScreen)
|
u':/slides/slide_close.png',
|
||||||
|
translate(u'SlideController', u'Close Screen'),
|
||||||
|
self.onBlankScreen)
|
||||||
self.Toolbar.setSizePolicy(sizeToolbarPolicy)
|
self.Toolbar.setSizePolicy(sizeToolbarPolicy)
|
||||||
|
|
||||||
self.ControllerLayout.addWidget(self.Toolbar)
|
self.ControllerLayout.addWidget(self.Toolbar)
|
||||||
|
# Screen preview area
|
||||||
self.PreviewFrame = QtGui.QFrame(self.Splitter)
|
self.PreviewFrame = QtGui.QFrame(self.Splitter)
|
||||||
self.PreviewFrame.setGeometry(QtCore.QRect(0, 0, 250, 190))
|
self.PreviewFrame.setGeometry(QtCore.QRect(0, 0, 250, 190))
|
||||||
self.PreviewFrame.setSizePolicy(QtGui.QSizePolicy(
|
self.PreviewFrame.setSizePolicy(QtGui.QSizePolicy(
|
||||||
@ -164,16 +184,17 @@ class SlideController(QtGui.QWidget):
|
|||||||
self.PreviewFrame.setFrameShape(QtGui.QFrame.StyledPanel)
|
self.PreviewFrame.setFrameShape(QtGui.QFrame.StyledPanel)
|
||||||
self.PreviewFrame.setFrameShadow(QtGui.QFrame.Sunken)
|
self.PreviewFrame.setFrameShadow(QtGui.QFrame.Sunken)
|
||||||
self.PreviewFrame.setObjectName(u'PreviewFrame')
|
self.PreviewFrame.setObjectName(u'PreviewFrame')
|
||||||
|
|
||||||
self.grid = QtGui.QGridLayout(self.PreviewFrame)
|
self.grid = QtGui.QGridLayout(self.PreviewFrame)
|
||||||
self.grid.setMargin(8)
|
self.grid.setMargin(8)
|
||||||
self.grid.setObjectName(u'grid')
|
self.grid.setObjectName(u'grid')
|
||||||
|
# Actual preview screen
|
||||||
self.SlidePreview = QtGui.QLabel(self.PreviewFrame)
|
self.SlidePreview = QtGui.QLabel(self.PreviewFrame)
|
||||||
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
|
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,
|
||||||
|
QtGui.QSizePolicy.Fixed)
|
||||||
sizePolicy.setHorizontalStretch(0)
|
sizePolicy.setHorizontalStretch(0)
|
||||||
sizePolicy.setVerticalStretch(0)
|
sizePolicy.setVerticalStretch(0)
|
||||||
sizePolicy.setHeightForWidth(self.SlidePreview.sizePolicy().hasHeightForWidth())
|
sizePolicy.setHeightForWidth(
|
||||||
|
self.SlidePreview.sizePolicy().hasHeightForWidth())
|
||||||
self.SlidePreview.setSizePolicy(sizePolicy)
|
self.SlidePreview.setSizePolicy(sizePolicy)
|
||||||
self.SlidePreview.setMinimumSize(QtCore.QSize(250, 190))
|
self.SlidePreview.setMinimumSize(QtCore.QSize(250, 190))
|
||||||
self.SlidePreview.setFrameShape(QtGui.QFrame.Box)
|
self.SlidePreview.setFrameShape(QtGui.QFrame.Box)
|
||||||
@ -182,19 +203,26 @@ class SlideController(QtGui.QWidget):
|
|||||||
self.SlidePreview.setScaledContents(True)
|
self.SlidePreview.setScaledContents(True)
|
||||||
self.SlidePreview.setObjectName(u'SlidePreview')
|
self.SlidePreview.setObjectName(u'SlidePreview')
|
||||||
self.grid.addWidget(self.SlidePreview, 0, 0, 1, 1)
|
self.grid.addWidget(self.SlidePreview, 0, 0, 1, 1)
|
||||||
|
# Some events
|
||||||
QtCore.QObject.connect(self.PreviewListView,
|
QtCore.QObject.connect(self.PreviewListView,
|
||||||
QtCore.SIGNAL(u'clicked(QModelIndex)'), self.onSlideSelected)
|
QtCore.SIGNAL(u'clicked(QModelIndex)'), self.onSlideSelected)
|
||||||
QtCore.QObject.connect(self.PreviewListView,
|
QtCore.QObject.connect(self.PreviewListView,
|
||||||
QtCore.SIGNAL(u'activated(QModelIndex)'), self.onSlideSelected)
|
QtCore.SIGNAL(u'activated(QModelIndex)'), self.onSlideSelected)
|
||||||
|
|
||||||
def onSlideSelectedFirst(self):
|
def onSlideSelectedFirst(self):
|
||||||
|
"""
|
||||||
|
Go to the first slide.
|
||||||
|
"""
|
||||||
row = self.PreviewListData.createIndex(0, 0)
|
row = self.PreviewListData.createIndex(0, 0)
|
||||||
if row.isValid():
|
if row.isValid():
|
||||||
self.PreviewListView.selectionModel().setCurrentIndex(row, QtGui.QItemSelectionModel.SelectCurrent)
|
self.PreviewListView.selectionModel().setCurrentIndex(row,
|
||||||
|
QtGui.QItemSelectionModel.SelectCurrent)
|
||||||
self.onSlideSelected(row)
|
self.onSlideSelected(row)
|
||||||
|
|
||||||
def onSlideSelectedNext(self):
|
def onSlideSelectedNext(self):
|
||||||
|
"""
|
||||||
|
Go to the next slide.
|
||||||
|
"""
|
||||||
indexes = self.PreviewListView.selectedIndexes()
|
indexes = self.PreviewListView.selectedIndexes()
|
||||||
rowNumber = 0
|
rowNumber = 0
|
||||||
for index in indexes:
|
for index in indexes:
|
||||||
@ -202,12 +230,16 @@ class SlideController(QtGui.QWidget):
|
|||||||
rowNumber = 0
|
rowNumber = 0
|
||||||
else:
|
else:
|
||||||
rowNumber = index.row() + 1
|
rowNumber = index.row() + 1
|
||||||
row = self.PreviewListData.createIndex(rowNumber , 0)
|
row = self.PreviewListData.createIndex(rowNumber, 0)
|
||||||
if row.isValid():
|
if row.isValid():
|
||||||
self.PreviewListView.selectionModel().setCurrentIndex(row, QtGui.QItemSelectionModel.SelectCurrent)
|
self.PreviewListView.selectionModel().setCurrentIndex(row,
|
||||||
|
QtGui.QItemSelectionModel.SelectCurrent)
|
||||||
self.onSlideSelected(row)
|
self.onSlideSelected(row)
|
||||||
|
|
||||||
def onSlideSelectedPrevious(self):
|
def onSlideSelectedPrevious(self):
|
||||||
|
"""
|
||||||
|
Go to the previous slide.
|
||||||
|
"""
|
||||||
indexes = self.PreviewListView.selectedIndexes()
|
indexes = self.PreviewListView.selectedIndexes()
|
||||||
rowNumber = 0
|
rowNumber = 0
|
||||||
for index in indexes:
|
for index in indexes:
|
||||||
@ -215,25 +247,40 @@ class SlideController(QtGui.QWidget):
|
|||||||
rowNumber = self.PreviewListData.rowCount() - 1
|
rowNumber = self.PreviewListData.rowCount() - 1
|
||||||
else:
|
else:
|
||||||
rowNumber = index.row() - 1
|
rowNumber = index.row() - 1
|
||||||
row = self.PreviewListData.createIndex(rowNumber , 0)
|
row = self.PreviewListData.createIndex(rowNumber, 0)
|
||||||
if row.isValid():
|
if row.isValid():
|
||||||
self.PreviewListView.selectionModel().setCurrentIndex(row, QtGui.QItemSelectionModel.SelectCurrent)
|
self.PreviewListView.selectionModel().setCurrentIndex(row,
|
||||||
|
QtGui.QItemSelectionModel.SelectCurrent)
|
||||||
self.onSlideSelected(row)
|
self.onSlideSelected(row)
|
||||||
|
|
||||||
def onSlideSelectedLast(self):
|
def onSlideSelectedLast(self):
|
||||||
row = self.PreviewListData.createIndex(self.PreviewListData.rowCount() - 1 , 0)
|
"""
|
||||||
|
Go to the last slide.
|
||||||
|
"""
|
||||||
|
row = self.PreviewListData.createIndex(
|
||||||
|
self.PreviewListData.rowCount() - 1, 0)
|
||||||
if row.isValid():
|
if row.isValid():
|
||||||
self.PreviewListView.selectionModel().setCurrentIndex(row, QtGui.QItemSelectionModel.SelectCurrent)
|
self.PreviewListView.selectionModel().setCurrentIndex(row,
|
||||||
|
QtGui.QItemSelectionModel.SelectCurrent)
|
||||||
self.onSlideSelected(row)
|
self.onSlideSelected(row)
|
||||||
|
|
||||||
def onBlankScreen(self):
|
def onBlankScreen(self):
|
||||||
|
"""
|
||||||
|
Blank the screen.
|
||||||
|
"""
|
||||||
self.mainDisplay.blankDisplay()
|
self.mainDisplay.blankDisplay()
|
||||||
|
|
||||||
def onSlideSelected(self, index):
|
def onSlideSelected(self, index):
|
||||||
|
"""
|
||||||
|
Generate the preview when you click on a slide.
|
||||||
|
"""
|
||||||
frame = self.PreviewListData.getValue(index)
|
frame = self.PreviewListData.getValue(index)
|
||||||
self.previewFrame(frame)
|
self.previewFrame(frame)
|
||||||
|
|
||||||
def previewFrame(self, frame):
|
def previewFrame(self, frame):
|
||||||
|
"""
|
||||||
|
Generates a preview of the current slide.
|
||||||
|
"""
|
||||||
self.SlidePreview.setPixmap(frame[0])
|
self.SlidePreview.setPixmap(frame[0])
|
||||||
if self.isLive:
|
if self.isLive:
|
||||||
no = frame[1]
|
no = frame[1]
|
||||||
@ -241,6 +288,9 @@ class SlideController(QtGui.QWidget):
|
|||||||
self.parent.mainDisplay.frameView(LiveFrame)
|
self.parent.mainDisplay.frameView(LiveFrame)
|
||||||
|
|
||||||
def addServiceItem(self, serviceitem):
|
def addServiceItem(self, serviceitem):
|
||||||
|
"""
|
||||||
|
Loads a ServiceItem.
|
||||||
|
"""
|
||||||
log.debug(u'addServiceItem')
|
log.debug(u'addServiceItem')
|
||||||
self.serviceitem = serviceitem
|
self.serviceitem = serviceitem
|
||||||
self.serviceitem.render()
|
self.serviceitem.render()
|
||||||
@ -249,15 +299,19 @@ class SlideController(QtGui.QWidget):
|
|||||||
for frame in self.serviceitem.frames:
|
for frame in self.serviceitem.frames:
|
||||||
self.PreviewListData.addRow(frame[u'image'], framenumber)
|
self.PreviewListData.addRow(frame[u'image'], framenumber)
|
||||||
framenumber += 1
|
framenumber += 1
|
||||||
|
|
||||||
row = self.PreviewListData.createIndex(0, 0)
|
row = self.PreviewListData.createIndex(0, 0)
|
||||||
if row.isValid():
|
if row.isValid():
|
||||||
self.PreviewListView.selectionModel().setCurrentIndex(row, QtGui.QItemSelectionModel.SelectCurrent)
|
self.PreviewListView.selectionModel().setCurrentIndex(row,
|
||||||
|
QtGui.QItemSelectionModel.SelectCurrent)
|
||||||
self.onSlideSelected(row)
|
self.onSlideSelected(row)
|
||||||
|
|
||||||
def addServiceManagerItem(self, serviceitem, slideno):
|
def addServiceManagerItem(self, serviceitem, slideno):
|
||||||
|
"""
|
||||||
|
Loads a ServiceManagerItem.
|
||||||
|
"""
|
||||||
self.addServiceItem(serviceitem)
|
self.addServiceItem(serviceitem)
|
||||||
row = self.PreviewListData.createIndex(slideno, 0)
|
row = self.PreviewListData.createIndex(slideno, 0)
|
||||||
if row.isValid():
|
if row.isValid():
|
||||||
self.PreviewListView.selectionModel().setCurrentIndex(row, QtGui.QItemSelectionModel.SelectCurrent)
|
self.PreviewListView.selectionModel().setCurrentIndex(row,
|
||||||
|
QtGui.QItemSelectionModel.SelectCurrent)
|
||||||
self.onSlideSelected(row)
|
self.onSlideSelected(row)
|
||||||
|
@ -119,7 +119,7 @@ class PresentationMediaItem(MediaManagerItem):
|
|||||||
def onPresentationNewClick(self):
|
def onPresentationNewClick(self):
|
||||||
files = QtGui.QFileDialog.getOpenFileNames(None,
|
files = QtGui.QFileDialog.getOpenFileNames(None,
|
||||||
translate('PresentationsMediaItem', u'Select presentations(s)'),
|
translate('PresentationsMediaItem', u'Select presentations(s)'),
|
||||||
self.parent.config.get_last_dir(), u'Presentations (*.ppt *.pps *.odi)')
|
self.parent.config.get_last_dir(), u'Presentations (*.ppt *.pps *.odp)')
|
||||||
if len(files) > 0:
|
if len(files) > 0:
|
||||||
self.loadPresentationList(files)
|
self.loadPresentationList(files)
|
||||||
dir, filename = os.path.split(str(files[0]))
|
dir, filename = os.path.split(str(files[0]))
|
||||||
|
@ -106,7 +106,7 @@ class AuthorsForm(QtGui.QDialog, Ui_AuthorsDialog):
|
|||||||
An Author has been selected display it
|
An Author has been selected display it
|
||||||
If the author is attached to a Song prevent delete
|
If the author is attached to a Song prevent delete
|
||||||
"""
|
"""
|
||||||
print index
|
self.currentRow = index.row()
|
||||||
id = int(self.AuthorListData.getId(index))
|
id = int(self.AuthorListData.getId(index))
|
||||||
self.author = self.songmanager.get_author(id)
|
self.author = self.songmanager.get_author(id)
|
||||||
|
|
||||||
@ -122,7 +122,8 @@ class AuthorsForm(QtGui.QDialog, Ui_AuthorsDialog):
|
|||||||
self._validate_form()
|
self._validate_form()
|
||||||
|
|
||||||
def _validate_form(self):
|
def _validate_form(self):
|
||||||
if len(self.DisplayEdit.displayText()) == 0: # We need at lease a display name
|
# We need at lease a display name
|
||||||
|
if len(self.DisplayEdit.displayText()) == 0:
|
||||||
self.AddUpdateButton.setEnabled(False)
|
self.AddUpdateButton.setEnabled(False)
|
||||||
else:
|
else:
|
||||||
self.AddUpdateButton.setEnabled(True)
|
self.AddUpdateButton.setEnabled(True)
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
# WARNING! All changes made in this file will be lost!
|
# WARNING! All changes made in this file will be lost!
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
from openlp.plugins.songs.lib import TextListData
|
||||||
|
|
||||||
class Ui_SongBookDialog(object):
|
class Ui_SongBookDialog(object):
|
||||||
def setupUi(self, SongBookDialog):
|
def setupUi(self, SongBookDialog):
|
||||||
@ -17,10 +18,17 @@ class Ui_SongBookDialog(object):
|
|||||||
self.DialogLayout.setSpacing(8)
|
self.DialogLayout.setSpacing(8)
|
||||||
self.DialogLayout.setMargin(8)
|
self.DialogLayout.setMargin(8)
|
||||||
self.DialogLayout.setObjectName("DialogLayout")
|
self.DialogLayout.setObjectName("DialogLayout")
|
||||||
self.BookSongListView = QtGui.QTableWidget(SongBookDialog)
|
|
||||||
self.BookSongListView.setObjectName("BookSongListView")
|
# self.BookSongListView = QtGui.QTableWidget(SongBookDialog)
|
||||||
self.BookSongListView.setColumnCount(0)
|
# self.BookSongListView.setObjectName("BookSongListView")
|
||||||
self.BookSongListView.setRowCount(0)
|
# self.BookSongListView.setColumnCount(0)
|
||||||
|
# self.BookSongListView.setRowCount(0)
|
||||||
|
self.BookSongListView = QtGui.QListView()
|
||||||
|
self.BookSongListView.setAlternatingRowColors(True)
|
||||||
|
self.BookSongListData = TextListData()
|
||||||
|
self.BookSongListView.setModel(self.BookSongListData)
|
||||||
|
self.DialogLayout.addWidget(self.BookSongListView)
|
||||||
|
|
||||||
self.DialogLayout.addWidget(self.BookSongListView)
|
self.DialogLayout.addWidget(self.BookSongListView)
|
||||||
self.SongBookGroup = QtGui.QGroupBox(SongBookDialog)
|
self.SongBookGroup = QtGui.QGroupBox(SongBookDialog)
|
||||||
self.SongBookGroup.setMinimumSize(QtCore.QSize(0, 200))
|
self.SongBookGroup.setMinimumSize(QtCore.QSize(0, 200))
|
||||||
|
@ -33,27 +33,91 @@ class SongBookForm(QDialog, Ui_SongBookDialog):
|
|||||||
QDialog.__init__(self, parent)
|
QDialog.__init__(self, parent)
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
self.songmanager = songmanager
|
self.songmanager = songmanager
|
||||||
|
self.currentRow = 0
|
||||||
|
self.songbook = None
|
||||||
|
|
||||||
|
QtCore.QObject.connect(self.DeleteButton,
|
||||||
|
QtCore.SIGNAL('pressed()'), self.onDeleteButtonClick)
|
||||||
|
QtCore.QObject.connect(self.ClearButton,
|
||||||
|
QtCore.SIGNAL('pressed()'), self.onClearButtonClick)
|
||||||
|
QtCore.QObject.connect(self.AddUpdateButton,
|
||||||
|
QtCore.SIGNAL('pressed()'), self.onAddUpdateButtonClick)
|
||||||
|
QtCore.QObject.connect(self.DisplayEdit,
|
||||||
|
QtCore.SIGNAL('pressed()'), self.onDisplayEditLostFocus)
|
||||||
|
QtCore.QObject.connect(self.SongBookListView,
|
||||||
|
QtCore.SIGNAL(u'clicked(QModelIndex)'), self.onSongBookListViewItemClicked)
|
||||||
|
|
||||||
def load_form(self):
|
def load_form(self):
|
||||||
A = 1
|
"""
|
||||||
|
Refresh the screen and rest fields
|
||||||
|
"""
|
||||||
|
self.SongBookListData.resetStore()
|
||||||
|
self.onClearButtonClick() # tidy up screen
|
||||||
|
SongBooks = self.songmanager.get_SongBooks()
|
||||||
|
for SongBook in SongBooks:
|
||||||
|
self.SongBookListData.addRow(SongBook.id,SongBook.display_name)
|
||||||
|
row_count = self.SongBookListData.rowCount(None)
|
||||||
|
if self.currentRow > row_count:
|
||||||
|
# in case we have delete the last row of the table
|
||||||
|
self.currentRow = row_count
|
||||||
|
row = self.SongBookListData.createIndex(self.currentRow, 0)
|
||||||
|
if row.isValid():
|
||||||
|
self.SongBookListView.selectionModel().setCurrentIndex(row, QtGui.QItemSelectionModel.SelectCurrent)
|
||||||
|
self._validate_form()
|
||||||
|
|
||||||
@pyqtSignature("QTableWidgetItem*")
|
def onDeleteButtonClick(self):
|
||||||
def on_BookSongListView_itemClicked(self, item):
|
|
||||||
"""
|
"""
|
||||||
Slot documentation goes here.
|
Delete the SongBook is the SongBook is not attached to any songs
|
||||||
"""
|
"""
|
||||||
print "bslv ic " + str(item)
|
self.songmanager.delete_SongBook(self.SongBook.id)
|
||||||
|
self.onClearButtonClick()
|
||||||
|
self.load_form()
|
||||||
|
|
||||||
@pyqtSignature("")
|
def onDisplayEditLostFocus(self):
|
||||||
def on_DeleteButton_clicked(self):
|
self._validate_form()
|
||||||
"""
|
|
||||||
Slot documentation goes here.
|
|
||||||
"""
|
|
||||||
print "db c "
|
|
||||||
|
|
||||||
@pyqtSignature("")
|
def onAddUpdateButtonClick(self):
|
||||||
def on_AddUpdateButton_clicked(self):
|
|
||||||
"""
|
"""
|
||||||
Slot documentation goes here.
|
Sent New or update details to the database
|
||||||
"""
|
"""
|
||||||
print "au c "
|
if self.SongBook == None:
|
||||||
|
self.SongBook = SongBook()
|
||||||
|
self.SongBook.display_name = unicode(self.DisplayEdit.displayText())
|
||||||
|
self.songmanager.save_SongBook(self.SongBook)
|
||||||
|
self.onClearButtonClick()
|
||||||
|
self.load_form()
|
||||||
|
self._validate_form()
|
||||||
|
|
||||||
|
def onClearButtonClick(self):
|
||||||
|
"""
|
||||||
|
Tidy up screen if clear button pressed
|
||||||
|
"""
|
||||||
|
self.DisplayEdit.setText(u'')
|
||||||
|
self.MessageLabel.setText(u'')
|
||||||
|
self.DeleteButton.setEnabled(False)
|
||||||
|
self.SongBook = None
|
||||||
|
self._validate_form()
|
||||||
|
|
||||||
|
def onSongBookListViewItemClicked(self, index):
|
||||||
|
"""
|
||||||
|
An SongBook has been selected display it
|
||||||
|
If the SongBook is attached to a Song prevent delete
|
||||||
|
"""
|
||||||
|
self.currentRow = index.row()
|
||||||
|
id = int(self.SongBookListData.getId(index))
|
||||||
|
self.SongBook = self.songmanager.get_SongBook(id)
|
||||||
|
|
||||||
|
self.DisplayEdit.setText(self.SongBook.display_name)
|
||||||
|
if len(self.SongBook.songs) > 0:
|
||||||
|
self.MessageLabel.setText("SongBook in use 'Delete' is disabled")
|
||||||
|
self.DeleteButton.setEnabled(False)
|
||||||
|
else:
|
||||||
|
self.MessageLabel.setText("SongBook is not used")
|
||||||
|
self.DeleteButton.setEnabled(True)
|
||||||
|
self._validate_form()
|
||||||
|
|
||||||
|
def _validate_form(self):
|
||||||
|
if len(self.DisplayEdit.displayText()) == 0: # We need at lease a display name
|
||||||
|
self.AddUpdateButton.setEnabled(False)
|
||||||
|
else:
|
||||||
|
self.AddUpdateButton.setEnabled(True)
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
# WARNING! All changes made in this file will be lost!
|
# WARNING! All changes made in this file will be lost!
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
from openlp.plugins.songs.lib import TextListData
|
||||||
|
|
||||||
class Ui_TopicsDialog(object):
|
class Ui_TopicsDialog(object):
|
||||||
def setupUi(self, TopicsDialog):
|
def setupUi(self, TopicsDialog):
|
||||||
@ -49,11 +50,18 @@ class Ui_TopicsDialog(object):
|
|||||||
self.MessageLabel = QtGui.QLabel(TopicsDialog)
|
self.MessageLabel = QtGui.QLabel(TopicsDialog)
|
||||||
self.MessageLabel.setObjectName("MessageLabel")
|
self.MessageLabel.setObjectName("MessageLabel")
|
||||||
self.gridLayout_2.addWidget(self.MessageLabel, 3, 0, 1, 1)
|
self.gridLayout_2.addWidget(self.MessageLabel, 3, 0, 1, 1)
|
||||||
self.TopicsListView = QtGui.QTableWidget(TopicsDialog)
|
|
||||||
self.TopicsListView.setObjectName("TopicsListView")
|
# self.TopicsListView = QtGui.QTableWidget(TopicsDialog)
|
||||||
self.TopicsListView.setColumnCount(0)
|
# self.TopicsListView.setObjectName("TopicsListView")
|
||||||
self.TopicsListView.setRowCount(0)
|
# self.TopicsListView.setColumnCount(0)
|
||||||
|
# self.TopicsListView.setRowCount(0)
|
||||||
|
|
||||||
|
self.TopicsListView = QtGui.QListView()
|
||||||
|
self.TopicsListView.setAlternatingRowColors(True)
|
||||||
|
self.TopicsListData = TextListData()
|
||||||
|
self.TopicsListView.setModel(self.TopicsListData)
|
||||||
self.gridLayout_2.addWidget(self.TopicsListView, 0, 0, 1, 1)
|
self.gridLayout_2.addWidget(self.TopicsListView, 0, 0, 1, 1)
|
||||||
|
|
||||||
self.ButtonBox = QtGui.QDialogButtonBox(TopicsDialog)
|
self.ButtonBox = QtGui.QDialogButtonBox(TopicsDialog)
|
||||||
self.ButtonBox.setOrientation(QtCore.Qt.Horizontal)
|
self.ButtonBox.setOrientation(QtCore.Qt.Horizontal)
|
||||||
self.ButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Ok)
|
self.ButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Ok)
|
||||||
|
@ -34,21 +34,91 @@ class TopicsForm(QDialog, Ui_TopicsDialog):
|
|||||||
QDialog.__init__(self, parent)
|
QDialog.__init__(self, parent)
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
self.songmanager = songmanager
|
self.songmanager = songmanager
|
||||||
#self.connect()
|
self.currentRow = 0
|
||||||
|
self.songbook = None
|
||||||
|
|
||||||
|
QtCore.QObject.connect(self.DeleteButton,
|
||||||
|
QtCore.SIGNAL('pressed()'), self.onDeleteButtonClick)
|
||||||
|
QtCore.QObject.connect(self.ClearButton,
|
||||||
|
QtCore.SIGNAL('pressed()'), self.onClearButtonClick)
|
||||||
|
QtCore.QObject.connect(self.AddUpdateButton,
|
||||||
|
QtCore.SIGNAL('pressed()'), self.onAddUpdateButtonClick)
|
||||||
|
QtCore.QObject.connect(self.DisplayEdit,
|
||||||
|
QtCore.SIGNAL('pressed()'), self.onDisplayEditLostFocus)
|
||||||
|
QtCore.QObject.connect(self.TopicListView,
|
||||||
|
QtCore.SIGNAL(u'clicked(QModelIndex)'), self.onTopicListViewItemClicked)
|
||||||
|
|
||||||
def load_form(self):
|
def load_form(self):
|
||||||
A = 1
|
"""
|
||||||
|
Refresh the screen and rest fields
|
||||||
|
"""
|
||||||
|
self.TopicListData.resetStore()
|
||||||
|
self.onClearButtonClick() # tidy up screen
|
||||||
|
Topics = self.songmanager.get_Topics()
|
||||||
|
for Topic in Topics:
|
||||||
|
self.TopicListData.addRow(Topic.id,Topic.display_name)
|
||||||
|
row_count = self.TopicListData.rowCount(None)
|
||||||
|
if self.currentRow > row_count:
|
||||||
|
# in case we have delete the last row of the table
|
||||||
|
self.currentRow = row_count
|
||||||
|
row = self.TopicListData.createIndex(self.currentRow, 0)
|
||||||
|
if row.isValid():
|
||||||
|
self.TopicListView.selectionModel().setCurrentIndex(row, QtGui.QItemSelectionModel.SelectCurrent)
|
||||||
|
self._validate_form()
|
||||||
|
|
||||||
#@pyqtSignature("")
|
def onDeleteButtonClick(self):
|
||||||
def onDeleteButtonClicked(self):
|
|
||||||
"""
|
"""
|
||||||
Slot documentation goes here.
|
Delete the Topic is the Topic is not attached to any songs
|
||||||
"""
|
"""
|
||||||
print "db clicked"
|
self.songmanager.delete_Topic(self.Topic.id)
|
||||||
|
self.onClearButtonClick()
|
||||||
|
self.load_form()
|
||||||
|
|
||||||
#@pyqtSignature("")
|
def onDisplayEditLostFocus(self):
|
||||||
def onAddUpdateButtonClicked(self):
|
self._validate_form()
|
||||||
|
|
||||||
|
def onAddUpdateButtonClick(self):
|
||||||
"""
|
"""
|
||||||
Slot documentation goes here.
|
Sent New or update details to the database
|
||||||
"""
|
"""
|
||||||
print "au clicked"
|
if self.Topic == None:
|
||||||
|
self.Topic = Topic()
|
||||||
|
self.Topic.display_name = unicode(self.DisplayEdit.displayText())
|
||||||
|
self.songmanager.save_Topic(self.Topic)
|
||||||
|
self.onClearButtonClick()
|
||||||
|
self.load_form()
|
||||||
|
self._validate_form()
|
||||||
|
|
||||||
|
def onClearButtonClick(self):
|
||||||
|
"""
|
||||||
|
Tidy up screen if clear button pressed
|
||||||
|
"""
|
||||||
|
self.DisplayEdit.setText(u'')
|
||||||
|
self.MessageLabel.setText(u'')
|
||||||
|
self.DeleteButton.setEnabled(False)
|
||||||
|
self.Topic = None
|
||||||
|
self._validate_form()
|
||||||
|
|
||||||
|
def onTopicListViewItemClicked(self, index):
|
||||||
|
"""
|
||||||
|
An Topic has been selected display it
|
||||||
|
If the Topic is attached to a Song prevent delete
|
||||||
|
"""
|
||||||
|
self.currentRow = index.row()
|
||||||
|
id = int(self.TopicListData.getId(index))
|
||||||
|
self.Topic = self.songmanager.get_Topic(id)
|
||||||
|
|
||||||
|
self.DisplayEdit.setText(self.Topic.display_name)
|
||||||
|
if len(self.Topic.songs) > 0:
|
||||||
|
self.MessageLabel.setText("Topic in use 'Delete' is disabled")
|
||||||
|
self.DeleteButton.setEnabled(False)
|
||||||
|
else:
|
||||||
|
self.MessageLabel.setText("Topic is not used")
|
||||||
|
self.DeleteButton.setEnabled(True)
|
||||||
|
self._validate_form()
|
||||||
|
|
||||||
|
def _validate_form(self):
|
||||||
|
if len(self.DisplayEdit.displayText()) == 0: # We need at lease a display name
|
||||||
|
self.AddUpdateButton.setEnabled(False)
|
||||||
|
else:
|
||||||
|
self.AddUpdateButton.setEnabled(True)
|
||||||
|
Loading…
Reference in New Issue
Block a user