More changes to the wizard.

This commit is contained in:
Raoul Snyman 2011-03-10 21:48:15 +02:00
commit 71dc6d77b7
15 changed files with 633 additions and 175 deletions

View File

@ -24,16 +24,18 @@
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
###############################################################################
import ConfigParser
import io
import logging
import os
import urllib
from random import randint
from tempfile import gettempdir
from ConfigParser import SafeConfigParser
from PyQt4 import QtCore, QtGui
from openlp.core.lib import translate, PluginStatus, check_directory_exists, \
Receiver
Receiver, build_icon
from openlp.core.utils import get_web_page, AppLocation
from firsttimewizard import Ui_FirstTimeWizard, FirstTimePage
@ -51,13 +53,13 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard):
self.setupUi(self)
# check to see if we have web access
self.web = u'http://openlp.org/files/frw/'
self.config = ConfigParser.ConfigParser()
self.webAccess = get_web_page(u'%s%s' % (self.web, u'download.cfg'))
self.config = SafeConfigParser()
self.webAccess = get_web_page(u'%s%s' % (self.web, u'download.cfg?%s' % randint(0, 20)))
if self.webAccess:
files = self.webAccess.read()
self.config.readfp(io.BytesIO(files))
for screen in screens.get_screen_list():
self.displaySelectionComboBox.addItem(screen)
self.displayComboBox.addItem(screen)
self.songsText = translate('OpenLP.FirstTimeWizard', 'Songs')
self.biblesText = translate('OpenLP.FirstTimeWizard', 'Bibles')
self.themesText = translate('OpenLP.FirstTimeWizard', 'Themes')
@ -83,39 +85,52 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard):
self.restart()
# Sort out internet access for downloads
if self.webAccess:
self.internetGroupBox.setVisible(True)
# If songs database exists do not allow a copy
songs = os.path.join(AppLocation.get_section_data_path(u'songs'),
u'songs.sqlite')
if not os.path.exists(songs):
treewidgetitem = QtGui.QTreeWidgetItem(self.selectionTreeWidget)
treewidgetitem.setText(0, self.songsText)
self._loadChild(treewidgetitem, u'songs', u'languages', u'songs')
treewidgetitem = QtGui.QTreeWidgetItem(self.selectionTreeWidget)
treewidgetitem.setText(0, self.biblesText)
self._loadChild(treewidgetitem, u'bibles', u'translations',
u'bible')
treewidgetitem = QtGui.QTreeWidgetItem(self.selectionTreeWidget)
treewidgetitem.setText(0, self.themesText)
self._loadChild(treewidgetitem, u'themes', u'files', 'theme')
# else:
# self.internetGroupBox.setVisible(False)
# self.noInternetLabel.setVisible(True)
def _loadChild(self, tree, list, tag, root):
files = self.config.get(list, tag)
files = files.split(u',')
for file in files:
if file:
child = QtGui.QTreeWidgetItem(tree)
child.setText(0, self.config.get(u'%s_%s'
% (root, file), u'title'))
child.setData(0, QtCore.Qt.UserRole,
QtCore.QVariant(self.config.get(u'%s_%s'
% (root, file), u'filename')))
child.setCheckState(0, QtCore.Qt.Unchecked)
child.setFlags(QtCore.Qt.ItemIsUserCheckable |
QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled)
songs = self.config.get(u'songs', u'languages')
songs = songs.split(u',')
for song in songs:
title = unicode(self.config.get(
u'songs_%s' % song, u'title'), u'utf8')
filename = unicode(self.config.get(
u'songs_%s' % song, u'filename'), u'utf8')
item = QtGui.QListWidgetItem(title, self.songsListWidget)
item.setData(QtCore.Qt.UserRole, QtCore.QVariant(filename))
item.setCheckState(QtCore.Qt.Unchecked)
item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable)
bible_languages = self.config.get(u'bibles', u'languages')
bible_languages = bible_languages.split(u',')
for lang in bible_languages:
language = unicode(self.config.get(
u'bibles_%s' % lang, u'title'), u'utf8')
langItem = QtGui.QTreeWidgetItem(
self.biblesTreeWidget, QtCore.QStringList(language))
bibles = self.config.get(u'bibles_%s' % lang, u'translations')
bibles = bibles.split(u',')
for bible in bibles:
title = unicode(self.config.get(
u'bible_%s' % bible, u'title'), u'utf8')
filename = unicode(self.config.get(
u'bible_%s' % bible, u'filename'))
item = QtGui.QTreeWidgetItem(
langItem, QtCore.QStringList(title))
item.setData(0, QtCore.Qt.UserRole, QtCore.QVariant(filename))
item.setCheckState(0, QtCore.Qt.Unchecked)
item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable)
self.biblesTreeWidget.expandAll()
themes = self.config.get(u'themes', u'files')
themes = themes.split(u',')
for theme in themes:
title = self.config.get(u'theme_%s' % theme, u'title')
filename = self.config.get(u'theme_%s' % theme, u'filename')
screenshot = self.config.get(u'theme_%s' % theme, u'screenshot')
urllib.urlretrieve(u'%s/%s' % (self.web, screenshot),
os.path.join(gettempdir(), screenshot))
item = QtGui.QListWidgetItem(title, self.themesListWidget)
item.setData(QtCore.Qt.UserRole,
QtCore.QVariant(filename))
item.setIcon(build_icon(
os.path.join(gettempdir(), screenshot)))
item.setCheckState(QtCore.Qt.Unchecked)
item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable)
def nextId(self):
"""
@ -137,18 +152,12 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard):
self.finishButton.setVisible(True)
self.finishButton.setEnabled(True)
self.nextButton.setVisible(False)
elif self.page(pageId) == self.DefaultsPage:
self.themeSelectionComboBox.clear()
listIterator = QtGui.QTreeWidgetItemIterator(
self.selectionTreeWidget)
while listIterator.value():
parent = listIterator.value().parent()
if parent and listIterator.value().checkState(0) \
== QtCore.Qt.Checked:
if unicode(parent.text(0)) == self.themesText:
self.themeSelectionComboBox.addItem(
listIterator.value().text(0))
listIterator += 1
elif pageId == FirstTimePage.Defaults:
self.themeComboBox.clear()
for iter in xrange(self.themesListWidget.count()):
item = self.themesListWidget.item(iter)
if item.checkState() == QtCore.Qt.Checked:
self.themeComboBox.addItem(item.text())
def accept(self):
Receiver.send_message(u'cursor_busy')
@ -164,55 +173,47 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard):
self._pluginStatus(self.songUsageCheckBox, u'songusage/status')
self._pluginStatus(self.alertCheckBox, u'alerts/status')
# Build directories for downloads
songsDestination = AppLocation.get_section_data_path(u'songs')
check_directory_exists(songsDestination)
bibleDestination = AppLocation.get_section_data_path(u'bibles')
check_directory_exists(bibleDestination)
themeDestination = AppLocation.get_section_data_path(u'themes')
check_directory_exists(themeDestination)
# Install Selected Items looping through them
listIterator = QtGui.QTreeWidgetItemIterator(self.selectionTreeWidget)
while listIterator.value():
type = listIterator.value().parent()
if listIterator.value().parent():
if listIterator.value().checkState(0) == QtCore.Qt.Checked:
# Install items as theu have been selected
item = unicode(listIterator.value().text(0))
# Download Song database if selected
if unicode(type.text(0)) == self.songsText:
songs = unicode(listIterator.value().data(0,
QtCore.Qt.UserRole).toString())
message = self.downloading % item
self._updateMessage(message)
# Song database is a fixed file name
urllib.urlretrieve(u'%s%s' % (self.web, songs),
os.path.join(songsDestination, u'songs.sqlite'))
# Download and selected Bibles
if unicode(type.text(0)) == self.biblesText:
bible = unicode(listIterator.value().data(0,
QtCore.Qt.UserRole).toString())
message = self.downloading % item
self._updateMessage(message)
urllib.urlretrieve(u'%s%s' % (self.web, bible),
os.path.join(bibleDestination, bible))
# Download any themes
if unicode(type.text(0)) == self.themesText:
theme = unicode(listIterator.value().data(0,
QtCore.Qt.UserRole).toString())
message = self.downloading % item
self._updateMessage(message)
urllib.urlretrieve(u'%s%s' % (self.web, theme),
os.path.join(themeDestination, theme))
listIterator += 1
destination = AppLocation.get_temp_path()
check_directory_exists(destination)
bibles_destination = AppLocation.get_section_data_path(u'bibles')
check_directory_exists(bibles_destination)
themes_destination = AppLocation.get_section_data_path(u'themes')
check_directory_exists(destination)
# Install songs
songs_iterator = QtGui.QListWidgetItemIterator(self.songsListWidget)
while songs_iterator.value():
item = songs_iterator.value()
if item.checkState() == QtCore.Qt.Checked:
filename = item.data(QtCore.Qt.UserRole).toString()
urllib.urlretrieve(u'%s%s' % (self.web, filename),
os.path.join(destination, filename))
#importer = SongImporter()
songs_iterator += 1
# Install Bibles
bibles_iterator = QtGui.QTreeWidgetItemIterator(self.biblesTreeWidget)
while bibles_iterator.value():
item = bibles_iterator.value()
if item.parent() and item.checkState(0) == QtCore.Qt.Checked:
bible = unicode(item.data(0, QtCore.Qt.UserRole).toString())
urllib.urlretrieve(u'%s%s' % (self.web, bible),
os.path.join(bibles_destination, bible))
bibles_iterator += 1
themes_iterator = QtGui.QListWidgetItemIterator(self.themesListWidget)
while themes_iterator.value():
item = themes_iterator.value()
if item.checkState() == QtCore.Qt.Checked:
theme = unicode(item.data(QtCore.Qt.UserRole).toString())
urllib.urlretrieve(u'%s%s' % (self.web, theme),
os.path.join(theme_destination, theme))
themes_iterator += 1
# Set Default Display
if self.displaySelectionComboBox.currentIndex() != -1:
if self.displayComboBox.currentIndex() != -1:
QtCore.QSettings().setValue(u'General/monitor',
QtCore.QVariant(self.displaySelectionComboBox.
currentIndex()))
QtCore.QVariant(self.displayComboBox.currentIndex()))
# Set Global Theme
if self.themeSelectionComboBox.currentIndex() != -1:
if self.themeComboBox.currentIndex() != -1:
QtCore.QSettings().setValue(u'themes/global theme',
QtCore.QVariant(self.themeSelectionComboBox.currentText()))
QtCore.QVariant(self.themeComboBox.currentText()))
QtCore.QSettings().setValue(u'general/first time',
QtCore.QVariant(False))
Receiver.send_message(u'cursor_normal')

View File

@ -35,7 +35,8 @@ class FirstTimePage(object):
NoInternet = 2
Songs = 3
Bibles = 4
Defaults = 5
Themes = 5
Defaults = 6
class Ui_FirstTimeWizard(object):
@ -103,7 +104,6 @@ class Ui_FirstTimeWizard(object):
self.noInternetLabel.setObjectName(u'noInternetLabel')
self.noInternetLayout.addWidget(self.noInternetLabel)
FirstTimeWizard.setPage(FirstTimePage.NoInternet, self.noInternetPage)
# The song samples page
self.songsPage = QtGui.QWizardPage()
self.songsPage.setObjectName(u'songsPage')
@ -111,61 +111,64 @@ class Ui_FirstTimeWizard(object):
self.songsLayout.setContentsMargins(50, 20, 50, 20)
self.songsLayout.setObjectName(u'songsLayout')
self.songsListWidget = QtGui.QListWidget(self.songsPage)
self.songsListWidget.setAlternatingRowColors(True)
self.songsListWidget.setObjectName(u'songsListWidget')
self.songsLayout.addWidget(self.songsListWidget)
FirstTimeWizard.setPage(FirstTimePage.Songs, self.songsPage)
# download page
# The Bible samples page
self.biblesPage = QtGui.QWizardPage()
self.biblesPage.setObjectName(u'biblesPage')
self.internetGroupBox = QtGui.QGroupBox(self.biblesPage)
self.internetGroupBox.setGeometry(QtCore.QRect(20, 10, 501, 271))
self.internetGroupBox.setObjectName(u'internetGroupBox')
self.pluginLayout_4 = QtGui.QVBoxLayout(self.internetGroupBox)
self.pluginLayout_4.setObjectName(u'pluginLayout_4')
self.selectionTreeWidget = QtGui.QTreeWidget(self.internetGroupBox)
self.selectionTreeWidget.setHorizontalScrollBarPolicy(
QtCore.Qt.ScrollBarAlwaysOff)
self.selectionTreeWidget.setProperty(u'showDropIndicator', False)
self.selectionTreeWidget.setAlternatingRowColors(True)
self.selectionTreeWidget.setObjectName(u'selectionTreeWidget')
self.selectionTreeWidget.headerItem().setText(0, u'1')
self.selectionTreeWidget.header().setVisible(False)
self.pluginLayout_4.addWidget(self.selectionTreeWidget)
self.biblesLayout = QtGui.QVBoxLayout(self.biblesPage)
self.biblesLayout.setContentsMargins(50, 20, 50, 20)
self.biblesLayout.setObjectName(u'biblesLayout')
self.biblesTreeWidget = QtGui.QTreeWidget(self.biblesPage)
self.biblesTreeWidget.setAlternatingRowColors(True)
self.biblesTreeWidget.header().setVisible(False)
self.biblesTreeWidget.setObjectName(u'biblesTreeWidget')
self.biblesLayout.addWidget(self.biblesTreeWidget)
FirstTimeWizard.setPage(FirstTimePage.Bibles, self.biblesPage)
self.DefaultsPage = QtGui.QWizardPage()
self.DefaultsPage.setObjectName(u'DefaultsPage')
self.layoutWidget = QtGui.QWidget(self.DefaultsPage)
self.layoutWidget.setGeometry(QtCore.QRect(20, 20, 491, 113))
self.layoutWidget.setObjectName(u'layoutWidget')
self.gridLayout = QtGui.QGridLayout(self.layoutWidget)
self.gridLayout.setMargin(0)
self.gridLayout.setObjectName(u'gridLayout')
self.displaySelectionLabel = QtGui.QLabel(self.layoutWidget)
self.displaySelectionLabel.setObjectName(u'displaySelectionLabel')
self.gridLayout.addWidget(self.displaySelectionLabel, 0, 0, 1, 1)
self.displaySelectionComboBox = QtGui.QComboBox(self.layoutWidget)
self.displaySelectionComboBox.setEditable(False)
self.displaySelectionComboBox.setInsertPolicy(QtGui.QComboBox.NoInsert)
self.displaySelectionComboBox.setSizeAdjustPolicy(
# The theme samples page
self.themesPage = QtGui.QWizardPage()
self.themesPage.setObjectName(u'themesPage')
self.themesLayout = QtGui.QVBoxLayout(self.themesPage)
self.themesLayout.setContentsMargins(20, 50, 20, 60)
self.themesLayout.setObjectName(u'themesLayout')
self.themesListWidget = QtGui.QListWidget(self.themesPage)
self.themesListWidget.setViewMode(QtGui.QListView.IconMode)
self.themesListWidget.setMovement(QtGui.QListView.Static)
self.themesListWidget.setFlow(QtGui.QListView.LeftToRight)
self.themesListWidget.setSpacing(4)
self.themesListWidget.setUniformItemSizes(True)
self.themesListWidget.setIconSize(QtCore.QSize(133, 100))
self.themesListWidget.setWrapping(False)
self.themesListWidget.setObjectName(u'themesListWidget')
self.themesLayout.addWidget(self.themesListWidget)
FirstTimeWizard.setPage(FirstTimePage.Themes, self.themesPage)
# the default settings page
self.defaultsPage = QtGui.QWizardPage()
self.defaultsPage.setObjectName(u'defaultsPage')
self.defaultsLayout = QtGui.QFormLayout(self.defaultsPage)
self.defaultsLayout.setContentsMargins(50, 20, 50, 20)
self.defaultsLayout.setObjectName(u'defaultsLayout')
self.displayLabel = QtGui.QLabel(self.defaultsPage)
self.displayLabel.setObjectName(u'displayLabel')
self.displayComboBox = QtGui.QComboBox(self.defaultsPage)
self.displayComboBox.setEditable(False)
self.displayComboBox.setInsertPolicy(QtGui.QComboBox.NoInsert)
self.displayComboBox.setSizeAdjustPolicy(
QtGui.QComboBox.AdjustToContents)
self.displaySelectionComboBox.setObjectName(u'displaySelectionComboBox')
self.gridLayout.addWidget(self.displaySelectionComboBox, 0, 1, 1, 1)
self.themeSelectionLabel = QtGui.QLabel(self.layoutWidget)
self.themeSelectionLabel.setObjectName(u'themeSelectionLabel')
self.gridLayout.addWidget(self.themeSelectionLabel, 1, 0, 1, 1)
self.themeSelectionComboBox = QtGui.QComboBox(self.layoutWidget)
self.themeSelectionComboBox.setSizeAdjustPolicy(
self.displayComboBox.setObjectName(u'displayComboBox')
self.defaultsLayout.addRow(self.displayLabel, self.displayComboBox)
self.themeLabel = QtGui.QLabel(self.defaultsPage)
self.themeLabel.setObjectName(u'themeLabel')
self.themeComboBox = QtGui.QComboBox(self.defaultsPage)
self.themeComboBox.setEditable(False)
self.themeComboBox.setInsertPolicy(QtGui.QComboBox.NoInsert)
self.themeComboBox.setSizeAdjustPolicy(
QtGui.QComboBox.AdjustToContents)
self.themeSelectionComboBox.setObjectName(u'themeSelectionComboBox')
self.gridLayout.addWidget(self.themeSelectionComboBox, 1, 1, 1, 1)
self.messageLabel = QtGui.QLabel(self.DefaultsPage)
self.messageLabel.setGeometry(QtCore.QRect(60, 160, 471, 17))
self.messageLabel.setObjectName(u'messageLabel')
self.updateLabel = QtGui.QLabel(self.DefaultsPage)
self.updateLabel.setGeometry(QtCore.QRect(60, 220, 351, 17))
self.updateLabel.setObjectName(u'updateLabel')
FirstTimeWizard.setPage(FirstTimePage.Defaults, self.DefaultsPage)
self.themeComboBox.setObjectName(u'themeComboBox')
self.defaultsLayout.addRow(self.themeLabel, self.themeComboBox)
FirstTimeWizard.setPage(FirstTimePage.Defaults, self.defaultsPage)
self.retranslateUi(FirstTimeWizard)
QtCore.QMetaObject.connectSlotsByName(FirstTimeWizard)
@ -178,7 +181,7 @@ class Ui_FirstTimeWizard(object):
translate('OpenLP.FirstTimeWizard',
'Welcome to the First Time Wizard'))
self.informationLabel.setText(translate('OpenLP.FirstTimeWizard',
'This wizard will help you to configure OpenLP for initial use .'
'This wizard will help you to configure OpenLP for initial use.'
' Click the next button below to start the process of selection '
'your initial options. '))
self.pluginPage.setTitle(translate('OpenLP.FirstTimeWizard',
@ -216,23 +219,21 @@ class Ui_FirstTimeWizard(object):
'button now.'))
self.songsPage.setTitle(translate('OpenLP.FirstTimeWizard',
'Sample Songs'))
self.songsPage.setSubTitle(translate(
'OpenLP.FirstTimeWizard',
self.songsPage.setSubTitle(translate('OpenLP.FirstTimeWizard',
'Select and download public domain songs.'))
self.biblesPage.setTitle(translate('OpenLP.FirstTimeWizard',
'Download Samples from OpenLP.org'))
self.biblesPage.setSubTitle(translate(
'OpenLP.FirstTimeWizard',
'Select samples to downlaod and install for use.'))
self.internetGroupBox.setTitle(translate('OpenLP.FirstTimeWizard',
'Download Example Files'))
self.DefaultsPage.setTitle(translate('OpenLP.FirstTimeWizard',
'Sample Bibles'))
self.biblesPage.setSubTitle(translate('OpenLP.FirstTimeWizard',
'Select and download free Bibles.'))
self.themesPage.setTitle(translate('OpenLP.FirstTimeWizard',
'Sample Themes'))
self.themesPage.setSubTitle(translate('OpenLP.FirstTimeWizard',
'Select and download sample themes.'))
self.defaultsPage.setTitle(translate('OpenLP.FirstTimeWizard',
'Default Settings'))
self.DefaultsPage.setSubTitle(translate('OpenLP.FirstTimeWizard',
'Set up default values to be used by OpenLP'))
self.displaySelectionLabel.setText(translate('OpenLP.FirstTimeWizard',
'Default output display'))
self.themeSelectionLabel.setText(translate('OpenLP.FirstTimeWizard',
'Select the default Theme'))
self.messageLabel.setText(translate('OpenLP.FirstTimeWizard',
'Press finish to apply all your changes and start OpenLP'))
self.defaultsPage.setSubTitle(translate('OpenLP.FirstTimeWizard',
'Set up default settings to be used by OpenLP.'))
self.displayLabel.setText(translate('OpenLP.FirstTimeWizard',
'Default output display:'))
self.themeLabel.setText(translate('OpenLP.FirstTimeWizard',
'Select default theme:'))

View File

@ -516,9 +516,6 @@ class AudioPlayer(QtCore.QObject):
``parent``
The parent widget.
``screens``
The list of screens.
"""
log.debug(u'AudioPlayer Initialisation started')
QtCore.QObject.__init__(self, parent)

