diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py
index 84f318896..207d7704e 100644
--- a/openlp/core/lib/mediamanageritem.py
+++ b/openlp/core/lib/mediamanageritem.py
@@ -83,9 +83,12 @@ class MediaManagerItem(QtGui.QWidget):
"""
self.Toolbar.addSeparator()
- def getInputFile(self, dialogname, dialoglocation, dialogfilter):
+ def getInputFile(self, dialogname, dialoglocation, dialogfilter):
return QtGui.QFileDialog.getOpenFileName(self, dialogname,dialoglocation, dialogfilter)
- def getInputFiles(self, dialogname, dialoglocation, dialogfilter):
+ def getInputFiles(self, dialogname, dialoglocation, dialogfilter):
return QtGui.QFileDialog.getOpenFileNames(self, dialogname,dialoglocation, dialogfilter)
+
+ def refresh(self):
+ self.update()
diff --git a/openlp/plugins/bibles/bibleplugin.py b/openlp/plugins/bibles/bibleplugin.py
index 9697a3823..4b1167a65 100644
--- a/openlp/plugins/bibles/bibleplugin.py
+++ b/openlp/plugins/bibles/bibleplugin.py
@@ -21,6 +21,8 @@ Place, Suite 330, Boston, MA 02111-1307 USA
import logging
from PyQt4 import QtCore, QtGui
+from PyQt4.QtCore import *
+from PyQt4.QtGui import *
from openlp.core.resources import *
from openlp.core.lib import Plugin,PluginUtils, MediaManagerItem
@@ -235,7 +237,7 @@ class BiblePlugin(Plugin, PluginUtils):
pass
def onBibleNewClick(self):
- self.bibleimportform = BibleImportForm(self.config, self.biblemanager)
+ self.bibleimportform = BibleImportForm(self.config, self.biblemanager, self)
self.bibleimportform.setModal(True)
self.bibleimportform.show()
pass
@@ -248,7 +250,14 @@ class BiblePlugin(Plugin, PluginUtils):
def onBibleAddClick(self):
pass
-
+
+ def refresh(self):
+ self.MediaManagerItem.refresh()
+
+ def reload_bibles(self):
+ self.biblemanager.reload_bibles()
+ self._initialise_form()
+
def _initialise_form(self):
log.debug("_initialise_form")
self.QuickSearchComboBox.clear()
@@ -377,8 +386,12 @@ class BiblePlugin(Plugin, PluginUtils):
co = search.find(":")
if co == -1: # no : found
i = search.rfind(" ")
- book = search[:i]
- chapter = search[i:len(search)]
+ if i == -1:
+ book = search
+ chapter = ""
+ else:
+ book = search[:i]
+ chapter = search[i:len(search)]
hi = chapter.find("-")
if hi != -1:
schapter= chapter[:hi]
@@ -402,7 +415,6 @@ class BiblePlugin(Plugin, PluginUtils):
everse = search[co+1:]
else:
everse = search
- print search
else:
everse = search
if echapter == "":
@@ -411,12 +423,16 @@ class BiblePlugin(Plugin, PluginUtils):
sverse = 1
if everse == "":
everse = 99
-# print "book = " + book
-# print "chapter s =" + str(schapter)
-# print "chapter e =" + str(echapter)
-# print "verse s =" + str(sverse)
-# print "verse e =" + str(everse)
- self.searchresults = self.biblemanager.get_verse_text(bible, book,int(schapter), int(echapter), int(sverse), int(everse))
- self._display_results(bible)
+ print "book = " + book
+ print "chapter s =" + str(schapter)
+ print "chapter e =" + str(echapter)
+ print "verse s =" + str(sverse)
+ print "verse e =" + str(everse)
+ if not schapter == "":
+ self.searchresults = self.biblemanager.get_verse_text(bible, book,int(schapter), int(echapter), int(sverse), int(everse))
+ self._display_results(bible)
+ else:
+ QMessageBox.information(self,"Information","A plain, informational message")
+
diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py
index 56525af6a..296917399 100644
--- a/openlp/plugins/bibles/forms/bibleimportform.py
+++ b/openlp/plugins/bibles/forms/bibleimportform.py
@@ -25,7 +25,7 @@ class BibleImportForm(QDialog, Ui_BibleImportDialog, PluginUtils):
"""
Class documentation goes here.
"""
- def __init__(self, config, biblemanager , parent = None):
+ def __init__(self, config, biblemanager , bibleplugin, parent = None):
"""
Constructor
"""
@@ -33,6 +33,7 @@ class BibleImportForm(QDialog, Ui_BibleImportDialog, PluginUtils):
self.setupUi(self)
self.biblemanager = biblemanager
self.config = config
+ self.bibleplugin = bibleplugin
self.bibletype = None
self.barmax = 0
@@ -79,7 +80,7 @@ class BibleImportForm(QDialog, Ui_BibleImportDialog, PluginUtils):
if len(self.BooksLocationEdit.displayText()) > 0 or len(self.VerseLocationEdit.displayText()) > 0:
self.setCSV()
else:
- if self.bibletype == "CVS": # Was CSV and is not any more stops lostFocus running mad
+ if self.bibletype == "CSV": # Was CSV and is not any more stops lostFocus running mad
self.bibletype = None
self.freeAll()
@@ -103,30 +104,31 @@ class BibleImportForm(QDialog, Ui_BibleImportDialog, PluginUtils):
self.freeAll()
def on_CopyrightEdit_lostFocus(self):
- A =1
+ pass
def on_VersionNameEdit_lostFocus(self):
- A =1
+ pass
def on_PermisionEdit_lostFocus(self):
- A =1
+ pass
def on_BibleNameEdit_lostFocus(self):
- A =1
+ pass
def on_BibleImportButtonBox_clicked(self,button):
log.debug("BibleImportButtonBox %s , %s", button.text() , self.bibletype)
if button.text() == "Save":
if self.biblemanager != None:
- if not self.bibletype == None:
+ if not self.bibletype == None or len(self.BibleNameEdit.displayText()) > 0:
self.MessageLabel.setText("Import Started")
- self.ProgressBar.setValue(1)
+ self.ProgressBar.setValue(0)
self.progress = 0
self.biblemanager.process_dialog(self)
self._import_bible()
self.MessageLabel.setText("Import Complete")
self.ProgressBar.setValue(self.barmax)
- self.update()
+ self.update()
+ self.bibleplugin.reload_bibles() # Update form as we have a new bible
elif button.text() == "Cancel":
self.close()
@@ -142,16 +144,17 @@ class BibleImportForm(QDialog, Ui_BibleImportDialog, PluginUtils):
self.progress +=1
self.ProgressBar.setValue(self.progress)
self.update()
+ self.bibleplugin.refresh()
def _import_bible(self):
if self.bibletype == "OSIS":
self.biblemanager.register_osis_file_bible(str(self.BibleNameEdit.displayText()), self.OSISLocationEdit.displayText())
elif self.bibletype == "CSV":
- self.biblemanager.register_csv_file_bible(str(self.BibleNameEdit.displayText()), self.OSISLocationEdit.displayText())
+ self.biblemanager.register_csv_file_bible(str(self.BibleNameEdit.displayText()), self.BooksLocationEdit.displayText(), self.VerseLocationEdit.displayText())
else:
self.setMax(1) # set a value as it will not be needed
- bname = self.biblemanager.register_http_bible(str(self.BibleComboBox.currentText()),str(self.LocationComboBox.currentText()) )
- self.BibleNameEdit.setText(bname)
+ self.biblemanager.register_http_bible(str(self.BibleComboBox.currentText()),str(self.LocationComboBox.currentText()) )
+ self.BibleNameEdit.setText(str(self.BibleComboBox.currentText()))
self.biblemanager.save_meta_data(str(self.BibleNameEdit.displayText()), str(self.VersionNameEdit.displayText()), str(self.CopyrightEdit.displayText()), str(self.PermisionEdit.displayText()))
self.bibletype = None
@@ -165,7 +168,7 @@ class BibleImportForm(QDialog, Ui_BibleImportDialog, PluginUtils):
self.VersesFileButton.setEnabled(False)
def setCSV(self):
- self.bibletype = "CVS"
+ self.bibletype = "CSV"
self.BooksLocationEdit.setReadOnly(False)
self.VerseLocationEdit.setReadOnly(False)
self.BooksFileButton.setEnabled(True)
diff --git a/openlp/plugins/bibles/lib/bibleCSVimpl.py b/openlp/plugins/bibles/lib/bibleCSVimpl.py
index 8b1a0f39c..aa87e033e 100644
--- a/openlp/plugins/bibles/lib/bibleCSVimpl.py
+++ b/openlp/plugins/bibles/lib/bibleCSVimpl.py
@@ -15,16 +15,12 @@ You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
Place, Suite 330, Boston, MA 02111-1307 USA
"""
-import os, os.path
-import sys
-import urllib2
-
+import logging
from openlp.plugins.bibles.lib.bibleDBimpl import BibleDBImpl
from openlp.plugins.bibles.lib.common import BibleCommon
-import logging
-
+
class BibleCSVImpl(BibleCommon):
global log
log=logging.getLogger("BibleCSVImpl")
@@ -37,13 +33,7 @@ class BibleCSVImpl(BibleCommon):
"""
self.bibledb = bibledb
- def load_data(self, booksfile, versesfile):
- self.bibledb.save_meta("version", "Bible Version")
- self.bibledb.save_meta("Copyright", "(c) Some Bible company")
- self.bibledb.save_meta("Permission", "You Have Some")
-
- #session = self.Session()
-
+ def load_data(self, booksfile, versesfile, dialogobject=None):
#Populate the Tables
fbooks=open(booksfile, 'r')
fverse=open(versesfile, 'r')
@@ -51,22 +41,19 @@ class BibleCSVImpl(BibleCommon):
for line in fbooks:
#log.debug( line)
p = line.split(",")
+ p1 = p[1].replace('"', '')
p2 = p[2].replace('"', '')
p3 = p[3].replace('"', '')
- self.bibledb.create_book(int(p[1]), p2, p3)
-
-
- book_ptr = ""
- id = 0
+ self.bibledb.create_book(p2, p3, int(p1))
+ book_ptr = None
for line in fverse:
#log.debug( line)
p = line.split(",", 3) # split into 3 units and leave the rest as a single field
p0 = p[0].replace('"', '')
p3 = p[3].replace('"', '')
if book_ptr is not p0:
- cl = self.bibledb.get_bible_book(p0)
- id = self.bibledb.get_bible_book_Id(p0)
- book_ptr = cl
- log.debug( id )
- self.bibledb.add_verse(id[0], p[1], p[2], p3)
+ book = self.bibledb.get_bible_book(p0)
+ book_ptr = book.name
+ dialogobject.incrementBar(book.name) # increament the progress bar
+ self.bibledb.add_verse(book.id, p[1], p[2], p3)
diff --git a/openlp/plugins/bibles/lib/bibleDBimpl.py b/openlp/plugins/bibles/lib/bibleDBimpl.py
index 4f61881e1..36de10145 100644
--- a/openlp/plugins/bibles/lib/bibleDBimpl.py
+++ b/openlp/plugins/bibles/lib/bibleDBimpl.py
@@ -15,24 +15,18 @@ You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
Place, Suite 330, Boston, MA 02111-1307 USA
"""
-import os, os.path
-import sys
-import time
-import datetime
+import os
+import os.path
import logging
-import string
from sqlalchemy import *
from sqlalchemy.sql import select
from sqlalchemy.orm import sessionmaker, mapper, scoped_session
-from openlp.plugins.bibles.lib.tables import *
-from openlp.plugins.bibles.lib.classes import *
-
from common import BibleCommon
from openlp.core.utils import ConfigHelper
-
-import logging
+from openlp.plugins.bibles.lib.tables import *
+from openlp.plugins.bibles.lib.classes import *
class BibleDBImpl(BibleCommon):
global log
@@ -65,11 +59,11 @@ class BibleDBImpl(BibleCommon):
log.debug( "createTables")
self.save_meta("dbversion", "2")
self._load_testament("Old Testament")
- self._load_testament("Apocrypha")
- self._load_testament("New Testament")
+ self._load_testament("New Testament")
+ self._load_testament("Apocrypha")
def add_verse(self, bookid, chap, vse, text):
- log.debug( "add_verse %s,%s,%s,%s", bookid, chap, vse, text)
+ log.debug( "add_verse %s,%s,%s", bookid, chap, vse)
metadata.bind.echo = False
session = self.session()
verse = Verse()
@@ -81,7 +75,7 @@ class BibleDBImpl(BibleCommon):
session.commit()
def create_chapter(self, bookid, chap, textlist):
- log.debug( "create_chapter %s,%s,%s", bookid, chap, textlist)
+ log.debug( "create_chapter %s,%s", bookid, chap)
metadata.bind.echo = False
session = self.session()
for v , t in textlist.iteritems():
@@ -93,12 +87,12 @@ class BibleDBImpl(BibleCommon):
session.add(verse)
session.commit()
- def create_book(self, bookname, bookabbrev):
+ def create_book(self, bookname, bookabbrev, testament = 1):
log.debug( "create_book %s,%s", bookname, bookabbrev)
metadata.bind.echo = False
session = self.session()
book = Book()
- book.testament_id = 1
+ book.testament_id = testament
book.name = bookname
book.abbreviation = bookabbrev
session.add(book)
@@ -159,9 +153,7 @@ class BibleDBImpl(BibleCommon):
def get_bible_chapter(self, id, chapter):
log.debug( "get_bible_chapter %s,%s", id, chapter )
metadata.bind.echo = False
- #s = text (""" select book.name FROM verse,book where verse.book_id == book.id AND verse.chapter == :c and book.name == :b """)
return self.session.query(Verse).filter_by(chapter = chapter ).filter_by(book_id = id).first()
- #return self.db.execute(s, c=chapter, b=bookname).fetchone()
def get_bible_text(self, bookname, chapter, sverse, everse):
log.debug( "get_bible_text %s,%s,%s,%s ", bookname, chapter, sverse, everse)
diff --git a/openlp/plugins/bibles/lib/bibleHTTPimpl.py b/openlp/plugins/bibles/lib/bibleHTTPimpl.py
index ed94ed04b..e8f86985d 100644
--- a/openlp/plugins/bibles/lib/bibleHTTPimpl.py
+++ b/openlp/plugins/bibles/lib/bibleHTTPimpl.py
@@ -157,14 +157,14 @@ class BibleHTTPImpl():
def set_bible_source(self,biblesource):
"""
- Set the source of where the bible text is comming from
+ Set the source of where the bible text is coming from
"""
log.debug("set_bible_source %s", biblesource)
self.biblesource = biblesource
def get_bible_chapter(self, version, bookid, bookname, chapter):
"""
- Recieve the request and call the relevent handler methods
+ Receive the request and call the relevant handler methods
"""
log.debug( "get_bible_chapter %s,%s,%s,%s", version, bookid, bookname, chapter)
log.debug("biblesource = %s", self.biblesource)
diff --git a/openlp/plugins/bibles/lib/bibleOSISimpl.py b/openlp/plugins/bibles/lib/bibleOSISimpl.py
index 0accfb9dc..e529dc08e 100644
--- a/openlp/plugins/bibles/lib/bibleOSISimpl.py
+++ b/openlp/plugins/bibles/lib/bibleOSISimpl.py
@@ -15,14 +15,9 @@ You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
Place, Suite 330, Boston, MA 02111-1307 USA
"""
-import os, os.path
-import sys
-import urllib2
-
+import logging
from openlp.plugins.bibles.lib.bibleDBimpl import BibleDBImpl
-import logging
-
class BibleOSISImpl():
global log
log=logging.getLogger("BibleOSISImpl")
@@ -39,25 +34,19 @@ class BibleOSISImpl():
def load_data(self, osisfile, dialogobject=None):
- self.bibledb.save_meta("Version", "Bible Version")
- self.bibledb.save_meta("Copyright", "(c) Some Bible company")
- self.bibledb.save_meta("Permission", "You Have Some")
-
- #TODO: need to see if new / old or both testaments
- dialogobject.setMax(65)
-
osis=open(osisfile, 'r')
- book_ptr = ""
+ book_ptr = None
id = 0
verseText = "", s)
ref = f[s+15:e-1] # Book Reference
- #lets find the bble text
+ #lets find the bible text
s = e + 1 # find start of text
e = f.find("", s) # end of text
t = f[s:e]
@@ -81,12 +70,19 @@ class BibleOSISImpl():
#print "X", s, e, t
s = t.find("")
- p = ref.split(".", 3) # split u[ the reference
+ p = ref.split(".", 3) # split up the reference
if book_ptr != p[0]:
+ if book_ptr == None: # first time through
+ if p[0] == "Gen": # set the max book size depending on the first book read
+ dialogobject.setMax(66)
+ else:
+ dialogobject.setMax(27)
+ if p[0] == "Gen":
+ testament += 1
book_ptr = p[0]
- id = self.bibledb.create_book(int(p[1]), self.booksOfBible[p[0]] , self.abbrevOfBible[p[0]])
- dialogobject.incrementBar()
- self.bibledb.add_verse(id, p[1], p[2], t)
+ book = self.bibledb.create_book(self.booksOfBible[p[0]] , self.abbrevOfBible[p[0]], testament)
+ dialogobject.incrementBar(self.booksOfBible[p[0]] )
+ self.bibledb.add_verse(book.id, p[1], p[2], t)
diff --git a/openlp/plugins/bibles/lib/manager.py b/openlp/plugins/bibles/lib/manager.py
index 4d8007d8c..3e9c15dc4 100644
--- a/openlp/plugins/bibles/lib/manager.py
+++ b/openlp/plugins/bibles/lib/manager.py
@@ -44,16 +44,23 @@ class BibleManager():
"""
self.config = config
log.debug( "Bible Initialising")
- self.bibleDBCache = {} # dict of bible database classes
- self.bibleHTTPCache = {} # dict of bible http readers
+ self.bibleDBCache = None # dict of bible database classes
+ self.bibleHTTPCache = None # dict of bible http readers
self.biblePath = self.config.get_data_path()
self.proxyname = self.config.get_config("proxy name") #get proxy name for screen
self.bibleSuffix = "sqlite"
self.dialogobject = None
+ self.reload_bibles()
+
+ def reload_bibles(self):
+ log.debug("Reload bibles")
files = self.config.get_files(self.bibleSuffix)
log.debug("Bible Files %s", files )
-
+
+ self.bibleDBCache = {}
+ self.bibleHTTPCache = {}
+
for f in files:
nme = f.split('.')
bname = nme[0]
@@ -96,21 +103,21 @@ class BibleManager():
nbible.save_meta("proxyid", proxyid) # store the proxy userid
if proxypass != None:
nbible.save_meta("proxypass", proxypass) # store the proxy password
- return biblename
- def register_cvs_file_bible(self, biblename, booksfile, versefile):
+ def register_csv_file_bible(self, biblename, booksfile, versefile):
"""
Method to load a bible from a set of files into a database.
If the database exists it is deleted and the database is reloaded
from scratch.
"""
+ log.debug( "register_CSV_file_bible %s,%s,%s", biblename, booksfile, versefile)
if self._is_new_bible(biblename):
nbible = BibleDBImpl(self.biblePath, biblename, self.config) # Create new Bible
nbible.create_tables() # Create Database
self.bibleDBCache[biblename] = nbible # cache the database for use later
bcsv = BibleCSVImpl(nbible) # create the loader and pass in the database
- bcsv.load_data(booksfile, versefile)
+ bcsv.load_data(booksfile, versefile, self.dialogobject)
def register_osis_file_bible(self, biblename, osisfile):
"""
@@ -176,10 +183,10 @@ class BibleManager():
"""
Saves the bibles meta data
"""
- log.debug( "save_meta %s,%s, %s,%s", bible, version, copyright, permissions)
+ log.debug( "save_meta data %s,%s, %s,%s", bible, version, copyright, permissions)
self.bibleDBCache[bible].save_meta("Version", version)
self.bibleDBCache[bible].save_meta("Copyright", copyright)
- self.bibleDBCache[bible].save_meta("Permissins", permissions)
+ self.bibleDBCache[bible].save_meta("Permissions", permissions)
def get_meta_data(self, bible, key):
"""