This commit is contained in:
Tomas Groth 2015-09-11 10:00:32 +01:00
commit 846036722e
32 changed files with 652 additions and 817 deletions

View File

@ -1,3 +1,4 @@
build build
.directory .directory
.idea/ .idea/
api/source/api

View File

@ -5,84 +5,177 @@
SPHINXOPTS = SPHINXOPTS =
SPHINXBUILD = sphinx-build SPHINXBUILD = sphinx-build
PAPER = PAPER =
BUILDDIR = build
# User-friendly check for sphinx-build
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
endif
# Internal variables. # Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
# the i18n builder cannot share the environment and doctrees with the others
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
.PHONY: help clean html dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
help: help:
@echo "Please use \`make <target>' where <target> is one of" @echo "Please use \`make <target>' where <target> is one of"
@echo " html to make standalone HTML files" @echo " html to make standalone HTML files"
@echo " dirhtml to make HTML files named index.html in directories" @echo " dirhtml to make HTML files named index.html in directories"
@echo " singlehtml to make a single large HTML file"
@echo " pickle to make pickle files" @echo " pickle to make pickle files"
@echo " json to make JSON files" @echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project" @echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project" @echo " qthelp to make HTML files and a qthelp project"
@echo " devhelp to make HTML files and a Devhelp project"
@echo " epub to make an epub"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " latexpdf to make LaTeX files and run them through pdflatex"
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
@echo " text to make text files"
@echo " man to make manual pages"
@echo " texinfo to make Texinfo files"
@echo " info to make Texinfo files and run them through makeinfo"
@echo " gettext to make PO message catalogs"
@echo " changes to make an overview of all changed/added/deprecated items" @echo " changes to make an overview of all changed/added/deprecated items"
@echo " xml to make Docutils-native XML files"
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
@echo " linkcheck to check all external links for integrity" @echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)" @echo " doctest to run all doctests embedded in the documentation (if enabled)"
@echo " scan to generate .rst for the OpenLP API from OpenLP's source"
clean: clean:
-rm -rf build/* rm -rf $(BUILDDIR)/*
html: html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) build/html $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo @echo
@echo "Build finished. The HTML pages are in build/html." @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
dirhtml: dirhtml:
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) build/dirhtml $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
@echo @echo
@echo "Build finished. The HTML pages are in build/dirhtml." @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
singlehtml:
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
@echo
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
pickle: pickle:
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) build/pickle $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
@echo @echo
@echo "Build finished; now you can process the pickle files." @echo "Build finished; now you can process the pickle files."
json: json:
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) build/json $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
@echo @echo
@echo "Build finished; now you can process the JSON files." @echo "Build finished; now you can process the JSON files."
htmlhelp: htmlhelp:
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) build/htmlhelp $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
@echo @echo
@echo "Build finished; now you can run HTML Help Workshop with the" \ @echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in build/htmlhelp." ".hhp project file in $(BUILDDIR)/htmlhelp."
qthelp: qthelp:
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) build/qthelp $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
@echo @echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \ @echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in build/qthelp, like this:" ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator build/qthelp/OpenLP.qhcp" @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/OpenLP.qhcp"
@echo "To view the help file:" @echo "To view the help file:"
@echo "# assistant -collectionFile build/qthelp/OpenLP.qhc" @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/OpenLP.qhc"
devhelp:
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@echo "Build finished."
@echo "To view the help file:"
@echo "# mkdir -p $$HOME/.local/share/devhelp/OpenLP"
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/OpenLP"
@echo "# devhelp"
epub:
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
@echo
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
latex: latex:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) build/latex $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo @echo
@echo "Build finished; the LaTeX files are in build/latex." @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
@echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \ @echo "Run \`make' in that directory to run these through (pdf)latex" \
"run these through (pdf)latex." "(use \`make latexpdf' here to do that automatically)."
latexpdf:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through pdflatex..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
latexpdfja:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through platex and dvipdfmx..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
text:
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
@echo
@echo "Build finished. The text files are in $(BUILDDIR)/text."
man:
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
@echo
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
texinfo:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
@echo "Run \`make' in that directory to run these through makeinfo" \
"(use \`make info' here to do that automatically)."
info:
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
@echo "Running Texinfo files through makeinfo..."
make -C $(BUILDDIR)/texinfo info
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
gettext:
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
@echo
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
changes: changes:
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) build/changes $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
@echo @echo
@echo "The overview file is in build/changes." @echo "The overview file is in $(BUILDDIR)/changes."
linkcheck: linkcheck:
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) build/linkcheck $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
@echo @echo
@echo "Link check complete; look for any errors in the above output " \ @echo "Link check complete; look for any errors in the above output " \
"or in build/linkcheck/output.txt." "or in $(BUILDDIR)/linkcheck/output.txt."
doctest: doctest:
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) build/doctest $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
@echo "Testing of doctests in the sources finished, look at the " \ @echo "Testing of doctests in the sources finished, look at the " \
"results in build/doctest/output.txt." "results in $(BUILDDIR)/doctest/output.txt."
xml:
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
@echo
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
pseudoxml:
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
@echo
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
scan:
./source/scan.py

View File

@ -1,9 +1,11 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# OpenLP documentation build configuration file, created by # OpenLP documentation build configuration file, created by
# sphinx-quickstart on Fri Jul 10 17:20:40 2009. # sphinx-quickstart on Mon Jun 16 15:48:38 2014.
# #
# This file is execfile()d with the current directory set to its containing dir. # 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 # Note that not all possible configuration values are present in this
# autogenerated file. # autogenerated file.
@ -11,25 +13,36 @@
# All configuration values have a default; values that are commented out # All configuration values have a default; values that are commented out
# serve to show the default. # serve to show the default.
import os
import sys import sys
import os
# If extensions (or modules to document with autodoc) are in another directory, # 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 # 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. # documentation root, use os.path.abspath to make it absolute, like shown here.
path_to_code = os.path.abspath(os.path.join(os.path.split(__file__)[0], path_to_code = os.path.abspath(os.path.join(os.path.split(__file__)[0],
'..', '..', '..', '..', 'OpenLP', 'trunk')) '..', '..', '..', '..', 'openlp', 'trunk'))
if not os.path.exists(path_to_code): if not os.path.exists(path_to_code):
print 'Incorrect path to code, expecting "%s"' % path_to_code print('Incorrect path to code, expecting "%s"' % path_to_code)
sys.exit(1) sys.exit(1)
sys.path.insert(0, path_to_code) sys.path.insert(0, path_to_code)
# -- General configuration ----------------------------------------------------- # -- General configuration ------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be extensions # If your documentation needs a minimal Sphinx version, state it here.
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. #needs_sphinx = '1.0'
extensions = ['sphinx.ext.autodoc']
# 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',
'sphinx.ext.autosummary',
'sphinx.ext.intersphinx',
'sphinx.ext.todo',
'sphinx.ext.coverage',
'sphinx.ext.viewcode'
]
# Add any paths that contain templates here, relative to this directory. # Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates'] templates_path = ['_templates']
@ -38,23 +51,23 @@ templates_path = ['_templates']
source_suffix = '.rst' source_suffix = '.rst'
# The encoding of source files. # The encoding of source files.
source_encoding = 'utf-8' #source_encoding = 'utf-8-sig'
# The master toctree document. # The master toctree document.
master_doc = 'index' master_doc = 'index'
# General information about the project. # General information about the project.
project = u'OpenLP' project = 'OpenLP'
copyright = u'2004-2012, Raoul Snyman' copyright = '2004-2015, Raoul Snyman'
# The version info for the project you're documenting, acts as replacement for # The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the # |version| and |release|, also used in various other places throughout the
# built documents. # built documents.
# #
# The short X.Y version. # The short X.Y version.
version = '2.0' version = '2.2'
# The full version, including alpha/beta/rc tags. # The full version, including alpha/beta/rc tags.
release = '1.9.8' release = '2.2'
# The language for content autogenerated by Sphinx. Refer to documentation # The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages. # for a list of supported languages.
@ -66,14 +79,12 @@ release = '1.9.8'
# Else, today_fmt is used as the format for a strftime call. # Else, today_fmt is used as the format for a strftime call.
#today_fmt = '%B %d, %Y' #today_fmt = '%B %d, %Y'
# List of documents that shouldn't be included in the build. # List of patterns, relative to source directory, that match files and
#unused_docs = [] # directories to ignore when looking for source files.
exclude_patterns = []
# List of directories, relative to source directory, that shouldn't be searched # The reST default role (used for this markup: `text`) to use for all
# for source files. # documents.
exclude_trees = []
# The reST default role (used for this markup: `text`) to use for all documents.
#default_role = None #default_role = None
# If true, '()' will be appended to :func: etc. cross-reference text. # If true, '()' will be appended to :func: etc. cross-reference text.
@ -81,7 +92,7 @@ exclude_trees = []
# If true, the current module name will be prepended to all description # If true, the current module name will be prepended to all description
# unit titles (such as .. function::). # unit titles (such as .. function::).
add_module_names = False #add_module_names = True
# If true, sectionauthor and moduleauthor directives will be shown in the # If true, sectionauthor and moduleauthor directives will be shown in the
# output. They are ignored by default. # output. They are ignored by default.
@ -93,31 +104,27 @@ pygments_style = 'sphinx'
# A list of ignored prefixes for module index sorting. # A list of ignored prefixes for module index sorting.
#modindex_common_prefix = [] #modindex_common_prefix = []
# If true, keep warnings as "system message" paragraphs in the built documents.
# keep_warnings = True
# -- Options for HTML output ---------------------------------------------------
# The theme to use for HTML and HTML Help pages. Major themes that come with # -- Options for HTML output ----------------------------------------------
# Sphinx are currently 'default' and 'sphinxdoc'.
html_theme = 'default' # The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
html_theme = 'sphinx_rtd_theme'
# Theme options are theme-specific and customize the look and feel of a theme # 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 # further. For a list of options available for each theme, see the
# documentation. # documentation.
html_theme_options = { #html_theme_options = {}
'sidebarbgcolor': '#3a60a9',
'relbarbgcolor': '#203b6f',
'footerbgcolor': '#26437c',
'headtextcolor': '#203b6f',
'linkcolor': '#26437c',
'sidebarlinkcolor': '#ceceff'
}
# Add any paths that contain custom themes here, relative to this directory. # Add any paths that contain custom themes here, relative to this directory.
#html_theme_path = [] #html_theme_path = []
# The name for this set of Sphinx documents. If None, it defaults to # The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation". # "<project> v<release> documentation".
html_title = 'OpenLP 2.0 Developer API' #html_title = None
# A shorter title for the navigation bar. Default is the same as html_title. # A shorter title for the navigation bar. Default is the same as html_title.
#html_short_title = None #html_short_title = None
@ -136,6 +143,11 @@ html_title = 'OpenLP 2.0 Developer API'
# so a file named "default.css" will overwrite the builtin "default.css". # so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static'] html_static_path = ['_static']
# Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied
# directly to the root of the documentation.
#html_extra_path = []
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format. # using the given strftime format.
#html_last_updated_fmt = '%b %d, %Y' #html_last_updated_fmt = '%b %d, %Y'
@ -152,7 +164,7 @@ html_static_path = ['_static']
#html_additional_pages = {} #html_additional_pages = {}
# If false, no module index is generated. # If false, no module index is generated.
#html_use_modindex = True #html_domain_indices = True
# If false, no index is generated. # If false, no index is generated.
#html_use_index = True #html_use_index = True
@ -163,31 +175,43 @@ html_static_path = ['_static']
# If true, links to the reST sources are added to the pages. # If true, links to the reST sources are added to the pages.
#html_show_sourcelink = True #html_show_sourcelink = True
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
#html_show_sphinx = True
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
#html_show_copyright = True
# If true, an OpenSearch description file will be output, and all pages will # If true, an OpenSearch description file will be output, and all pages will
# contain a <link> tag referring to it. The value of this option must be the # contain a <link> tag referring to it. The value of this option must be the
# base URL from which the finished HTML is served. # base URL from which the finished HTML is served.
#html_use_opensearch = '' #html_use_opensearch = ''
# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). # This is the file name suffix for HTML files (e.g. ".xhtml").
#html_file_suffix = '' #html_file_suffix = None
# Output file base name for HTML help builder. # Output file base name for HTML help builder.
htmlhelp_basename = 'OpenLP-2.0-api' htmlhelp_basename = 'OpenLP-api'
# -- Options for LaTeX output -------------------------------------------------- # -- Options for LaTeX output ---------------------------------------------
# The paper size ('letter' or 'a4'). latex_elements = {
#latex_paper_size = 'letter' # The paper size ('letterpaper' or 'a4paper').
#'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt'). # The font size ('10pt', '11pt' or '12pt').
#latex_font_size = '10pt' #'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#'preamble': '',
}
# Grouping the document tree into LaTeX files. List of tuples # Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, author, documentclass [howto/manual]). # (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [ latex_documents = [
('index', 'OpenLP.tex', u'OpenLP 2.0 Developer API', ('index', 'OpenLP.tex', 'OpenLP Developer API',
u'Raoul Snyman', 'manual'), 'Raoul Snyman', 'manual'),
] ]
# The name of an image file (relative to this directory) to place at the top of # The name of an image file (relative to this directory) to place at the top of
@ -198,11 +222,131 @@ latex_documents = [
# not chapters. # not chapters.
#latex_use_parts = False #latex_use_parts = False
# Additional stuff for the LaTeX preamble. # If true, show page references after internal links.
#latex_preamble = '' #latex_show_pagerefs = False
# If true, show URL addresses after external links.
#latex_show_urls = False
# Documents to append as an appendix to all manuals. # Documents to append as an appendix to all manuals.
#latex_appendices = [] #latex_appendices = []
# If false, no module index is generated. # If false, no module index is generated.
#latex_use_modindex = True #latex_domain_indices = True
# -- Options for manual page output ---------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
('index', 'openlp', 'OpenLP Developer API',
['Raoul Snyman'], 1)
]
# If true, show URL addresses after external links.
#man_show_urls = False
# -- Options for Texinfo output -------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
('index', 'OpenLP', 'OpenLP Developer API',
'Raoul Snyman', 'OpenLP', 'One line description of project.',
'Miscellaneous'),
]
# Documents to append as an appendix to all manuals.
#texinfo_appendices = []
# If false, no module index is generated.
#texinfo_domain_indices = True
# How to display URL addresses: 'footnote', 'no', or 'inline'.
#texinfo_show_urls = 'footnote'
# If true, do not generate a @detailmenu in the "Top" node's menu.
#texinfo_no_detailmenu = False
# -- Options for Epub output ----------------------------------------------
# Bibliographic Dublin Core info.
epub_title = 'OpenLP'
epub_author = 'Raoul Snyman'
epub_publisher = 'Raoul Snyman'
epub_copyright = '2004-2015, Raoul Snyman'
# The basename for the epub file. It defaults to the project name.
#epub_basename = 'OpenLP'
# The HTML theme for the epub output. Since the default themes are not optimized
# for small screen space, using the same theme for HTML and epub output is
# usually not wise. This defaults to 'epub', a theme designed to save visual
# space.
#epub_theme = 'epub'
# The language of the text. It defaults to the language option
# or en if the language is not set.
#epub_language = ''
# The scheme of the identifier. Typical schemes are ISBN or URL.
#epub_scheme = ''
# The unique identifier of the text. This can be a ISBN number
# or the project homepage.
#epub_identifier = ''
# A unique identification for the text.
#epub_uid = ''
# A tuple containing the cover image and cover page html template filenames.
#epub_cover = ()
# A sequence of (type, uri, title) tuples for the guide element of content.opf.
#epub_guide = ()
# HTML files that should be inserted before the pages created by sphinx.
# The format is a list of tuples containing the path and title.
#epub_pre_files = []
# HTML files shat should be inserted after the pages created by sphinx.
# The format is a list of tuples containing the path and title.
#epub_post_files = []
# A list of files that should not be packed into the epub file.
epub_exclude_files = ['search.html']
# The depth of the table of contents in toc.ncx.
#epub_tocdepth = 3
# Allow duplicate toc entries.
#epub_tocdup = True
# Choose between 'default' and 'includehidden'.
#epub_tocscope = 'default'
# Fix unsupported image types using the PIL.
#epub_fix_images = False
# Scale large images.
#epub_max_image_width = 0
# How to display URL addresses: 'footnote', 'no', or 'inline'.
#epub_show_urls = 'inline'
# If false, no index is generated.
#epub_use_index = True
# Example configuration for intersphinx: refer to the Python standard library.
intersphinx_mapping = {'python': ('http://docs.python.org/3.4', None)}
autosummary_generate = True
autodoc_default_flags = ['members', 'undoc-members', 'show-inheritance']
autodoc_mock_imports = ['pyodbc', 'uno', 'PyQt4.phonon', 'com.sun.star.connection', 'com.sun.star.beans']

View File

@ -1,18 +0,0 @@
.. _core-index:
Core Application
================
This is the core of the OpenLP application. Anything that is not a plugin is
stored in the :mod:`~openlp.core` module.
.. toctree::
:maxdepth: 2
lib
theme
ui
utils
.. automodule:: openlp.core
:members:

View File

@ -1,79 +0,0 @@
.. _core-lib:
Object Library
==============
.. automodule:: openlp.core.lib
:members:
:mod:`Manager`
--------------------
.. autoclass:: openlp.core.lib.db.Manager
:members:
:mod:`EventReceiver`
--------------------
.. autoclass:: openlp.core.lib.eventreceiver.EventReceiver
:members:
:mod:`ListWidgetWithDnD`
------------------------
.. autoclass:: openlp.core.lib.listwidgetwithdnd.ListWidgetWithDnD
:members:
:mod:`MediaManagerItem`
-----------------------
.. autoclass:: openlp.core.lib.mediamanageritem.MediaManagerItem
:members:
:mod:`Plugin`
-------------
.. autoclass:: openlp.core.lib.plugin.Plugin
:members:
:mod:`PluginManager`
--------------------
.. autoclass:: openlp.core.lib.pluginmanager.PluginManager
:members:
:mod:`Renderer`
---------------
.. autoclass:: openlp.core.lib.renderer.Renderer
:members:
:mod:`SearchEdit`
--------------------
.. autoclass:: openlp.core.lib.searchedit.SearchEdit
:members:
:mod:`ServiceItem`
------------------
.. autoclass:: openlp.core.lib.serviceitem.ServiceItem
:members:
:mod:`SettingsTab`
------------------
.. autoclass:: openlp.core.lib.settingstab.SettingsTab
:members:
:mod:`OpenLPToolbar`
--------------------
.. autoclass:: openlp.core.lib.toolbar.OpenLPToolbar
:members:
:mod:`UiStrings`
--------------------
.. autoclass:: openlp.core.lib.ui.UiStrings
:members:

View File

@ -1,10 +0,0 @@
.. _core-theme:
Theme Function Library
======================
.. automodule:: openlp.core.theme
:members:
.. autoclass:: openlp.core.theme.theme.Theme
:members:

View File

@ -1,30 +0,0 @@
.. _core-ui:
User Interface
==============
.. automodule:: openlp.core.ui
Main Windows
------------
.. autoclass:: openlp.core.ui.mainwindow.MainWindow
:members:
.. autoclass:: openlp.core.ui.maindisplay.MainDisplay
:members:
Managers
--------
.. autoclass:: openlp.core.ui.slidecontroller.SlideController
:members:
.. autoclass:: openlp.core.ui.servicemanager.ServiceManager
:members:
.. autoclass:: openlp.core.ui.mediadockmanager.MediaDockManager
:members:
.. autoclass:: openlp.core.ui.thememanager.ThemeManager
:members:

View File

@ -1,7 +0,0 @@
.. _core-utils:
Utilities
=========
.. automodule:: openlp.core.utils
:members:

View File

@ -0,0 +1,6 @@
Main Display
------------
.. autoclass:: openlp.core.ui.maindisplay.MainDisplay
:members:
:noindex:

View File

@ -0,0 +1,6 @@
Main Window
-----------
.. autoclass:: openlp.core.ui.mainwindow.MainWindow
:members:
:noindex:

View File

@ -0,0 +1,6 @@
Media Dock Manager
------------------
.. autoclass:: openlp.core.ui.mediadockmanager.MediaDockManager
:members:
:noindex:

View File

@ -0,0 +1,6 @@
Service Manager
---------------
.. autoclass:: openlp.core.ui.servicemanager.ServiceManager
:members:
:noindex:

View File

@ -0,0 +1,6 @@
Slide Controller
----------------
.. autoclass:: openlp.core.ui.slidecontroller.SlideController
:members:
:noindex:

View File

@ -0,0 +1,6 @@
Theme Manager
-------------
.. autoclass:: openlp.core.ui.thememanager.ThemeManager
:members:
:noindex:

20
api/source/doc/ui.rst Normal file
View File

@ -0,0 +1,20 @@
UI Documentation
================
Main Windows
------------
.. toctree::
:glob:
:maxdepth: 2
mainwindows/*
Managers
--------
.. toctree::
:glob:
:maxdepth: 2
managers/*

View File

@ -1,22 +1,30 @@
.. OpenLP documentation master file, created by .. OpenLP documentation master file, created by
sphinx-quickstart on Fri Jul 10 17:20:40 2009. sphinx-quickstart on Mon Jun 16 15:48:38 2014.
You can adapt this file completely to your liking, but it should at least You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive. contain the root `toctree` directive.
Welcome Welcome
======= =======
Welcome to the OpenLP 2.0 API Documentation! In here you will find all Welcome to the OpenLP 2.2 API Documentation! In here you will find all
information relating to OpenLP's core classes, core plugins, and anything else information relating to OpenLP's core classes, core plugins, and anything else
deemed necessary or interesting by the developers. deemed necessary or interesting by the developers.
Contents: Documentation:
.. toctree:: .. toctree::
:glob:
:maxdepth: 2 :maxdepth: 2
core/index doc/*
plugins/index
API Documentation:
.. toctree::
:glob:
:maxdepth: 2
api/*
Indices and tables Indices and tables
================== ==================

View File

@ -1,31 +0,0 @@
.. _plugins-alerts:
Alerts Plugin
=============
.. automodule:: openlp.plugins.alerts
:members:
Plugin Class
------------
.. autoclass:: openlp.plugins.alerts.alertsplugin.AlertsPlugin
:members:
Forms
-----
.. automodule:: openlp.plugins.alerts.forms
:members:
.. autoclass:: openlp.plugins.alerts.forms.alertform.AlertForm
:members:
Helper Classes & Functions
--------------------------
.. automodule:: openlp.plugins.alerts.lib
:members:
.. automodule:: openlp.plugins.alerts.lib.db
:members:

View File

@ -1,55 +0,0 @@
.. _plugins-bibles:
Bibles Plugin
=============
.. automodule:: openlp.plugins.bibles
:members:
Plugin Class
------------
.. autoclass:: openlp.plugins.bibles.bibleplugin.BiblePlugin
:members:
Forms
-----
.. automodule:: openlp.plugins.bibles.forms
:members:
.. autoclass:: openlp.plugins.bibles.forms.bibleimportform.BibleImportForm
:members:
Helper Classes & Functions
--------------------------
.. automodule:: openlp.plugins.bibles.lib
:members:
.. automodule:: openlp.plugins.bibles.lib.db
:members:
.. automodule:: openlp.plugins.bibles.lib.biblestab
:members:
.. automodule:: openlp.plugins.bibles.lib.manager
:members:
.. automodule:: openlp.plugins.bibles.lib.mediaitem
:members:
Bible Importers
---------------
.. automodule:: openlp.plugins.bibles.lib.csvbible
:members:
.. automodule:: openlp.plugins.bibles.lib.http
:members:
.. automodule:: openlp.plugins.bibles.lib.osis
:members:
.. automodule:: openlp.plugins.bibles.lib.opensong
:members:

View File

@ -1,34 +0,0 @@
.. _plugins-custom:
Custom Slides Plugin
====================
.. automodule:: openlp.plugins.custom
:members:
Plugin Class
------------
.. autoclass:: openlp.plugins.custom.customplugin.CustomPlugin
:members:
Forms
-----
.. automodule:: openlp.plugins.custom.forms
:members:
.. autoclass:: openlp.plugins.custom.forms.editcustomform.EditCustomForm
:members:
.. autoclass:: openlp.plugins.custom.forms.editcustomslideform.EditCustomSlideForm
:members:
Helper Classes & Functions
--------------------------
.. automodule:: openlp.plugins.custom.lib
:members:
.. automodule:: openlp.plugins.custom.lib.mediaitem
:members:

View File

@ -1,22 +0,0 @@
.. _plugins-images:
Images Plugin
=============
.. automodule:: openlp.plugins.images
:members:
Plugin Class
------------
.. autoclass:: openlp.plugins.images.imageplugin.ImagePlugin
:members:
Helper Classes & Functions
--------------------------
.. automodule:: openlp.plugins.images.lib
:members:
.. automodule:: openlp.plugins.images.lib.mediaitem
:members:

View File

@ -1,20 +0,0 @@
.. _plugins-index:
Plugins
=======
.. automodule:: openlp.plugins
:members:
.. toctree::
:maxdepth: 2
songs
bibles
presentations
media
images
custom
remotes
songusage
alerts

View File

@ -1,22 +0,0 @@
.. _plugins-media:
Media Plugin
============
.. automodule:: openlp.plugins.media
:members:
Plugin Class
------------
.. autoclass:: openlp.plugins.media.mediaplugin.MediaPlugin
:members:
Helper Classes & Functions
--------------------------
.. automodule:: openlp.plugins.media.lib
:members:
.. automodule:: openlp.plugins.media.lib.mediaitem
:members:

View File

@ -1,40 +0,0 @@
.. _plugins-presentations:
Presentations Plugin
====================
Plugin Class
------------
.. autoclass:: openlp.plugins.presentations.presentationplugin.PresentationPlugin
:members:
Helper Classes & Functions
--------------------------
.. automodule:: openlp.plugins.presentations.lib
:members:
.. automodule:: openlp.plugins.presentations.lib.mediaitem
:members:
.. automodule:: openlp.plugins.presentations.lib.presentationtab
:members:
.. automodule:: openlp.plugins.presentations.lib.messagelistener
:members:
.. automodule:: openlp.plugins.presentations.lib.presentationcontroller
:members:
Presentation Application Controllers
------------------------------------
.. automodule:: openlp.plugins.presentations.lib.impresscontroller
:members:
.. automodule:: openlp.plugins.presentations.lib.pptviewcontroller
:members:
.. automodule:: openlp.plugins.presentations.lib.powerpointcontroller
:members:

View File

@ -1,25 +0,0 @@
.. _plugins-remotes:
Remotes Plugin
==============
.. automodule:: openlp.plugins.remotes
:members:
Plugin Class
------------
.. autoclass:: openlp.plugins.remotes.remoteplugin.RemotesPlugin
:members:
Helper Classes & Functions
--------------------------
.. automodule:: openlp.plugins.remotes.lib
:members:
.. autoclass:: openlp.plugins.remotes.lib.httpserver.HttpConnection
:members:
.. autoclass:: openlp.plugins.remotes.lib.httpserver.HttpResponse
:members:

View File

@ -1,97 +0,0 @@
.. _plugins-songs:
Songs Plugin
============
.. automodule:: openlp.plugins.songs
:members:
Plugin Class
------------
.. autoclass:: openlp.plugins.songs.songsplugin.SongsPlugin
:members:
Forms
-----
.. automodule:: openlp.plugins.songs.forms
:members:
.. autoclass:: openlp.plugins.songs.forms.authorsform.AuthorsForm
:members:
.. autoclass:: openlp.plugins.songs.forms.editsongform.EditSongForm
:members:
.. autoclass:: openlp.plugins.songs.forms.editverseform.EditVerseForm
:members:
.. autoclass:: openlp.plugins.songs.forms.songbookform.SongBookForm
:members:
.. autoclass:: openlp.plugins.songs.forms.songimportform.SongImportForm
:members:
.. autoclass:: openlp.plugins.songs.forms.songmaintenanceform.SongMaintenanceForm
:members:
.. autoclass:: openlp.plugins.songs.forms.topicsform.TopicsForm
:members:
Helper Classes & Functions
--------------------------
.. automodule:: openlp.plugins.songs.lib
:members:
.. automodule:: openlp.plugins.songs.lib.db
:members:
.. automodule:: openlp.plugins.songs.lib.mediaitem
:members:
.. automodule:: openlp.plugins.songs.lib.songimport
:members:
.. automodule:: openlp.plugins.songs.lib.songstab
:members:
.. automodule:: openlp.plugins.songs.lib.xml
:members:
.. automodule:: openlp.plugins.songs.lib.upgrade
:members:
Song Importers
--------------
.. automodule:: openlp.plugins.songs.lib.cclifileimport
:members:
.. automodule:: openlp.plugins.songs.lib.ewimport
:members:
.. autoclass:: openlp.plugins.songs.lib.ewimport.FieldDescEntry
:members:
.. automodule:: openlp.plugins.songs.lib.olp1import
:members:
.. automodule:: openlp.plugins.songs.lib.olpimport
:members:
.. automodule:: openlp.plugins.songs.lib.oooimport
:members:
.. automodule:: openlp.plugins.songs.lib.opensongimport
:members:
.. automodule:: openlp.plugins.songs.lib.sofimport
:members:
.. automodule:: openlp.plugins.songs.lib.songbeamerimport
:members:
.. automodule:: openlp.plugins.songs.lib.wowimport
:members:

View File

@ -1,34 +0,0 @@
.. _plugins-songusage:
Song Usage Plugin
=================
.. automodule:: openlp.plugins.songusage
:members:
Plugin Class
------------
.. autoclass:: openlp.plugins.songusage.songusageplugin.SongUsagePlugin
:members:
Forms
-----
.. automodule:: openlp.plugins.songusage.forms
:members:
.. autoclass:: openlp.plugins.songusage.forms.songusagedeleteform.SongUsageDeleteForm
:members:
.. autoclass:: openlp.plugins.songusage.forms.songusagedetailform.SongUsageDetailForm
:members:
Helper Classes & Functions
--------------------------
.. automodule:: openlp.plugins.songusage.lib
:members:
.. automodule:: openlp.plugins.songusage.lib.db
:members:

120
api/source/scan.py Executable file
View File

@ -0,0 +1,120 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
import sys
import shutil
from modulefinder import ModuleFinder
import pkgutil
import string
import multiprocessing
PACKAGE_RST = string.Template("""$underline
$title
$underline
.. toctree::
:glob:
:maxdepth: 2
$title/*
.. automodule:: $module
""")
MODULE_RST = string.Template("""$underline
$title
$underline
.. automodule:: $module
$exclude""")
def find_modules(importer, module, package):
if module.startswith('openlp'):
title = str(module.split('.')[-1])
underline = str(len(title) * '=')
values = {'underline': underline, 'title': title, 'module': module}
path = os.path.join(find_modules.root_path, module.replace('.', os.path.sep) + '.rst')
if package:
with open(os.path.join(path), 'w+') as file:
file.write(PACKAGE_RST.substitute(values))
else:
finder = ModuleFinder()
exclude = ''
try:
finder.run_script(os.path.join(importer.path, title + '.py'))
except ImportError:
print('Failed to import {0}{1}'.format(module, ' '*25))
raise
except:
print('Failed in module {0}'.format(module))
raise
for name in finder.modules.keys():
if name.startswith('sqlalchemy'):
exclude = " :exclude-members: mapper, or_, and_\n"
values['exclude'] = exclude
with open(os.path.join(path), 'w+') as file:
file.write(MODULE_RST.substitute(values))
find_modules.queue.put(module)
def find_modules_init(queue, root_path):
find_modules.queue = queue
find_modules.root_path = root_path
def progress(queue, number):
progress_percentage = 0
while number > progress_percentage:
try:
module = queue.get(True, 5)
except queue.Empty:
break
percent = round((progress_percentage/number)*100)
sys.stdout.write('{0}% File: {1}{2}\r'.format(percent, module, ' '*25))
sys.stdout.flush()
progress_percentage += 1
sys.stdout.write('100%{0}\n'.format(' '*50))
sys.stdout.flush()
def main():
modules = []
path_to_code = os.path.abspath(os.path.join(os.path.split(__file__)[0],
'..', '..', '..', '..', 'openlp', 'trunk'))
if not os.path.exists(path_to_code):
print('Incorrect path to code, expecting "%s"' % path_to_code)
sys.exit(1)
root_path = os.path.abspath(os.path.join(os.path.split(__file__)[0], 'api'))
sys.path.insert(0, path_to_code)
if os.path.isdir(root_path):
shutil.rmtree(root_path)
os.makedirs(root_path)
pkg = pkgutil.walk_packages([path_to_code], onerror=print)
for importer, module, package in pkg:
if module.startswith('openlp') and not module.endswith(('vendor', 'vlc')):
path = os.path.join(root_path, module.replace('.', os.path.sep))
if package:
if not os.path.exists(path):
os.makedirs(path)
modules.append([importer, module, package])
del sys.path[0]
queue = multiprocessing.Queue()
thread = multiprocessing.Process(target=progress, args=(queue, len(modules)))
thread.start()
pool = multiprocessing.Pool(None, find_modules_init, [queue, root_path])
pool.starmap(find_modules, modules)
pool.close()
if __name__ == '__main__':
main()

26
batch-drop-shadow.scm Normal file
View File

@ -0,0 +1,26 @@
; Based on script by Michiel Roos, found on:
; http://www.typofree.org/article/archive/2009/january/title/create-a-drop-shadow-folder-action/
;
; Place the script in your gimp scripts folder (eg. ~/.gimp-2.8/scripts) go to the
; folder with images you wish to add shadow to and execute like this:
; gimp --no-data -i -b '(batch-drop-shadow "*.png" 8 8 10)' -b '(gimp-quit 0)'
;
(define (batch-drop-shadow pattern
offsetx
offsety
radius)
(let* ((filelist (cadr (file-glob pattern 1))))
(while (not (null? filelist))
(let* ((filename (car filelist))
(image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
(drawable (car (gimp-image-get-active-layer image))))
(script-fu-drop-shadow image drawable offsetx offsety radius '(0 0 0) 80.0 TRUE)
(set! drawable (car (gimp-image-merge-visible-layers image 0)))
(gimp-file-save RUN-NONINTERACTIVE image drawable filename filename)
(gimp-image-delete image)
)
(set! filelist (cdr filelist))
)
)
)

View File

@ -153,9 +153,12 @@ you should now be ready to use the web Bible.
Importing CSV formatted Bibles Importing CSV formatted Bibles
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If you have a Bible in .csv format OpenLP can import it. CSV Bibles will If you have a Bible in .csv format OpenLP can import it. If you wish to create
consist of two files a `books` file and a `verse` file. Select CSV from the list a bible in the CSV format yourself the format is documented in the
of Bible types to import. `OpenLP API documentation <http://docs.openlp.org/plugins/bibles.html#module-openlp.plugins.bibles.lib.csvbible>`_.
CSV Bibles will consist of two files a `books` file and a `verse` file.
Select CSV from the list of Bible types to import.
You are now ready to select your .csv files. You will need to select both your You are now ready to select your .csv files. You will need to select both your
books and verse file location. books and verse file location.

View File

@ -42,16 +42,16 @@ master_doc = 'index'
# General information about the project. # General information about the project.
project = u'OpenLP' project = u'OpenLP'
copyright = u'2004 - 2012, Raoul Snyman' copyright = u'2004 - 2015, Raoul Snyman'
# The version info for the project you're documenting, acts as replacement for # The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the # |version| and |release|, also used in various other places throughout the
# built documents. # built documents.
# #
# The short X.Y version. # The short X.Y version.
version = '2.0' version = '2.2'
# The full version, including alpha/beta/rc tags. # The full version, including alpha/beta/rc tags.
release = '2.0' release = '2.2'
# The language for content autogenerated by Sphinx. Refer to documentation # The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages. # for a list of supported languages.
@ -95,27 +95,22 @@ pygments_style = 'sphinx'
if sys.argv[2] == 'qthelp' or sys.argv[2] == 'htmlhelp': if sys.argv[2] == 'qthelp' or sys.argv[2] == 'htmlhelp':
html_theme = 'openlp_qthelp' html_theme = 'openlp_qthelp'
else: else:
html_theme = 'classic' html_theme = 'sphinx_rtd_theme'
# Theme options are theme-specific and customize the look and feel of a theme # 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 # further. For a list of options available for each theme, see the
# documentation. # documentation.
if sys.argv[2] == 'html': #if sys.argv[2] == 'html':
html_theme_options = { # html_theme_options = {
'sidebarbgcolor': '#3a60a9', # ...
'relbarbgcolor': '#203b6f', # }
'footerbgcolor': '#26437c',
'headtextcolor': '#203b6f',
'linkcolor': '#26437c',
'sidebarlinkcolor': '#ceceff'
}
# Add any paths that contain custom themes here, relative to this directory. # Add any paths that contain custom themes here, relative to this directory.
html_theme_path = [os.path.abspath(os.path.join('..', '..', 'common', 'themes'))] html_theme_path = [os.path.abspath(os.path.join('..', '..', 'common', 'themes'))]
# The name for this set of Sphinx documents. If None, it defaults to # The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation". # "<project> v<release> documentation".
html_title = u'OpenLP 2.0 Reference Manual' html_title = u'OpenLP 2.2 Reference Manual'
# A shorter title for the navigation bar. Default is the same as html_title. # A shorter title for the navigation bar. Default is the same as html_title.
#html_short_title = None #html_short_title = None
@ -191,7 +186,7 @@ htmlhelp_basename = 'OpenLP'
# (source start file, target name, title, author, documentclass [howto/manual]). # (source start file, target name, title, author, documentclass [howto/manual]).
latex_documents = [ latex_documents = [
('index', 'OpenLP.tex', u'OpenLP Reference Manual', ('index', 'OpenLP.tex', u'OpenLP Reference Manual',
u'Wesley Stout', 'manual'), u'OpenLP Developers', 'manual'),
] ]
# The name of an image file (relative to this directory) to place at the top of # The name of an image file (relative to this directory) to place at the top of
@ -224,7 +219,7 @@ latex_documents = [
# (source start file, name, description, authors, manual section). # (source start file, name, description, authors, manual section).
man_pages = [ man_pages = [
('index', 'openlp', u'OpenLP Reference Manual', ('index', 'openlp', u'OpenLP Reference Manual',
[u'Wesley Stout'], 1) [u'OpenLP Developers'], 1)
] ]
# -- Options for apple help output -------------------------------------------- # -- Options for apple help output --------------------------------------------

View File

@ -10,7 +10,7 @@ Can I help with OpenLP?
OpenLP is possible because of the commitment of individuals. If you would like OpenLP is possible because of the commitment of individuals. If you would like
to help there are several things that you can get involved with. Please see: to help there are several things that you can get involved with. Please see:
`Contributing <http://openlp.org/en/documentation/introduction/contributing.html>`_ `Contributing <http://wiki.openlp.org/Development:Getting_Started>`_
for more information. for more information.
I use and like OpenLP and would like to tell others online. Where can I do this? I use and like OpenLP and would like to tell others online. Where can I do this?
@ -30,18 +30,19 @@ A variety of places!
* If you are a member of any Christian Forums or websites, and their rules allow * If you are a member of any Christian Forums or websites, and their rules allow
it, then perhaps review the software or ask others to review it. it, then perhaps review the software or ask others to review it.
What operating systems will OpenLP 2.0 support? What operating systems will OpenLP 2.2 support?
----------------------------------------------- -----------------------------------------------
OpenLP 2.0 is designed to be cross platform. Currently it has been known to run OpenLP 2.2 is designed to be cross platform. Currently it has been known to run
on Windows (XP, Vista, 7), Linux (Ubuntu/Kubuntu, Fedora), FreeBSD & Mac OSX. on Windows (Vista, 7, 8, 10), Linux (Ubuntu and its variants, Fedora, Debian,
`Please let us know <http://wiki.openlp.org/Help:Contents>`_ if you've ArchLinux, Mint, OpenSUSE and many many others), FreeBSD & Mac OS X.
`Please let us know <http://wiki.openlp.org/Help:Contents>`_ if you have
successfully run it on something else. successfully run it on something else.
Which programming language is 2.0 developed in? Which programming language is 2.2 developed in?
----------------------------------------------- -----------------------------------------------
OpenLP 2.0 is written in `Python <http://www.python.org>`_ and uses the OpenLP 2.2 is written in `Python3 <http://www.python.org>`_ and uses the
`Qt4 toolkit <http://qt.nokia.com>`_. Both are cross-platform which allows the `Qt4 toolkit <http://qt.nokia.com>`_. Both are cross-platform which allows the
software to run on different types of machine and so allow more people access to software to run on different types of machine and so allow more people access to
free worship software. Python is one of the easier programming languages to free worship software. Python is one of the easier programming languages to
@ -56,116 +57,51 @@ OpenLP has support for multiple languages which can be seen on the
are incomplete. If you would like to help complete or start to translate OpenLP are incomplete. If you would like to help complete or start to translate OpenLP
into your language then see the `Getting started page <http://wiki.openlp.org/Translation:Getting_Started>`_. into your language then see the `Getting started page <http://wiki.openlp.org/Translation:Getting_Started>`_.
What is a beta release?
-----------------------
A beta release is a release which is almost feature complete and is fairly
stable. However there may still be a few `features <http://wiki.openlp.org/Version_2_Features>`_
to complete, and `bugs <https://bugs.launchpad.net/openlp>`_ we've not yet fixed.
It is used by several people without serious problems. However there is a small
possibility that it could still crash occasionally or do unexpected things. It
is intended for those who want the latest version, and are prepared to give the
program a good test before using it in a live situation to ensure they won't
encounter any unexpected problems. If you want to have a look at the latest beta
release then just `download it <http://openlp.org/en/download.html>`_.
Upgrading Upgrading
========= =========
Does 2.0 replace 1.2, or can they be run side by side? Can I upgrade from any 1.9.x or 2.0.x release to 2.2?
------------------------------------------------------ -----------------------------------------------------
It is perfectly safe to install 2.0 on a system with 1.2. Both versions are No, you should first upgrade to the last stable release in the 2.0-series
installed in separate places, so you can still go back to 1.2. You can even run (2.0.5) and then upgrade to 2.2 to ensure that data is correctly converted.
them at the same time!
2.0 stores its data in a separate folder to 1.2, so your data is perfectly safe, Can I upgrade directly from 1.2 to 2.2?
and whatever you do in 2.0 will not damage 1.2
Are 1.2 and 2.0 compatible?
---------------------------
No. However imports exist to transfer your data to the new version.
I have a computer that is quite old, should I upgrade?
------------------------------------------------------
2.0 does require significantly more resources than v1.2. Therefore if your
computer does not have much memory you may find 2.0 will struggle, `especially`
when changing between slides.
Why can I not see my 1.2 songs, bibles and themes in 2.0?
---------------------------------------------------------
This is an beta release, which means it is not finished and one of the things we
haven't completely finished yet is importing 1.2 data automatically. We plan to
do this `Version 1.9.6 (beta 2) <http://wiki.openlp.org/Version_2_Milestones#Version_1.9.6_.28beta_2.29>`_.
How do I transfer my 1.2 song database?
--------------------------------------- ---------------------------------------
In OpenLP 2.0, go to the :menuselection:`File --> Import --> Song` menu. No, you will have to install 2.0.5 first, then import the 1.2 data and then
In the Wizard that appears, click Next and choose "openlp.org v1.x" from the upgrade to 2.2. See the 2.0 documentation for how to upgrade from 1.2 to
Format list. Click the search button on the Filename prompt, and at the bottom 2.0.
of the dialog, copy the following into the File name prompt::
%ALLUSERSPROFILE%\Application Data\openlp.org\Data\songs.olp Does 2.2 replace 2.0, or can they be run side by side?
------------------------------------------------------
*(This must be in the popup file chooser dialog. Don't enter it directly into OpenLP 2.2 and 2.0 cannot run side by side. When running 2.2 for first time
the wizard).* any existing 2.0 data will automatically be converted to the 2.2 format.
Note that OpenLP 2.2 is not backwards compatible with 2.0. Once you have
upgraded from 2.0, version 2.0 cannot read the upgraded files. OpenLP 2.2 will
ask if it should make a backup on startup, which can be used in case you want
to downgrade to 2.0 again.
Click Open, then in the wizard just click Next and wait for the import to complete. OpenLP 2.2 cannot read service files created by OpenLP 2.0.4 and earlier, it can only
read service files created by OpenLP 2.0.5.
How do I transfer my 1.2 Bibles?
--------------------------------
In OpenLP 2.0, go to the :menuselection:`File --> Import --> Bible` menu.
In the Wizard that appears, click Next and choose "openlp.org v1.x" from the
Format list.
Click the search button on the Filename prompt, and at the bottom of the dialog,
copy the following into the File name prompt::
%ALLUSERSPROFILE%\Application Data\openlp.org\Data\Bibles
*(This must be in the popup file chooser dialog. Don't enter it directly into
the wizard).*
Choose the Bible, Click Open, then in the wizard just click Next, enter the
License details, and wait for the import to complete.
How do I transfer my 1.2 Themes?
--------------------------------
In openlp.org v1, export each theme by selecting it in the Theme Manager, and
then clicking the picture of a blue folder with red arrow on the Theme Managers
toolbox. This theme file can then be imported into V2 using the
:menuselection:`File --> Import --> Theme` menu.
I can't get my 2.0 theme to look the same as 1.2
------------------------------------------------
OpenLP 2.0 is a complete rewrite using a completely different programming
language so it would work on different types of system. There are differences in
how the old and new languages draw text on the screen, and therefore it is
unlikely you'll get an exact match.
Using OpenLP Using OpenLP
============ ============
I've started OpenLP, but I can't see the songs or bibles section in the Media Manager I have started OpenLP, but I cannot see the songs or bibles section in the Media Manager
------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------
When you installed OpenLP, the first time wizard would have asked which plugins When you installed OpenLP, the first time wizard would have asked which plugins
you wanted, and songs and bibles should have been selected. If for some reason you wanted, and songs and bibles should have been selected. If for some reason
they were not, then you will need to activate them yourself. See they were not, then you will need to activate them yourself. See below
`How do I activate / deactivate a plugin <http://wiki.openlp.org/Bug#How_do_I_activate_.2F_deactivate_a_plugin.3F>`_
for instructions. for instructions.
How do I activate / deactivate a plugin? How do I activate / deactivate a plugin?
---------------------------------------- ----------------------------------------
Plugins can be turned on and off from the Plugin List Screen. Select the plugin Plugins can be turned on and off from the Plugin List Screen. Select the plugin
you wish to start/stop and change it's status. You should not need to restart you wish to start/stop and change its status. You should not need to restart
OpenLP. OpenLP.
What are these plugins that I keep seeing mentioned? What are these plugins that I keep seeing mentioned?
@ -187,27 +123,35 @@ appropriate checkbox(es). Check the applications you require, and then restart
OpenLP for the change to be detected. OpenLP for the change to be detected.
Note, PowerPoint Viewer 2010 is not yet supported, use 2003 or 2007. Note, PowerPoint Viewer 2010 is not yet supported, use 2003 or 2007.
See also `I'm on Windows and PowerPoint is installed, but it doesn't appear as an option <http://wiki.openlp.org/OpenLP_2_Introduction_and_FAQ#I.27m_on_Windows_and_PowerPoint_is_installed.2C_but_it_doesn.27t_appear_as_an_option>`_ Why can LibreOffice Impress not be used on Mac OS X?
and `Why is there no presentations plugin available on OS X? <http://wiki.openlp.org/OpenLP_2_Introduction_and_FAQ#Why_is_there_no_presentations_plugin_available_on_OS_X.3F>`_ ----------------------------------------------------
Why is there no presentations plugin available on OS X? Currently the presentations plugin does not support Impress on OS X. The
------------------------------------------------------- reason for that is that the interoperability component (pyuno) in LibreOffice on
Mac OS X cannot be used by OpenLP due to incompatibilities between the version
of Python used by LibreOffice and the Python version used by OpenLP.
Currently the presentations plugin is not bundled with OpenLP on OS X. The Why can MS PowerPoint not be used on Mac OS X?
reason for that is that the OpenOffice.org version on Mac OS X does not contain ----------------------------------------------
the (more exact: does only contain a broken) interoperability component (the so
called pyuno bridge) which could be used by OpenLP. As soon as the Currently the presentations plugin does not support PowerPoint on OS X. The
interoperability component works on OS X we can re-enable the plugin and bundle reason for that is that so far we have found that the available method to
it. We are really sorry for that. control PowerPoint on OS X is not good enough for integration with OpenLP.
If this changes we will look at including this feature.
I am on Windows and PowerPoint is installed, but it does not appear as an option
--------------------------------------------------------------------------------
Try installing the `Visual C++ Runtime Redistributable <http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en>`_.
Is it possible to get Bible x? How? Is it possible to get Bible x? How?
----------------------------------- -----------------------------------
The Bible plugin has a much improved `Import Wizard` which can import Bibles The Bible plugin has a `Import Wizard` which can import Bibles
from a variety of sources. The following sources are supported: from a variety of sources. The following sources are supported:
CSV CSV
The same format as documented for `openlp.org 1.x <http://www.openlp.org/en/documentation/importing_exporting_data/bibles/importing_comma_delimited_files.html>`_. The format is documented in the `OpenLP API documentation <http://docs.openlp.org/plugins/bibles.html#module-openlp.plugins.bibles.lib.csvbible>`_.
OSIS OSIS
An XML format for Bible. You can export Bibles from the `Sword Project <http://www.crosswire.org/sword/software/>`_ An XML format for Bible. You can export Bibles from the `Sword Project <http://www.crosswire.org/sword/software/>`_
@ -234,6 +178,9 @@ Web Download
* `BibleGateway <http://www.biblegateway.com/versions/>`_ * `BibleGateway <http://www.biblegateway.com/versions/>`_
* `BibleServer <http://www.bibleserver.com>`_ * `BibleServer <http://www.bibleserver.com>`_
Zefania
The Zefania project has many bibles available from `their website <http://sourceforge.net/projects/zefania-sharp/files/Bibles/>`_
Why do my Bible verses take a long time to load? Why do my Bible verses take a long time to load?
------------------------------------------------ ------------------------------------------------
@ -241,10 +188,10 @@ In order to better conform to copyright law, the Web Download Bibles are not
downloaded when you import them, but on the fly as you search for them. As a downloaded when you import them, but on the fly as you search for them. As a
result, the search takes a little longer if you need to download those result, the search takes a little longer if you need to download those
particular verses. Having said that, the Web Download Bibles cache downloaded particular verses. Having said that, the Web Download Bibles cache downloaded
verses so that you don't need to download them again. verses so that you do not need to download them again.
My Bible is on the Web Download sites, but my Church isn't on the internet. What options do I have? My Bible is on the Web Download sites, but my Church is not on the internet. What options do I have?
--------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------
When you create and save a service, all the items in the service are saved with When you create and save a service, all the items in the service are saved with
it. That means any images, presentations, songs and media items are saved. This it. That means any images, presentations, songs and media items are saved. This
@ -259,7 +206,7 @@ Note this can also be done with songs, etc!
Linux, FreeBSD & PC-BSD Linux, FreeBSD & PC-BSD
----------------------- -----------------------
If your distribution supports the XDG standard, you'll find OpenLP's If your distribution supports the XDG standard, you will find OpenLP's
configuration file in:: configuration file in::
/home/<user>/.config/OpenLP/OpenLP.conf /home/<user>/.config/OpenLP/OpenLP.conf
@ -273,7 +220,7 @@ If that file and/or directory does not exist, look for::
OS X OS X
---- ----
You'll find your configuration file here:: You will find your configuration file here::
/Users/<user>/Library/Preferences/org.openlp.OpenLP.plist /Users/<user>/Library/Preferences/org.openlp.OpenLP.plist
@ -295,11 +242,11 @@ Something has gone wrong, what should I do to help get it fixed?
If you have found an error in the program (what we call a bug) you should report If you have found an error in the program (what we call a bug) you should report
this to us so that OpenLP can be improved. Before reporting any bugs please this to us so that OpenLP can be improved. Before reporting any bugs please
first make sure that there isn't already a bug report about your problem: first make sure that there is not already a bug report about your problem:
#. Check the `Launchpad bug list <https://bugs.launchpad.net/openlp>`_ #. Check the `Launchpad bug list <https://bugs.launchpad.net/openlp>`_
#. `OpenLP support System <http://www.support.openlp.org/projects/openlp>`_ #. `OpenLP support System <http://support.openlp.org/>`_
#. Check the `bug reports <http://openlp.org/en/forums/openlp_20/bug_reports.html>`_ forum #. Check the `<http://forums.openlp.org/>`_ forum
If there **is already a bug report**, you may be able to help by providing If there **is already a bug report**, you may be able to help by providing
further information. However, **if no one else has reported** it yet, then further information. However, **if no one else has reported** it yet, then
@ -307,24 +254,24 @@ please post a new bug report.
#. The **preferred place** for reporting bugs is the #. The **preferred place** for reporting bugs is the
`bugs list <https://bugs.launchpad.net/openlp>`_ on Launchpad. `bugs list <https://bugs.launchpad.net/openlp>`_ on Launchpad.
#. Alternatively, if you don't have a Launchpad account and don't want to sign #. Alternatively, if you do not have a Launchpad account and do not want to sign
up for one, you can post in the up for one, you can post in the
`bug reports forum <http://openlp.org/en/forums/openlp_20/bug_reports.html>`_. `bug reports forum <http://support.openlp.org/>`_.
#. If none of these ways suits you, you can send an email to #. If none of these ways suits you, you can send an email to
``bugs (at) openlp.org``. ``support (at) openlp.org``.
What information should I include in a bug report? What information should I include in a bug report?
-------------------------------------------------- --------------------------------------------------
Since OpenLP 1.9.4, there is a bug report dialog which automatically opens when Since OpenLP 1.9.4, there is a bug report dialog which automatically opens when
OpenLP hits a serious bug. However, this doesn't appear all the time, and in OpenLP hits a serious bug. However, this does not appear all the time, and in
some behavioural bugs, you'll have to file a bug report yourself. The following some behavioural bugs, you will have to file a bug report yourself. The following
items are information the developers need in order to reproduce the bug. items are information the developers need in order to reproduce the bug.
Operating System Operating System
Include information such as the version of your operating system, the Include information such as the version of your operating system, the
distribution (e.g. Ubuntu, Fedora, etc.) if you're using Linux, or the distribution (e.g. Ubuntu, Fedora, etc.) if you are using Linux, or the
edition (e.g. Home, Basic, Business, etc.) if you're using Windows. edition (e.g. Home, Basic, Business, etc.) if you are using Windows.
Version of OpenLP Version of OpenLP
You can find out the version of OpenLP by going to :menuselection:`Help --> About` You can find out the version of OpenLP by going to :menuselection:`Help --> About`
@ -332,9 +279,9 @@ Version of OpenLP
Steps to Reproduce Steps to Reproduce
The exact steps the developers need to follow in order to reproduce the bug. The exact steps the developers need to follow in order to reproduce the bug.
Version of MS Office or OpenOffice Version of MS Office or LibreOffice
If you're using the song imports or the presentation plugin, you'll need to If you are using the song imports or the presentation plugin, you will need to
supply the version of Office, OpenOffice.org or LibreOffice. supply the version of Office or LibreOffice.
Bible Translation and Source Bible Translation and Source
If the bug occurred while you were working with Bibles, specify the If the bug occurred while you were working with Bibles, specify the
@ -348,8 +295,8 @@ Bible Translation and Source
The more information you give us, the better we can help you. The more information you give us, the better we can help you.
I've been asked to email a debug log, where do I find this? I have been asked to email a debug log, where do I find this?
----------------------------------------------------------- -------------------------------------------------------------
We may need a debug log to help pin-point the issue. A new log file is created We may need a debug log to help pin-point the issue. A new log file is created
each time you start OpenLP so copy the file before you run the software a second each time you start OpenLP so copy the file before you run the software a second
@ -357,7 +304,7 @@ time. On Windows a Debug option is available in the start menu. On other systems
you will need to run OpenLP from the command line, with the following you will need to run OpenLP from the command line, with the following
option: ```-l debug```. Please note, that is a lowercase **L**. option: ```-l debug```. Please note, that is a lowercase **L**.
If you haven't been given a specific email address to send it to, then please do If you have not been given a specific email address to send it to, then please do
not paste the log contents straight into a forum post. Instead, open the log not paste the log contents straight into a forum post. Instead, open the log
file in a text editor (such as notepad on Windows) and copy and paste the file in a text editor (such as notepad on Windows) and copy and paste the
contents into somewhere like `pastebin.com <http://pastebin.com>`_. Then give us contents into somewhere like `pastebin.com <http://pastebin.com>`_. Then give us
@ -366,7 +313,7 @@ the link to the page that is created.
Windows Windows
^^^^^^^ ^^^^^^^
Find the OpenLP 2.0 folder in your Start menu. Choose the "OpenLP (Debug)" option. Find the OpenLP 2.2 folder in your Start menu. Choose the "OpenLP (Debug)" option.
OpenLP will start up. Go to the :menuselection:`Tools --> Open Data Folder` menu OpenLP will start up. Go to the :menuselection:`Tools --> Open Data Folder` menu
option, and an Explorer window will appear containing folders such as alerts, option, and an Explorer window will appear containing folders such as alerts,
@ -385,15 +332,15 @@ If you installed OpenLP from a package::
@:~$ openlp -l debug @:~$ openlp -l debug
Alternately, if you're running OpenLP from source:: Alternately, if you are running OpenLP from source::
@:~$ ./openlp.pyw -l debug @:~$ ./openlp.pyw -l debug
If your Linux distribution supports the XDG standard, you'll find the log in:: If your Linux distribution supports the XDG standard, you will find the log in::
~/.cache/openlp/openlp.log ~/.cache/openlp/openlp.log
Otherwise, you'll find the log file in:: Otherwise, you will find the log file in::
~/.openlp/openlp.log ~/.openlp/openlp.log
@ -413,7 +360,7 @@ And then run OpenLP in debug mode::
@:~$ ./openlp -l debug @:~$ ./openlp -l debug
Once you've done that, you need to get the log file. In your home directory, Once you have done that, you need to get the log file. In your home directory,
open the Library directory, and the Application Support directory within that. open the Library directory, and the Application Support directory within that.
Then open the openlp directory, and you should find the openlp.log file in that Then open the openlp directory, and you should find the openlp.log file in that
directory:: directory::
@ -422,11 +369,6 @@ directory::
``<username>`` is your username. ``<username>`` is your username.
I'm on Windows and PowerPoint is installed, but it doesn't appear as an option
------------------------------------------------------------------------------
Try installing the `Visual C++ Runtime Redistributable <http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en>`_.
The command line shows many error messages The command line shows many error messages
------------------------------------------ ------------------------------------------
@ -444,17 +386,17 @@ for Phonon.
Linux/FreeBSD Linux/FreeBSD
^^^^^^^^^^^^^ ^^^^^^^^^^^^^
If you're using Gnome, you need to install the GStreamer backend for Phonon. On If you are using Gnome, you need to install the GStreamer backend for Phonon. On
Ubuntu you would install the ```phonon-backend-gstreamer``` package:: Ubuntu you would install the ```phonon-backend-gstreamer``` package::
@:~$ sudo aptitude install phonon-backend-gstreamer @:~$ sudo aptitude install phonon-backend-gstreamer
If you're using KDE, you need to install the Xine backend for Phonon. On Kubuntu If you are using KDE, you need to install the Xine backend for Phonon. On Kubuntu
you would install the ```phonon-backend-xine``` package:: you would install the ```phonon-backend-xine``` package::
@:~$ sudo aptitude install phonon-backend-xine @:~$ sudo aptitude install phonon-backend-xine
If you know which audiovisual system you're using, then install the appropriate If you know which audiovisual system you are using, then install the appropriate
backend. backend.
phonon-backend-vlc may also be worth trying on some systems. phonon-backend-vlc may also be worth trying on some systems.
@ -462,38 +404,20 @@ phonon-backend-vlc may also be worth trying on some systems.
Windows & Mac OS X Windows & Mac OS X
^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
Phonon should already be set up properly. If you're still having issues, let the Phonon should already be set up properly. If you are still having issues, let the
developers know. developers know.
I've upgraded from 1.9.2 to a newer version, and now OpenLP crashes on load
---------------------------------------------------------------------------
You need to upgrade your song database. See this `blog post <http://openlp.org/en/users/jt/blog/2010-07-20-flag_day_database_schema_changes_in_trunk_revision_956.html>`_
for information on how to do this.
I've upgraded to 1.9.5, and now OpenLP has duplicates of many songs in the Media Manager
----------------------------------------------------------------------------------------
You need to run :menuselection:`Tools --> Re-index Songs`.
There are no menu icons in OpenLP There are no menu icons in OpenLP
--------------------------------- ---------------------------------
This may affect (only) Linux users with XFCE or Gnome. To solve the problem, This may affect (only) Linux users with XFCE or Gnome. To solve the problem,
follow the instructions on `this bug report <https://bugs.launchpad.net/ubuntu/+source/qt4-x11/+bug/501468/comments/3>`_. follow the instructions on `this bug report <https://bugs.launchpad.net/ubuntu/+source/qt4-x11/+bug/501468/comments/3>`_.
JPEG images don't work
----------------------
This is a known issue on some Mac OS X 10.5 systems, and has also been seen on MP3's and other audio formats do not work
Windows XP too. The solution is to convert the image into another format such as -----------------------------------------
PNG.
MP3's and other audio formats don't work This is a known issue on some systems, and we have no solution at the moment.
----------------------------------------
This is a known issue on some systems, including some XP machines, and we have
no solution at the moment.
Videos can be slow or pixelated. Background Videos are very slow Videos can be slow or pixelated. Background Videos are very slow
---------------------------------------------------------------- ----------------------------------------------------------------
@ -509,27 +433,17 @@ this, but there is no timeframe at present.
Features Features
======== ========
What new features will I find in 2.0? Why has popular feature request X not been implemented?
------------------------------------- -------------------------------------------------------
Since 2.0 was a rewrite from the ground up, you won't find a great deal of new There are only a handful of developers working in their spare time. If
features since initially we want to ensure all the 1.2 features are included. we were to try and include everything we wanted to implement, then 2.2 would not
However the developers have managed to sneak a few in. Take a look at the
`complete list <http://wiki.openlp.org/Version_2_Features>`_.
Why hasn't popular feature request X been implemented?
------------------------------------------------------
We made a decision to first implement 1.2 features, before going wild on new
features. There are only a handful of developers working in their spare time. If
we were to try and include everything we wanted to implement, then 2.0 would not
likely ever get released. likely ever get released.
I have a great idea for a new feature, where should I suggest it? I have a great idea for a new feature, where should I suggest it?
----------------------------------------------------------------- -----------------------------------------------------------------
First of all check it isn't on the `Feature Requests <http://wiki.openlp.org/Feature_Requests>`_ First of all check it is not on the `Feature Requests <http://wiki.openlp.org/Feature_Requests>`_
page. If it is, then you need to say no more, it's already been suggested! If it page. If it is, then you need to say no more, it has already been suggested! If it
isn't on the list, then head to the is not on the list, then head to the `forum <http://forums.openlp.org>`_
`feature request forum <http://openlp.org/en/forums/openlp_20/feature_requests.html>`_
and post the idea there. and post the idea there.

View File

@ -9,14 +9,13 @@ on less powerful hardware but you may not get the performance you desire.
* 2Ghz CPU * 2Ghz CPU
* 1GB RAM * 1GB RAM
* 100MB free disk space * 100MB free disk space
* Windows XP/Vista/Windows 7, Linux, Mac OS X (10.5 or 10.6), Free BSD * Windows Vista/7/8/10, Linux, Mac OS X (10.8 or later), FreeBSD
* Multiple Monitor Support is highly recommended (not required) * Multiple Monitor Support is highly recommended (not required)
* For Presentation support: * For Presentation support:
* Windows: PowerPoint XP or later, PowerPoint Viewer 2003 or 2007, * Windows: PowerPoint XP or later, PowerPoint Viewer 2003 or 2007 (not 2010)
OpenOffie.org Impress 3.2 or LibreOffice Impress 3.3 or LibreOffice Impress 4 or later
* Linux: OpenOffice.org Impress 3.2 or LibreOffice Impress 3.3 * Linux: LibreOffice Impress 4 or later
* Mac: Not supported yet * Mac: Not supported yet
* The Generic Document/Presentation and Songs of Fellowship song import options * The Generic Document/Presentation and Songs of Fellowship song import options
require OpenOffice.org 3.2 or LibreOffice 3.3 require LibreOffice 4 or later