diff --git a/openlp.pyw b/openlp.pyw index d9880865b..f1b627940 100755 --- a/openlp.pyw +++ b/openlp.pyw @@ -92,16 +92,23 @@ class OpenLP(QtGui.QApplication): app_version = { u'full': full_version, u'version': bits[0], - u'build': bits[1] + u'build': bits[1] if len(bits) > 1 else None } - log.info(u'Openlp version %s build %s' % ( - app_version[u'version'], app_version[u'build'])) + if app_version[u'build']: + log.info( + u'Openlp version %s build %s', + app_version[u'version'], + app_version[u'build'] + ) + else: + log.info(u'Openlp version %s' % app_version[u'version']) except: - app_version = { - u'full': u'1.9.0-bzr000', - u'version': u'1.9.0', - u'build': u'bzr000' - } + log.exception('Error in version file.') + app_version = { + u'full': u'1.9.0-bzr000', + u'version': u'1.9.0', + u'build': u'bzr000' + } finally: if fversion: fversion.close() diff --git a/openlp/.version b/openlp/.version index 338414e8c..f8e233b27 100644 --- a/openlp/.version +++ b/openlp/.version @@ -1 +1 @@ -1.9.0-bzr743 +1.9.0 diff --git a/openlp/core/ui/aboutdialog.py b/openlp/core/ui/aboutdialog.py index 0f38b02f0..c74246f5c 100644 --- a/openlp/core/ui/aboutdialog.py +++ b/openlp/core/ui/aboutdialog.py @@ -115,7 +115,7 @@ class Ui_AboutDialog(object): def retranslateUi(self, AboutDialog): AboutDialog.setWindowTitle(self.trUtf8('About OpenLP')) self.AboutTextEdit.setPlainText(self.trUtf8( - 'OpenLP build - Open Source Lyrics ' + 'OpenLP - Open Source Lyrics ' 'Projection\n' '\n' 'OpenLP is free church presentation software, or lyrics ' diff --git a/openlp/core/ui/aboutform.py b/openlp/core/ui/aboutform.py index fe576767f..c79324515 100644 --- a/openlp/core/ui/aboutform.py +++ b/openlp/core/ui/aboutform.py @@ -39,11 +39,16 @@ class AboutForm(QtGui.QDialog, Ui_AboutDialog): QtGui.QDialog.__init__(self, parent) self.applicationVersion = applicationVersion self.setupUi(self) - self.AboutTextEdit.setPlainText( - self.AboutTextEdit.toPlainText()\ - .replace(u'', self.applicationVersion[u'version'])\ - .replace(u'', self.applicationVersion[u'build']) - ) + about_text = self.AboutTextEdit.toPlainText() + about_text = about_text.replace(u'', + self.applicationVersion[u'version']) + if self.applicationVersion[u'build']: + build_text = u' %s %s' % (self.trUtf8('build'), + self.applicationVersion[u'build']) + else: + build_text = u'' + about_text = about_text.replace(u'', build_text) + self.AboutTextEdit.setPlainText(about_text) QtCore.QObject.connect(self.ContributeButton, QtCore.SIGNAL(u'clicked()'), self.onContributeButtonClicked) diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index 0fc0588ae..13d880407 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -71,7 +71,7 @@ class VersionThread(QtCore.QThread): Receiver.send_message(u'blank_check') version = check_latest_version(self.generalConfig, self.app_version) #new version has arrived - if version != self.app_version: + if version != self.app_version[u'full']: Receiver.send_message(u'version_check', u'%s' % version) @@ -554,11 +554,12 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): Checks the version of the Application called from openlp.pyw """ app_version = self.applicationVersion[u'full'] - version_text = unicode(self.trUtf8('OpenLP version %s has been updated ' - 'to version %s\n\nYou can obtain the latest version from http://openlp.org')) + version_text = unicode(self.trUtf8('Version %s of OpenLP is now ' + 'available for download (you are currently running version %s).' + '\n\nYou can download the latest version from http://openlp.org')) QtGui.QMessageBox.question(self, self.trUtf8('OpenLP Version Updated'), - version_text % (app_version, version), + version_text % (version, app_version), QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Ok), QtGui.QMessageBox.Ok) @@ -597,8 +598,8 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): QtGui.QMessageBox.Ok) def versionThread(self): - app_version = self.applicationVersion[u'full'] - vT = VersionThread(self, app_version, self.generalConfig) + #app_version = self.applicationVersion[u'full'] + vT = VersionThread(self, self.applicationVersion, self.generalConfig) vT.start() def onHelpAboutItemClicked(self): diff --git a/openlp/core/utils/__init__.py b/openlp/core/utils/__init__.py index a64b0c06b..faa3b2dfb 100644 --- a/openlp/core/utils/__init__.py +++ b/openlp/core/utils/__init__.py @@ -105,19 +105,20 @@ def check_latest_version(config, current_version): ``current_version`` The current version of OpenLP. """ - version_string = current_version + version_string = current_version[u'full'] #set to prod in the distribution confif file. last_test = config.get_config(u'last version test', datetime.now().date()) this_test = unicode(datetime.now().date()) config.set_config(u'last version test', this_test) if last_test != this_test: version_string = u'' - req = urllib2.Request(u'http://www.openlp.org/files/version.txt') - req.add_header(u'User-Agent', u'OpenLP/%s' % current_version) + if current_version[u'build']: + req = urllib2.Request(u'http://www.openlp.org/files/dev_version.txt') + else: + req = urllib2.Request(u'http://www.openlp.org/files/version.txt') + req.add_header(u'User-Agent', u'OpenLP/%s' % current_version[u'full']) try: - handle = urllib2.urlopen(req, None) - html = handle.read() - version_string = unicode(html).rstrip() + version_string = unicode(urllib2.urlopen(req, None).read()).strip() except IOError, e: if hasattr(e, u'reason'): log.exception(u'Reason for failure: %s', e.reason) diff --git a/openlp/plugins/bibles/lib/db.py b/openlp/plugins/bibles/lib/db.py index c57ecb83e..66b956109 100644 --- a/openlp/plugins/bibles/lib/db.py +++ b/openlp/plugins/bibles/lib/db.py @@ -95,6 +95,9 @@ class BibleDB(QtCore.QObject): self.get_name() def get_name(self): + """ + Returns the version name of the Bible. + """ version_name = self.get_meta(u'Version') if version_name: self.name = version_name.value @@ -103,12 +106,22 @@ class BibleDB(QtCore.QObject): return self.name def clean_filename(self, old_filename): + """ + Clean up the version name of the Bible and convert it into a valid + file name. + + ``old_filename`` + The "dirty" file name or version name. + """ if not isinstance(old_filename, unicode): old_filename = unicode(old_filename, u'utf-8') old_filename = re.sub(r'[^\w]+', u'_', old_filename).strip(u'_') return old_filename + u'.sqlite' def delete(self): + """ + Remove the Bible database file. Used when a Bible import fails. + """ try: os.remove(self.db_file) return True @@ -119,18 +132,27 @@ class BibleDB(QtCore.QObject): """ This method basically just initialialises the database. It is called from the Bible Manager when a Bible is imported. Descendant classes - may want to override this method to suVersionpply their own custom + may want to override this method to supply their own custom initialisation as well. + + ``wizard`` + The actual Qt wizard form. """ self.wizard = wizard self.create_tables() return self.name def commit(self): + """ + Perform a database commit. + """ log.debug('Committing...') self.session.commit() def create_tables(self): + """ + Create some initial metadata. + """ log.debug(u'createTables') self.create_meta(u'dbversion', u'2') self.create_testament(u'Old Testament') @@ -138,11 +160,29 @@ class BibleDB(QtCore.QObject): self.create_testament(u'Apocrypha') def create_testament(self, testament): + """ + Add a testament to the database. + + ``testament`` + The testament name. + """ log.debug(u'BibleDB.create_testament("%s")', testament) self.session.add(Testament.populate(name=testament)) self.commit() def create_book(self, name, abbrev, testament=1): + """ + Add a book to the database. + + ``name`` + The name of the book. + + ``abbrev`` + The abbreviation of the book. + + ``testament`` + *Defaults to 1.* The id of the testament this book belongs to. + """ log.debug(u'create_book %s,%s', name, abbrev) book = Book.populate(name=name, abbreviation=abbrev, testament_id=testament) @@ -151,6 +191,19 @@ class BibleDB(QtCore.QObject): return book def create_chapter(self, book_id, chapter, textlist): + """ + Add a chapter and it's verses to a book. + + ``book_id`` + The id of the book being appended. + + ``chapter`` + The chapter number. + + ``textlist`` + A dict of the verses to be inserted. The key is the verse number, + and the value is the verse text. + """ log.debug(u'create_chapter %s,%s', book_id, chapter) #text list has book and chapter as first two elements of the array for verse_number, verse_text in textlist.iteritems(): @@ -164,6 +217,21 @@ class BibleDB(QtCore.QObject): self.commit() def create_verse(self, book_id, chapter, verse, text): + """ + Add a single verse to a chapter. + + ``book_id`` + The id of the book being appended. + + ``chapter`` + The chapter number. + + ``verse`` + The verse number. + + ``text`` + The verse text. + """ if not isinstance(text, unicode): details = chardet.detect(text) text = unicode(text, details[u'encoding'])