From 193151c2707dee99cb97856c183b78916ef94f59 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Wed, 8 Jul 2009 17:40:42 +0100 Subject: [PATCH 1/8] Cleanup --- openlp/core/lib/mediamanageritem.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index f8a710246..430e4dbfb 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -233,24 +233,25 @@ class MediaManagerItem(QtGui.QWidget): def onPreviewClick(self): log.debug(self.PluginTextShort+u' Preview Requested') - service_item = ServiceItem(self.parent) - service_item.addIcon(u':/media/media_'+self.PluginTextShort.lower()+u'.png') - self.generateSlideData(service_item) + service_item = self.buildServiceItem() self.parent.preview_controller.addServiceItem(service_item) - self.ListView.clearSelection() def onLiveClick(self): log.debug(self.PluginTextShort + u' Live Requested') - service_item = ServiceItem(self.parent) - service_item.addIcon(u':/media/media_'+self.PluginTextShort.lower()+u'.png') - self.generateSlideData(service_item) + service_item = self.buildServiceItem() self.parent.live_controller.addServiceItem(service_item) - self.ListView.clearSelection() def onAddClick(self): log.debug(self.PluginTextShort+u' Add Requested') + service_item = self.buildServiceItem() + self.parent.service_manager.addServiceItem(service_item) + + def buildServiceItem(self): + """ + Common method for generating a service item + """ service_item = ServiceItem(self.parent) service_item.addIcon(u':/media/media_'+self.PluginTextShort.lower()+u'.png') self.generateSlideData(service_item) - self.parent.service_manager.addServiceItem(service_item) self.ListView.clearSelection() + return service_item From db2efd386de76c74d1cbd78bc9584b957437b48e Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Wed, 8 Jul 2009 18:18:48 +0100 Subject: [PATCH 2/8] Start to add ServiceManager --- openlp/core/__init__.py | 8 ++++---- openlp/core/lib/__init__.py | 7 ++++--- openlp/core/{ => lib}/settingsmanager.py | 6 +++++- openlp/core/ui/mainwindow.py | 4 ++-- 4 files changed, 15 insertions(+), 10 deletions(-) rename openlp/core/{ => lib}/settingsmanager.py (80%) diff --git a/openlp/core/__init__.py b/openlp/core/__init__.py index e123886b5..ca1042fac 100644 --- a/openlp/core/__init__.py +++ b/openlp/core/__init__.py @@ -17,8 +17,8 @@ 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 """ -from settingsmanager import SettingsManager -from openlp.core.lib.pluginmanager import PluginManager - -__all__ = ['SettingsManager', 'PluginManager' ] +#from settingsmanager import SettingsManager +#from openlp.core.lib.pluginmanager import PluginManager +# +#__all__ = ['SettingsManager', 'PluginManager' ] diff --git a/openlp/core/lib/__init__.py b/openlp/core/lib/__init__.py index d442e3c2b..c940bd649 100644 --- a/openlp/core/lib/__init__.py +++ b/openlp/core/lib/__init__.py @@ -57,13 +57,15 @@ def contextMenuSeparator(base): action.setSeparator(True) return action +from settingsmanager import SettingsManager from pluginconfig import PluginConfig from plugin import Plugin +from eventmanager import EventManager +from pluginmanager import PluginManager from settingstab import SettingsTab from mediamanageritem import MediaManagerItem from event import Event from event import EventType -from eventmanager import EventManager from xmlrootclass import XmlRootClass from serviceitem import ServiceItem from eventreceiver import Receiver @@ -79,5 +81,4 @@ from baselistwithdnd import BaseListWithDnD from listwithpreviews import ListWithPreviews __all__ = [ 'translate', 'file_to_xml', 'str_to_bool', - 'contextMenuAction', 'contextMenuSeparator','ServiceItem' -] + 'contextMenuAction', 'contextMenuSeparator','ServiceItem'] diff --git a/openlp/core/settingsmanager.py b/openlp/core/lib/settingsmanager.py similarity index 80% rename from openlp/core/settingsmanager.py rename to openlp/core/lib/settingsmanager.py index 84ff69765..9272c3035 100644 --- a/openlp/core/settingsmanager.py +++ b/openlp/core/lib/settingsmanager.py @@ -19,5 +19,9 @@ Place, Suite 330, Boston, MA 02111-1307 USA """ class SettingsManager(object): - def __init__(self): + """ + Class to control the size of the UI components so they size correctly + This class is created by the main window and then calculates the size of individual components + """ + def __init__(self, screen): pass diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index 504b351aa..f501ab85d 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -25,8 +25,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.ui import AboutForm, SettingsForm, AlertForm, ServiceManager, \ ThemeManager, MainDisplay, SlideController from openlp.core.lib import translate, Plugin, MediaManagerItem, SettingsTab, \ - EventManager, RenderManager, PluginConfig -from openlp.core import PluginManager + EventManager, RenderManager, PluginConfig, SettingsManager, PluginManager class MainWindow(object): """ @@ -42,6 +41,7 @@ class MainWindow(object): plugins. """ self.oosNotSaved = False + self.settingsmanager = SettingsManager(screens) self.mainWindow = QtGui.QMainWindow() self.mainWindow.__class__.closeEvent = self.onCloseEvent self.mainDisplay = MainDisplay(None, screens) From 93655bc92ec8c0fd49b71dcaaa6643142c67dcec Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Thu, 9 Jul 2009 17:51:25 +0100 Subject: [PATCH 3/8] Stop Presentation Tab failing CSV Bibles get Unicode --- openlp/plugins/bibles/lib/bibleCSVimpl.py | 52 +++++++++++-------- openlp/plugins/presentations/lib/mediaitem.py | 2 - .../presentations/presentationplugin.py | 5 +- 3 files changed, 33 insertions(+), 26 deletions(-) diff --git a/openlp/plugins/bibles/lib/bibleCSVimpl.py b/openlp/plugins/bibles/lib/bibleCSVimpl.py index 6cc0af681..e97c4173c 100644 --- a/openlp/plugins/bibles/lib/bibleCSVimpl.py +++ b/openlp/plugins/bibles/lib/bibleCSVimpl.py @@ -16,6 +16,7 @@ this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA """ import logging +import chardet from openlp.plugins.bibles.lib.bibleDBimpl import BibleDBImpl from openlp.plugins.bibles.lib.common import BibleCommon @@ -23,57 +24,64 @@ from openlp.core.lib import Receiver class BibleCSVImpl(BibleCommon): - global log + global log log=logging.getLogger(u'BibleCSVImpl') - log.info(u'BibleCVSImpl loaded') + log.info(u'BibleCVSImpl loaded') def __init__(self, bibledb): """ Loads a Bible from a pair of CVS files passed in - This class assumes the files contain all the information and + This class assumes the files contain all the information and a clean bible is being loaded. - """ + """ self.bibledb = bibledb self.loadbible = True QtCore.QObject.connect(Receiver().get_receiver(),QtCore.SIGNAL(u'openlpstopimport'),self.stop_import) - + def stop_import(self): self.loadbible= False - + def load_data(self, booksfile, versesfile, dialogobject): #Populate the Tables fbooks=open(booksfile, 'r') fverse=open(versesfile, 'r') - + count = 0 for line in fbooks: - #log.debug( line) - if self.loadbible == False: # cancel pressed - break + # cancel pressed + if self.loadbible == False: + break + details = chardet.detect(line) + line = unicode(line, details['encoding']) p = line.split(u',') - p1 = p[1].replace(u'"', u'') + p1 = p[1].replace(u'"', u'') p2 = p[2].replace(u'"', u'') - p3 = p[3].replace(u'"', u'') + p3 = p[3].replace(u'"', u'') self.bibledb.create_book(p2, p3, int(p1)) count += 1 - if count % 3 == 0: #Every x verses repaint the screen - Receiver().send_message(u'openlpprocessevents') + #Flush the screen events + if count % 3 == 0: + Receiver().send_message(u'openlpprocessevents') count = 0 - + count = 0 book_ptr = None for line in fverse: if self.loadbible == False: # cancel pressed - break - #log.debug( line) - p = line.split(u',', 3) # split into 3 units and leave the rest as a single field + break + details = chardet.detect(line) + line = unicode(line, details['encoding']) + # split into 3 units and leave the rest as a single field + p = line.split(u',', 3) p0 = p[0].replace(u'"', u'') p3 = p[3].replace(u'"',u'') if book_ptr is not p0: book = self.bibledb.get_bible_book(p0) book_ptr = book.name - dialogobject.incrementProgressBar(book.name) # increament the progress bar + # increament the progress bar + dialogobject.incrementProgressBar(book.name) self.bibledb.add_verse(book.id, p[1], p[2], p3) count += 1 - if count % 3 == 0: #Every x verses repaint the screen - Receiver().send_message(u'openlpprocessevents') - count = 0 \ No newline at end of file + #Every x verses repaint the screen + if count % 3 == 0: + Receiver().send_message(u'openlpprocessevents') + count = 0 diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index 67afbd7cc..6506e5304 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -70,9 +70,7 @@ class PresentationMediaItem(MediaManagerItem): self.DisplayTypeLabel = QtGui.QLabel(self.PresentationWidget) self.DisplayTypeLabel.setObjectName(u'SearchTypeLabel') self.DisplayLayout.addWidget(self.DisplayTypeLabel, 0, 0, 1, 1) - self.DisplayTypeLabel.setText(translate(u'PresentationMediaItem', u'Present using:')) - # Add the Presentation widget to the page layout self.PageLayout.addWidget(self.PresentationWidget) diff --git a/openlp/plugins/presentations/presentationplugin.py b/openlp/plugins/presentations/presentationplugin.py index a00b5d0b2..f7f9f9903 100644 --- a/openlp/plugins/presentations/presentationplugin.py +++ b/openlp/plugins/presentations/presentationplugin.py @@ -52,6 +52,7 @@ class PresentationPlugin(Plugin): def check_pre_conditions(self): log.debug('check_pre_conditions') - self.openoffice = Openoffice() - return self.openoffice.checkOoPid() + return True +# self.openoffice = Openoffice() +# return self.openoffice.checkOoPid() From 2aaf72bb20244aca5a9fcbb26f9201794b1dbb77 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Fri, 10 Jul 2009 16:41:08 +0100 Subject: [PATCH 4/8] Unicode work --- openlp/plugins/bibles/lib/bibleOSISimpl.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/openlp/plugins/bibles/lib/bibleOSISimpl.py b/openlp/plugins/bibles/lib/bibleOSISimpl.py index 3199d0751..6f95476d5 100644 --- a/openlp/plugins/bibles/lib/bibleOSISimpl.py +++ b/openlp/plugins/bibles/lib/bibleOSISimpl.py @@ -19,6 +19,7 @@ import os import os.path import logging import chardet +import codecs from openlp.plugins.bibles.lib.bibleDBimpl import BibleDBImpl from openlp.core.lib import Receiver from PyQt4 import QtCore @@ -49,7 +50,7 @@ class BibleOSISImpl(): self.loadbible = False def load_data(self, osisfile_record, dialogobject=None): - osis = open(osisfile_record, u'r') + osis = codecs.open(osisfile_record, u'r') book_ptr = None id = 0 count = 0 @@ -59,8 +60,6 @@ class BibleOSISImpl(): # cancel pressed on UI if self.loadbible == False: break - details = chardet.detect(file_record) - file_record = unicode(file_record, details['encoding']) pos = file_record.find(verseText) if pos > -1: # we have a verse epos= file_record.find(u'>', pos) @@ -75,7 +74,6 @@ class BibleOSISImpl(): text = self.remove_block(u'', text) text = self.remove_block(u'', text) text = self.remove_block(u'', text) - text = self.remove_tag(u' Date: Fri, 10 Jul 2009 17:45:17 +0200 Subject: [PATCH 5/8] Added initial generated API documentation. --- documentation/Makefile | 88 ++++++++++ documentation/make.bat | 112 +++++++++++++ documentation/source/conf.py | 194 +++++++++++++++++++++++ documentation/source/core/index.rst | 44 +++++ documentation/source/index.rst | 25 +++ documentation/source/migration/index.rst | 32 ++++ documentation/source/openlp.rst | 7 + documentation/source/plugins/index.rst | 44 +++++ openlp/core/lib/event.py | 4 +- openlp/core/lib/eventmanager.py | 4 +- openlp/core/lib/eventreceiver.py | 3 + 11 files changed, 555 insertions(+), 2 deletions(-) create mode 100644 documentation/Makefile create mode 100644 documentation/make.bat create mode 100644 documentation/source/conf.py create mode 100644 documentation/source/core/index.rst create mode 100644 documentation/source/index.rst create mode 100644 documentation/source/migration/index.rst create mode 100644 documentation/source/openlp.rst create mode 100644 documentation/source/plugins/index.rst diff --git a/documentation/Makefile b/documentation/Makefile new file mode 100644 index 000000000..70c821142 --- /dev/null +++ b/documentation/Makefile @@ -0,0 +1,88 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source + +.PHONY: help clean html dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + -rm -rf build/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) build/html + @echo + @echo "Build finished. The HTML pages are in build/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) build/dirhtml + @echo + @echo "Build finished. The HTML pages are in build/dirhtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) build/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) build/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) build/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in build/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) build/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in build/qthelp, like this:" + @echo "# qcollectiongenerator build/qthelp/OpenLP.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile build/qthelp/OpenLP.qhc" + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) build/latex + @echo + @echo "Build finished; the LaTeX files are in build/latex." + @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \ + "run these through (pdf)latex." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) build/changes + @echo + @echo "The overview file is in build/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) build/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in build/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) build/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in build/doctest/output.txt." diff --git a/documentation/make.bat b/documentation/make.bat new file mode 100644 index 000000000..8d21b45ce --- /dev/null +++ b/documentation/make.bat @@ -0,0 +1,112 @@ +@ECHO OFF + +REM Command file for Sphinx documentation + +set SPHINXBUILD=sphinx-build +set ALLSPHINXOPTS=-d build/doctrees %SPHINXOPTS% source +if NOT "%PAPER%" == "" ( + set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% +) + +if "%1" == "" goto help + +if "%1" == "help" ( + :help + echo.Please use `make ^` where ^ is one of + echo. html to make standalone HTML files + echo. dirhtml to make HTML files named index.html in directories + echo. pickle to make pickle files + echo. json to make JSON files + echo. htmlhelp to make HTML files and a HTML help project + echo. qthelp to make HTML files and a qthelp project + echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter + echo. changes to make an overview over all changed/added/deprecated items + echo. linkcheck to check all external links for integrity + echo. doctest to run all doctests embedded in the documentation if enabled + goto end +) + +if "%1" == "clean" ( + for /d %%i in (build\*) do rmdir /q /s %%i + del /q /s build\* + goto end +) + +if "%1" == "html" ( + %SPHINXBUILD% -b html %ALLSPHINXOPTS% build/html + echo. + echo.Build finished. The HTML pages are in build/html. + goto end +) + +if "%1" == "dirhtml" ( + %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% build/dirhtml + echo. + echo.Build finished. The HTML pages are in build/dirhtml. + goto end +) + +if "%1" == "pickle" ( + %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% build/pickle + echo. + echo.Build finished; now you can process the pickle files. + goto end +) + +if "%1" == "json" ( + %SPHINXBUILD% -b json %ALLSPHINXOPTS% build/json + echo. + echo.Build finished; now you can process the JSON files. + goto end +) + +if "%1" == "htmlhelp" ( + %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% build/htmlhelp + echo. + echo.Build finished; now you can run HTML Help Workshop with the ^ +.hhp project file in build/htmlhelp. + goto end +) + +if "%1" == "qthelp" ( + %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% build/qthelp + echo. + echo.Build finished; now you can run "qcollectiongenerator" with the ^ +.qhcp project file in build/qthelp, like this: + echo.^> qcollectiongenerator build\qthelp\OpenLP.qhcp + echo.To view the help file: + echo.^> assistant -collectionFile build\qthelp\OpenLP.ghc + goto end +) + +if "%1" == "latex" ( + %SPHINXBUILD% -b latex %ALLSPHINXOPTS% build/latex + echo. + echo.Build finished; the LaTeX files are in build/latex. + goto end +) + +if "%1" == "changes" ( + %SPHINXBUILD% -b changes %ALLSPHINXOPTS% build/changes + echo. + echo.The overview file is in build/changes. + goto end +) + +if "%1" == "linkcheck" ( + %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% build/linkcheck + echo. + echo.Link check complete; look for any errors in the above output ^ +or in build/linkcheck/output.txt. + goto end +) + +if "%1" == "doctest" ( + %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% build/doctest + echo. + echo.Testing of doctests in the sources finished, look at the ^ +results in build/doctest/output.txt. + goto end +) + +:end diff --git a/documentation/source/conf.py b/documentation/source/conf.py new file mode 100644 index 000000000..05a3045df --- /dev/null +++ b/documentation/source/conf.py @@ -0,0 +1,194 @@ +# -*- coding: utf-8 -*- +# +# OpenLP documentation build configuration file, created by +# sphinx-quickstart on Fri Jul 10 17:20:40 2009. +# +# This file is execfile()d with the current directory set to its containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys, os + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +sys.path.append(os.path.abspath(os.path.join('..', '..'))) + +# -- General configuration ----------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = ['sphinx.ext.autodoc'] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +source_encoding = 'utf-8' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'OpenLP' +copyright = u'2009, Raoul Snyman' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = '2.0' +# The full version, including alpha/beta/rc tags. +release = '1.9.0' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +#language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of documents that shouldn't be included in the build. +#unused_docs = [] + +# List of directories, relative to source directory, that shouldn't be searched +# for source files. +exclude_trees = [] + +# The reST default role (used for this markup: `text`) to use for all documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +add_module_names = False + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +#modindex_common_prefix = [] + + +# -- Options for HTML output --------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. Major themes that come with +# Sphinx are currently 'default' and 'sphinxdoc'. +html_theme = 'default' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +#html_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +#html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_use_modindex = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +#html_show_sourcelink = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = '' + +# Output file base name for HTML help builder. +htmlhelp_basename = 'OpenLPdoc' + + +# -- Options for LaTeX output -------------------------------------------------- + +# The paper size ('letter' or 'a4'). +#latex_paper_size = 'letter' + +# The font size ('10pt', '11pt' or '12pt'). +#latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass [howto/manual]). +latex_documents = [ + ('index', 'OpenLP.tex', u'OpenLP Documentation', + u'Raoul Snyman', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# Additional stuff for the LaTeX preamble. +#latex_preamble = '' + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_use_modindex = True diff --git a/documentation/source/core/index.rst b/documentation/source/core/index.rst new file mode 100644 index 000000000..11597067c --- /dev/null +++ b/documentation/source/core/index.rst @@ -0,0 +1,44 @@ +.. _core-index: + +:mod:`core` Module +================== + +.. automodule:: openlp.core + :members: + +:mod:`lib` Module +----------------- + +.. automodule:: openlp.core.lib + :members: + +:mod:`baselistwithdnd` Submodule +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: openlp.core.lib.baselistwithdnd + :members: + +:mod:`event` Submodule +^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: openlp.core.lib.event + :members: + +:mod:`eventmanager` Submodule +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: openlp.core.lib.eventmanager + :members: + +:mod:`eventreceiver` Submodule +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: openlp.core.lib.eventreceiver + :members: + +:mod:`theme` Submodule +---------------------- + +.. automodule:: openlp.core.theme + :members: + diff --git a/documentation/source/index.rst b/documentation/source/index.rst new file mode 100644 index 000000000..d57a43543 --- /dev/null +++ b/documentation/source/index.rst @@ -0,0 +1,25 @@ +.. OpenLP documentation master file, created by + sphinx-quickstart on Fri Jul 10 17:20:40 2009. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to OpenLP's documentation! +================================== + +Contents: + +.. toctree:: + :maxdepth: 2 + + openlp + core/index + migration/index + plugins/index + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + diff --git a/documentation/source/migration/index.rst b/documentation/source/migration/index.rst new file mode 100644 index 000000000..a1a64abc8 --- /dev/null +++ b/documentation/source/migration/index.rst @@ -0,0 +1,32 @@ +.. _migration-index: + +:mod:`migration` Module +======================= + +.. automodule:: openlp.migration + :members: + +:mod:`display` Submodule +------------------------ + +.. automodule:: openlp.migration.display + :members: + +:mod:`migratebibles` Submodule +------------------------------ + +.. automodule:: openlp.migration.migratebibles + :members: + +:mod:`migratefiles` Submodule +----------------------------- + +.. automodule:: openlp.migration.migratefiles + :members: + +:mod:`migratesongs` Submodule +----------------------------- + +.. automodule:: openlp.migration.migratesongs + :members: + diff --git a/documentation/source/openlp.rst b/documentation/source/openlp.rst new file mode 100644 index 000000000..76a1a2098 --- /dev/null +++ b/documentation/source/openlp.rst @@ -0,0 +1,7 @@ +.. _openlp: + +:mod:`openlp` Module +==================== + +.. automodule:: openlp + :members: diff --git a/documentation/source/plugins/index.rst b/documentation/source/plugins/index.rst new file mode 100644 index 000000000..e618fa188 --- /dev/null +++ b/documentation/source/plugins/index.rst @@ -0,0 +1,44 @@ +.. _plugins-index: + +:mod:`plugins` Module +===================== + +.. automodule:: openlp.plugins + :members: + +:mod:`songs` Plugin +------------------- + +.. automodule:: openlp.plugins.songs + :members: + +:mod:`bibles` Plugin +-------------------- + +.. automodule:: openlp.plugins.bibles + :members: + +:mod:`presentations` Plugin +--------------------------- + +.. automodule:: openlp.plugins.presentations + :members: + +:mod:`media` Plugin +------------------- + +.. automodule:: openlp.plugins.media + :members: + +:mod:`images` Plugin +-------------------- + +.. automodule:: openlp.plugins.images + :members: + +:mod:`custom` Plugin +-------------------- + +.. automodule:: openlp.plugins.custom + :members: + diff --git a/openlp/core/lib/event.py b/openlp/core/lib/event.py index a68ebe222..dcb84ffbb 100644 --- a/openlp/core/lib/event.py +++ b/openlp/core/lib/event.py @@ -2,9 +2,11 @@ # vim: autoindent shiftwidth=4 expandtab textwidth=80 """ OpenLP - Open Source Lyrics Projection + Copyright (c) 2008 Raoul Snyman + Portions copyright (c) 2008-2009 Martin Thompson, Tim Bentley, Scott Guerreri, - Carsten Tingaard, Jonathan Corwin +Carsten Tingaard, Jonathan Corwin 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 diff --git a/openlp/core/lib/eventmanager.py b/openlp/core/lib/eventmanager.py index 659d018bf..c210b8095 100644 --- a/openlp/core/lib/eventmanager.py +++ b/openlp/core/lib/eventmanager.py @@ -2,9 +2,11 @@ # vim: autoindent shiftwidth=4 expandtab textwidth=80 """ OpenLP - Open Source Lyrics Projection + Copyright (c) 2008 Raoul Snyman + Portions copyright (c) 2008-2009 Martin Thompson, Tim Bentley, Scott Guerreri, - Carsten Tingaard, Jonathan Corwin +Carsten Tingaard, Jonathan Corwin 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 diff --git a/openlp/core/lib/eventreceiver.py b/openlp/core/lib/eventreceiver.py index 189228dfc..73a908a2d 100644 --- a/openlp/core/lib/eventreceiver.py +++ b/openlp/core/lib/eventreceiver.py @@ -1,7 +1,9 @@ # -*- coding: utf-8 -*- """ 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 @@ -40,6 +42,7 @@ class Receiver(): This is a static wrapper around the EventReceiver class. As there is only one instance of it in the systems the QT signal/slot architecture can send messages across the system + Send message Receiver().send_message(u'messageid',data) From ecd587319b6870e5cf6ec2fd546f9d60d2fd25e2 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Fri, 10 Jul 2009 18:19:13 +0100 Subject: [PATCH 6/8] Documentation --- .../build/doctrees/core/index.doctree | Bin 0 -> 62326 bytes .../build/doctrees/environment.pickle | Bin 0 -> 24708 bytes documentation/build/doctrees/index.doctree | Bin 0 -> 5862 bytes .../build/doctrees/migration/index.doctree | Bin 0 -> 25048 bytes documentation/build/doctrees/openlp.doctree | Bin 0 -> 6009 bytes .../build/doctrees/plugins/index.doctree | Bin 0 -> 20189 bytes .../build/html/_sources/core/index.txt | 44 ++ documentation/build/html/_sources/index.txt | 25 + .../build/html/_sources/migration/index.txt | 32 + documentation/build/html/_sources/openlp.txt | 7 + .../build/html/_sources/plugins/index.txt | 44 ++ documentation/build/html/_static/contents.png | Bin 0 -> 202 bytes documentation/build/html/_static/default.css | 657 ++++++++++++++++ documentation/build/html/_static/doctools.js | 232 ++++++ documentation/build/html/_static/file.png | Bin 0 -> 392 bytes documentation/build/html/_static/jquery.js | 32 + documentation/build/html/_static/minus.png | Bin 0 -> 199 bytes .../build/html/_static/navigation.png | Bin 0 -> 218 bytes documentation/build/html/_static/plus.png | Bin 0 -> 199 bytes documentation/build/html/_static/pygments.css | 61 ++ .../build/html/_static/rightsidebar.css | 16 + .../build/html/_static/searchtools.js | 467 ++++++++++++ .../build/html/_static/sphinxdoc.css | 557 ++++++++++++++ .../build/html/_static/stickysidebar.css | 19 + .../build/html/_static/traditional.css | 700 ++++++++++++++++++ documentation/build/html/core/index.html | 374 ++++++++++ documentation/build/html/genindex.html | 197 +++++ documentation/build/html/index.html | 140 ++++ documentation/build/html/migration/index.html | 211 ++++++ documentation/build/html/modindex.html | 170 +++++ documentation/build/html/objects.inv | 47 ++ documentation/build/html/openlp.html | 114 +++ documentation/build/html/plugins/index.html | 172 +++++ documentation/build/html/search.html | 89 +++ documentation/build/html/searchindex.js | 1 + 35 files changed, 4408 insertions(+) create mode 100644 documentation/build/doctrees/core/index.doctree create mode 100644 documentation/build/doctrees/environment.pickle create mode 100644 documentation/build/doctrees/index.doctree create mode 100644 documentation/build/doctrees/migration/index.doctree create mode 100644 documentation/build/doctrees/openlp.doctree create mode 100644 documentation/build/doctrees/plugins/index.doctree create mode 100644 documentation/build/html/_sources/core/index.txt create mode 100644 documentation/build/html/_sources/index.txt create mode 100644 documentation/build/html/_sources/migration/index.txt create mode 100644 documentation/build/html/_sources/openlp.txt create mode 100644 documentation/build/html/_sources/plugins/index.txt create mode 100644 documentation/build/html/_static/contents.png create mode 100644 documentation/build/html/_static/default.css create mode 100644 documentation/build/html/_static/doctools.js create mode 100644 documentation/build/html/_static/file.png create mode 100644 documentation/build/html/_static/jquery.js create mode 100644 documentation/build/html/_static/minus.png create mode 100644 documentation/build/html/_static/navigation.png create mode 100644 documentation/build/html/_static/plus.png create mode 100644 documentation/build/html/_static/pygments.css create mode 100644 documentation/build/html/_static/rightsidebar.css create mode 100644 documentation/build/html/_static/searchtools.js create mode 100644 documentation/build/html/_static/sphinxdoc.css create mode 100644 documentation/build/html/_static/stickysidebar.css create mode 100644 documentation/build/html/_static/traditional.css create mode 100644 documentation/build/html/core/index.html create mode 100644 documentation/build/html/genindex.html create mode 100644 documentation/build/html/index.html create mode 100644 documentation/build/html/migration/index.html create mode 100644 documentation/build/html/modindex.html create mode 100644 documentation/build/html/objects.inv create mode 100644 documentation/build/html/openlp.html create mode 100644 documentation/build/html/plugins/index.html create mode 100644 documentation/build/html/search.html create mode 100644 documentation/build/html/searchindex.js diff --git a/documentation/build/doctrees/core/index.doctree b/documentation/build/doctrees/core/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..4fe0234c89e914f0339de68a6076eef181097c28 GIT binary patch literal 62326 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 literal 0 HcmV?d00001 diff --git a/documentation/build/doctrees/environment.pickle b/documentation/build/doctrees/environment.pickle new file mode 100644 index 0000000000000000000000000000000000000000..ae743c147e94e1fa642ae1955b6ab0411af0ebce GIT binary patch literal 24708 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 Sgn44%kE31wM6g(Fs{J2smf@}d literal 0 HcmV?d00001 diff --git a/documentation/build/doctrees/index.doctree b/documentation/build/doctrees/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..0846c0c28dc7c128568ed8d9dbbafff4bc6bb0b8 GIT binary patch literal 5862 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 literal 0 HcmV?d00001 diff --git a/documentation/build/doctrees/openlp.doctree b/documentation/build/doctrees/openlp.doctree new file mode 100644 index 0000000000000000000000000000000000000000..da07927af196f257a6f1c0f159da2f6626da3e2d GIT binary patch literal 6009 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 literal 0 HcmV?d00001 diff --git a/documentation/build/doctrees/plugins/index.doctree b/documentation/build/doctrees/plugins/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..787073176c6ec4289c54d04da4a708dc8c4b5de6 GIT binary patch literal 20189 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 P?NRt?DB-v`xN7;VkfoEM{Qf z76xHPhFNnYfP(BLp1!W^HyC+E#mt?nx10eANtU=qlsM<-=BDPAFgO>bCYGe8D3oWG zWGJ|M`UZqI@`(c#nR~i8hHzY8+H1+jpulh_>fir3VfEN66+L a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink { + visibility: visible; +} + +a.headerlink:hover { + background-color: #c60f0f; + color: white; +} + +div.body p, div.body dd, div.body li { + text-align: justify; + line-height: 130%; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +ul.fakelist { + list-style: none; + margin: 10px 0 10px 20px; + padding: 0; +} + +.field-list ul { + padding-left: 1em; +} + +.first { + margin-top: 0 !important; +} + +/* "Footnotes" heading */ +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +/* Sidebars */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* "Topics" */ + +div.topic { + background-color: #eee; + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* Admonitions */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +div.admonition p.admonition-title + p { + display: inline; +} + +div.seealso { + background-color: #ffc; + border: 1px solid #ff6; +} + +div.warning { + background-color: #ffe4e4; + border: 1px solid #f66; +} + +div.note { + background-color: #eee; + border: 1px solid #ccc; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; + display: inline; +} + +p.admonition-title:after { + content: ":"; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +table.docutils { + border: 0; +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 0; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.field-list td, table.field-list th { + border: 0 !important; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +dl { + margin-bottom: 15px; + clear: both; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.refcount { + color: #060; +} + +dt:target, +.highlight { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +th { + text-align: left; + padding-right: 5px; +} + +pre { + padding: 5px; + background-color: #efc; + color: #333; + border: 1px solid #ac9; + border-left: none; + border-right: none; + overflow: auto; +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +tt { + background-color: #ecf0f3; + padding: 0 1px 0 1px; + font-size: 0.95em; +} + +tt.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +tt.descclassname { + background-color: transparent; +} + +tt.xref, a tt { + background-color: transparent; + font-weight: bold; +} + +.footnote:target { background-color: #ffa } + +h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.versionmodified { + font-style: italic; +} + +form.comment { + margin: 0; + padding: 10px 30px 10px 30px; + background-color: #eee; +} + +form.comment h3 { + background-color: #326591; + color: white; + margin: -10px -30px 10px -30px; + padding: 5px; + font-size: 1.4em; +} + +form.comment input, +form.comment textarea { + border: 1px solid #ccc; + padding: 2px; + font-family: sans-serif; + font-size: 100%; +} + +form.comment input[type="text"] { + width: 240px; +} + +form.comment textarea { + width: 100%; + height: 200px; + margin-bottom: 10px; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +img.math { + vertical-align: middle; +} + +div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +img.logo { + border: 0; +} + +/* :::: PRINT :::: */ +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0; + width : 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + div#comments div.new-comment-box, + #top-link { + display: none; + } +} diff --git a/documentation/build/html/_static/doctools.js b/documentation/build/html/_static/doctools.js new file mode 100644 index 000000000..be4bdc889 --- /dev/null +++ b/documentation/build/html/_static/doctools.js @@ -0,0 +1,232 @@ +/// XXX: make it cross browser + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger + */ +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", + "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {} +} + +/** + * small helper function to urldecode strings + */ +jQuery.urldecode = function(x) { + return decodeURIComponent(x).replace(/\+/g, ' '); +} + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s == 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +} + +/** + * small function to check if an array contains + * a given item. + */ +jQuery.contains = function(arr, item) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] == item) + return true; + } + return false; +} + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node) { + if (node.nodeType == 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && !jQuery.className.has(node.parentNode, className)) { + var span = document.createElement("span"); + span.className = className; + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this) + }); + } + } + return this.each(function() { + highlight(this); + }); +} + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initModIndex(); + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can savely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated == 'undefined') + return string; + return (typeof translated == 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated == 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[@id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[@id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlight'); + }); + }, 10); + $('') + .appendTo($('.sidebar .this-page-menu')); + } + }, + + /** + * init the modindex toggle buttons + */ + initModIndex : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + console.log($('tr.cg-' + idnum).toggle()); + if (src.substr(-9) == 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_MODINDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('.sidebar .this-page-menu li.highlight-link').fadeOut(300); + $('span.highlight').removeClass('highlight'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this == '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); diff --git a/documentation/build/html/_static/file.png b/documentation/build/html/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..d18082e397e7e54f20721af768c4c2983258f1b4 GIT binary patch literal 392 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP$HyOL$D9)yc9|lc|nKf<9@eUiWd>3GuTC!a5vdfWYEazjncPj5ZQX%+1 zt8B*4=d)!cdDz4wr^#OMYfqGz$1LDFF>|#>*O?AGil(WEs?wLLy{Gj2J_@opDm%`dlax3yA*@*N$G&*ukFv>P8+2CBWO(qz zD0k1@kN>hhb1_6`&wrCswzINE(evt-5C1B^STi2@PmdKI;Vst0PQB6!2kdN literal 0 HcmV?d00001 diff --git a/documentation/build/html/_static/jquery.js b/documentation/build/html/_static/jquery.js new file mode 100644 index 000000000..82b98e1d7 --- /dev/null +++ b/documentation/build/html/_static/jquery.js @@ -0,0 +1,32 @@ +/* + * jQuery 1.2.6 - New Wave Javascript + * + * Copyright (c) 2008 John Resig (jquery.com) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $ + * $Rev: 5685 $ + */ +(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else +return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else +return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else +selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else +this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else +return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else +jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else +jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("",""]||!tags.indexOf("",""]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!tags.indexOf("",""]||(!tags.indexOf("",""]||!tags.indexOf("",""]||jQuery.browser.msie&&[1,"div
","
"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf(""&&tags.indexOf("=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else +ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&¬xml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&¬xml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&¬xml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else +while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return im[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else +for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("
").append(res.responseText.replace(//g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else +xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else +jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else +for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else +s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else +e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;ithis.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})(); \ No newline at end of file diff --git a/documentation/build/html/_static/minus.png b/documentation/build/html/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..da1c5620d10c047525a467a425abe9ff5269cfc2 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1SHkYJtzcHoCO|{#XvD(5N2eUHAey{$X?>< z>&kweokM_|(Po{+Q=kw>iEBiObAE1aYF-J$w=>iB1I2R$WLpMkF=>bh=@O1TaS?83{1OVknKU}oXkrghqJ&VvY3H^ zTNs2H8D`Cq01C2~c>21s-(chw7$R|bZ|_0D0|q>YSbqDzW^|HYIk%*-&O)*< z>&kweokM`jkU7Va11Q8%;u=xnoS&PUnpeW`?aZ|OK(QcC7sn8Z%gHvy&v=;Q4jejg zV8NnAO`-4Z@2~&zopr02WF_WB>pF literal 0 HcmV?d00001 diff --git a/documentation/build/html/_static/pygments.css b/documentation/build/html/_static/pygments.css new file mode 100644 index 000000000..1f2d2b618 --- /dev/null +++ b/documentation/build/html/_static/pygments.css @@ -0,0 +1,61 @@ +.hll { background-color: #ffffcc } +.c { color: #408090; font-style: italic } /* Comment */ +.err { border: 1px solid #FF0000 } /* Error */ +.k { color: #007020; font-weight: bold } /* Keyword */ +.o { color: #666666 } /* Operator */ +.cm { color: #408090; font-style: italic } /* Comment.Multiline */ +.cp { color: #007020 } /* Comment.Preproc */ +.c1 { color: #408090; font-style: italic } /* Comment.Single */ +.cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ +.gd { color: #A00000 } /* Generic.Deleted */ +.ge { font-style: italic } /* Generic.Emph */ +.gr { color: #FF0000 } /* Generic.Error */ +.gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.gi { color: #00A000 } /* Generic.Inserted */ +.go { color: #303030 } /* Generic.Output */ +.gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +.gs { font-weight: bold } /* Generic.Strong */ +.gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.gt { color: #0040D0 } /* Generic.Traceback */ +.kc { color: #007020; font-weight: bold } /* Keyword.Constant */ +.kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ +.kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ +.kp { color: #007020 } /* Keyword.Pseudo */ +.kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ +.kt { color: #902000 } /* Keyword.Type */ +.m { color: #208050 } /* Literal.Number */ +.s { color: #4070a0 } /* Literal.String */ +.na { color: #4070a0 } /* Name.Attribute */ +.nb { color: #007020 } /* Name.Builtin */ +.nc { color: #0e84b5; font-weight: bold } /* Name.Class */ +.no { color: #60add5 } /* Name.Constant */ +.nd { color: #555555; font-weight: bold } /* Name.Decorator */ +.ni { color: #d55537; font-weight: bold } /* Name.Entity */ +.ne { color: #007020 } /* Name.Exception */ +.nf { color: #06287e } /* Name.Function */ +.nl { color: #002070; font-weight: bold } /* Name.Label */ +.nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +.nt { color: #062873; font-weight: bold } /* Name.Tag */ +.nv { color: #bb60d5 } /* Name.Variable */ +.ow { color: #007020; font-weight: bold } /* Operator.Word */ +.w { color: #bbbbbb } /* Text.Whitespace */ +.mf { color: #208050 } /* Literal.Number.Float */ +.mh { color: #208050 } /* Literal.Number.Hex */ +.mi { color: #208050 } /* Literal.Number.Integer */ +.mo { color: #208050 } /* Literal.Number.Oct */ +.sb { color: #4070a0 } /* Literal.String.Backtick */ +.sc { color: #4070a0 } /* Literal.String.Char */ +.sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ +.s2 { color: #4070a0 } /* Literal.String.Double */ +.se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ +.sh { color: #4070a0 } /* Literal.String.Heredoc */ +.si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ +.sx { color: #c65d09 } /* Literal.String.Other */ +.sr { color: #235388 } /* Literal.String.Regex */ +.s1 { color: #4070a0 } /* Literal.String.Single */ +.ss { color: #517918 } /* Literal.String.Symbol */ +.bp { color: #007020 } /* Name.Builtin.Pseudo */ +.vc { color: #bb60d5 } /* Name.Variable.Class */ +.vg { color: #bb60d5 } /* Name.Variable.Global */ +.vi { color: #bb60d5 } /* Name.Variable.Instance */ +.il { color: #208050 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/documentation/build/html/_static/rightsidebar.css b/documentation/build/html/_static/rightsidebar.css new file mode 100644 index 000000000..bc604a893 --- /dev/null +++ b/documentation/build/html/_static/rightsidebar.css @@ -0,0 +1,16 @@ +/** + * Sphinx Doc Design -- Right Side Bar Overrides + */ + + +div.sphinxsidebar { + float: right; +} + +div.bodywrapper { + margin: 0 230px 0 0; +} + +div.inlinecomments { + right: 250px; +} diff --git a/documentation/build/html/_static/searchtools.js b/documentation/build/html/_static/searchtools.js new file mode 100644 index 000000000..f9d9b6c39 --- /dev/null +++ b/documentation/build/html/_static/searchtools.js @@ -0,0 +1,467 @@ +/** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words, hlwords is the list of normal, unstemmed + * words. the first one is used to find the occurance, the + * latter for highlighting it. + */ + +jQuery.makeSearchSummary = function(text, keywords, hlwords) { + var textLower = text.toLowerCase(); + var start = 0; + $.each(keywords, function() { + var i = textLower.indexOf(this.toLowerCase()); + if (i > -1) + start = i; + }); + start = Math.max(start - 120, 0); + var excerpt = ((start > 0) ? '...' : '') + + $.trim(text.substr(start, 240)) + + ((start + 240 - text.length) ? '...' : ''); + var rv = $('
').text(excerpt); + $.each(hlwords, function() { + rv = rv.highlightText(this, 'highlight'); + }); + return rv; +} + +/** + * Porter Stemmer + */ +var PorterStemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + + +/** + * Search Module + */ +var Search = { + + _index : null, + _queued_query : null, + _pulse_status : -1, + + init : function() { + var params = $.getQueryParameters(); + if (params.q) { + var query = params.q[0]; + $('input[@name="q"]')[0].value = query; + this.performSearch(query); + } + }, + + /** + * Sets the index + */ + setIndex : function(index) { + var q; + this._index = index; + if ((q = this._queued_query) !== null) { + this._queued_query = null; + Search.query(q); + } + }, + + hasIndex : function() { + return this._index !== null; + }, + + deferQuery : function(query) { + this._queued_query = query; + }, + + stopPulse : function() { + this._pulse_status = 0; + }, + + startPulse : function() { + if (this._pulse_status >= 0) + return; + function pulse() { + Search._pulse_status = (Search._pulse_status + 1) % 4; + var dotString = ''; + for (var i = 0; i < Search._pulse_status; i++) + dotString += '.'; + Search.dots.text(dotString); + if (Search._pulse_status > -1) + window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something + */ + performSearch : function(query) { + // create the required interface elements + this.out = $('#search-results'); + this.title = $('

' + _('Searching') + '

').appendTo(this.out); + this.dots = $('').appendTo(this.title); + this.status = $('

').appendTo(this.out); + this.output = $('
diff --git a/documentation/build/html/genindex.html b/documentation/build/html/genindex.html index 22bc6bcb5..5f27d8dc0 100644 --- a/documentation/build/html/genindex.html +++ b/documentation/build/html/genindex.html @@ -127,7 +127,8 @@
-
populate (BaseModel attribute)
+
populate (BaseModel attribute)
+
post_event() (EventManager method)

R

@@ -135,7 +136,8 @@
receive (Receiver attribute)
-
Receiver (class in openlp.core.lib.eventreceiver)
+
Receiver (class in openlp.core.lib.eventreceiver)
+
register() (EventManager method)
render() (ServiceItem method)
diff --git a/documentation/build/html/objects.inv b/documentation/build/html/objects.inv index 3f36577c2..b481b7a62 100644 --- a/documentation/build/html/objects.inv +++ b/documentation/build/html/objects.inv @@ -12,15 +12,15 @@ openlp.plugins.images mod plugins/index.html openlp.plugins.songs mod plugins/index.html openlp.core mod core/index.html openlp.migration.migratesongs mod migration/index.html +openlp.core.theme mod core/index.html openlp.plugins mod plugins/index.html -openlp.plugins.presentations mod plugins/index.html openlp.plugins.media mod plugins/index.html openlp.plugins.bibles mod plugins/index.html openlp.core.lib.baselistwithdnd mod core/index.html openlp.core.lib.event mod core/index.html openlp.plugins.custom mod plugins/index.html openlp mod openlp.html -openlp.core.theme mod core/index.html +openlp.plugins.presentations mod plugins/index.html openlp.core.lib.ServiceItem.get_oos_repr method core/index.html openlp.core.lib.ServiceItem.render method core/index.html openlp.core.lib.eventreceiver.Receiver class core/index.html @@ -29,6 +29,7 @@ openlp.core.lib.baselistwithdnd.BaseListWithDnD class core/index.html openlp.core.lib.event.Event class core/index.html openlp.migration.migratesongs.BaseModel class migration/index.html openlp.core.lib.eventreceiver.Receiver.send_message attribute core/index.html +openlp.core.lib.eventmanager.EventManager.register method core/index.html openlp.core.lib.eventmanager.EventManager class core/index.html openlp.migration.migratesongs.BaseModel.populate attribute migration/index.html openlp.core.lib.eventreceiver.Receiver.receive attribute core/index.html @@ -45,3 +46,4 @@ openlp.migration.migratesongs.TAuthor class migration/index.html openlp.core.lib.ServiceItem.set_from_oos method core/index.html openlp.core.lib.ServiceItem class core/index.html openlp.core.lib.contextMenuAction function core/index.html +openlp.core.lib.eventmanager.EventManager.post_event method core/index.html diff --git a/documentation/build/html/searchindex.js b/documentation/build/html/searchindex.js index 4a63f9a1e..5c9425388 100644 --- a/documentation/build/html/searchindex.js +++ b/documentation/build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({desctypes:{"0":"method","1":"class","2":"attribute","3":"function"},terms:{recipi:4,all:4,help:4,just:4,migrateb:[0,1],text:4,move:4,lyric:[1,2,3,4],messageid:4,mousemoveev:4,openlp:[0,1,2,3,4],disk:4,slot:4,decid:4,locat:4,guerreri:4,copyright:[1,2,3,4],menu:4,frame_titl:4,send:4,should:[0,1,2,3,4],whether:4,theme:[0,4],program:[1,2,3,4],snyman:[1,2,3,4],under:[1,2,3,4],thompson:[1,2,3,4],save:4,hope:[1,2,3,4],build:4,merchant:[1,2,3,4],tsongauthor:1,sourc:[1,2,3,4],"return":[1,4],around:4,song:[0,2],none:4,util:4,add_from_command:4,mechan:4,command:4,span:[1,2,3,4],requir:4,eventtyp:4,term:[1,2,3,4],document:0,name:4,somth:4,docutil:[1,2,3,4],signal:4,drop:4,method:4,item:4,slide:4,have:[1,2,3,4],serviceitem:4,scott:4,architectur:4,manag:4,pleas:4,servicemanag:4,impli:[1,2,3,4],set:1,frame:4,some:4,direct:0,across:4,redistribut:[1,2,3,4],"static":4,connect:4,bentlei:[1,2,3,4],pass:4,extract:4,event:4,contextmenuact:4,hostplugin:4,even:[1,2,3,4],index:0,what:4,publish:[1,2,3,4],your:0,content:0,"public":[1,2,3,4],version:[1,2,3,4],adapt:0,jonathan:4,tingaard:4,eventreceiv:4,migratesong:[0,1],core:[0,4],privat:4,bibl:[0,2],parent:4,event_typ:4,migrat:[0,1],screen:4,martin:[1,2,3,4],onli:4,free:[1,2,3,4],like:0,base:[1,4],here:4,put:4,compositor:4,along:[1,2,3,4],templ:[1,2,3,4],modifi:[1,2,3,4],popul:1,raoul:[1,2,3,4],search:0,actual:4,fit:[1,2,3,4],plugin:[0,2,4],baselistwithdnd:4,drag:4,carsten:[2,4],instanc:[1,4],place:[1,2,3,4],descript:4,context:4,basemodel:1,gener:[1,2,3,4],fri:0,softwar:[1,2,3,4],via:4,directli:4,modul:[0,1,2,3,4],within:4,foundat:[1,2,3,4],submodul:[0,1,4],system:4,warranti:[1,2,3,4],model:1,messag:4,path:4,qobject:4,open:[1,2,3,4],payload:4,select:4,quickstart:0,differ:4,from:4,usa:[1,2,3,4],interact:4,regist:4,add:4,least:0,custom:[0,2],addicon:4,call:4,handle_ev:4,suit:[1,2,3,4],master:0,set_from_oo:4,type:4,tell:4,store:4,more:[1,2,3,4],"function":1,wrapper:4,imag:[0,2,4],copi:[1,2,3,4],jul:0,provid:[1,4],part:4,particular:[1,2,3,4],present:[0,2],send_messag:4,endpoint:4,gnu:[1,2,3,4],"default":4,qtcore:4,servic:4,displai:[0,1,4],project:[1,2,3,4],can:[0,1,2,3,4],add_from_imag:4,purpos:[1,2,3,4],root:0,get_oos_repr:4,care:4,control:4,listen:4,encapsul:4,creat:[0,1],boston:[1,2,3,4],toctre:0,ani:[1,2,3,4],indic:0,repres:4,raw:4,add_from_text:4,file:[0,4],tabl:0,tauthor:1,string:4,pre:[1,2,3,4],lib:[0,4],author:1,receiv:[1,2,3,4],titl:4,when:4,detail:[1,2,3,4],write:[1,2,3,4],tim:[1,2,3,4],raw_slid:4,take:4,which:4,icon:4,you:[0,1,2,3,4],inc:[1,2,3,4],corwin:4,complet:0,tinggaard:2,resourc:4,distribut:[1,2,3,4],see:[1,2,3,4],liter:[1,2,3,4],openlprepaint:4,org:4,licens:[1,2,3,4],get_receiv:4,action:4,render:4,thi:[0,1,2,3,4],contain:0,data:4,"class":[1,2,3,4],welcom:0,"short":4,sphinx:0,qicon:4,directori:4,eventmanag:4,page:0,request:4,object:1,doe:4,portion:[1,2,3,4],without:[1,2,3,4],ignor:4,allow:4,media:[0,2],tsong:1,migratefil:[0,1],usual:4},titles:["Welcome to OpenLP’s documentation!","migration Module","plugins Module","openlp Module","core Module"],modules:{"openlp.core.lib.eventreceiver":4,"openlp.migration.display":1,"openlp.core.lib":4,"openlp.migration.migratefiles":1,"openlp.core.lib.eventmanager":4,"openlp.migration.migratebibles":1,"openlp.migration":1,"openlp.plugins.images":2,"openlp.plugins.songs":2,"openlp.core":4,"openlp.migration.migratesongs":1,"openlp.core.theme":4,"openlp.plugins":2,"openlp.plugins.media":2,"openlp.plugins.bibles":2,"openlp.core.lib.baselistwithdnd":4,"openlp.core.lib.event":4,"openlp.plugins.custom":2,openlp:3,"openlp.plugins.presentations":2},descrefs:{"openlp.core.lib.eventreceiver":{EventReceiver:[4,1],Receiver:[4,1]},"openlp.core.lib":{contextMenuAction:[4,3],ServiceItem:[4,1]},"openlp.core.lib.eventmanager":{EventManager:[4,1]},"openlp.core.lib.ServiceItem":{set_from_oos:[4,0],render:[4,0],addIcon:[4,0],add_from_command:[4,0],add_from_text:[4,0],add_from_image:[4,0],get_oos_repr:[4,0]},"openlp.core.lib.eventreceiver.Receiver":{get_receiver:[4,2],receive:[4,2],send_message:[4,2]},"openlp.migration.migratesongs":{TSongAuthor:[1,1],TSong:[1,1],TAuthor:[1,1],BaseModel:[1,1]},"openlp.core.lib.baselistwithdnd.BaseListWithDnD":{mouseMoveEvent:[4,0]},"openlp.core.lib.baselistwithdnd":{BaseListWithDnD:[4,1]},"openlp.core.lib.event":{EventType:[4,1],Event:[4,1]},"openlp.migration.migratesongs.BaseModel":{populate:[1,2]}},filenames:["index","migration/index","plugins/index","openlp","core/index"]}) \ No newline at end of file +Search.setIndex({desctypes:{"0":"method","1":"class","2":"attribute","3":"function"},terms:{recipi:4,all:4,help:4,just:4,migrateb:[0,1],text:4,move:4,lyric:[1,2,3,4],file:[0,4],messageid:4,mousemoveev:4,openlp:[0,1,2,3,4],disk:4,qtcore:4,request:4,slot:4,decid:4,locat:4,guerreri:4,copyright:[1,2,3,4],menu:4,frame_titl:4,send:4,should:[0,1,2,3,4],whether:4,theme:[0,4],program:[1,2,3,4],titl:4,snyman:[1,2,3,4],under:[1,2,3,4],thompson:[1,2,3,4],save:4,get_receiv:4,hope:[1,2,3,4],take:4,merchant:[1,2,3,4],tsongauthor:1,sourc:[1,2,3,4],"return":[1,4],around:4,song:[0,2],send_messag:4,util:4,add_from_command:4,endpoint:4,mechan:4,requir:4,eventtyp:4,term:[1,2,3,4],name:4,somth:4,docutil:[1,2,3,4],signal:4,drop:4,method:4,item:4,slide:4,serviceitem:4,scott:4,complet:0,manag:4,pleas:4,impli:[1,2,3,4],set:1,frame:4,interact:4,some:4,direct:0,across:4,redistribut:[1,2,3,4],"static":4,connect:4,bentlei:[1,2,3,4],pass:4,extract:4,event:4,contextmenuact:4,distribut:[1,2,3,4],even:[1,2,3,4],index:0,what:4,publish:[1,2,3,4],payload:4,content:0,"public":[1,2,3,4],tinggaard:2,version:[1,2,3,4],adapt:0,tingaard:4,eventreceiv:4,migratesong:[0,1],core:[0,4],privat:4,bibl:[0,2],parent:4,event_typ:4,migrat:[0,1],screen:4,martin:[1,2,3,4],onli:4,free:[1,2,3,4],like:0,control:4,base:[1,4],here:4,put:4,compositor:4,along:[1,2,3,4],templ:[1,2,3,4],modifi:[1,2,3,4],popul:1,raoul:[1,2,3,4],search:0,actual:4,fit:[1,2,3,4],plugin:[0,2,4],root:0,drag:4,carsten:[2,4],instanc:[1,4],place:[1,2,3,4],context:4,basemodel:1,gener:[1,2,3,4],fri:0,softwar:[1,2,3,4],via:4,directli:4,modul:[0,1,2,3,4],within:4,foundat:[1,2,3,4],submodul:[0,1,4],warranti:[1,2,3,4],least:0,path:4,custom:[0,2],open:[1,2,3,4],your:0,select:4,quickstart:0,differ:4,span:[1,2,3,4],usa:[1,2,3,4],licens:[1,2,3,4],regist:4,system:4,messag:4,qobject:4,addicon:4,trigger:4,call:4,handle_ev:4,suit:[1,2,3,4],master:0,set_from_oo:4,type:4,tell:4,store:4,more:[1,2,3,4],"function":1,from:4,wrapper:4,imag:[0,2,4],copi:[1,2,3,4],jul:0,provid:[1,4],part:4,particular:[1,2,3,4],present:[0,2],tsong:1,none:4,jonathan:4,gnu:[1,2,3,4],"default":4,wish:4,servic:4,displai:[0,1,4],project:[1,2,3,4],directori:4,can:[0,1,2,3,4],add_from_imag:4,allow:4,purpos:[1,2,3,4],baselistwithdnd:4,get_oos_repr:4,care:4,pre:[1,2,3,4],listen:4,have:[1,2,3,4],creat:[0,1],boston:[1,2,3,4],toctre:0,ani:[1,2,3,4],indic:0,repres:4,raw:4,add_from_text:4,want:4,tabl:0,tauthor:1,string:4,inc:[1,2,3,4],welcom:0,lib:[0,4],author:1,receiv:[1,2,3,4],media:[0,2],when:4,detail:[1,2,3,4],write:[1,2,3,4],tim:[1,2,3,4],raw_slid:4,build:4,which:4,post_ev:4,ignor:4,you:[0,1,2,3,4],document:0,corwin:4,architectur:4,notif:4,resourc:4,hostplugin:4,see:[1,2,3,4],liter:[1,2,3,4],openlprepaint:4,org:4,who:4,pluge:4,servicemanag:4,action:4,render:4,contain:0,data:4,"class":[1,2,3,4],icon:4,"short":4,sphinx:0,qicon:4,encapsul:4,eventmanag:4,page:0,descript:4,object:1,doe:4,portion:[1,2,3,4],without:[1,2,3,4],command:4,thi:[0,1,2,3,4],add:4,model:1,migratefil:[0,1],usual:4},titles:["Welcome to OpenLP’s documentation!","migration Module","plugins Module","openlp Module","core Module"],modules:{"openlp.core.lib.eventreceiver":4,"openlp.migration.display":1,"openlp.core.lib":4,"openlp.migration.migratefiles":1,"openlp.core.lib.eventmanager":4,"openlp.migration.migratebibles":1,"openlp.migration":1,"openlp.plugins.images":2,"openlp.plugins.songs":2,"openlp.core":4,"openlp.migration.migratesongs":1,"openlp.plugins":2,"openlp.plugins.presentations":2,"openlp.plugins.media":2,"openlp.plugins.bibles":2,"openlp.core.lib.baselistwithdnd":4,"openlp.core.lib.event":4,"openlp.plugins.custom":2,openlp:3,"openlp.core.theme":4},descrefs:{"openlp.core.lib.eventreceiver":{EventReceiver:[4,1],Receiver:[4,1]},"openlp.core.lib.eventmanager.EventManager":{register:[4,0],post_event:[4,0]},"openlp.core.lib.eventmanager":{EventManager:[4,1]},"openlp.core.lib.ServiceItem":{set_from_oos:[4,0],render:[4,0],addIcon:[4,0],add_from_command:[4,0],add_from_text:[4,0],add_from_image:[4,0],get_oos_repr:[4,0]},"openlp.core.lib.eventreceiver.Receiver":{get_receiver:[4,2],receive:[4,2],send_message:[4,2]},"openlp.migration.migratesongs":{TSongAuthor:[1,1],TSong:[1,1],TAuthor:[1,1],BaseModel:[1,1]},"openlp.core.lib.baselistwithdnd.BaseListWithDnD":{mouseMoveEvent:[4,0]},"openlp.core.lib.baselistwithdnd":{BaseListWithDnD:[4,1]},"openlp.core.lib.event":{EventType:[4,1],Event:[4,1]},"openlp.migration.migratesongs.BaseModel":{populate:[1,2]},"openlp.core.lib":{contextMenuAction:[4,3],ServiceItem:[4,1]}},filenames:["index","migration/index","plugins/index","openlp","core/index"]}) \ No newline at end of file