From 0924bfc246393047601439b722ae47068f124ee5 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 12 Aug 2011 15:11:30 +0200 Subject: [PATCH 01/22] fixed bug #804747; clean ups Fixes: https://launchpad.net/bugs/804747 --- openlp/core/lib/eventreceiver.py | 2 +- openlp/core/ui/mainwindow.py | 7 +- .../plugins/bibles/forms/bibleupgradeform.py | 113 +++++++----------- openlp/plugins/bibles/lib/db.py | 57 ++++----- openlp/plugins/bibles/lib/manager.py | 10 +- openlp/plugins/bibles/lib/mediaitem.py | 2 +- 6 files changed, 79 insertions(+), 112 deletions(-) diff --git a/openlp/core/lib/eventreceiver.py b/openlp/core/lib/eventreceiver.py index 7c0115f89..abd57721b 100644 --- a/openlp/core/lib/eventreceiver.py +++ b/openlp/core/lib/eventreceiver.py @@ -247,7 +247,7 @@ class EventReceiver(QtCore.QObject): ``msg`` Defaults to *None*. The message to send with the event. """ - log.debug(u'Event %s passed with payload %s' % (event, msg)) + #log.debug(u'Event %s passed with payload %s' % (event, msg)) self.emit(QtCore.SIGNAL(event), msg) diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index c7ff6c52a..cef510a81 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -28,6 +28,7 @@ import logging import os import sys +import shutil from tempfile import gettempdir from PyQt4 import QtCore, QtGui @@ -721,11 +722,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): plugin.firstTime() Receiver.send_message(u'openlp_process_events') temp_dir = os.path.join(unicode(gettempdir()), u'openlp') - if not os.path.exists(temp_dir): - return - for filename in os.listdir(temp_dir): - delete_file(os.path.join(temp_dir, filename)) - os.removedirs(temp_dir) + shutil.rmtree(temp_dir, True) def onFirstTimeWizardClicked(self): """ diff --git a/openlp/plugins/bibles/forms/bibleupgradeform.py b/openlp/plugins/bibles/forms/bibleupgradeform.py index 615d4231e..1ce938b3c 100644 --- a/openlp/plugins/bibles/forms/bibleupgradeform.py +++ b/openlp/plugins/bibles/forms/bibleupgradeform.py @@ -29,6 +29,7 @@ The bible import functions for OpenLP import logging import os import shutil +from tempfile import gettempdir from PyQt4 import QtCore, QtGui @@ -124,7 +125,7 @@ class BibleUpgradeForm(OpenLPWizard): self.preWizard() self.performWizard() self.postWizard() - elif self.page(pageId) == self.selectPage and self.maxBibles == 0: + elif self.page(pageId) == self.selectPage and not self.files: self.next() def onBackupBrowseButtonClicked(self): @@ -425,9 +426,13 @@ class BibleUpgradeForm(OpenLPWizard): return False return True elif self.currentPage() == self.selectPage: + temp_dir = os.path.join(gettempdir(), u'openlp') + check_directory_exists(temp_dir) for number, filename in enumerate(self.files): if not self.checkBox[number].checkState() == QtCore.Qt.Checked: continue + # Move bibles to temp dir. + shutil.move(os.path.join(self.path, filename[0]), temp_dir) version_name = unicode(self.versionNameEdit[number].text()) if not version_name: critical_error_message_box(UiStrings().EmptyField, @@ -435,37 +440,6 @@ class BibleUpgradeForm(OpenLPWizard): 'You need to specify a version name for your Bible.')) self.versionNameEdit[number].setFocus() return False - elif self.manager.exists(version_name): - critical_error_message_box( - translate('BiblesPlugin.UpgradeWizardForm', - 'Bible Exists'), - translate('BiblesPlugin.UpgradeWizardForm', - 'This Bible already exists. Please upgrade ' - 'a different Bible, delete the existing one or ' - 'uncheck.')) - self.versionNameEdit[number].setFocus() - return False - elif os.path.exists(os.path.join(self.path, clean_filename( - version_name))) and version_name == filename[1]: - newfilename = u'old_database_%s' % filename[0] - if not os.path.exists(os.path.join(self.path, - newfilename)): - os.rename(os.path.join(self.path, filename[0]), - os.path.join(self.path, newfilename)) - self.files[number] = [newfilename, filename[1]] - continue - else: - critical_error_message_box( - translate('BiblesPlugin.UpgradeWizardForm', - 'Bible Exists'), - translate('BiblesPlugin.UpgradeWizardForm', - 'This Bible already exists. Please upgrade ' - 'a different Bible, delete the existing one or ' - 'uncheck.')) - self.verticalWidget[number].show() - self.formWidget[number].show() - self.versionNameEdit[number].setFocus() - return False elif os.path.exists(os.path.join(self.path, clean_filename(version_name))): critical_error_message_box( @@ -495,7 +469,6 @@ class BibleUpgradeForm(OpenLPWizard): self.files = self.manager.old_bible_databases self.addScrollArea() self.retranslateUi() - self.maxBibles = len(self.files) for number, filename in enumerate(self.files): self.checkBox[number].setCheckState(QtCore.Qt.Checked) oldname = filename[1] @@ -516,9 +489,8 @@ class BibleUpgradeForm(OpenLPWizard): Prepare the UI for the upgrade. """ OpenLPWizard.preWizard(self) - self.progressLabel.setText(translate( - 'BiblesPlugin.UpgradeWizardForm', - 'Starting upgrade...')) + self.progressLabel.setText( + translate('BiblesPlugin.UpgradeWizardForm', 'Starting upgrade...')) Receiver.send_message(u'openlp_process_events') def performWizard(self): @@ -527,46 +499,47 @@ class BibleUpgradeForm(OpenLPWizard): """ self.include_webbible = False proxy_server = None - if self.maxBibles == 0: + if not self.files: self.progressLabel.setText( translate('BiblesPlugin.UpgradeWizardForm', 'There are no ' 'Bibles that need to be upgraded.')) self.progressBar.hide() return - self.maxBibles = 0 + max_bibles = 0 for number, file in enumerate(self.files): if self.checkBox[number].checkState() == QtCore.Qt.Checked: - self.maxBibles += 1 - number = 0 - for biblenumber, filename in enumerate(self.files): + max_bibles += 1 + temp_dir = os.path.join(gettempdir(), u'openlp') + for number, filename in enumerate(self.files): if self.stop_import_flag: bible_failed = True break bible_failed = False - self.success[biblenumber] = False - if not self.checkBox[biblenumber].checkState() == QtCore.Qt.Checked: + self.success[number] = False + if not self.checkBox[number].checkState() == QtCore.Qt.Checked: continue self.progressBar.reset() - oldbible = OldBibleDB(self.mediaItem, path=self.path, + oldbible = OldBibleDB(self.mediaItem, path=temp_dir, file=filename[0]) name = filename[1] if name is None: + print u'no Name!!!' + # FIXME: ? delete_file(os.path.join(self.path, filename[0])) self.incrementProgressBar(unicode(translate( 'BiblesPlugin.UpgradeWizardForm', 'Upgrading Bible %s of %s: "%s"\nFailed')) % - (number + 1, self.maxBibles, name), + (number + 1, max_bibles, name), self.progressBar.maximum() - self.progressBar.value()) - number += 1 continue self.progressLabel.setText(unicode(translate( 'BiblesPlugin.UpgradeWizardForm', 'Upgrading Bible %s of %s: "%s"\nUpgrading ...')) % - (number + 1, self.maxBibles, name)) + (number + 1, max_bibles, name)) if os.path.exists(os.path.join(self.path, filename[0])): - name = unicode(self.versionNameEdit[biblenumber].text()) + name = unicode(self.versionNameEdit[number].text()) self.newbibles[number] = BibleDB(self.mediaItem, path=self.path, - name=name) + name=name, file=filename[0]) self.newbibles[number].register(self.plugin.upgrade_wizard) metadata = oldbible.get_metadata() webbible = False @@ -595,7 +568,7 @@ class BibleUpgradeForm(OpenLPWizard): u'name: "%s" failed' % ( meta_data[u'download source'], meta_data[u'download name'])) - delete_database(self.path, clean_filename(name)) + delete_database(temp_dir, clean_filename(name)) del self.newbibles[number] critical_error_message_box( translate('BiblesPlugin.UpgradeWizardForm', @@ -606,9 +579,8 @@ class BibleUpgradeForm(OpenLPWizard): self.incrementProgressBar(unicode(translate( 'BiblesPlugin.UpgradeWizardForm', 'Upgrading Bible %s of %s: "%s"\nFailed')) % - (number + 1, self.maxBibles, name), + (number + 1, max_bibles, name), self.progressBar.maximum() - self.progressBar.value()) - number += 1 continue bible = BiblesResourcesDB.get_webbible( meta_data[u'download name'], @@ -621,14 +593,13 @@ class BibleUpgradeForm(OpenLPWizard): language_id = self.newbibles[number].get_language(name) if not language_id: log.warn(u'Upgrading from "%s" failed' % filename[0]) - delete_database(self.path, clean_filename(name)) + delete_database(temp_dir, clean_filename(name)) del self.newbibles[number] self.incrementProgressBar(unicode(translate( 'BiblesPlugin.UpgradeWizardForm', 'Upgrading Bible %s of %s: "%s"\nFailed')) % - (number + 1, self.maxBibles, name), + (number + 1, max_bibles, name), self.progressBar.maximum() - self.progressBar.value()) - number += 1 continue self.progressBar.setMaximum(len(books)) for book in books: @@ -639,7 +610,7 @@ class BibleUpgradeForm(OpenLPWizard): 'BiblesPlugin.UpgradeWizardForm', 'Upgrading Bible %s of %s: "%s"\n' 'Upgrading %s ...')) % - (number + 1, self.maxBibles, name, book)) + (number + 1, max_bibles, name, book)) book_ref_id = self.newbibles[number].\ get_book_ref_id_by_name(book, len(books), language_id) if not book_ref_id: @@ -647,7 +618,7 @@ class BibleUpgradeForm(OpenLPWizard): u'name: "%s" aborted by user' % ( meta_data[u'download source'], meta_data[u'download name'])) - delete_database(self.path, clean_filename(name)) + delete_database(temp_dir, clean_filename(name)) del self.newbibles[number] bible_failed = True break @@ -678,14 +649,13 @@ class BibleUpgradeForm(OpenLPWizard): language_id = self.newbibles[number].get_language(name) if not language_id: log.warn(u'Upgrading books from "%s" failed' % name) - delete_database(self.path, clean_filename(name)) + delete_database(temp_dir, clean_filename(name)) del self.newbibles[number] self.incrementProgressBar(unicode(translate( 'BiblesPlugin.UpgradeWizardForm', 'Upgrading Bible %s of %s: "%s"\nFailed')) % - (number + 1, self.maxBibles, name), + (number + 1, max_bibles, name), self.progressBar.maximum() - self.progressBar.value()) - number += 1 continue books = oldbible.get_books() self.progressBar.setMaximum(len(books)) @@ -697,14 +667,14 @@ class BibleUpgradeForm(OpenLPWizard): 'BiblesPlugin.UpgradeWizardForm', 'Upgrading Bible %s of %s: "%s"\n' 'Upgrading %s ...')) % - (number + 1, self.maxBibles, name, book[u'name'])) + (number + 1, max_bibles, name, book[u'name'])) book_ref_id = self.newbibles[number].\ get_book_ref_id_by_name(book[u'name'], len(books), language_id) if not book_ref_id: log.warn(u'Upgrading books from %s " '\ 'failed - aborted by user' % name) - delete_database(self.path, clean_filename(name)) + delete_database(temp_dir, clean_filename(name)) del self.newbibles[number] bible_failed = True break @@ -729,21 +699,21 @@ class BibleUpgradeForm(OpenLPWizard): if not bible_failed: self.newbibles[number].create_meta(u'Version', name) oldbible.close_connection() - delete_file(os.path.join(self.path, filename[0])) + delete_file(os.path.join(temp_dir, filename[0])) self.incrementProgressBar(unicode(translate( 'BiblesPlugin.UpgradeWizardForm', 'Upgrading Bible %s of %s: "%s"\n' 'Complete')) % - (number + 1, self.maxBibles, name)) - self.success[biblenumber] = True + (number + 1, max_bibles, name)) + self.success[number] = True else: self.incrementProgressBar(unicode(translate( 'BiblesPlugin.UpgradeWizardForm', 'Upgrading Bible %s of %s: "%s"\nFailed')) % - (number + 1, self.maxBibles, name), + (number + 1, max_bibles, name), self.progressBar.maximum() - self.progressBar.value()) - delete_database(self.path, clean_filename(name)) - number += 1 + delete_database(temp_dir, clean_filename(name)) + shutil.rmtree(temp_dir, True) def postWizard(self): """ @@ -752,7 +722,7 @@ class BibleUpgradeForm(OpenLPWizard): successful_import = 0 failed_import = 0 for number, filename in enumerate(self.files): - if number in self.success and self.success[number] == True: + if self.success.has_key(number) and self.success[number]: successful_import += 1 elif self.checkBox[number].checkState() == QtCore.Qt.Checked: failed_import += 1 @@ -776,7 +746,6 @@ class BibleUpgradeForm(OpenLPWizard): 'Bible(s): %s successful%s')) % (successful_import, failed_import_text)) else: - self.progressLabel.setText( - translate('BiblesPlugin.UpgradeWizardForm', 'Upgrade ' - 'failed.')) + self.progressLabel.setText(translate( + 'BiblesPlugin.UpgradeWizardForm', 'Upgrade failed.')) OpenLPWizard.postWizard(self) diff --git a/openlp/plugins/bibles/lib/db.py b/openlp/plugins/bibles/lib/db.py index 5273f670c..7be2ca84a 100644 --- a/openlp/plugins/bibles/lib/db.py +++ b/openlp/plugins/bibles/lib/db.py @@ -169,6 +169,7 @@ class BibleDB(QtCore.QObject, Manager): self.wizard = None QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'openlp_stop_wizard'), self.stop_import) + print kwargs, (self.file, self.path) def stop_import(self): """ @@ -210,7 +211,7 @@ class BibleDB(QtCore.QObject, Manager): The book_reference_id from bibles_resources.sqlite of the book. ``testament`` - *Defaults to 1.* The testament_reference_id from + *Defaults to 1.* The testament_reference_id from bibles_resources.sqlite of the testament this book belongs to. """ log.debug(u'BibleDB.create_book("%s", "%s")', name, bk_ref_id) @@ -329,7 +330,7 @@ class BibleDB(QtCore.QObject, Manager): return self.get_object_filtered(Book, Book.book_reference_id.like(id)) def get_book_ref_id_by_name(self, book, maxbooks, language_id=None): - log.debug(u'BibleDB.get_book_ref_id_by_name:("%s", "%s")', book, + log.debug(u'BibleDB.get_book_ref_id_by_name:("%s", "%s")', book, language_id) if BiblesResourcesDB.get_book(book, True): book_temp = BiblesResourcesDB.get_book(book, True) @@ -471,7 +472,7 @@ class BibleDB(QtCore.QObject, Manager): def get_language(self, bible_name=None): """ - If no language is given it calls a dialog window where the user could + If no language is given it calls a dialog window where the user could select the bible language. Return the language id of a bible. @@ -521,9 +522,9 @@ class BiblesResourcesDB(QtCore.QObject, Manager): some resources which are used in the Bibles plugin. A wrapper class around a small SQLite database which contains the download resources, a biblelist from the different download resources, the books, - chapter counts and verse counts for the web download Bibles, a language - reference, the testament reference and some alternative book names. This - class contains a singleton "cursor" so that only one connection to the + chapter counts and verse counts for the web download Bibles, a language + reference, the testament reference and some alternative book names. This + class contains a singleton "cursor" so that only one connection to the SQLite database is ever used. """ cursor = None @@ -582,7 +583,7 @@ class BiblesResourcesDB(QtCore.QObject, Manager): ``name`` The name or abbreviation of the book. - + ``lower`` True if the comparsion should be only lowercase """ @@ -592,7 +593,7 @@ class BiblesResourcesDB(QtCore.QObject, Manager): if lower: books = BiblesResourcesDB.run_sql(u'SELECT id, testament_id, name, ' u'abbreviation, chapters FROM book_reference WHERE ' - u'LOWER(name) = ? OR LOWER(abbreviation) = ?', + u'LOWER(name) = ? OR LOWER(abbreviation) = ?', (name.lower(), name.lower())) else: books = BiblesResourcesDB.run_sql(u'SELECT id, testament_id, name, ' @@ -621,7 +622,7 @@ class BiblesResourcesDB(QtCore.QObject, Manager): if not isinstance(id, int): id = int(id) books = BiblesResourcesDB.run_sql(u'SELECT id, testament_id, name, ' - u'abbreviation, chapters FROM book_reference WHERE id = ?', + u'abbreviation, chapters FROM book_reference WHERE id = ?', (id, )) if books: return { @@ -645,12 +646,12 @@ class BiblesResourcesDB(QtCore.QObject, Manager): ``chapter`` The chapter number. """ - log.debug(u'BiblesResourcesDB.get_chapter("%s", "%s")', book_id, + log.debug(u'BiblesResourcesDB.get_chapter("%s", "%s")', book_id, chapter) if not isinstance(chapter, int): chapter = int(chapter) chapters = BiblesResourcesDB.run_sql(u'SELECT id, book_reference_id, ' - u'chapter, verse_count FROM chapters WHERE book_reference_id = ?', + u'chapter, verse_count FROM chapters WHERE book_reference_id = ?', (book_id,)) if chapters: return { @@ -687,7 +688,7 @@ class BiblesResourcesDB(QtCore.QObject, Manager): ``chapter`` The number of the chapter. """ - log.debug(u'BiblesResourcesDB.get_verse_count("%s", "%s")', book_id, + log.debug(u'BiblesResourcesDB.get_verse_count("%s", "%s")', book_id, chapter) details = BiblesResourcesDB.get_chapter(book_id, chapter) if details: @@ -715,7 +716,7 @@ class BiblesResourcesDB(QtCore.QObject, Manager): } else: return None - + @staticmethod def get_webbibles(source): """ @@ -737,7 +738,7 @@ class BiblesResourcesDB(QtCore.QObject, Manager): u'id': bible[0], u'name': bible[1], u'abbreviation': bible[2], - u'language_id': bible[3], + u'language_id': bible[3], u'download_source_id': bible[4] } for bible in bibles @@ -752,11 +753,11 @@ class BiblesResourcesDB(QtCore.QObject, Manager): ``abbreviation`` The abbreviation of the webbible. - + ``source`` The source of the webbible. """ - log.debug(u'BiblesResourcesDB.get_webbibles("%s", "%s")', abbreviation, + log.debug(u'BiblesResourcesDB.get_webbibles("%s", "%s")', abbreviation, source) if not isinstance(abbreviation, unicode): abbreviation = unicode(abbreviation) @@ -765,14 +766,14 @@ class BiblesResourcesDB(QtCore.QObject, Manager): source = BiblesResourcesDB.get_download_source(source) bible = BiblesResourcesDB.run_sql(u'SELECT id, name, abbreviation, ' u'language_id, download_source_id FROM webbibles WHERE ' - u'download_source_id = ? AND abbreviation = ?', (source[u'id'], + u'download_source_id = ? AND abbreviation = ?', (source[u'id'], abbreviation)) if bible: return { u'id': bible[0][0], u'name': bible[0][1], u'abbreviation': bible[0][2], - u'language_id': bible[0][3], + u'language_id': bible[0][3], u'download_source_id': bible[0][4] } else: @@ -785,11 +786,11 @@ class BiblesResourcesDB(QtCore.QObject, Manager): ``name`` The name to search the id. - + ``language_id`` The language_id for which language should be searched """ - log.debug(u'BiblesResourcesDB.get_alternative_book_name("%s", "%s")', + log.debug(u'BiblesResourcesDB.get_alternative_book_name("%s", "%s")', name, language_id) if language_id: books = BiblesResourcesDB.run_sql(u'SELECT book_reference_id, name ' @@ -806,7 +807,7 @@ class BiblesResourcesDB(QtCore.QObject, Manager): @staticmethod def get_language(name): """ - Return a dict containing the language id, name and code by name or + Return a dict containing the language id, name and code by name or abbreviation. ``name`` @@ -865,7 +866,7 @@ class BiblesResourcesDB(QtCore.QObject, Manager): class AlternativeBookNamesDB(QtCore.QObject, Manager): """ - This class represents a database-bound alternative book names system. + This class represents a database-bound alternative book names system. """ cursor = None conn = None @@ -874,7 +875,7 @@ class AlternativeBookNamesDB(QtCore.QObject, Manager): def get_cursor(): """ Return the cursor object. Instantiate one if it doesn't exist yet. - If necessary loads up the database and creates the tables if the + If necessary loads up the database and creates the tables if the database doesn't exist. """ if AlternativeBookNamesDB.cursor is None: @@ -904,7 +905,7 @@ class AlternativeBookNamesDB(QtCore.QObject, Manager): ``parameters`` Any variable parameters to add to the query - + ``commit`` If a commit statement is necessary this should be True. """ @@ -921,11 +922,11 @@ class AlternativeBookNamesDB(QtCore.QObject, Manager): ``name`` The name to search the id. - + ``language_id`` The language_id for which language should be searched """ - log.debug(u'AlternativeBookNamesDB.get_book_reference_id("%s", "%s")', + log.debug(u'AlternativeBookNamesDB.get_book_reference_id("%s", "%s")', name, language_id) if language_id: books = AlternativeBookNamesDB.run_sql(u'SELECT book_reference_id, ' @@ -962,11 +963,11 @@ class AlternativeBookNamesDB(QtCore.QObject, Manager): class OldBibleDB(QtCore.QObject, Manager): """ - This class conects to the old bible databases to reimport them to the new + This class conects to the old bible databases to reimport them to the new database scheme. """ cursor = None - + def __init__(self, parent, **kwargs): """ The constructor loads up the database and creates and initialises the diff --git a/openlp/plugins/bibles/lib/manager.py b/openlp/plugins/bibles/lib/manager.py index 354332083..fcccd7bcf 100644 --- a/openlp/plugins/bibles/lib/manager.py +++ b/openlp/plugins/bibles/lib/manager.py @@ -153,7 +153,7 @@ class BibleManager(object): if name is None: delete_file(os.path.join(self.path, filename)) continue - # Find old database versions + # Find old database versions. if bible.is_old_database(): self.old_bible_databases.append([filename, name]) bible.session.close() @@ -220,7 +220,7 @@ class BibleManager(object): return [ { u'name': book.name, - u'book_reference_id': book.book_reference_id, + u'book_reference_id': book.book_reference_id, u'chapters': self.db_cache[bible].get_chapter_count(book) } for book in self.db_cache[bible].get_books() @@ -229,10 +229,10 @@ class BibleManager(object): def get_chapter_count(self, bible, book): """ Returns the number of Chapters for a given book. - + ``bible`` Unicode. The Bible to get the list of books from. - + ``book`` The book object to get the chapter count for. """ @@ -295,7 +295,7 @@ class BibleManager(object): if db_book: book_id = db_book.book_reference_id log.debug(u'Book name corrected to "%s"', db_book.name) - new_reflist.append((book_id, item[1], item[2], + new_reflist.append((book_id, item[1], item[2], item[3])) else: log.debug(u'OpenLP failed to find book %s', item[0]) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 82ee4430c..5a5f77c50 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -612,7 +612,7 @@ class BibleMediaItem(MediaManagerItem): if restore: old_text = unicode(combo.currentText()) combo.clear() - combo.addItems([unicode(i) for i in range(range_from, range_to + 1)]) + combo.addItems(map(unicode, range(range_from, range_to + 1))) if restore and combo.findText(old_text) != -1: combo.setCurrentIndex(combo.findText(old_text)) From 4831cf0a7c7970a82b46bfd893ef1774b15147c8 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 12 Aug 2011 15:16:06 +0200 Subject: [PATCH 02/22] more clean ups --- openlp/plugins/bibles/forms/bibleupgradeform.py | 14 ++------------ openlp/plugins/bibles/lib/db.py | 1 - 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/openlp/plugins/bibles/forms/bibleupgradeform.py b/openlp/plugins/bibles/forms/bibleupgradeform.py index 1ce938b3c..80b6ad910 100644 --- a/openlp/plugins/bibles/forms/bibleupgradeform.py +++ b/openlp/plugins/bibles/forms/bibleupgradeform.py @@ -35,10 +35,9 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import Receiver, SettingsManager, translate, \ check_directory_exists -from openlp.core.lib.db import delete_database from openlp.core.lib.ui import UiStrings, critical_error_message_box from openlp.core.ui.wizard import OpenLPWizard, WizardStrings -from openlp.core.utils import AppLocation, delete_file +from openlp.core.utils import AppLocation from openlp.plugins.bibles.lib.db import BibleDB, BibleMeta, OldBibleDB, \ BiblesResourcesDB, clean_filename from openlp.plugins.bibles.lib.http import BSExtract, BGExtract, CWExtract @@ -523,9 +522,6 @@ class BibleUpgradeForm(OpenLPWizard): file=filename[0]) name = filename[1] if name is None: - print u'no Name!!!' - # FIXME: ? - delete_file(os.path.join(self.path, filename[0])) self.incrementProgressBar(unicode(translate( 'BiblesPlugin.UpgradeWizardForm', 'Upgrading Bible %s of %s: "%s"\nFailed')) % @@ -568,7 +564,6 @@ class BibleUpgradeForm(OpenLPWizard): u'name: "%s" failed' % ( meta_data[u'download source'], meta_data[u'download name'])) - delete_database(temp_dir, clean_filename(name)) del self.newbibles[number] critical_error_message_box( translate('BiblesPlugin.UpgradeWizardForm', @@ -593,7 +588,6 @@ class BibleUpgradeForm(OpenLPWizard): language_id = self.newbibles[number].get_language(name) if not language_id: log.warn(u'Upgrading from "%s" failed' % filename[0]) - delete_database(temp_dir, clean_filename(name)) del self.newbibles[number] self.incrementProgressBar(unicode(translate( 'BiblesPlugin.UpgradeWizardForm', @@ -618,7 +612,6 @@ class BibleUpgradeForm(OpenLPWizard): u'name: "%s" aborted by user' % ( meta_data[u'download source'], meta_data[u'download name'])) - delete_database(temp_dir, clean_filename(name)) del self.newbibles[number] bible_failed = True break @@ -649,7 +642,6 @@ class BibleUpgradeForm(OpenLPWizard): language_id = self.newbibles[number].get_language(name) if not language_id: log.warn(u'Upgrading books from "%s" failed' % name) - delete_database(temp_dir, clean_filename(name)) del self.newbibles[number] self.incrementProgressBar(unicode(translate( 'BiblesPlugin.UpgradeWizardForm', @@ -674,7 +666,6 @@ class BibleUpgradeForm(OpenLPWizard): if not book_ref_id: log.warn(u'Upgrading books from %s " '\ 'failed - aborted by user' % name) - delete_database(temp_dir, clean_filename(name)) del self.newbibles[number] bible_failed = True break @@ -699,7 +690,6 @@ class BibleUpgradeForm(OpenLPWizard): if not bible_failed: self.newbibles[number].create_meta(u'Version', name) oldbible.close_connection() - delete_file(os.path.join(temp_dir, filename[0])) self.incrementProgressBar(unicode(translate( 'BiblesPlugin.UpgradeWizardForm', 'Upgrading Bible %s of %s: "%s"\n' @@ -712,7 +702,7 @@ class BibleUpgradeForm(OpenLPWizard): 'Upgrading Bible %s of %s: "%s"\nFailed')) % (number + 1, max_bibles, name), self.progressBar.maximum() - self.progressBar.value()) - delete_database(temp_dir, clean_filename(name)) + # Remove old bibles. shutil.rmtree(temp_dir, True) def postWizard(self): diff --git a/openlp/plugins/bibles/lib/db.py b/openlp/plugins/bibles/lib/db.py index 7be2ca84a..f37b73ab0 100644 --- a/openlp/plugins/bibles/lib/db.py +++ b/openlp/plugins/bibles/lib/db.py @@ -169,7 +169,6 @@ class BibleDB(QtCore.QObject, Manager): self.wizard = None QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'openlp_stop_wizard'), self.stop_import) - print kwargs, (self.file, self.path) def stop_import(self): """ From 3f3ab71eeb032d5d5cca33cd62cc8aacb6746e5f Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 12 Aug 2011 15:38:05 +0200 Subject: [PATCH 03/22] more clean ups --- openlp/core/lib/eventreceiver.py | 2 +- openlp/plugins/bibles/forms/bibleupgradeform.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/openlp/core/lib/eventreceiver.py b/openlp/core/lib/eventreceiver.py index abd57721b..7c0115f89 100644 --- a/openlp/core/lib/eventreceiver.py +++ b/openlp/core/lib/eventreceiver.py @@ -247,7 +247,7 @@ class EventReceiver(QtCore.QObject): ``msg`` Defaults to *None*. The message to send with the event. """ - #log.debug(u'Event %s passed with payload %s' % (event, msg)) + log.debug(u'Event %s passed with payload %s' % (event, msg)) self.emit(QtCore.SIGNAL(event), msg) diff --git a/openlp/plugins/bibles/forms/bibleupgradeform.py b/openlp/plugins/bibles/forms/bibleupgradeform.py index 80b6ad910..a49d1a25a 100644 --- a/openlp/plugins/bibles/forms/bibleupgradeform.py +++ b/openlp/plugins/bibles/forms/bibleupgradeform.py @@ -618,7 +618,7 @@ class BibleUpgradeForm(OpenLPWizard): book_details = BiblesResourcesDB.get_book_by_id(book_ref_id) db_book = self.newbibles[number].create_book(book, book_ref_id, book_details[u'testament_id']) - # Try to import still downloaded verses + # Try to import already downloaded verses. oldbook = oldbible.get_book(book) if oldbook: verses = oldbible.get_verses(oldbook[u'id']) From 11f3a9e13a6733e78a4282585c0c4b4ad25d27e7 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 12 Aug 2011 16:54:16 +0200 Subject: [PATCH 04/22] removed code; moved clean_filename method to utils --- openlp/core/utils/__init__.py | 13 +++++++++++- .../plugins/bibles/forms/bibleupgradeform.py | 20 +------------------ openlp/plugins/bibles/lib/db.py | 17 ++-------------- openlp/plugins/songs/lib/openlyricsexport.py | 1 + 4 files changed, 16 insertions(+), 35 deletions(-) diff --git a/openlp/core/utils/__init__.py b/openlp/core/utils/__init__.py index b0a28962c..3612bb002 100644 --- a/openlp/core/utils/__init__.py +++ b/openlp/core/utils/__init__.py @@ -386,6 +386,17 @@ def split_filename(path): else: return os.path.split(path) +def clean_filename(filename): + """ + Removes invalid characters from the given ``filename``. + + ``filename`` + The "dirty" file name to clean. + """ + if not isinstance(filename, unicode): + filename = unicode(filename, u'utf-8') + return re.sub(r'[/\\?*|<>\[\]":<>+%]+', u'_', filename).strip(u'_') + def delete_file(file_path_name): """ Deletes a file from the system. @@ -492,4 +503,4 @@ from actions import ActionList __all__ = [u'AppLocation', u'get_application_version', u'check_latest_version', u'add_actions', u'get_filesystem_encoding', u'LanguageManager', u'ActionList', u'get_web_page', u'file_is_unicode', u'get_uno_command', - u'get_uno_instance', u'delete_file'] + u'get_uno_instance', u'delete_file', u'clean_filename'] diff --git a/openlp/plugins/bibles/forms/bibleupgradeform.py b/openlp/plugins/bibles/forms/bibleupgradeform.py index a49d1a25a..669af68b3 100644 --- a/openlp/plugins/bibles/forms/bibleupgradeform.py +++ b/openlp/plugins/bibles/forms/bibleupgradeform.py @@ -39,7 +39,7 @@ from openlp.core.lib.ui import UiStrings, critical_error_message_box from openlp.core.ui.wizard import OpenLPWizard, WizardStrings from openlp.core.utils import AppLocation from openlp.plugins.bibles.lib.db import BibleDB, BibleMeta, OldBibleDB, \ - BiblesResourcesDB, clean_filename + BiblesResourcesDB from openlp.plugins.bibles.lib.http import BSExtract, BGExtract, CWExtract log = logging.getLogger(__name__) @@ -432,24 +432,6 @@ class BibleUpgradeForm(OpenLPWizard): continue # Move bibles to temp dir. shutil.move(os.path.join(self.path, filename[0]), temp_dir) - version_name = unicode(self.versionNameEdit[number].text()) - if not version_name: - critical_error_message_box(UiStrings().EmptyField, - translate('BiblesPlugin.UpgradeWizardForm', - 'You need to specify a version name for your Bible.')) - self.versionNameEdit[number].setFocus() - return False - elif os.path.exists(os.path.join(self.path, - clean_filename(version_name))): - critical_error_message_box( - translate('BiblesPlugin.UpgradeWizardForm', - 'Bible Exists'), - translate('BiblesPlugin.UpgradeWizardForm', - 'This Bible already exists. Please upgrade ' - 'a different Bible, delete the existing one or ' - 'uncheck.')) - self.versionNameEdit[number].setFocus() - return False return True if self.currentPage() == self.progressPage: return True diff --git a/openlp/plugins/bibles/lib/db.py b/openlp/plugins/bibles/lib/db.py index f37b73ab0..e5962664b 100644 --- a/openlp/plugins/bibles/lib/db.py +++ b/openlp/plugins/bibles/lib/db.py @@ -39,7 +39,7 @@ from sqlalchemy.orm.exc import UnmappedClassError from openlp.core.lib import Receiver, translate from openlp.core.lib.db import BaseModel, init_db, Manager from openlp.core.lib.ui import critical_error_message_box -from openlp.core.utils import AppLocation +from openlp.core.utils import AppLocation, clean_filename log = logging.getLogger(__name__) @@ -63,19 +63,6 @@ class Verse(BaseModel): """ pass -def clean_filename(filename): - """ - Clean up the version name of the Bible and convert it into a valid - file name. - - ``filename`` - The "dirty" file name or version name. - """ - if not isinstance(filename, unicode): - filename = unicode(filename, u'utf-8') - filename = re.sub(r'[^\w]+', u'_', filename).strip(u'_') - return filename + u'.sqlite' - def init_schema(url): """ Setup a bible database connection and initialise the database schema. @@ -158,7 +145,7 @@ class BibleDB(QtCore.QObject, Manager): self.name = kwargs[u'name'] if not isinstance(self.name, unicode): self.name = unicode(self.name, u'utf-8') - self.file = clean_filename(self.name) + self.file = clean_filename(self.name) + u'.sqlite' if u'file' in kwargs: self.file = kwargs[u'file'] Manager.__init__(self, u'bibles', init_schema, self.file) diff --git a/openlp/plugins/songs/lib/openlyricsexport.py b/openlp/plugins/songs/lib/openlyricsexport.py index 6ba1fabe7..de86e1c05 100644 --- a/openlp/plugins/songs/lib/openlyricsexport.py +++ b/openlp/plugins/songs/lib/openlyricsexport.py @@ -35,6 +35,7 @@ import re from lxml import etree from openlp.core.lib import check_directory_exists, Receiver, translate +from openlp.core.utils import clean_filename from openlp.plugins.songs.lib import OpenLyrics log = logging.getLogger(__name__) From 6c96794af183979374aa699fb00ac4c5057920e9 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 12 Aug 2011 17:31:16 +0200 Subject: [PATCH 05/22] restore not upgraded bibles; clean ups --- .../plugins/bibles/forms/bibleupgradeform.py | 46 +++++++++++-------- openlp/plugins/songs/lib/openlyricsexport.py | 3 +- 2 files changed, 27 insertions(+), 22 deletions(-) diff --git a/openlp/plugins/bibles/forms/bibleupgradeform.py b/openlp/plugins/bibles/forms/bibleupgradeform.py index 669af68b3..f34236503 100644 --- a/openlp/plugins/bibles/forms/bibleupgradeform.py +++ b/openlp/plugins/bibles/forms/bibleupgradeform.py @@ -37,7 +37,7 @@ from openlp.core.lib import Receiver, SettingsManager, translate, \ check_directory_exists from openlp.core.lib.ui import UiStrings, critical_error_message_box from openlp.core.ui.wizard import OpenLPWizard, WizardStrings -from openlp.core.utils import AppLocation +from openlp.core.utils import AppLocation, delete_file from openlp.plugins.bibles.lib.db import BibleDB, BibleMeta, OldBibleDB, \ BiblesResourcesDB from openlp.plugins.bibles.lib.http import BSExtract, BGExtract, CWExtract @@ -254,23 +254,22 @@ class BibleUpgradeForm(OpenLPWizard): for number, filename in enumerate(self.files): bible = OldBibleDB(self.mediaItem, path=self.path, file=filename[0]) self.checkBox[number] = QtGui.QCheckBox(self.scrollAreaContents) - checkBoxName = u'checkBox[%d]' % number - self.checkBox[number].setObjectName(checkBoxName) + self.checkBox[number].setObjectName(u'checkBox[%d]' % number) self.checkBox[number].setText(bible.get_name()) self.checkBox[number].setCheckState(QtCore.Qt.Checked) self.formLayout.addWidget(self.checkBox[number]) self.verticalWidget[number] = QtGui.QWidget(self.scrollAreaContents) - verticalWidgetName = u'verticalWidget[%d]' % number - self.verticalWidget[number].setObjectName(verticalWidgetName) + self.verticalWidget[number].setObjectName( + u'verticalWidget[%d]' % number) self.horizontalLayout[number] = QtGui.QHBoxLayout( self.verticalWidget[number]) self.horizontalLayout[number].setContentsMargins(25, 0, 0, 0) - horizontalLayoutName = u'horizontalLayout[%d]' % number - self.horizontalLayout[number].setObjectName(horizontalLayoutName) + self.horizontalLayout[number].setObjectName( + u'horizontalLayout[%d]' % number) self.versionInfoPixmap[number] = QtGui.QLabel( self.verticalWidget[number]) - versionInfoPixmapName = u'versionInfoPixmap[%d]' % number - self.versionInfoPixmap[number].setObjectName(versionInfoPixmapName) + self.versionInfoPixmap[number].setObjectName( + u'versionInfoPixmap[%d]' % number) self.versionInfoPixmap[number].setPixmap(QtGui.QPixmap( u':/bibles/bibles_upgrade_alert.png')) self.versionInfoPixmap[number].setAlignment(QtCore.Qt.AlignRight) @@ -278,8 +277,8 @@ class BibleUpgradeForm(OpenLPWizard): self.versionInfoPixmap[number]) self.versionInfoLabel[number] = QtGui.QLabel( self.verticalWidget[number]) - versionInfoLabelName = u'versionInfoLabel[%d]' % number - self.versionInfoLabel[number].setObjectName(versionInfoLabelName) + self.versionInfoLabel[number].setObjectName( + u'versionInfoLabel[%d]' % number) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(0) @@ -291,14 +290,12 @@ class BibleUpgradeForm(OpenLPWizard): self.versionInfoLabel[number]) self.formLayout.addWidget(self.verticalWidget[number]) self.formWidget[number] = QtGui.QWidget(self.scrollAreaContents) - formWidgetName = u'formWidget[%d]' % number - self.formWidget[number].setObjectName(formWidgetName) + self.formWidget[number].setObjectName(u'formWidget[%d]' % number) self.formLayoutAttention[number] = QtGui.QFormLayout( self.formWidget[number]) self.formLayoutAttention[number].setContentsMargins(25, 0, 0, 5) - formLayoutAttentionName = u'formLayoutAttention[%d]' % number self.formLayoutAttention[number].setObjectName( - formLayoutAttentionName) + u'formLayoutAttention[%d]' % number) self.versionNameLabel[number] = QtGui.QLabel( self.formWidget[number]) self.versionNameLabel[number].setObjectName(u'VersionNameLabel') @@ -431,7 +428,10 @@ class BibleUpgradeForm(OpenLPWizard): if not self.checkBox[number].checkState() == QtCore.Qt.Checked: continue # Move bibles to temp dir. - shutil.move(os.path.join(self.path, filename[0]), temp_dir) + if not os.path.exists(os.path.join(temp_dir, filename[0])): + shutil.move(os.path.join(self.path, filename[0]), temp_dir) + else: + delete_file(os.path.join(self.path, filename[0])) return True if self.currentPage() == self.progressPage: return True @@ -684,20 +684,24 @@ class BibleUpgradeForm(OpenLPWizard): 'Upgrading Bible %s of %s: "%s"\nFailed')) % (number + 1, max_bibles, name), self.progressBar.maximum() - self.progressBar.value()) - # Remove old bibles. - shutil.rmtree(temp_dir, True) def postWizard(self): """ Clean up the UI after the import has finished. """ + temp_dir = os.path.join(gettempdir(), u'openlp') successful_import = 0 failed_import = 0 for number, filename in enumerate(self.files): if self.success.has_key(number) and self.success[number]: successful_import += 1 - elif self.checkBox[number].checkState() == QtCore.Qt.Checked: - failed_import += 1 + else: + # Delete upgraded (but not complete, corrupted, ...) bible. + delete_file(os.path.join(self.path, filename[0])) + # Copy not upgraded bible back. + shutil.move(os.path.join(temp_dir, filename[0]), self.path) + if self.checkBox[number].checkState() == QtCore.Qt.Checked: + failed_import += 1 if failed_import > 0: failed_import_text = unicode(translate( 'BiblesPlugin.UpgradeWizardForm', @@ -720,4 +724,6 @@ class BibleUpgradeForm(OpenLPWizard): else: self.progressLabel.setText(translate( 'BiblesPlugin.UpgradeWizardForm', 'Upgrade failed.')) + # Remove old bibles. + shutil.rmtree(temp_dir, True) OpenLPWizard.postWizard(self) diff --git a/openlp/plugins/songs/lib/openlyricsexport.py b/openlp/plugins/songs/lib/openlyricsexport.py index de86e1c05..ec5677ea4 100644 --- a/openlp/plugins/songs/lib/openlyricsexport.py +++ b/openlp/plugins/songs/lib/openlyricsexport.py @@ -73,8 +73,7 @@ class OpenLyricsExport(object): tree = etree.ElementTree(etree.fromstring(xml)) filename = u'%s (%s)' % (song.title, u', '.join([author.display_name for author in song.authors])) - filename = re.sub( - r'[/\\?*|<>\[\]":<>+%]+', u'_', filename).strip(u'_') + filename = clean_filename(filename) # Ensure the filename isn't too long for some filesystems filename = u'%s.xml' % filename[0:250 - len(self.save_path)] # Pass a file object, because lxml does not cope with some special From b72b53889372b8f5c96cbbc08a20a7e3b4bc913b Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sat, 13 Aug 2011 12:14:20 +0200 Subject: [PATCH 06/22] removed variable; hopefully fixed windows crahes --- .../plugins/bibles/forms/bibleupgradeform.py | 40 ++++++++++--------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/openlp/plugins/bibles/forms/bibleupgradeform.py b/openlp/plugins/bibles/forms/bibleupgradeform.py index f34236503..e0ebc46fc 100644 --- a/openlp/plugins/bibles/forms/bibleupgradeform.py +++ b/openlp/plugins/bibles/forms/bibleupgradeform.py @@ -491,16 +491,19 @@ class BibleUpgradeForm(OpenLPWizard): if self.checkBox[number].checkState() == QtCore.Qt.Checked: max_bibles += 1 temp_dir = os.path.join(gettempdir(), u'openlp') + oldBible = None for number, filename in enumerate(self.files): + # Close the previous bible's connection. + if oldBible is not None: + oldBible.close_connection() if self.stop_import_flag: - bible_failed = True + self.success[number] = False break - bible_failed = False - self.success[number] = False + self.success[number] = True if not self.checkBox[number].checkState() == QtCore.Qt.Checked: continue self.progressBar.reset() - oldbible = OldBibleDB(self.mediaItem, path=temp_dir, + oldBible = OldBibleDB(self.mediaItem, path=temp_dir, file=filename[0]) name = filename[1] if name is None: @@ -519,7 +522,7 @@ class BibleUpgradeForm(OpenLPWizard): self.newbibles[number] = BibleDB(self.mediaItem, path=self.path, name=name, file=filename[0]) self.newbibles[number].register(self.plugin.upgrade_wizard) - metadata = oldbible.get_metadata() + metadata = oldBible.get_metadata() webbible = False meta_data = {} for meta in metadata: @@ -580,7 +583,7 @@ class BibleUpgradeForm(OpenLPWizard): self.progressBar.setMaximum(len(books)) for book in books: if self.stop_import_flag: - bible_failed = True + self.success[number] = False break self.incrementProgressBar(unicode(translate( 'BiblesPlugin.UpgradeWizardForm', @@ -595,22 +598,22 @@ class BibleUpgradeForm(OpenLPWizard): meta_data[u'download source'], meta_data[u'download name'])) del self.newbibles[number] - bible_failed = True + self.success[number] = False break book_details = BiblesResourcesDB.get_book_by_id(book_ref_id) db_book = self.newbibles[number].create_book(book, book_ref_id, book_details[u'testament_id']) # Try to import already downloaded verses. - oldbook = oldbible.get_book(book) + oldbook = oldBible.get_book(book) if oldbook: - verses = oldbible.get_verses(oldbook[u'id']) + verses = oldBible.get_verses(oldbook[u'id']) if not verses: log.warn(u'No verses found to import for book ' u'"%s"', book) continue for verse in verses: if self.stop_import_flag: - bible_failed = True + self.success[number] = False break self.newbibles[number].create_verse(db_book.id, int(verse[u'chapter']), @@ -631,11 +634,11 @@ class BibleUpgradeForm(OpenLPWizard): (number + 1, max_bibles, name), self.progressBar.maximum() - self.progressBar.value()) continue - books = oldbible.get_books() + books = oldBible.get_books() self.progressBar.setMaximum(len(books)) for book in books: if self.stop_import_flag: - bible_failed = True + self.success[number] = False break self.incrementProgressBar(unicode(translate( 'BiblesPlugin.UpgradeWizardForm', @@ -649,12 +652,12 @@ class BibleUpgradeForm(OpenLPWizard): log.warn(u'Upgrading books from %s " '\ 'failed - aborted by user' % name) del self.newbibles[number] - bible_failed = True + self.success[number] = False break book_details = BiblesResourcesDB.get_book_by_id(book_ref_id) db_book = self.newbibles[number].create_book(book[u'name'], book_ref_id, book_details[u'testament_id']) - verses = oldbible.get_verses(book[u'id']) + verses = oldBible.get_verses(book[u'id']) if not verses: log.warn(u'No verses found to import for book ' u'"%s"', book[u'name']) @@ -662,28 +665,29 @@ class BibleUpgradeForm(OpenLPWizard): continue for verse in verses: if self.stop_import_flag: - bible_failed = True + self.success[number] = False break self.newbibles[number].create_verse(db_book.id, int(verse[u'chapter']), int(verse[u'verse']), unicode(verse[u'text'])) Receiver.send_message(u'openlp_process_events') self.newbibles[number].session.commit() - if not bible_failed: + if self.success[number]: self.newbibles[number].create_meta(u'Version', name) - oldbible.close_connection() self.incrementProgressBar(unicode(translate( 'BiblesPlugin.UpgradeWizardForm', 'Upgrading Bible %s of %s: "%s"\n' 'Complete')) % (number + 1, max_bibles, name)) - self.success[number] = True else: self.incrementProgressBar(unicode(translate( 'BiblesPlugin.UpgradeWizardForm', 'Upgrading Bible %s of %s: "%s"\nFailed')) % (number + 1, max_bibles, name), self.progressBar.maximum() - self.progressBar.value()) + # Close the last bible's connection. + if oldBible is not None: + oldBible.close_connection() def postWizard(self): """ From 259b57badde3ea7571a8b63f8c483ae9add7c7d2 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sat, 13 Aug 2011 12:41:21 +0200 Subject: [PATCH 07/22] added try/except --- openlp/plugins/bibles/forms/bibleupgradeform.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/openlp/plugins/bibles/forms/bibleupgradeform.py b/openlp/plugins/bibles/forms/bibleupgradeform.py index e0ebc46fc..d78124c6c 100644 --- a/openlp/plugins/bibles/forms/bibleupgradeform.py +++ b/openlp/plugins/bibles/forms/bibleupgradeform.py @@ -703,7 +703,12 @@ class BibleUpgradeForm(OpenLPWizard): # Delete upgraded (but not complete, corrupted, ...) bible. delete_file(os.path.join(self.path, filename[0])) # Copy not upgraded bible back. - shutil.move(os.path.join(temp_dir, filename[0]), self.path) + try: + shutil.move(os.path.join(temp_dir, filename[0]), self.path) + except shutil.Error: + # We can ignore any error, because the temp directory is + # will be deleted later. + pass if self.checkBox[number].checkState() == QtCore.Qt.Checked: failed_import += 1 if failed_import > 0: @@ -728,6 +733,6 @@ class BibleUpgradeForm(OpenLPWizard): else: self.progressLabel.setText(translate( 'BiblesPlugin.UpgradeWizardForm', 'Upgrade failed.')) - # Remove old bibles. + # Remove temp directory. shutil.rmtree(temp_dir, True) OpenLPWizard.postWizard(self) From 8a926b01e1da1a27894edfcafa649662381d38e5 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sat, 13 Aug 2011 12:49:53 +0200 Subject: [PATCH 08/22] Auto-completer does not work immediately after importing/upgrading a bible (bug #825181) Fixes: https://launchpad.net/bugs/825181 --- openlp/plugins/bibles/lib/mediaitem.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 82ee4430c..e47375298 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -395,6 +395,7 @@ class BibleMediaItem(MediaManagerItem): log.debug(u'Reloading Bibles') self.plugin.manager.reload_bibles() self.loadBibles() + self.updateAutoCompleter() def initialiseAdvancedBible(self, bible): """ From 17e397ffa8dc2269f8217c3fab753ae698dc895f Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sun, 14 Aug 2011 15:05:39 +0200 Subject: [PATCH 09/22] added spellchecker to service notes dialog (bug #825979); escape texts in various places (bug #825983) Fixes: https://launchpad.net/bugs/825983, https://launchpad.net/bugs/825979 --- openlp/core/lib/spelltextedit.py | 20 +++++++++++--------- openlp/core/ui/printservicedialog.py | 2 +- openlp/core/ui/printserviceform.py | 21 ++++++++++++--------- openlp/core/ui/servicemanager.py | 6 +++++- openlp/core/ui/servicenoteform.py | 4 ++-- 5 files changed, 31 insertions(+), 22 deletions(-) diff --git a/openlp/core/lib/spelltextedit.py b/openlp/core/lib/spelltextedit.py index b0bb61e92..e9b5e64f7 100644 --- a/openlp/core/lib/spelltextedit.py +++ b/openlp/core/lib/spelltextedit.py @@ -48,9 +48,10 @@ class SpellTextEdit(QtGui.QPlainTextEdit): """ Spell checking widget based on QPlanTextEdit. """ - def __init__(self, *args): + def __init__(self, parent=None, formatting_tags_allowed=True): global ENCHANT_AVAILABLE - QtGui.QPlainTextEdit.__init__(self, *args) + QtGui.QPlainTextEdit.__init__(self, parent) + self.formattingTagsAllowed = formatting_tags_allowed # Default dictionary based on the current locale. if ENCHANT_AVAILABLE: try: @@ -110,16 +111,17 @@ class SpellTextEdit(QtGui.QPlainTextEdit): spell_menu.addAction(action) # Only add the spelling suggests to the menu if there are # suggestions. - if len(spell_menu.actions()): + if spell_menu.actions(): popupMenu.insertMenu(popupMenu.actions()[0], spell_menu) tagMenu = QtGui.QMenu(translate('OpenLP.SpellTextEdit', 'Formatting Tags')) - for html in FormattingTags.get_html_tags(): - action = SpellAction(html[u'desc'], tagMenu) - action.correct.connect(self.htmlTag) - tagMenu.addAction(action) - popupMenu.insertSeparator(popupMenu.actions()[0]) - popupMenu.insertMenu(popupMenu.actions()[0], tagMenu) + if self.formattingTagsAllowed: + for html in FormattingTags.get_html_tags(): + action = SpellAction(html[u'desc'], tagMenu) + action.correct.connect(self.htmlTag) + tagMenu.addAction(action) + popupMenu.insertSeparator(popupMenu.actions()[0]) + popupMenu.insertMenu(popupMenu.actions()[0], tagMenu) popupMenu.exec_(event.globalPos()) def setLanguage(self, action): diff --git a/openlp/core/ui/printservicedialog.py b/openlp/core/ui/printservicedialog.py index b0065df99..8287ef02a 100644 --- a/openlp/core/ui/printservicedialog.py +++ b/openlp/core/ui/printservicedialog.py @@ -108,7 +108,7 @@ class Ui_PrintServiceDialog(object): self.footerLabel = QtGui.QLabel(self.optionsWidget) self.footerLabel.setObjectName(u'footerLabel') self.optionsLayout.addWidget(self.footerLabel) - self.footerTextEdit = SpellTextEdit(self.optionsWidget) + self.footerTextEdit = SpellTextEdit(self.optionsWidget, False) self.footerTextEdit.setObjectName(u'footerTextEdit') self.optionsLayout.addWidget(self.footerTextEdit) self.optionsGroupBox = QtGui.QGroupBox() diff --git a/openlp/core/ui/printserviceform.py b/openlp/core/ui/printserviceform.py index f50237619..55fc6eb3c 100644 --- a/openlp/core/ui/printserviceform.py +++ b/openlp/core/ui/printserviceform.py @@ -24,6 +24,7 @@ # with this program; if not, write to the Free Software Foundation, Inc., 59 # # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### +import cgi import datetime import os @@ -183,7 +184,7 @@ class PrintServiceForm(QtGui.QDialog, Ui_PrintServiceDialog): self._addElement(u'style', custom_css, html_data.head, attribute=(u'type', u'text/css')) self._addElement(u'body', parent=html_data) - self._addElement(u'h1', unicode(self.titleLineEdit.text()), + self._addElement(u'h1', cgi.escape(unicode(self.titleLineEdit.text())), html_data.body, classId=u'serviceTitle') for index, item in enumerate(self.serviceManager.serviceItems): self._addPreviewItem(html_data.body, item[u'service_item'], index) @@ -193,8 +194,9 @@ class PrintServiceForm(QtGui.QDialog, Ui_PrintServiceDialog): classId=u'customNotes') self._addElement(u'span', translate('OpenLP.ServiceManager', 'Custom Service Notes: '), div, classId=u'customNotesTitle') - self._addElement(u'span', self.footerTextEdit.toPlainText(), div, - classId=u'customNotesText') + self._addElement(u'span', + cgi.escape(self.footerTextEdit.toPlainText()), + div, classId=u'customNotesText') self.document.setHtml(html.tostring(html_data)) self.previewWidget.updatePreview() @@ -204,8 +206,8 @@ class PrintServiceForm(QtGui.QDialog, Ui_PrintServiceDialog): item_title = self._addElement(u'h2', parent=div, classId=u'itemTitle') self._addElement(u'img', parent=item_title, attribute=(u'src', item.icon)) - self._addElement(u'span', u' ' + item.get_display_title(), - item_title) + self._addElement(u'span', + u' ' + cgi.escape(item.get_display_title()), item_title) if self.slideTextCheckBox.isChecked(): # Add the text of the service item. if item.is_text(): @@ -230,8 +232,9 @@ class PrintServiceForm(QtGui.QDialog, Ui_PrintServiceDialog): foot_text = item.foot_text foot_text = foot_text.partition(u'
')[2] if foot_text: - foot = self._addElement(u'div', foot_text, parent=div, - classId=u'itemFooter') + foot_text = cgi.escape(foot_text.replace(u'
', u'\n')) + self._addElement(u'div', foot_text.replace(u'\n', u'
'), + parent=div, classId=u'itemFooter') # Add service items' notes. if self.notesCheckBox.isChecked(): if item.notes: @@ -239,8 +242,8 @@ class PrintServiceForm(QtGui.QDialog, Ui_PrintServiceDialog): self._addElement(u'span', translate('OpenLP.ServiceManager', 'Notes: '), p, classId=u'itemNotesTitle') - notes = self._addElement(u'span', - item.notes.replace(u'\n', u'
'), p, + self._addElement(u'span', + cgi.escape(unicode(item.notes)).replace(u'\n', u'
'), p, classId=u'itemNotesText') # Add play length of media files. if item.is_media() and self.metaDataCheckBox.isChecked(): diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 0ef45af12..3ab2e9239 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -24,6 +24,7 @@ # with this program; if not, write to the Free Software Foundation, Inc., 59 # # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### +import cgi import cPickle import logging import os @@ -719,6 +720,9 @@ class ServiceManager(QtGui.QWidget): self.setModified() def onStartTimeForm(self): + """ + Opens a dialog to type in service item notes. + """ item = self.findServiceItem()[0] self.startTimeForm.item = self.serviceItems[item] if self.startTimeForm.exec_(): @@ -957,7 +961,7 @@ class ServiceManager(QtGui.QWidget): if serviceitem.notes: tips.append(u'%s: %s' % (unicode(translate('OpenLP.ServiceManager', 'Notes')), - unicode(serviceitem.notes))) + cgi.escape(unicode(serviceitem.notes)))) if item[u'service_item'] \ .is_capable(ItemCapabilities.AllowsVariableStartTime): tips.append(item[u'service_item'].get_media_time()) diff --git a/openlp/core/ui/servicenoteform.py b/openlp/core/ui/servicenoteform.py index 3bc55e242..ddfcb3381 100644 --- a/openlp/core/ui/servicenoteform.py +++ b/openlp/core/ui/servicenoteform.py @@ -27,7 +27,7 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import translate +from openlp.core.lib import translate, SpellTextEdit from openlp.core.lib.ui import create_accept_reject_button_box class ServiceNoteForm(QtGui.QDialog): @@ -52,7 +52,7 @@ class ServiceNoteForm(QtGui.QDialog): self.dialogLayout.setContentsMargins(8, 8, 8, 8) self.dialogLayout.setSpacing(8) self.dialogLayout.setObjectName(u'verticalLayout') - self.textEdit = QtGui.QTextEdit(self) + self.textEdit = SpellTextEdit(self, False) self.textEdit.setObjectName(u'textEdit') self.dialogLayout.addWidget(self.textEdit) self.dialogLayout.addWidget(create_accept_reject_button_box(self)) From 41b3bde91933c780be06f9b0e79bf000b2a6b9ba Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sun, 14 Aug 2011 15:11:41 +0200 Subject: [PATCH 10/22] changed underscore varialbe to camelCase --- openlp/core/lib/spelltextedit.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openlp/core/lib/spelltextedit.py b/openlp/core/lib/spelltextedit.py index e9b5e64f7..25e4e24ae 100644 --- a/openlp/core/lib/spelltextedit.py +++ b/openlp/core/lib/spelltextedit.py @@ -48,10 +48,10 @@ class SpellTextEdit(QtGui.QPlainTextEdit): """ Spell checking widget based on QPlanTextEdit. """ - def __init__(self, parent=None, formatting_tags_allowed=True): + def __init__(self, parent=None, formattingTagsAllowed=True): global ENCHANT_AVAILABLE QtGui.QPlainTextEdit.__init__(self, parent) - self.formattingTagsAllowed = formatting_tags_allowed + self.formattingTagsAllowed = formattingTagsAllowed # Default dictionary based on the current locale. if ENCHANT_AVAILABLE: try: From 924482ac517f08a994de63c6f697d9fee0208660 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sun, 14 Aug 2011 15:49:03 +0200 Subject: [PATCH 11/22] prevent closing an already closed database --- openlp/plugins/bibles/forms/bibleupgradeform.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openlp/plugins/bibles/forms/bibleupgradeform.py b/openlp/plugins/bibles/forms/bibleupgradeform.py index d78124c6c..b5bc6ed3d 100644 --- a/openlp/plugins/bibles/forms/bibleupgradeform.py +++ b/openlp/plugins/bibles/forms/bibleupgradeform.py @@ -496,6 +496,9 @@ class BibleUpgradeForm(OpenLPWizard): # Close the previous bible's connection. if oldBible is not None: oldBible.close_connection() + # Set to None to make obvious that we have already closed the + # database. + oldBible = None if self.stop_import_flag: self.success[number] = False break From 928467847e62f890f3d0739ef0b1e9b7a2277ad6 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sun, 14 Aug 2011 16:35:36 +0200 Subject: [PATCH 12/22] do not call postWizard twice --- openlp/plugins/bibles/forms/bibleupgradeform.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/openlp/plugins/bibles/forms/bibleupgradeform.py b/openlp/plugins/bibles/forms/bibleupgradeform.py index b5bc6ed3d..ca5a16866 100644 --- a/openlp/plugins/bibles/forms/bibleupgradeform.py +++ b/openlp/plugins/bibles/forms/bibleupgradeform.py @@ -113,8 +113,6 @@ class BibleUpgradeForm(OpenLPWizard): self.stop_import_flag = True if not self.currentPage() == self.progressPage: self.done(QtGui.QDialog.Rejected) - else: - self.postWizard() def onCurrentIdChanged(self, pageId): """ From c70ac5e656ea6115e046378789f5427bc1d3db6b Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Mon, 15 Aug 2011 08:31:36 +0200 Subject: [PATCH 13/22] create temp directory name in constructor --- .../plugins/bibles/forms/bibleupgradeform.py | 22 +++++++------------ 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/openlp/plugins/bibles/forms/bibleupgradeform.py b/openlp/plugins/bibles/forms/bibleupgradeform.py index ca5a16866..9f5d62d0f 100644 --- a/openlp/plugins/bibles/forms/bibleupgradeform.py +++ b/openlp/plugins/bibles/forms/bibleupgradeform.py @@ -70,6 +70,7 @@ class BibleUpgradeForm(OpenLPWizard): self.suffix = u'.sqlite' self.settingsSection = u'bibles' self.path = AppLocation.get_section_data_path(self.settingsSection) + self.temp_dir = os.path.join(gettempdir(), u'openlp') self.files = self.manager.old_bible_databases self.success = {} self.newbibles = {} @@ -420,14 +421,14 @@ class BibleUpgradeForm(OpenLPWizard): return False return True elif self.currentPage() == self.selectPage: - temp_dir = os.path.join(gettempdir(), u'openlp') - check_directory_exists(temp_dir) + check_directory_exists(self.temp_dir) for number, filename in enumerate(self.files): if not self.checkBox[number].checkState() == QtCore.Qt.Checked: continue # Move bibles to temp dir. - if not os.path.exists(os.path.join(temp_dir, filename[0])): - shutil.move(os.path.join(self.path, filename[0]), temp_dir) + if not os.path.exists(os.path.join(self.temp_dir, filename[0])): + shutil.move( + os.path.join(self.path, filename[0]), self.temp_dir) else: delete_file(os.path.join(self.path, filename[0])) return True @@ -488,7 +489,6 @@ class BibleUpgradeForm(OpenLPWizard): for number, file in enumerate(self.files): if self.checkBox[number].checkState() == QtCore.Qt.Checked: max_bibles += 1 - temp_dir = os.path.join(gettempdir(), u'openlp') oldBible = None for number, filename in enumerate(self.files): # Close the previous bible's connection. @@ -504,7 +504,7 @@ class BibleUpgradeForm(OpenLPWizard): if not self.checkBox[number].checkState() == QtCore.Qt.Checked: continue self.progressBar.reset() - oldBible = OldBibleDB(self.mediaItem, path=temp_dir, + oldBible = OldBibleDB(self.mediaItem, path=self.temp_dir, file=filename[0]) name = filename[1] if name is None: @@ -694,7 +694,6 @@ class BibleUpgradeForm(OpenLPWizard): """ Clean up the UI after the import has finished. """ - temp_dir = os.path.join(gettempdir(), u'openlp') successful_import = 0 failed_import = 0 for number, filename in enumerate(self.files): @@ -704,12 +703,7 @@ class BibleUpgradeForm(OpenLPWizard): # Delete upgraded (but not complete, corrupted, ...) bible. delete_file(os.path.join(self.path, filename[0])) # Copy not upgraded bible back. - try: - shutil.move(os.path.join(temp_dir, filename[0]), self.path) - except shutil.Error: - # We can ignore any error, because the temp directory is - # will be deleted later. - pass + shutil.move(os.path.join(self.temp_dir, filename[0]), self.path) if self.checkBox[number].checkState() == QtCore.Qt.Checked: failed_import += 1 if failed_import > 0: @@ -735,5 +729,5 @@ class BibleUpgradeForm(OpenLPWizard): self.progressLabel.setText(translate( 'BiblesPlugin.UpgradeWizardForm', 'Upgrade failed.')) # Remove temp directory. - shutil.rmtree(temp_dir, True) + shutil.rmtree(self.temp_dir, True) OpenLPWizard.postWizard(self) From da1db9994dfa9ec28d0773efaefb074c0d5ada53 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Mon, 15 Aug 2011 09:35:37 +0200 Subject: [PATCH 14/22] removed not needed code --- .../plugins/bibles/forms/bibleupgradeform.py | 108 ------------------ 1 file changed, 108 deletions(-) diff --git a/openlp/plugins/bibles/forms/bibleupgradeform.py b/openlp/plugins/bibles/forms/bibleupgradeform.py index 9f5d62d0f..af046c938 100644 --- a/openlp/plugins/bibles/forms/bibleupgradeform.py +++ b/openlp/plugins/bibles/forms/bibleupgradeform.py @@ -92,20 +92,6 @@ class BibleUpgradeForm(OpenLPWizard): log.debug(u'Stopping import') self.stop_import_flag = True - def onCheckBoxIndexChanged(self, index): - """ - Show/Hide warnings if CheckBox state has changed - """ - for number, filename in enumerate(self.files): - if not self.checkBox[number].checkState() == QtCore.Qt.Checked: - self.verticalWidget[number].hide() - self.formWidget[number].hide() - else: - version_name = unicode(self.versionNameEdit[number].text()) - if self.manager.exists(version_name): - self.verticalWidget[number].show() - self.formWidget[number].show() - def reject(self): """ Stop the wizard on cancel button, close button or ESC key. @@ -242,14 +228,6 @@ class BibleUpgradeForm(OpenLPWizard): Add the content to the scrollArea. """ self.checkBox = {} - self.versionNameEdit = {} - self.versionNameLabel = {} - self.versionInfoLabel = {} - self.versionInfoPixmap = {} - self.verticalWidget = {} - self.horizontalLayout = {} - self.formWidget = {} - self.formLayoutAttention = {} for number, filename in enumerate(self.files): bible = OldBibleDB(self.mediaItem, path=self.path, file=filename[0]) self.checkBox[number] = QtGui.QCheckBox(self.scrollAreaContents) @@ -257,60 +235,6 @@ class BibleUpgradeForm(OpenLPWizard): self.checkBox[number].setText(bible.get_name()) self.checkBox[number].setCheckState(QtCore.Qt.Checked) self.formLayout.addWidget(self.checkBox[number]) - self.verticalWidget[number] = QtGui.QWidget(self.scrollAreaContents) - self.verticalWidget[number].setObjectName( - u'verticalWidget[%d]' % number) - self.horizontalLayout[number] = QtGui.QHBoxLayout( - self.verticalWidget[number]) - self.horizontalLayout[number].setContentsMargins(25, 0, 0, 0) - self.horizontalLayout[number].setObjectName( - u'horizontalLayout[%d]' % number) - self.versionInfoPixmap[number] = QtGui.QLabel( - self.verticalWidget[number]) - self.versionInfoPixmap[number].setObjectName( - u'versionInfoPixmap[%d]' % number) - self.versionInfoPixmap[number].setPixmap(QtGui.QPixmap( - u':/bibles/bibles_upgrade_alert.png')) - self.versionInfoPixmap[number].setAlignment(QtCore.Qt.AlignRight) - self.horizontalLayout[number].addWidget( - self.versionInfoPixmap[number]) - self.versionInfoLabel[number] = QtGui.QLabel( - self.verticalWidget[number]) - self.versionInfoLabel[number].setObjectName( - u'versionInfoLabel[%d]' % number) - sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, - QtGui.QSizePolicy.Preferred) - sizePolicy.setHorizontalStretch(0) - sizePolicy.setVerticalStretch(0) - sizePolicy.setHeightForWidth( - self.versionInfoLabel[number].sizePolicy().hasHeightForWidth()) - self.versionInfoLabel[number].setSizePolicy(sizePolicy) - self.horizontalLayout[number].addWidget( - self.versionInfoLabel[number]) - self.formLayout.addWidget(self.verticalWidget[number]) - self.formWidget[number] = QtGui.QWidget(self.scrollAreaContents) - self.formWidget[number].setObjectName(u'formWidget[%d]' % number) - self.formLayoutAttention[number] = QtGui.QFormLayout( - self.formWidget[number]) - self.formLayoutAttention[number].setContentsMargins(25, 0, 0, 5) - self.formLayoutAttention[number].setObjectName( - u'formLayoutAttention[%d]' % number) - self.versionNameLabel[number] = QtGui.QLabel( - self.formWidget[number]) - self.versionNameLabel[number].setObjectName(u'VersionNameLabel') - self.formLayoutAttention[number].setWidget(0, - QtGui.QFormLayout.LabelRole, self.versionNameLabel[number]) - self.versionNameEdit[number] = QtGui.QLineEdit( - self.formWidget[number]) - self.versionNameEdit[number].setObjectName(u'VersionNameEdit') - self.formLayoutAttention[number].setWidget(0, - QtGui.QFormLayout.FieldRole, self.versionNameEdit[number]) - self.versionNameEdit[number].setText(bible.get_name()) - self.formLayout.addWidget(self.formWidget[number]) - # Set up the Signal for the checkbox. - QtCore.QObject.connect(self.checkBox[number], - QtCore.SIGNAL(u'stateChanged(int)'), - self.onCheckBoxIndexChanged) self.spacerItem = QtGui.QSpacerItem(20, 5, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.formLayout.addItem(self.spacerItem) @@ -323,23 +247,6 @@ class BibleUpgradeForm(OpenLPWizard): for number, filename in enumerate(self.files): self.formLayout.removeWidget(self.checkBox[number]) self.checkBox[number].setParent(None) - self.horizontalLayout[number].removeWidget( - self.versionInfoPixmap[number]) - self.versionInfoPixmap[number].setParent(None) - self.horizontalLayout[number].removeWidget( - self.versionInfoLabel[number]) - self.versionInfoLabel[number].setParent(None) - self.formLayout.removeWidget(self.verticalWidget[number]) - self.verticalWidget[number].setParent(None) - self.formLayoutAttention[number].removeWidget( - self.versionNameLabel[number]) - self.versionNameLabel[number].setParent(None) - self.formLayoutAttention[number].removeWidget( - self.versionNameEdit[number]) - self.formLayoutAttention[number].deleteLater() - self.versionNameEdit[number].setParent(None) - self.formLayout.removeWidget(self.formWidget[number]) - self.formWidget[number].setParent(None) self.formLayout.removeItem(self.spacerItem) def retranslateUi(self): @@ -381,12 +288,6 @@ class BibleUpgradeForm(OpenLPWizard): self.selectPage.setSubTitle( translate('BiblesPlugin.UpgradeWizardForm', 'Please select the Bibles to upgrade')) - for number, bible in enumerate(self.files): - self.versionNameLabel[number].setText( - translate('BiblesPlugin.UpgradeWizardForm', 'Version name:')) - self.versionInfoLabel[number].setText( - translate('BiblesPlugin.UpgradeWizardForm', 'This ' - 'Bible still exists. Please change the name or uncheck it.')) self.progressPage.setTitle(translate('BiblesPlugin.UpgradeWizardForm', 'Upgrading')) self.progressPage.setSubTitle( @@ -451,13 +352,6 @@ class BibleUpgradeForm(OpenLPWizard): self.retranslateUi() for number, filename in enumerate(self.files): self.checkBox[number].setCheckState(QtCore.Qt.Checked) - oldname = filename[1] - if self.manager.exists(oldname): - self.verticalWidget[number].show() - self.formWidget[number].show() - else: - self.verticalWidget[number].hide() - self.formWidget[number].hide() self.progressBar.show() self.restart() self.finishButton.setVisible(False) @@ -518,8 +412,6 @@ class BibleUpgradeForm(OpenLPWizard): 'BiblesPlugin.UpgradeWizardForm', 'Upgrading Bible %s of %s: "%s"\nUpgrading ...')) % (number + 1, max_bibles, name)) - if os.path.exists(os.path.join(self.path, filename[0])): - name = unicode(self.versionNameEdit[number].text()) self.newbibles[number] = BibleDB(self.mediaItem, path=self.path, name=name, file=filename[0]) self.newbibles[number].register(self.plugin.upgrade_wizard) From 5607f025f68ce803ef20213bbac0308694c0aba3 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Mon, 15 Aug 2011 10:53:51 +0200 Subject: [PATCH 15/22] fixed bug #826483 Fixes: https://launchpad.net/bugs/826483 --- .../bibles/resources/bibles_resources.sqlite | Bin 104448 -> 104448 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/openlp/plugins/bibles/resources/bibles_resources.sqlite b/openlp/plugins/bibles/resources/bibles_resources.sqlite index 3235c95629f3d00cde01ef172cf7727e3edd4670..c0fa931d1bb88b6e6c0224feff9cbc5aa61c7312 100644 GIT binary patch delta 34 qcmZqJz}B#VZGtr8 Date: Mon, 15 Aug 2011 10:55:36 +0200 Subject: [PATCH 16/22] fix failure dectection --- .../plugins/bibles/forms/bibleupgradeform.py | 29 +++++++++++-------- openlp/plugins/bibles/forms/languageform.py | 11 ++++--- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/openlp/plugins/bibles/forms/bibleupgradeform.py b/openlp/plugins/bibles/forms/bibleupgradeform.py index af046c938..67ef1aba4 100644 --- a/openlp/plugins/bibles/forms/bibleupgradeform.py +++ b/openlp/plugins/bibles/forms/bibleupgradeform.py @@ -394,8 +394,8 @@ class BibleUpgradeForm(OpenLPWizard): if self.stop_import_flag: self.success[number] = False break - self.success[number] = True if not self.checkBox[number].checkState() == QtCore.Qt.Checked: + self.success[number] = False continue self.progressBar.reset() oldBible = OldBibleDB(self.mediaItem, path=self.temp_dir, @@ -407,6 +407,7 @@ class BibleUpgradeForm(OpenLPWizard): 'Upgrading Bible %s of %s: "%s"\nFailed')) % (number + 1, max_bibles, name), self.progressBar.maximum() - self.progressBar.value()) + self.success[number] = False continue self.progressLabel.setText(unicode(translate( 'BiblesPlugin.UpgradeWizardForm', @@ -454,6 +455,7 @@ class BibleUpgradeForm(OpenLPWizard): 'Upgrading Bible %s of %s: "%s"\nFailed')) % (number + 1, max_bibles, name), self.progressBar.maximum() - self.progressBar.value()) + self.success[number] = False continue bible = BiblesResourcesDB.get_webbible( meta_data[u'download name'], @@ -472,6 +474,7 @@ class BibleUpgradeForm(OpenLPWizard): 'Upgrading Bible %s of %s: "%s"\nFailed')) % (number + 1, max_bibles, name), self.progressBar.maximum() - self.progressBar.value()) + self.success[number] = False continue self.progressBar.setMaximum(len(books)) for book in books: @@ -526,6 +529,7 @@ class BibleUpgradeForm(OpenLPWizard): 'Upgrading Bible %s of %s: "%s"\nFailed')) % (number + 1, max_bibles, name), self.progressBar.maximum() - self.progressBar.value()) + self.success[number] = False continue books = oldBible.get_books() self.progressBar.setMaximum(len(books)) @@ -565,20 +569,22 @@ class BibleUpgradeForm(OpenLPWizard): int(verse[u'verse']), unicode(verse[u'text'])) Receiver.send_message(u'openlp_process_events') self.newbibles[number].session.commit() - if self.success[number]: + if self.success.has_key(number) and not self.success[number]: + print u'11111' + self.incrementProgressBar(unicode(translate( + 'BiblesPlugin.UpgradeWizardForm', + 'Upgrading Bible %s of %s: "%s"\nFailed')) % + (number + 1, max_bibles, name), + self.progressBar.maximum() - self.progressBar.value()) + else: + self.success[number] = True self.newbibles[number].create_meta(u'Version', name) self.incrementProgressBar(unicode(translate( 'BiblesPlugin.UpgradeWizardForm', 'Upgrading Bible %s of %s: "%s"\n' 'Complete')) % (number + 1, max_bibles, name)) - else: - self.incrementProgressBar(unicode(translate( - 'BiblesPlugin.UpgradeWizardForm', - 'Upgrading Bible %s of %s: "%s"\nFailed')) % - (number + 1, max_bibles, name), - self.progressBar.maximum() - self.progressBar.value()) - # Close the last bible's connection. + # Close the last bible's connection if possible. if oldBible is not None: oldBible.close_connection() @@ -591,13 +597,12 @@ class BibleUpgradeForm(OpenLPWizard): for number, filename in enumerate(self.files): if self.success.has_key(number) and self.success[number]: successful_import += 1 - else: + elif self.checkBox[number].checkState() == QtCore.Qt.Checked: + failed_import += 1 # Delete upgraded (but not complete, corrupted, ...) bible. delete_file(os.path.join(self.path, filename[0])) # Copy not upgraded bible back. shutil.move(os.path.join(self.temp_dir, filename[0]), self.path) - if self.checkBox[number].checkState() == QtCore.Qt.Checked: - failed_import += 1 if failed_import > 0: failed_import_text = unicode(translate( 'BiblesPlugin.UpgradeWizardForm', diff --git a/openlp/plugins/bibles/forms/languageform.py b/openlp/plugins/bibles/forms/languageform.py index 477c7ee1e..c5069815b 100644 --- a/openlp/plugins/bibles/forms/languageform.py +++ b/openlp/plugins/bibles/forms/languageform.py @@ -44,8 +44,8 @@ class LanguageForm(QDialog, Ui_LanguageDialog): Class to manage a dialog which ask the user for a language. """ log.info(u'LanguageForm loaded') - - def __init__(self, parent = None): + + def __init__(self, parent=None): """ Constructor """ @@ -57,12 +57,11 @@ class LanguageForm(QDialog, Ui_LanguageDialog): if bible_name: self.bibleLabel.setText(unicode(bible_name)) items = BiblesResourcesDB.get_languages() - for item in items: - self.languageComboBox.addItem(item[u'name']) + self.languageComboBox.addItems([item[u'name'] for item in items]) return QDialog.exec_(self) - + def accept(self): - if self.languageComboBox.currentText() == u'': + if not self.languageComboBox.currentText(): critical_error_message_box( message=translate('BiblesPlugin.LanguageForm', 'You need to choose a language.')) From cdec32f706fb321a4b026fabd6f9681da4a46177 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Mon, 15 Aug 2011 11:05:28 +0200 Subject: [PATCH 17/22] remove print --- openlp/plugins/bibles/forms/bibleupgradeform.py | 1 - 1 file changed, 1 deletion(-) diff --git a/openlp/plugins/bibles/forms/bibleupgradeform.py b/openlp/plugins/bibles/forms/bibleupgradeform.py index 67ef1aba4..373aa64a3 100644 --- a/openlp/plugins/bibles/forms/bibleupgradeform.py +++ b/openlp/plugins/bibles/forms/bibleupgradeform.py @@ -570,7 +570,6 @@ class BibleUpgradeForm(OpenLPWizard): Receiver.send_message(u'openlp_process_events') self.newbibles[number].session.commit() if self.success.has_key(number) and not self.success[number]: - print u'11111' self.incrementProgressBar(unicode(translate( 'BiblesPlugin.UpgradeWizardForm', 'Upgrading Bible %s of %s: "%s"\nFailed')) % From ca5c8d9a0b5359d619ca589119c1ba0a52c8ffb6 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Tue, 16 Aug 2011 23:19:57 +0200 Subject: [PATCH 18/22] Fixed bug #802146: Couldn't import some SongShowPlus files. Rearranged the file menu as well to be in a more logical order, and to look a little nicer. Fixes: https://launchpad.net/bugs/802146 --- openlp/core/ui/mainwindow.py | 8 ++++---- openlp/plugins/songs/lib/songshowplusimport.py | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index 510a94dfd..d9c8111bb 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -305,10 +305,10 @@ class Ui_MainWindow(object): add_actions(self.fileExportMenu, (self.exportThemeItem, self.exportLanguageItem)) add_actions(self.fileMenu, (self.fileNewItem, self.fileOpenItem, - self.fileSaveItem, self.fileSaveAsItem, None, - self.recentFilesMenu.menuAction(), None, self.printServiceOrderItem, - None, self.fileImportMenu.menuAction(), - self.fileExportMenu.menuAction(), self.fileExitItem)) + self.fileSaveItem, self.fileSaveAsItem, + self.recentFilesMenu.menuAction(), None, + self.fileImportMenu.menuAction(), self.fileExportMenu.menuAction(), + None, self.printServiceOrderItem, self.fileExitItem)) add_actions(self.viewModeMenu, (self.modeDefaultItem, self.modeSetupItem, self.modeLiveItem)) add_actions(self.viewMenu, (self.viewModeMenu.menuAction(), diff --git a/openlp/plugins/songs/lib/songshowplusimport.py b/openlp/plugins/songs/lib/songshowplusimport.py index 7f7527c6d..c50df8752 100644 --- a/openlp/plugins/songs/lib/songshowplusimport.py +++ b/openlp/plugins/songs/lib/songshowplusimport.py @@ -102,7 +102,6 @@ class SongShowPlusImport(SongImport): if not isinstance(self.import_source, list): return self.import_wizard.progressBar.setMaximum(len(self.import_source)) - for file in self.import_source: self.sspVerseOrderList = [] otherCount = 0 @@ -111,7 +110,6 @@ class SongShowPlusImport(SongImport): self.import_wizard.incrementProgressBar( WizardStrings.ImportingType % file_name, 0) songData = open(file, 'rb') - while True: blockKey, = struct.unpack("I", songData.read(4)) # The file ends with 4 NUL's @@ -126,8 +124,9 @@ class SongShowPlusImport(SongImport): songData.read(2)) verseName = songData.read(verseNameLength) lengthDescriptorSize, = struct.unpack("B", songData.read(1)) + log.debug(lengthDescriptorSize) # Detect if/how long the length descriptor is - if lengthDescriptorSize == 12: + if lengthDescriptorSize == 12 or lengthDescriptorSize == 20: lengthDescriptor, = struct.unpack("I", songData.read(4)) elif lengthDescriptorSize == 2: lengthDescriptor = 1 @@ -135,6 +134,7 @@ class SongShowPlusImport(SongImport): lengthDescriptor = 0 else: lengthDescriptor, = struct.unpack("B", songData.read(1)) + log.debug(lengthDescriptorSize) data = songData.read(lengthDescriptor) if blockKey == TITLE: self.title = unicode(data, u'cp1252') From 29b67efed63fcacf74958e56b5369d5c988ed38b Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Wed, 17 Aug 2011 12:47:01 +0200 Subject: [PATCH 19/22] close connection to database when the upgrade failed, to prevent errors on windows --- openlp/plugins/bibles/forms/bibleupgradeform.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/openlp/plugins/bibles/forms/bibleupgradeform.py b/openlp/plugins/bibles/forms/bibleupgradeform.py index 373aa64a3..3286c6f88 100644 --- a/openlp/plugins/bibles/forms/bibleupgradeform.py +++ b/openlp/plugins/bibles/forms/bibleupgradeform.py @@ -443,6 +443,7 @@ class BibleUpgradeForm(OpenLPWizard): u'name: "%s" failed' % ( meta_data[u'download source'], meta_data[u'download name'])) + self.newbibles[number].session.close() del self.newbibles[number] critical_error_message_box( translate('BiblesPlugin.UpgradeWizardForm', @@ -468,6 +469,7 @@ class BibleUpgradeForm(OpenLPWizard): language_id = self.newbibles[number].get_language(name) if not language_id: log.warn(u'Upgrading from "%s" failed' % filename[0]) + self.newbibles[number].session.close() del self.newbibles[number] self.incrementProgressBar(unicode(translate( 'BiblesPlugin.UpgradeWizardForm', @@ -493,6 +495,7 @@ class BibleUpgradeForm(OpenLPWizard): u'name: "%s" aborted by user' % ( meta_data[u'download source'], meta_data[u'download name'])) + self.newbibles[number].session.close() del self.newbibles[number] self.success[number] = False break @@ -523,6 +526,7 @@ class BibleUpgradeForm(OpenLPWizard): language_id = self.newbibles[number].get_language(name) if not language_id: log.warn(u'Upgrading books from "%s" failed' % name) + self.newbibles[number].session.close() del self.newbibles[number] self.incrementProgressBar(unicode(translate( 'BiblesPlugin.UpgradeWizardForm', @@ -548,6 +552,7 @@ class BibleUpgradeForm(OpenLPWizard): if not book_ref_id: log.warn(u'Upgrading books from %s " '\ 'failed - aborted by user' % name) + self.newbibles[number].session.close() del self.newbibles[number] self.success[number] = False break @@ -583,6 +588,8 @@ class BibleUpgradeForm(OpenLPWizard): 'Upgrading Bible %s of %s: "%s"\n' 'Complete')) % (number + 1, max_bibles, name)) + if self.newbibles.has_key(number): + self.newbibles[number].session.close() # Close the last bible's connection if possible. if oldBible is not None: oldBible.close_connection() From 7159559eaaec2f445820c38b3200ccff3481cbc1 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Wed, 17 Aug 2011 13:08:32 +0200 Subject: [PATCH 20/22] removed not needed code (this case should never occur and if it does, the manager instance should delete the file) --- openlp/plugins/bibles/forms/bibleupgradeform.py | 8 -------- 1 file changed, 8 deletions(-) diff --git a/openlp/plugins/bibles/forms/bibleupgradeform.py b/openlp/plugins/bibles/forms/bibleupgradeform.py index 3286c6f88..322e3219a 100644 --- a/openlp/plugins/bibles/forms/bibleupgradeform.py +++ b/openlp/plugins/bibles/forms/bibleupgradeform.py @@ -401,14 +401,6 @@ class BibleUpgradeForm(OpenLPWizard): oldBible = OldBibleDB(self.mediaItem, path=self.temp_dir, file=filename[0]) name = filename[1] - if name is None: - self.incrementProgressBar(unicode(translate( - 'BiblesPlugin.UpgradeWizardForm', - 'Upgrading Bible %s of %s: "%s"\nFailed')) % - (number + 1, max_bibles, name), - self.progressBar.maximum() - self.progressBar.value()) - self.success[number] = False - continue self.progressLabel.setText(unicode(translate( 'BiblesPlugin.UpgradeWizardForm', 'Upgrading Bible %s of %s: "%s"\nUpgrading ...')) % From d7ae55f733178904e71ce14c32ffc5ae3261cc20 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Wed, 17 Aug 2011 14:08:33 +0200 Subject: [PATCH 21/22] improved deletion of corrupted files on windows (bug #824129) Fixes: https://launchpad.net/bugs/824129 --- openlp/plugins/bibles/lib/manager.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openlp/plugins/bibles/lib/manager.py b/openlp/plugins/bibles/lib/manager.py index fcccd7bcf..934aa2d90 100644 --- a/openlp/plugins/bibles/lib/manager.py +++ b/openlp/plugins/bibles/lib/manager.py @@ -151,6 +151,7 @@ class BibleManager(object): name = bible.get_name() # Remove corrupted files. if name is None: + bible.session.close() delete_file(os.path.join(self.path, filename)) continue # Find old database versions. From 9baa1374b6ff62bebd2d06408cab75392fbc9271 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Wed, 17 Aug 2011 18:16:43 +0200 Subject: [PATCH 22/22] changed instance varaibles to camelCase --- openlp/plugins/alerts/lib/alertstab.py | 132 ++++++++++++------------- 1 file changed, 66 insertions(+), 66 deletions(-) diff --git a/openlp/plugins/alerts/lib/alertstab.py b/openlp/plugins/alerts/lib/alertstab.py index 0a1eb3e75..15577fd0e 100644 --- a/openlp/plugins/alerts/lib/alertstab.py +++ b/openlp/plugins/alerts/lib/alertstab.py @@ -44,85 +44,85 @@ class AlertsTab(SettingsTab): self.fontGroupBox.setObjectName(u'fontGroupBox') self.fontLayout = QtGui.QFormLayout(self.fontGroupBox) self.fontLayout.setObjectName(u'fontLayout') - self.FontLabel = QtGui.QLabel(self.fontGroupBox) - self.FontLabel.setObjectName(u'FontLabel') - self.FontComboBox = QtGui.QFontComboBox(self.fontGroupBox) - self.FontComboBox.setObjectName(u'FontComboBox') - self.fontLayout.addRow(self.FontLabel, self.FontComboBox) - self.FontColorLabel = QtGui.QLabel(self.fontGroupBox) - self.FontColorLabel.setObjectName(u'FontColorLabel') - self.ColorLayout = QtGui.QHBoxLayout() - self.ColorLayout.setObjectName(u'ColorLayout') - self.FontColorButton = QtGui.QPushButton(self.fontGroupBox) - self.FontColorButton.setObjectName(u'FontColorButton') - self.ColorLayout.addWidget(self.FontColorButton) - self.ColorLayout.addSpacing(20) - self.BackgroundColorLabel = QtGui.QLabel(self.fontGroupBox) - self.BackgroundColorLabel.setObjectName(u'BackgroundColorLabel') - self.ColorLayout.addWidget(self.BackgroundColorLabel) - self.BackgroundColorButton = QtGui.QPushButton(self.fontGroupBox) - self.BackgroundColorButton.setObjectName(u'BackgroundColorButton') - self.ColorLayout.addWidget(self.BackgroundColorButton) - self.fontLayout.addRow(self.FontColorLabel, self.ColorLayout) - self.FontSizeLabel = QtGui.QLabel(self.fontGroupBox) - self.FontSizeLabel.setObjectName(u'FontSizeLabel') - self.FontSizeSpinBox = QtGui.QSpinBox(self.fontGroupBox) - self.FontSizeSpinBox.setObjectName(u'FontSizeSpinBox') - self.fontLayout.addRow(self.FontSizeLabel, self.FontSizeSpinBox) - self.TimeoutLabel = QtGui.QLabel(self.fontGroupBox) - self.TimeoutLabel.setObjectName(u'TimeoutLabel') - self.TimeoutSpinBox = QtGui.QSpinBox(self.fontGroupBox) - self.TimeoutSpinBox.setMaximum(180) - self.TimeoutSpinBox.setObjectName(u'TimeoutSpinBox') - self.fontLayout.addRow(self.TimeoutLabel, self.TimeoutSpinBox) + self.fontLabel = QtGui.QLabel(self.fontGroupBox) + self.fontLabel.setObjectName(u'fontLabel') + self.fontComboBox = QtGui.QFontComboBox(self.fontGroupBox) + self.fontComboBox.setObjectName(u'fontComboBox') + self.fontLayout.addRow(self.fontLabel, self.fontComboBox) + self.fontColorLabel = QtGui.QLabel(self.fontGroupBox) + self.fontColorLabel.setObjectName(u'fontColorLabel') + self.colorLayout = QtGui.QHBoxLayout() + self.colorLayout.setObjectName(u'colorLayout') + self.fontColorButton = QtGui.QPushButton(self.fontGroupBox) + self.fontColorButton.setObjectName(u'fontColorButton') + self.colorLayout.addWidget(self.fontColorButton) + self.colorLayout.addSpacing(20) + self.backgroundColorLabel = QtGui.QLabel(self.fontGroupBox) + self.backgroundColorLabel.setObjectName(u'backgroundColorLabel') + self.colorLayout.addWidget(self.backgroundColorLabel) + self.backgroundColorButton = QtGui.QPushButton(self.fontGroupBox) + self.backgroundColorButton.setObjectName(u'backgroundColorButton') + self.colorLayout.addWidget(self.backgroundColorButton) + self.fontLayout.addRow(self.fontColorLabel, self.colorLayout) + self.fontSizeLabel = QtGui.QLabel(self.fontGroupBox) + self.fontSizeLabel.setObjectName(u'fontSizeLabel') + self.fontSizeSpinBox = QtGui.QSpinBox(self.fontGroupBox) + self.fontSizeSpinBox.setObjectName(u'fontSizeSpinBox') + self.fontLayout.addRow(self.fontSizeLabel, self.fontSizeSpinBox) + self.timeoutLabel = QtGui.QLabel(self.fontGroupBox) + self.timeoutLabel.setObjectName(u'timeoutLabel') + self.timeoutSpinBox = QtGui.QSpinBox(self.fontGroupBox) + self.timeoutSpinBox.setMaximum(180) + self.timeoutSpinBox.setObjectName(u'timeoutSpinBox') + self.fontLayout.addRow(self.timeoutLabel, self.timeoutSpinBox) create_valign_combo(self, self.fontGroupBox, self.fontLayout) self.leftLayout.addWidget(self.fontGroupBox) self.leftLayout.addStretch() - self.PreviewGroupBox = QtGui.QGroupBox(self.rightColumn) - self.PreviewGroupBox.setObjectName(u'PreviewGroupBox') - self.PreviewLayout = QtGui.QVBoxLayout(self.PreviewGroupBox) - self.PreviewLayout.setObjectName(u'PreviewLayout') - self.FontPreview = QtGui.QLineEdit(self.PreviewGroupBox) - self.FontPreview.setObjectName(u'FontPreview') - self.PreviewLayout.addWidget(self.FontPreview) - self.rightLayout.addWidget(self.PreviewGroupBox) + self.previewGroupBox = QtGui.QGroupBox(self.rightColumn) + self.previewGroupBox.setObjectName(u'previewGroupBox') + self.previewLayout = QtGui.QVBoxLayout(self.previewGroupBox) + self.previewLayout.setObjectName(u'previewLayout') + self.fontPreview = QtGui.QLineEdit(self.previewGroupBox) + self.fontPreview.setObjectName(u'fontPreview') + self.previewLayout.addWidget(self.fontPreview) + self.rightLayout.addWidget(self.previewGroupBox) self.rightLayout.addStretch() # Signals and slots - QtCore.QObject.connect(self.BackgroundColorButton, + QtCore.QObject.connect(self.backgroundColorButton, QtCore.SIGNAL(u'pressed()'), self.onBackgroundColorButtonClicked) - QtCore.QObject.connect(self.FontColorButton, + QtCore.QObject.connect(self.fontColorButton, QtCore.SIGNAL(u'pressed()'), self.onFontColorButtonClicked) - QtCore.QObject.connect(self.FontComboBox, + QtCore.QObject.connect(self.fontComboBox, QtCore.SIGNAL(u'activated(int)'), self.onFontComboBoxClicked) - QtCore.QObject.connect(self.TimeoutSpinBox, + QtCore.QObject.connect(self.timeoutSpinBox, QtCore.SIGNAL(u'valueChanged(int)'), self.onTimeoutSpinBoxChanged) - QtCore.QObject.connect(self.FontSizeSpinBox, + QtCore.QObject.connect(self.fontSizeSpinBox, QtCore.SIGNAL(u'valueChanged(int)'), self.onFontSizeSpinBoxChanged) def retranslateUi(self): self.fontGroupBox.setTitle( translate('AlertsPlugin.AlertsTab', 'Font')) - self.FontLabel.setText( + self.fontLabel.setText( translate('AlertsPlugin.AlertsTab', 'Font name:')) - self.FontColorLabel.setText( + self.fontColorLabel.setText( translate('AlertsPlugin.AlertsTab', 'Font color:')) - self.BackgroundColorLabel.setText( + self.backgroundColorLabel.setText( translate('AlertsPlugin.AlertsTab', 'Background color:')) - self.FontSizeLabel.setText( + self.fontSizeLabel.setText( translate('AlertsPlugin.AlertsTab', 'Font size:')) - self.FontSizeSpinBox.setSuffix(UiStrings().FontSizePtUnit) - self.TimeoutLabel.setText( + self.fontSizeSpinBox.setSuffix(UiStrings().FontSizePtUnit) + self.timeoutLabel.setText( translate('AlertsPlugin.AlertsTab', 'Alert timeout:')) - self.TimeoutSpinBox.setSuffix(UiStrings().Seconds) - self.PreviewGroupBox.setTitle(UiStrings().Preview) - self.FontPreview.setText(UiStrings().OLPV2) + self.timeoutSpinBox.setSuffix(UiStrings().Seconds) + self.previewGroupBox.setTitle(UiStrings().Preview) + self.fontPreview.setText(UiStrings().OLPV2) def onBackgroundColorButtonClicked(self): new_color = QtGui.QColorDialog.getColor( QtGui.QColor(self.bg_color), self) if new_color.isValid(): self.bg_color = new_color.name() - self.BackgroundColorButton.setStyleSheet( + self.backgroundColorButton.setStyleSheet( u'background-color: %s' % self.bg_color) self.updateDisplay() @@ -134,15 +134,15 @@ class AlertsTab(SettingsTab): QtGui.QColor(self.font_color), self) if new_color.isValid(): self.font_color = new_color.name() - self.FontColorButton.setStyleSheet( + self.fontColorButton.setStyleSheet( u'background-color: %s' % self.font_color) self.updateDisplay() def onTimeoutSpinBoxChanged(self): - self.timeout = self.TimeoutSpinBox.value() + self.timeout = self.timeoutSpinBox.value() def onFontSizeSpinBoxChanged(self): - self.font_size = self.FontSizeSpinBox.value() + self.font_size = self.fontSizeSpinBox.value() self.updateDisplay() def load(self): @@ -160,16 +160,16 @@ class AlertsTab(SettingsTab): self.location = settings.value( u'location', QtCore.QVariant(1)).toInt()[0] settings.endGroup() - self.FontSizeSpinBox.setValue(self.font_size) - self.TimeoutSpinBox.setValue(self.timeout) - self.FontColorButton.setStyleSheet( + self.fontSizeSpinBox.setValue(self.font_size) + self.timeoutSpinBox.setValue(self.timeout) + self.fontColorButton.setStyleSheet( u'background-color: %s' % self.font_color) - self.BackgroundColorButton.setStyleSheet( + self.backgroundColorButton.setStyleSheet( u'background-color: %s' % self.bg_color) self.verticalComboBox.setCurrentIndex(self.location) font = QtGui.QFont() font.setFamily(self.font_face) - self.FontComboBox.setCurrentFont(font) + self.fontComboBox.setCurrentFont(font) self.updateDisplay() def save(self): @@ -178,7 +178,7 @@ class AlertsTab(SettingsTab): settings.setValue(u'background color', QtCore.QVariant(self.bg_color)) settings.setValue(u'font color', QtCore.QVariant(self.font_color)) settings.setValue(u'font size', QtCore.QVariant(self.font_size)) - self.font_face = self.FontComboBox.currentFont().family() + self.font_face = self.fontComboBox.currentFont().family() settings.setValue(u'font face', QtCore.QVariant(self.font_face)) settings.setValue(u'timeout', QtCore.QVariant(self.timeout)) self.location = self.verticalComboBox.currentIndex() @@ -187,10 +187,10 @@ class AlertsTab(SettingsTab): def updateDisplay(self): font = QtGui.QFont() - font.setFamily(self.FontComboBox.currentFont().family()) + font.setFamily(self.fontComboBox.currentFont().family()) font.setBold(True) font.setPointSize(self.font_size) - self.FontPreview.setFont(font) - self.FontPreview.setStyleSheet(u'background-color: %s; color: %s' % + self.fontPreview.setFont(font) + self.fontPreview.setStyleSheet(u'background-color: %s; color: %s' % (self.bg_color, self.font_color))