openlp-core team mailing list archive
-
openlp-core team
-
Mailing list archive
-
Message #00211
[Merge] lp:~trb143/openlp/bugfixes into lp:openlp
Tim Bentley has proposed merging lp:~trb143/openlp/bugfixes into lp:openlp.
Requested reviews:
openlp.org Core (openlp-core)
Plugin List screen
Start Presentation dialog - Settings work.
Remotes plugin now can set it's own port if wanted
--
https://code.launchpad.net/~trb143/openlp/bugfixes/+merge/10184
Your team openlp.org Core is subscribed to branch lp:openlp.
=== modified file 'openlp/core/lib/pluginmanager.py'
--- openlp/core/lib/pluginmanager.py 2009-08-10 20:10:20 +0000
+++ openlp/core/lib/pluginmanager.py 2009-08-13 20:02:38 +0000
@@ -86,18 +86,22 @@
__import__(modulename, globals(), locals(), [])
except ImportError, e:
log.error(u'Failed to import module %s on path %s for reason %s', modulename, path, e.args[0])
- self.plugin_classes = Plugin.__subclasses__()
+ plugin_classes = Plugin.__subclasses__()
self.plugins = []
+ self.plugin_list=[]
plugin_objects = []
- for p in self.plugin_classes:
+ for p in plugin_classes:
try:
plugin = p(self.plugin_helpers)
log.debug(u'loaded plugin %s with helpers', unicode(p))
log.debug(u'Plugin: %s', unicode(p))
+ pList = {u'name': plugin.name, u'version':plugin.version, u'status': u'Inactive'}
if plugin.check_pre_conditions():
log.debug(u'Appending %s ', unicode(p))
plugin_objects.append(plugin)
eventmanager.register(plugin)
+ pList[u'status'] = u'Active'
+ self.plugin_list.append(pList)
except TypeError:
log.error(u'loaded plugin %s has no helpers', unicode(p))
self.plugins = sorted(plugin_objects, self.order_by_weight)
=== modified file 'openlp/core/ui/__init__.py'
--- openlp/core/ui/__init__.py 2009-07-06 16:34:13 +0000
+++ openlp/core/ui/__init__.py 2009-08-13 20:02:38 +0000
@@ -27,6 +27,7 @@
from themestab import ThemesTab
from about import AboutForm
from alertform import AlertForm
+from plugindialoglistform import PluginForm
from settingsform import SettingsForm
from servicemanager import ServiceManager
from thememanager import ThemeManager
=== modified file 'openlp/core/ui/mainwindow.py'
--- openlp/core/ui/mainwindow.py 2009-08-10 20:10:20 +0000
+++ openlp/core/ui/mainwindow.py 2009-08-14 19:12:14 +0000
@@ -23,7 +23,8 @@
from PyQt4 import QtCore, QtGui
from openlp.core.ui import AboutForm, SettingsForm, AlertForm, \
- ServiceManager, ThemeManager, MainDisplay, SlideController
+ ServiceManager, ThemeManager, MainDisplay, SlideController, \
+ PluginForm
from openlp.core.lib import translate, Plugin, MediaManagerItem, \
SettingsTab, EventManager, RenderManager, PluginConfig, \
SettingsManager, PluginManager, EventType
@@ -203,6 +204,12 @@
QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.ToolsAlertItem.setIcon(AlertIcon)
self.ToolsAlertItem.setObjectName(u'ToolsAlertItem')
+ self.PluginItem = QtGui.QAction(MainWindow)
+ PluginIcon = QtGui.QIcon()
+ PluginIcon.addPixmap(QtGui.QPixmap(u':/tools/tools_alert.png'),
+ QtGui.QIcon.Normal, QtGui.QIcon.Off)
+ self.PluginItem.setIcon(AlertIcon)
+ self.PluginItem.setObjectName(u'PluginItem')
self.HelpDocumentationItem = QtGui.QAction(MainWindow)
ContentsIcon = QtGui.QIcon()
ContentsIcon.addPixmap(QtGui.QPixmap(u':/system/system_help_contents.png'),
@@ -264,6 +271,7 @@
self.OptionsMenu.addSeparator()
self.OptionsMenu.addAction(self.OptionsSettingsItem)
self.ToolsMenu.addAction(self.ToolsAlertItem)
+ self.ToolsMenu.addAction(self.PluginItem)
self.ToolsMenu.addSeparator()
self.ToolsMenu.addAction(self.ToolsAddToolItem)
self.HelpMenu.addAction(self.HelpDocumentationItem)
@@ -362,6 +370,10 @@
self.ToolsAlertItem.setStatusTip(
translate(u'mainWindow', u'Show an alert message'))
self.ToolsAlertItem.setShortcut(translate(u'mainWindow', u'F7'))
+ self.PluginItem.setText(translate(u'mainWindow', u'&Plugin'))
+ self.PluginItem.setStatusTip(
+ translate(u'mainWindow', u'List the Plugins'))
+ self.PluginItem.setShortcut(translate(u'mainWindow', u'Alt+F7'))
self.HelpDocumentationItem.setText(
translate(u'mainWindow', u'&User Guide'))
self.HelpAboutItem.setText(translate(u'mainWindow', u'&About'))
@@ -408,6 +420,7 @@
self.mainDisplay = MainDisplay(self, screens)
self.generalConfig = PluginConfig(u'General')
self.alertForm = AlertForm(self)
+ self.pluginForm = PluginForm(self)
self.aboutForm = AboutForm()
self.settingsForm = SettingsForm(self.screenList, self)
# Set up the path with plugins
@@ -441,6 +454,8 @@
QtCore.SIGNAL(u'triggered()'), self.onHelpAboutItemClicked)
QtCore.QObject.connect(self.ToolsAlertItem,
QtCore.SIGNAL(u'triggered()'), self.onToolsAlertItemClicked)
+ QtCore.QObject.connect(self.PluginItem,
+ QtCore.SIGNAL(u'triggered()'), self.onPluginItemClicked)
QtCore.QObject.connect(self.OptionsSettingsItem,
QtCore.SIGNAL(u'triggered()'), self.onOptionsSettingsItemClicked)
#warning cyclic dependency
@@ -514,6 +529,13 @@
"""
self.alertForm.exec_()
+ def onPluginItemClicked(self):
+ """
+ Show the Plugin form
+ """
+ self.pluginForm.load()
+ self.pluginForm.exec_()
+
def onOptionsSettingsItemClicked(self):
"""
Show the Settings dialog
=== added file 'openlp/core/ui/plugindialoglistform.py'
--- openlp/core/ui/plugindialoglistform.py 1970-01-01 00:00:00 +0000
+++ openlp/core/ui/plugindialoglistform.py 2009-08-14 16:26:22 +0000
@@ -0,0 +1,76 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'plugindialoglistform.ui'
+#
+# Created: Thu Aug 13 05:52:06 2009
+# by: PyQt4 UI code generator 4.5.4
+#
+# WARNING! All changes made in this file will be lost!
+
+import logging
+from PyQt4 import QtCore, QtGui
+from openlp.core.lib import translate
+
+class PluginForm(QtGui.QDialog):
+ global log
+ log = logging.getLogger(u'PluginForm')
+
+ def __init__(self, parent=None):
+ QtGui.QDialog.__init__(self, None)
+ self.parent = parent
+ self.setupUi(self)
+ log.debug(u'Defined')
+
+ def setupUi(self, PluginForm):
+ PluginForm.setObjectName(u'PluginForm')
+ PluginForm.resize(400, 393)
+ self.PluginViewList = QtGui.QTableWidget(PluginForm)
+ self.PluginViewList.setGeometry(QtCore.QRect(20, 10, 371, 331))
+ self.PluginViewList.setObjectName(u'PluginViewList')
+ self.PluginViewList.setShowGrid(False)
+ self.PluginViewList.setGridStyle(QtCore.Qt.SolidLine)
+ self.PluginViewList.setSortingEnabled(False)
+ self.PluginViewList.setColumnCount(3)
+ item = QtGui.QTableWidgetItem()
+ self.PluginViewList.setHorizontalHeaderItem(0, item)
+ item = QtGui.QTableWidgetItem()
+ self.PluginViewList.setHorizontalHeaderItem(1, item)
+ item = QtGui.QTableWidgetItem()
+ self.PluginViewList.setHorizontalHeaderItem(2, item)
+ self.PluginViewList.horizontalHeader().setVisible(True)
+ self.PluginViewList.verticalHeader().setVisible(False)
+ self.ButtonBox = QtGui.QDialogButtonBox(PluginForm)
+ self.ButtonBox.setGeometry(QtCore.QRect(220, 350, 170, 25))
+ self.ButtonBox.setStandardButtons(QtGui.QDialogButtonBox.Ok)
+ self.ButtonBox.setObjectName(u'ButtonBox')
+
+ self.retranslateUi(PluginForm)
+ QtCore.QObject.connect(self.ButtonBox, QtCore.SIGNAL(u'accepted()'), PluginForm.close)
+ QtCore.QMetaObject.connectSlotsByName(PluginForm)
+
+ def retranslateUi(self, PluginForm):
+ PluginForm.setWindowTitle(translate(u'PluginForm', u'Plugin list'))
+ self.PluginViewList.horizontalHeaderItem(0).setText(translate(u'PluginForm', u'Name'))
+ self.PluginViewList.horizontalHeaderItem(1).setText(translate(u'PluginForm', u'Version'))
+ self.PluginViewList.horizontalHeaderItem(2).setText(translate(u'PluginForm', u'Status'))
+
+ def load(self):
+ """
+ Load the plugin details into the screen
+ """
+ for plugin in self.parent.plugin_manager.plugin_list:
+ row = self.PluginViewList.rowCount()
+ self.PluginViewList.setRowCount(row + 1)
+ item1 = QtGui.QTableWidgetItem(plugin[u'name'])
+ item1.setTextAlignment(QtCore.Qt.AlignVCenter)
+ item2 = QtGui.QTableWidgetItem(plugin[u'version'])
+ item2.setTextAlignment(QtCore.Qt.AlignVCenter)
+ item3 = QtGui.QTableWidgetItem(translate(u'PluginForm', plugin[u'status']))
+ item3.setTextAlignment(QtCore.Qt.AlignVCenter)
+ self.PluginViewList.setItem(row, 0, item1)
+ self.PluginViewList.setItem(row, 1, item2)
+ self.PluginViewList.setItem(row, 2, item3)
+ self.PluginViewList.setRowHeight(row, 15)
+
+
+
=== modified file 'openlp/plugins/presentations/lib/__init__.py'
--- openlp/plugins/presentations/lib/__init__.py 2009-08-11 19:21:52 +0000
+++ openlp/plugins/presentations/lib/__init__.py 2009-08-14 17:41:29 +0000
@@ -19,6 +19,6 @@
"""
from mediaitem import PresentationMediaItem
from presentationtab import PresentationTab
-from impressslidecontroller import impressToolbar
+from impresscontroller import impressController
-__all__ = ['PresentationMediaItem', 'PresentationTab', 'impressToolbar']
+__all__ = ['PresentationMediaItem', 'PresentationTab', 'impressController']
=== modified file 'openlp/plugins/presentations/lib/presentationtab.py'
--- openlp/plugins/presentations/lib/presentationtab.py 2009-06-16 18:21:24 +0000
+++ openlp/plugins/presentations/lib/presentationtab.py 2009-08-14 19:12:14 +0000
@@ -20,14 +20,14 @@
from PyQt4 import Qt, QtCore, QtGui
-from openlp.core.lib import SettingsTab, translate
+from openlp.core.lib import SettingsTab, translate, str_to_bool
class PresentationTab(SettingsTab):
"""
PresentationsTab is the Presentations settings tab in the settings dialog.
"""
def __init__(self):
- SettingsTab.__init__(self, translate(u'PresentationTab', u'Presentation'), u'Presentation')
+ SettingsTab.__init__(self, translate(u'PresentationTab', u'Presentation'), u'Presentations')
def setupUi(self):
self.setObjectName(u'PresentationTab')
@@ -41,7 +41,6 @@
self.PresentationLeftLayout.setObjectName(u'PresentationLeftLayout')
self.PresentationLeftLayout.setSpacing(8)
self.PresentationLeftLayout.setMargin(0)
-
self.VerseDisplayGroupBox = QtGui.QGroupBox(self)
self.VerseDisplayGroupBox.setObjectName(u'VerseDisplayGroupBox')
self.VerseDisplayLayout = QtGui.QGridLayout(self.VerseDisplayGroupBox)
@@ -53,36 +52,25 @@
self.VerseTypeLayout.setSpacing(8)
self.VerseTypeLayout.setMargin(0)
self.VerseTypeLayout.setObjectName(u'VerseTypeLayout')
-
self.PowerpointCheckBox = QtGui.QCheckBox(self.VerseDisplayGroupBox)
+ self.PowerpointCheckBox.setTristate(False)
self.PowerpointCheckBox.setObjectName(u'PowerpointCheckBox')
self.VerseDisplayLayout.addWidget(self.PowerpointCheckBox, 0, 0, 1, 1)
-
- self.PowerpointPath = QtGui.QLineEdit(self.VerseDisplayGroupBox)
- self.PowerpointPath.setObjectName(u'PowerpointPath')
- self.VerseDisplayLayout.addWidget(self.PowerpointPath, 1, 0, 1, 1)
-
self.ImpressCheckBox = QtGui.QCheckBox(self.VerseDisplayGroupBox)
+ self.ImpressCheckBox.setTristate(False)
self.ImpressCheckBox.setObjectName(u'ImpressCheckBox')
self.VerseDisplayLayout.addWidget(self.ImpressCheckBox, 2, 0, 1, 1)
-
- self.ImpressPath = QtGui.QLineEdit(self.VerseDisplayGroupBox)
- self.ImpressPath.setObjectName(u'ImpressPath')
- self.VerseDisplayLayout.addWidget(self.ImpressPath, 3, 0, 1, 1)
-
self.PresentationThemeWidget = QtGui.QWidget(self.VerseDisplayGroupBox)
self.PresentationThemeWidget.setObjectName(u'PresentationThemeWidget')
self.PresentationThemeLayout = QtGui.QHBoxLayout(self.PresentationThemeWidget)
self.PresentationThemeLayout.setSpacing(8)
self.PresentationThemeLayout.setMargin(0)
self.PresentationThemeLayout.setObjectName(u'PresentationThemeLayout')
-
self.PresentationLeftLayout.addWidget(self.VerseDisplayGroupBox)
self.PresentationLeftSpacer = QtGui.QSpacerItem(40, 20,
QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
self.PresentationLeftLayout.addItem(self.PresentationLeftSpacer)
self.PresentationLayout.addWidget(self.PresentationLeftWidget)
-
self.PresentationRightWidget = QtGui.QWidget(self)
self.PresentationRightWidget.setObjectName(u'PresentationRightWidget')
self.PresentationRightLayout = QtGui.QVBoxLayout(self.PresentationRightWidget)
@@ -94,42 +82,15 @@
self.PresentationRightLayout.addItem(self.PresentationRightSpacer)
self.PresentationLayout.addWidget(self.PresentationRightWidget)
- # Signals and slots
- #QtCore.QObject.connect(self.NewChaptersCheckBox,
- # QtCore.SIGNAL(u'stateChanged(int)'), self.onNewChaptersCheckBoxChanged)
-
def retranslateUi(self):
self.PowerpointCheckBox.setText(translate(u'PresentationTab', 'Powerpoint available:'))
self.ImpressCheckBox.setText(translate(u'PresentationTab', 'Impress available:'))
- self.PowerpointPath.setText(u'powerpoint.exe ')
- self.ImpressPath.setText(u'openoffice.org -nologo -show ')
-
- def onNewChaptersCheckBoxChanged(self):
- check_state = self.NewChaptersCheckBox.checkState()
- self.show_new_chapters = False
- if check_state == 2: # we have a set value convert to True/False
- self.show_new_chapters = True
-
def load(self):
- pass
-# self.paragraph_style = (self.config.get_config(u'paragraph style', u'True'))
-# self.show_new_chapters = (self.config.get_config(u'display new chapter', u"False'))
-# self.display_style = int(self.config.get_config(u'display brackets', u'0'))
-# self.Presentation_theme = int(self.config.get_config(u'Presentation theme', u'0'))
-# self.Presentation_search = (self.config.get_config(u'search as type', u'True'))
-# if self.paragraph_style:
-# self.ParagraphRadioButton.setChecked(True)
-# else:
-# self.VerseRadioButton.setChecked(True)
-# self.NewChaptersCheckBox.setChecked(self.show_new_chapters)
-# self.DisplayStyleComboBox.setCurrentIndex(self.display_style)
-# self.PresentationSearchCheckBox.setChecked(self.Presentation_search)
+ self.PowerpointCheckBox.setChecked(int(self.config.get_config(u'Powerpoint', 0)))
+ self.ImpressCheckBox.setChecked(int(self.config.get_config(u'Impress', 0)))
def save(self):
- pass
-# self.config.set_config(u'paragraph style', unicode(self.paragraph_style))
-# self.config.set_config(u'display new chapter', unicode(self.show_new_chapters))
-# self.config.set_config(u'display brackets', unicode(self.display_style))
-# self.config.set_config(u'search as type', unicode(self.Presentation_search))
-# self.config.set_config(u'Presentation theme', unicode(self.Presentation_theme))
\ No newline at end of file
+ self.config.set_config(u'Powerpoint', unicode(self.PowerpointCheckBox.checkState()))
+ self.config.set_config(u'Impress', unicode(self.ImpressCheckBox.checkState()))
+ print self.PowerpointCheckBox.checkState(), unicode(self.PowerpointCheckBox.checkState())
=== modified file 'openlp/plugins/presentations/presentationplugin.py'
--- openlp/plugins/presentations/presentationplugin.py 2009-08-11 19:21:52 +0000
+++ openlp/plugins/presentations/presentationplugin.py 2009-08-14 19:12:14 +0000
@@ -24,7 +24,7 @@
from PyQt4 import QtCore, QtGui
from openlp.core.lib import Plugin, MediaManagerItem
-from openlp.plugins.presentations.lib import PresentationMediaItem, PresentationTab, impressToolbar
+from openlp.plugins.presentations.lib import PresentationMediaItem, PresentationTab, impressController
class PresentationPlugin(Plugin):
@@ -66,17 +66,17 @@
If Not do not install the plugin.
"""
log.debug('check_pre_conditions')
- impress = True
- try:
- #Check to see if we have uno installed
- import uno
- #openoffice = impressToolbar()
- self.registerControllers(u'Impress', None)
- except:
- pass
+
+ if int(self.config.get_config(u'Powerpoint', 0)) == 2:
+ try:
+ #Check to see if we have uno installed
+ import uno
+ #openoffice = impressController()
+ self.registerControllers(u'Impress', None)
+ except:
+ pass
#If we have no controllers disable plugin
if len(self.controllers) > 0:
return True
else:
return False
-# return self.openoffice.checkOoPid()
=== modified file 'openlp/plugins/remotes/lib/__init__.py'
--- openlp/plugins/remotes/lib/__init__.py 2009-08-10 18:20:46 +0000
+++ openlp/plugins/remotes/lib/__init__.py 2009-08-14 17:41:29 +0000
@@ -18,4 +18,4 @@
Place, Suite 330, Boston, MA 02111-1307 USA
"""
-from mediaitem import RemoteMediaItem
+from remotetab import RemoteTab
=== removed file 'openlp/plugins/remotes/lib/mediaitem.py'
--- openlp/plugins/remotes/lib/mediaitem.py 2009-08-10 18:20:46 +0000
+++ openlp/plugins/remotes/lib/mediaitem.py 1970-01-01 00:00:00 +0000
@@ -1,215 +0,0 @@
-# -*- coding: utf-8 -*-
-# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
-"""
-OpenLP - Open Source Lyrics Projection
-Copyright (c) 2008 Raoul Snyman
-Portions copyright (c) 2008-2009 Martin Thompson, Tim Bentley
-
-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; version 2 of the License.
-
-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.
-
-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
-"""
-import logging
-
-from PyQt4 import QtCore, QtGui
-
-from openlp.core.lib import MediaManagerItem, SongXMLParser, ServiceItem, translate, BaseListWithDnD
-
-class RemoteListView(BaseListWithDnD):
- def __init__(self, parent=None):
- self.PluginName = u'Remote'
- BaseListWithDnD.__init__(self, parent)
-
-class RemoteMediaItem(MediaManagerItem):
- """
- This is the custom media manager item for Custom Slides.
- """
- global log
- log=logging.getLogger(u'RemoteMediaItem')
- log.info(u'Remote Media Item loaded')
-
- def __init__(self, parent, icon, title):
- MediaManagerItem.__init__(self, parent, icon, title)
- self.parent = parent
- self.TranslationContext = u'RemotesPlugin'
- self.PluginTextShort = u'Remotes'
- self.ConfigSection = u'Remotes'
- self.ListViewWithDnD_class = RemoteListView
- MediaManagerItem.__init__(self, parent, icon, title)
-
- def initialise(self):
- pass
-
- def setupUi(self):
- # Add a toolbar
- self.addToolbar()
-# # Create buttons for the toolbar
-# ## New Custom Button ##
-# self.addToolbarButton(
-# translate(u'CustomMediaItem',u'New Custom Item'),
-# translate(u'CustomMediaItem',u'Add a new Custom Item'),
-# u':/custom/custom_new.png', self.onCustomNewClick, u'CustomNewItem')
-# ## Edit Custom Button ##
-# self.addToolbarButton(
-# translate(u'CustomMediaItem',u'Edit Custom Item'),
-# translate(u'CustomMediaItem',u'Edit the selected Custom Item'),
-# u':/custom/custom_edit.png', self.onCustomEditClick, u'CustomEditItem')
-# ## Delete Custom Button ##
-# self.addToolbarButton(
-# translate(u'CustomMediaItem',u'Delete Custom Item'),
-# translate(u'CustomMediaItem',u'Delete the selected Custom Item'),
-# u':/custom/custom_delete.png', self.onCustomDeleteClick, u'CustomDeleteItem')
-# ## Separator Line ##
-# self.addToolbarSeparator()
-# ## Preview Custom Button ##
-# self.addToolbarButton(
-# translate(u'CustomMediaItem',u'Preview Custom Item'),
-# translate(u'CustomMediaItem',u'Preview the selected Custom Item'),
-# u':/system/system_preview.png', self.onCustomPreviewClick, u'CustomPreviewItem')
-# ## Live Custom Button ##
-# self.addToolbarButton(
-# translate(u'CustomMediaItem',u'Go Live'),
-# translate(u'CustomMediaItem', u'Send the selected Custom live'),
-# u':/system/system_live.png', self.onCustomLiveClick, u'CustomLiveItem')
-# ## Add Custom Button ##
-# self.addToolbarButton(
-# translate(u'CustomMediaItem',u'Add Custom To Service'),
-# translate(u'CustomMediaItem',u'Add the selected Custom(s) to the service'),
-# u':/system/system_add.png', self.onCustomAddClick, u'CustomAddItem')
-# # Add the Customlist widget
-# self.CustomWidget = QtGui.QWidget(self)
-# sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
-# sizePolicy.setHorizontalStretch(0)
-# sizePolicy.setVerticalStretch(0)
-# sizePolicy.setHeightForWidth(self.CustomWidget.sizePolicy().hasHeightForWidth())
-# self.CustomWidget.setSizePolicy(sizePolicy)
-# self.CustomWidget.setObjectName(u'CustomWidget')
-# # Add the Custom widget to the page layout
-# self.PageLayout.addWidget(self.CustomWidget)
-# self.CustomListView = CustomList()
-# self.CustomListView.setAlternatingRowColors(True)
-# self.CustomListData = TextListData()
-# self.CustomListView.setModel(self.CustomListData)
-# self.CustomListView.setDragEnabled(True)
-# self.PageLayout.addWidget(self.CustomListView)
-# # Signals
-# QtCore.QObject.connect(self.CustomListView,
-# QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), self.onCustomPreviewClick)
-# #define and add the context menu
-# self.CustomListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
-# self.CustomListView.addAction(self.contextMenuAction(self.CustomListView,
-# ':/custom/custom_edit.png', translate(u'CustomMediaItem', u'&Edit Custom'),
-# self.onCustomEditClick))
-# self.CustomListView.addAction(self.contextMenuSeparator(self.CustomListView))
-# self.CustomListView.addAction(self.contextMenuAction(
-# self.CustomListView, ':/system/system_preview.png',
-# translate(u'CustomMediaItem',u'&Preview Custom'), self.onCustomPreviewClick))
-# self.CustomListView.addAction(self.contextMenuAction(
-# self.CustomListView, ':/system/system_live.png',
-# translate(u'CustomMediaItem',u'&Show Live'), self.onCustomLiveClick))
-# self.CustomListView.addAction(self.contextMenuAction(
-# self.CustomListView, ':/system/system_add.png',
-# translate(u'CustomMediaItem',u'&Add to Service'), self.onCustomAddClick))
-
-# def retranslateUi(self):
-# self.ClearTextButton.setText(translate(u'CustomMediaItem', u'Clear'))
-# self.SearchTextButton.setText(translate(u'CustomMediaItem', u'Search'))
-
-# def initialise(self):
-# self.loadCustomList(self.parent.custommanager.get_all_slides())
-#
-# def loadCustomList(self, list):
-# self.CustomListData.resetStore()
-# for CustomSlide in list:
-# self.CustomListData.addRow(CustomSlide.id,CustomSlide.title)
-#
-# def onClearTextButtonClick(self):
-# """
-# Clear the search text.
-# """
-# self.SearchTextEdit.clear()
-#
-# def onSearchTextEditChanged(self, text):
-# # only search if > 3 characters
-# if len(text) > 3:
-# self.onSearchTextButtonClick()
-#
-# def onSearchTextButtonClick(self):
-# search_keywords = str(self.SearchTextEdit.displayText())
-# search_results = []
-# search_type = self.SearchTypeComboBox.currentText()
-# search_results = self.Custommanager.search_Custom_lyrics(search_keywords)
-# self._display_results(search_results)
-#
-# def onCustomNewClick(self):
-# self.parent.edit_custom_form.loadCustom(0)
-# self.parent.edit_custom_form.exec_()
-# self.initialise()
-#
-# def onCustomEditClick(self):
-# indexes = self.CustomListView.selectedIndexes()
-# for index in indexes:
-# self.parent.edit_custom_form.loadCustom(self.CustomListData.getId(index))
-# self.parent.edit_custom_form.exec_()
-# self.initialise()
-#
-# def onCustomDeleteClick(self):
-# indexes = self.CustomListView.selectedIndexes()
-# for index in indexes:
-# id = self.CustomListData.getId(index)
-# self.parent.custommanager.delete_custom(id)
-# self.CustomListData.deleteRow(index)
-#
-# def onCustomPreviewClick(self):
-# log.debug(u'Custom Preview Requested')
-# service_item = ServiceItem(self.parent)
-# service_item.addIcon(u':/media/media_song.png')
-# self.generateSlideData(service_item)
-# self.parent.preview_controller.addServiceItem(service_item)
-#
-# def onCustomLiveClick(self):
-# log.debug(u'Custom Live Requested')
-# service_item = ServiceItem(self.parent)
-# service_item.addIcon(u':/media/media_song.png')
-# self.generateSlideData(service_item)
-# self.parent.live_controller.addServiceItem(service_item)
-#
-# def onCustomAddClick(self):
-# log.debug(u'Custom Add Requested')
-# service_item = ServiceItem(self.parent)
-# service_item.addIcon(u':/media/media_song.png')
-# self.generateSlideData(service_item)
-# self.parent.service_manager.addServiceItem(service_item)
-#
-# def generateSlideData(self, service_item):
-# raw_slides =[]
-# raw_footer = []
-# slide = None
-# theme = None
-# indexes = self.CustomListView.selectedIndexes()
-# for index in indexes:
-# id = self.CustomListData.getId(index)
-# customSlide = self.parent.custommanager.get_custom(id)
-# title = customSlide.title
-# credit = customSlide.credits
-# theme = customSlide.theme_name
-# if len(theme) is not 0 :
-# service_item.theme = theme
-# songXML=SongXMLParser(customSlide.text)
-# verseList = songXML.get_verses()
-# for verse in verseList:
-# raw_slides.append(verse[1])
-# raw_footer.append(title + u' '+ credit)
-# if theme is not None:
-# service_item.title = title
-# for slide in raw_slides:
-# service_item.add_from_text(slide[:30], slide)
-# service_item.raw_footer = raw_footer
=== modified file 'openlp/plugins/remotes/remoteplugin.py'
--- openlp/plugins/remotes/remoteplugin.py 2009-08-12 16:29:00 +0000
+++ openlp/plugins/remotes/remoteplugin.py 2009-08-14 17:41:29 +0000
@@ -23,6 +23,7 @@
from PyQt4 import QtNetwork, QtGui, QtCore
from openlp.core.lib import Plugin, Event, EventType
+from openlp.plugins.remotes.lib import RemoteTab
class RemotesPlugin(Plugin):
@@ -35,10 +36,16 @@
Plugin.__init__(self, u'Remotes', u'1.9.0', plugin_helpers)
self.weight = -1
self.server = QtNetwork.QUdpSocket()
- self.server.bind(4316)
+ self.server.bind(int(self.config.get_config(u'remote port', 4316)))
QtCore.QObject.connect(self.server,
QtCore.SIGNAL(u'readyRead()'), self.readData)
+ def get_settings_tab(self):
+ """
+ Create the settings Tab
+ """
+ return RemoteTab()
+
def readData(self):
log.info(u'Remoted data has arrived')
while self.server.hasPendingDatagrams():
=== added file 'resources/forms/plugindialoglistform.ui'
--- resources/forms/plugindialoglistform.ui 1970-01-01 00:00:00 +0000
+++ resources/forms/plugindialoglistform.ui 2009-08-13 20:02:38 +0000
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>PluginViewDialog</class>
+ <widget class="QWidget" name="PluginViewDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>393</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Plugin list</string>
+ </property>
+ <widget class="QTableWidget" name="PluginViewList">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>10</y>
+ <width>371</width>
+ <height>331</height>
+ </rect>
+ </property>
+ <property name="showGrid">
+ <bool>false</bool>
+ </property>
+ <property name="gridStyle">
+ <enum>Qt::SolidLine</enum>
+ </property>
+ <property name="rowCount">
+ <number>1</number>
+ </property>
+ <attribute name="horizontalHeaderVisible">
+ <bool>true</bool>
+ </attribute>
+ <attribute name="horizontalHeaderShowSortIndicator" stdset="0">
+ <bool>true</bool>
+ </attribute>
+ <attribute name="verticalHeaderVisible">
+ <bool>false</bool>
+ </attribute>
+ <row/>
+ <column>
+ <property name="text">
+ <string>Name</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Version</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Status</string>
+ </property>
+ </column>
+ <item row="0" column="0">
+ <property name="text">
+ <string>qqq</string>
+ </property>
+ </item>
+ <item row="0" column="1">
+ <property name="text">
+ <string>aaa</string>
+ </property>
+ </item>
+ <item row="0" column="2">
+ <property name="text">
+ <string>ccc</string>
+ </property>
+ </item>
+ </widget>
+ <widget class="QDialogButtonBox" name="ButtonBox">
+ <property name="geometry">
+ <rect>
+ <x>220</x>
+ <y>350</y>
+ <width>170</width>
+ <height>25</height>
+ </rect>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>ButtonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>PluginViewDialog</receiver>
+ <slot>close()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>370</x>
+ <y>364</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>460</x>
+ <y>367</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
Follow ups