View File

@ -337,6 +337,7 @@ def get_web_page(url, header=None, update_openlp=False):
return None
if update_openlp:
Receiver.send_message(u'openlp_process_events')
log.debug(page)
return page
def file_is_unicode(filename):

View File

@ -159,15 +159,15 @@ class SongMediaItem(MediaManagerItem):
def onSearchTextButtonClick(self):
search_keywords = unicode(self.searchTextEdit.displayText())
search_results = []
# search_type = self.searchTypeComboBox.currentIndex()
search_type = self.searchTextEdit.currentSearchType()
if search_type == SongSearch.Entire:
log.debug(u'Entire Song Search')
search_results = self.parent.manager.get_all_objects(Song,
or_(Song.search_title.like(u'%' + self.whitespace.sub(u' ',
search_keywords.lower()) + u'%'),
Song.search_lyrics.like(u'%' + search_keywords.lower() + \
u'%')), Song.search_title.asc())
Song.search_lyrics.like(u'%' + search_keywords.lower() + u'%'),
Song.comments.like(u'%' + search_keywords.lower() + u'%')),
Song.search_title.asc())
self.displayResultsSong(search_results)
elif search_type == SongSearch.Titles:
log.debug(u'Titles Search')
@ -253,11 +253,13 @@ class SongMediaItem(MediaManagerItem):
if self.searchAsYouType:
search_length = 1
if self.searchTextEdit.currentSearchType() == SongSearch.Entire:
search_length = 3
elif self.searchTextEdit.currentSearchType() == SongSearch.Lyrics:
search_length = 7
elif self.searchTextEdit.currentSearchType() == SongSearch.Lyrics:
search_length = 6
if len(text) > search_length:
self.onSearchTextButtonClick()
elif len(text) == 0:
self.onClearTextButtonClick()
def onImportClick(self):
if not hasattr(self, u'import_wizard'):
@ -446,10 +448,9 @@ class SongMediaItem(MediaManagerItem):
add_song = False
editId = song.id
break
if add_song:
if self.addSongFromService:
editId = self.openLyrics.xml_to_song(item.xml_version)
self.onSearchTextButtonClick()
if add_song and self.addSongFromService:
editId = self.openLyrics.xml_to_song(item.xml_version)
self.onSearchTextButtonClick()
# Update service with correct song id.
if editId:
Receiver.send_message(u'service_item_update',

13
resources/debian/Makefile Normal file
View File

@ -0,0 +1,13 @@
#!/usr/bin/make -f
# -*- makefile -*-
build:
mkdir -p openlp/i18n
for TSFILE in resources/i18n/*.ts; do\
lrelease-qt4 $$TSFILE -qm openlp/i18n/`basename $$TSFILE .ts`.qm;\
done
install:
clean:

View File

@ -0,0 +1,389 @@
openlp (1.9.4+bzr1355-0ubuntu1~natty1) natty; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sun, 06 Mar 2011 00:10:03 -0500
openlp (1.9.4+bzr1355-0ubuntu1~maverick1) maverick; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sun, 06 Mar 2011 00:07:03 -0500
openlp (1.9.4+bzr1355-0ubuntu1~lucid1) lucid; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sun, 06 Mar 2011 00:05:27 -0500
openlp (1.9.4+bzr1355-0ubuntu1~karmic1) karmic; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sun, 06 Mar 2011 00:03:17 -0500
openlp (1.9.4+bzr1350-0ubuntu1~natty1) natty; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sat, 05 Mar 2011 00:08:15 -0500
openlp (1.9.4+bzr1350-0ubuntu1~maverick1) maverick; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sat, 05 Mar 2011 00:06:40 -0500
openlp (1.9.4+bzr1350-0ubuntu1~lucid1) lucid; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sat, 05 Mar 2011 00:05:09 -0500
openlp (1.9.4+bzr1350-0ubuntu1~karmic1) karmic; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sat, 05 Mar 2011 00:03:14 -0500
openlp (1.9.4+bzr1347-0ubuntu1~natty1) natty; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Fri, 04 Mar 2011 00:04:49 -0500
openlp (1.9.4+bzr1347-0ubuntu1~maverick1) maverick; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Fri, 04 Mar 2011 00:04:15 -0500
openlp (1.9.4+bzr1347-0ubuntu1~lucid1) lucid; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Fri, 04 Mar 2011 00:03:34 -0500
openlp (1.9.4+bzr1347-0ubuntu1~karmic1) karmic; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Fri, 04 Mar 2011 00:02:43 -0500
openlp (1.9.4+bzr1344-0ubuntu1~natty1) natty; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Thu, 03 Mar 2011 00:03:56 -0500
openlp (1.9.4+bzr1344-0ubuntu1~maverick1) maverick; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Thu, 03 Mar 2011 00:03:30 -0500
openlp (1.9.4+bzr1344-0ubuntu1~lucid1) lucid; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Thu, 03 Mar 2011 00:03:05 -0500
openlp (1.9.4+bzr1344-0ubuntu1~karmic1) karmic; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Thu, 03 Mar 2011 00:02:26 -0500
openlp (1.9.4+bzr1342-0ubuntu1~natty1) natty; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Tue, 01 Mar 2011 00:03:44 -0500
openlp (1.9.4+bzr1342-0ubuntu1~maverick1) maverick; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Tue, 01 Mar 2011 00:03:28 -0500
openlp (1.9.4+bzr1342-0ubuntu1~lucid1) lucid; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Tue, 01 Mar 2011 00:03:03 -0500
openlp (1.9.4+bzr1342-0ubuntu1~karmic1) karmic; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Tue, 01 Mar 2011 00:02:28 -0500
openlp (1.9.4+bzr1341-0ubuntu1~natty1) natty; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sun, 27 Feb 2011 00:04:05 -0500
openlp (1.9.4+bzr1341-0ubuntu1~maverick1) maverick; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sun, 27 Feb 2011 00:03:48 -0500
openlp (1.9.4+bzr1341-0ubuntu1~lucid1) lucid; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sun, 27 Feb 2011 00:03:20 -0500
openlp (1.9.4+bzr1341-0ubuntu1~karmic1) karmic; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sun, 27 Feb 2011 00:02:34 -0500
openlp (1.9.4+bzr1337-0ubuntu1~natty1) natty; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sat, 26 Feb 2011 00:04:02 -0500
openlp (1.9.4+bzr1337-0ubuntu1~maverick1) maverick; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sat, 26 Feb 2011 00:03:44 -0500
openlp (1.9.4+bzr1337-0ubuntu1~lucid1) lucid; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sat, 26 Feb 2011 00:03:18 -0500
openlp (1.9.4+bzr1337-0ubuntu1~karmic1) karmic; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sat, 26 Feb 2011 00:02:32 -0500
openlp (1.9.4+bzr1332-0ubuntu1~natty1) natty; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Fri, 25 Feb 2011 00:04:00 -0500
openlp (1.9.4+bzr1332-0ubuntu1~maverick1) maverick; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Fri, 25 Feb 2011 00:03:41 -0500
openlp (1.9.4+bzr1332-0ubuntu1~lucid1) lucid; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Fri, 25 Feb 2011 00:03:16 -0500
openlp (1.9.4+bzr1332-0ubuntu1~karmic1) karmic; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Fri, 25 Feb 2011 00:02:36 -0500
openlp (1.9.4+bzr1328-0ubuntu1~natty1) natty; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Thu, 24 Feb 2011 00:03:47 -0500
openlp (1.9.4+bzr1328-0ubuntu1~maverick1) maverick; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Thu, 24 Feb 2011 00:03:31 -0500
openlp (1.9.4+bzr1328-0ubuntu1~lucid1) lucid; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Thu, 24 Feb 2011 00:03:07 -0500
openlp (1.9.4+bzr1328-0ubuntu1~karmic1) karmic; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Thu, 24 Feb 2011 00:02:28 -0500
openlp (1.9.4+bzr1324-0ubuntu1~natty1) natty; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Wed, 23 Feb 2011 00:03:48 -0500
openlp (1.9.4+bzr1324-0ubuntu1~maverick1) maverick; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Wed, 23 Feb 2011 00:03:33 -0500
openlp (1.9.4+bzr1324-0ubuntu1~lucid1) lucid; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Wed, 23 Feb 2011 00:03:08 -0500
openlp (1.9.4+bzr1324-0ubuntu1~karmic1) karmic; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Wed, 23 Feb 2011 00:02:28 -0500
openlp (1.9.4+bzr1322-0ubuntu1~natty1) natty; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Tue, 22 Feb 2011 00:04:06 -0500
openlp (1.9.4+bzr1322-0ubuntu1~maverick1) maverick; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Tue, 22 Feb 2011 00:03:52 -0500
openlp (1.9.4+bzr1322-0ubuntu1~lucid1) lucid; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Tue, 22 Feb 2011 00:03:28 -0500
openlp (1.9.4+bzr1322-0ubuntu1~karmic1) karmic; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Tue, 22 Feb 2011 00:02:42 -0500
openlp (1.9.4+bzr1320-0ubuntu1~natty1) natty; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Mon, 21 Feb 2011 00:03:59 -0500
openlp (1.9.4+bzr1320-0ubuntu1~maverick1) maverick; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Mon, 21 Feb 2011 00:03:45 -0500
openlp (1.9.4+bzr1320-0ubuntu1~lucid1) lucid; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Mon, 21 Feb 2011 00:03:21 -0500
openlp (1.9.4+bzr1320-0ubuntu1~karmic1) karmic; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Mon, 21 Feb 2011 00:02:41 -0500
openlp (1.9.4+bzr1316-0ubuntu1~natty1) natty; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sun, 20 Feb 2011 05:32:08 -0500
openlp (1.9.4+bzr1316-0ubuntu1~maverick1) maverick; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sun, 20 Feb 2011 05:31:51 -0500
openlp (1.9.4+bzr1316-0ubuntu1~lucid1) lucid; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sun, 20 Feb 2011 05:31:28 -0500
openlp (1.9.4+bzr1316-0ubuntu1~karmic1) karmic; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sun, 20 Feb 2011 05:30:49 -0500
openlp (1.9.4+bzr1315-0ubuntu1~natty1) natty; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sat, 19 Feb 2011 16:24:12 -0500
openlp (1.9.4+bzr1315-0ubuntu1~maverick1) maverick; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sat, 19 Feb 2011 16:23:51 -0500
openlp (1.9.4+bzr1315-0ubuntu1~lucid1) lucid; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sat, 19 Feb 2011 16:23:28 -0500
openlp (1.9.4+bzr1315-0ubuntu1~karmic1) karmic; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sat, 19 Feb 2011 16:22:49 -0500
openlp (1.9.4+bzr1314-0ubuntu1~natty1) natty; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sat, 19 Feb 2011 15:35:36 -0500
openlp (1.9.4+bzr1314-0ubuntu1~maverick1) maverick; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sat, 19 Feb 2011 15:35:21 -0500
openlp (1.9.4+bzr1314-0ubuntu1~lucid1) lucid; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sat, 19 Feb 2011 15:34:53 -0500
openlp (1.9.4+bzr1314-0ubuntu1~karmic1) karmic; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sat, 19 Feb 2011 15:34:10 -0500
openlp (1.9.4+bzr1313-0ubuntu1~natty1) natty; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sat, 19 Feb 2011 13:58:14 -0500
openlp (1.9.4+bzr1313-0ubuntu1~maverick1) maverick; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sat, 19 Feb 2011 13:57:40 -0500
openlp (1.9.4+bzr1313-0ubuntu1~lucid1) lucid; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sat, 19 Feb 2011 13:57:11 -0500
openlp (1.9.4+bzr1313-0ubuntu1~karmic1) karmic; urgency=low
* Autobuild
-- <openlp@projecthq.biz> Sat, 19 Feb 2011 13:56:17 -0500
openlp (0.0.0+bzr664-0ubuntu1) karmic; urgency=low
* Initial release
-- Michael Gorven <michael@gorven.za.net> Fri, 06 Nov 2009 09:46:40 +0200

View File

@ -0,0 +1 @@
5

View File

@ -0,0 +1,19 @@
Source: openlp
Section: python
Priority: extra
Maintainer: OpenLP Developers <openlp-dev@lists.launchpad.net>
Build-Depends: cdbs, debhelper (>= 5), python-setuptools, python-support,
python, qt4-dev-tools
Standards-Version: 3.8.3
Homepage: http://openlp.org/
Package: openlp
Architecture: all
Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends}, python-qt4,
python-qt4-phonon, python-sqlalchemy, python-chardet, python-beautifulsoup,
python-lxml, python-sqlite, python-enchant
Conflicts: python-openlp
Description: Church lyrics projection application
OpenLP is free church presentation software, or lyrics projection software,
used to display slides of songs, Bible verses, videos, images, and even
presentations for church worship using a computer and a data projector.

View File

@ -0,0 +1,10 @@
Format-Specification: http://wiki.debian.org/Proposals/CopyrightFormat
Upstream-Name: OpenLP
Upstream-Maintainer: OpenLP Developers <openlp-dev@lists.launchpad.net>
Upstream-Source: http://openlp.org/
Files: *
Copyright: (c) 2008-2009 Raoul Snyman
License: GPL-2
X-Comment: On Debian GNU/Linux systems, the complete text of the
GPL-2 License can be found in /usr/share/common-licenses/GPL-2

View File

@ -0,0 +1 @@
documentation

View File

@ -0,0 +1 @@
resources/openlp.desktop /usr/share/applications

View File

@ -0,0 +1 @@
2

View File

@ -0,0 +1 @@
2.5-

21
resources/debian/debian/rules Executable file
View File

@ -0,0 +1,21 @@
#!/usr/bin/make -f
DEB_PYTHON_SYSTEM := pysupport
DEB_MAKE_BUILD_TARGET := build
DEB_MAKE_INSTALL_TARGET :=
DEB_MAKE_CLEAN_TARGET :=
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/python-distutils.mk
include /usr/share/cdbs/1/class/makefile.mk
binary-post-install/openlp::
for SIZE in 16x16 32x32 48x48 64x64 128x128 256x256; do \
mkdir -p debian/openlp/usr/share/icons/hicolor/$$SIZE/apps && \
cp resources/images/openlp-logo-$$SIZE.png debian/openlp/usr/share/icons/hicolor/$$SIZE/apps/openlp.png; \
done
mkdir -p debian/openlp/usr/share/icons/hicolor/scalable/apps && \
cp resources/images/openlp-logo.svg debian/openlp/usr/share/icons/hicolor/scalable/apps/openlp.svg
cd debian/openlp/usr/bin/ && mv openlp.pyw openlp