This commit is contained in:
Jonathan Corwin 2011-06-02 22:17:14 +01:00
commit 604394a2eb
16 changed files with 58 additions and 57 deletions

View File

@ -133,6 +133,7 @@ class OpenLP(QtGui.QApplication):
u'general/update check', QtCore.QVariant(True)).toBool() u'general/update check', QtCore.QVariant(True)).toBool()
if update_check: if update_check:
VersionThread(self.mainWindow).start() VersionThread(self.mainWindow).start()
Receiver.send_message(u'maindisplay_blank_check')
self.mainWindow.appStartup() self.mainWindow.appStartup()
DelayStartThread(self.mainWindow).start() DelayStartThread(self.mainWindow).start()
return self.exec_() return self.exec_()

View File

@ -91,6 +91,7 @@ class MediaManagerItem(QtGui.QWidget):
Constructor to create the media manager item. Constructor to create the media manager item.
""" """
QtGui.QWidget.__init__(self, parent) QtGui.QWidget.__init__(self, parent)
self.hide()
self.whitespace = re.compile(r'[\W_]+', re.UNICODE) self.whitespace = re.compile(r'[\W_]+', re.UNICODE)
self.plugin = plugin self.plugin = plugin
visible_title = self.plugin.getString(StringContent.VisibleName) visible_title = self.plugin.getString(StringContent.VisibleName)

View File

@ -67,7 +67,7 @@ class Renderer(object):
``theme_manager`` ``theme_manager``
The ThemeManager instance, used to get the current theme details. The ThemeManager instance, used to get the current theme details.
""" """
log.debug(u'Initilisation started') log.debug(u'Initialisation started')
self.theme_manager = theme_manager self.theme_manager = theme_manager
self.image_manager = image_manager self.image_manager = image_manager
self.screens = ScreenList.get_instance() self.screens = ScreenList.get_instance()

View File

@ -106,7 +106,7 @@ class ExceptionForm(QtGui.QDialog, Ui_ExceptionDialog):
""" """
Saving exception log and system informations to a file. Saving exception log and system informations to a file.
""" """
report = unicode(translate('OpenLP.ExceptionForm', report_text = unicode(translate('OpenLP.ExceptionForm',
'**OpenLP Bug Report**\n' '**OpenLP Bug Report**\n'
'Version: %s\n\n' 'Version: %s\n\n'
'--- Details of the Exception. ---\n\n%s\n\n ' '--- Details of the Exception. ---\n\n%s\n\n '
@ -122,21 +122,21 @@ class ExceptionForm(QtGui.QDialog, Ui_ExceptionDialog):
filename = unicode(QtCore.QDir.toNativeSeparators(filename)) filename = unicode(QtCore.QDir.toNativeSeparators(filename))
SettingsManager.set_last_dir(self.settingsSection, os.path.dirname( SettingsManager.set_last_dir(self.settingsSection, os.path.dirname(
filename)) filename))
report = report % self._createReport() report_text = report_text % self._createReport()
try: try:
file = open(filename, u'w') report_file = open(filename, u'w')
try: try:
file.write(report) report_file.write(report_text)
except UnicodeError: except UnicodeError:
file.close() report_file.close()
file = open(filename, u'wb') report_file = open(filename, u'wb')
file.write(report.encode(u'utf-8')) report_file.write(report_text.encode(u'utf-8'))
finally: finally:
file.close() report_file.close()
except IOError: except IOError:
log.exception(u'Failed to write crash report') log.exception(u'Failed to write crash report')
finally: finally:
file.close() report_file.close()
def onSendReportButtonPressed(self): def onSendReportButtonPressed(self):
""" """

View File

@ -148,7 +148,6 @@ class MainDisplay(QtGui.QGraphicsView):
self.__hideMouse() self.__hideMouse()
# To display or not to display? # To display or not to display?
if not self.screen[u'primary']: if not self.screen[u'primary']:
self.show()
self.primary = False self.primary = False
else: else:
self.primary = True self.primary = True

View File

@ -678,13 +678,12 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
def blankCheck(self): def blankCheck(self):
""" """
Check and display message if screen blank on setup. Check and display message if screen blank on setup.
Triggered by delay thread.
""" """
settings = QtCore.QSettings() settings = QtCore.QSettings()
self.liveController.mainDisplaySetBackground()
if settings.value(u'%s/screen blank' % self.generalSettingsSection, if settings.value(u'%s/screen blank' % self.generalSettingsSection,
QtCore.QVariant(False)).toBool(): QtCore.QVariant(False)).toBool():
self.liveController.mainDisplaySetBackground() if settings.value(u'%s/blank warning' % self.generalSettingsSection,
if settings.value(u'blank warning',
QtCore.QVariant(False)).toBool(): QtCore.QVariant(False)).toBool():
QtGui.QMessageBox.question(self, QtGui.QMessageBox.question(self,
translate('OpenLP.MainWindow', translate('OpenLP.MainWindow',

View File

@ -79,7 +79,7 @@ class ScreenList(object):
``number`` ``number``
The number of the screen, which size has changed. The number of the screen, which size has changed.
""" """
log.info(u'screenResolutionChanged %d' % number) log.info(u'screen_resolution_changed %d' % number)
for screen in self.screen_list: for screen in self.screen_list:
if number == screen[u'number']: if number == screen[u'number']:
newScreen = { newScreen = {
@ -104,6 +104,9 @@ class ScreenList(object):
``changed_screen`` ``changed_screen``
The screen's number which has been (un)plugged. The screen's number which has been (un)plugged.
""" """
# Do not log at start up.
if changed_screen != -1:
log.info(u'screen_count_changed %d' % number)
# Remove unplugged screens. # Remove unplugged screens.
for screen in copy.deepcopy(self.screen_list): for screen in copy.deepcopy(self.screen_list):
if screen[u'number'] == self.desktop.numScreens(): if screen[u'number'] == self.desktop.numScreens():
@ -116,8 +119,7 @@ class ScreenList(object):
u'size': self.desktop.screenGeometry(number), u'size': self.desktop.screenGeometry(number),
u'primary': (self.desktop.primaryScreen() == number) u'primary': (self.desktop.primaryScreen() == number)
}) })
# We do not want to send this message, when the method is called the # We do not want to send this message at start up.
# first time.
if changed_screen != -1: if changed_screen != -1:
# Reload setting tabs to apply possible changes. # Reload setting tabs to apply possible changes.
Receiver.send_message(u'config_screen_changed') Receiver.send_message(u'config_screen_changed')
@ -241,6 +243,7 @@ class ScreenList(object):
height = settings.value(u'height', height = settings.value(u'height',
QtCore.QVariant(self.current[u'size'].height())).toInt()[0] QtCore.QVariant(self.current[u'size'].height())).toInt()[0]
self.override[u'size'] = QtCore.QRect(x, y, width, height) self.override[u'size'] = QtCore.QRect(x, y, width, height)
self.override[u'primary'] = False
settings.endGroup() settings.endGroup()
if override_display: if override_display:
self.set_override_display() self.set_override_display()

View File

@ -742,8 +742,10 @@ class SlideController(QtGui.QWidget):
self.onThemeDisplay(True) self.onThemeDisplay(True)
elif display_type == u'hidden': elif display_type == u'hidden':
self.onHideDisplay(True) self.onHideDisplay(True)
else: elif display_type == u'blanked':
self.onBlankDisplay(True) self.onBlankDisplay(True)
else:
Receiver.send_message(u'maindisplay_show')
def onSlideBlank(self): def onSlideBlank(self):
""" """

View File

@ -69,7 +69,6 @@ class VersionThread(QtCore.QThread):
Run the thread. Run the thread.
""" """
time.sleep(1) time.sleep(1)
Receiver.send_message(u'maindisplay_blank_check')
app_version = get_application_version() app_version = get_application_version()
version = check_latest_version(app_version) version = check_latest_version(app_version)
remote_version = {} remote_version = {}

View File

@ -33,7 +33,8 @@ import shutil
from PyQt4 import QtCore, QtGui from PyQt4 import QtCore, QtGui
from openlp.core.lib import Receiver, SettingsManager, translate from openlp.core.lib import Receiver, SettingsManager, translate, \
check_directory_exists
from openlp.core.lib.db import delete_database from openlp.core.lib.db import delete_database
from openlp.core.lib.ui import UiStrings, critical_error_message_box from openlp.core.lib.ui import UiStrings, critical_error_message_box
from openlp.core.ui.wizard import OpenLPWizard, WizardStrings from openlp.core.ui.wizard import OpenLPWizard, WizardStrings
@ -94,7 +95,7 @@ class BibleUpgradeForm(OpenLPWizard):
def onCheckBoxIndexChanged(self, index): def onCheckBoxIndexChanged(self, index):
""" """
Show/ Hide warnings if CheckBox state has changed Show/Hide warnings if CheckBox state has changed
""" """
for number, filename in enumerate(self.files): for number, filename in enumerate(self.files):
if not self.checkBox[number].checkState() == QtCore.Qt.Checked: if not self.checkBox[number].checkState() == QtCore.Qt.Checked:
@ -154,17 +155,19 @@ class BibleUpgradeForm(OpenLPWizard):
self.backupDirectoryEdit.setEnabled(not checked) self.backupDirectoryEdit.setEnabled(not checked)
self.backupBrowseButton.setEnabled(not checked) self.backupBrowseButton.setEnabled(not checked)
def backupOldBibles(self, backupdirectory): def backupOldBibles(self, backup_directory):
""" """
Backup old bible databases in a given folder. Backup old bible databases in a given folder.
""" """
check_directory_exists(backup_directory)
success = True
for filename in self.files: for filename in self.files:
try: try:
shutil.copy(os.path.join(self.path, filename[0]), shutil.copy(os.path.join(self.path, filename[0]),
backupdirectory) backup_directory)
except: except:
return False success = False
return True return success
def customInit(self): def customInit(self):
""" """
@ -318,7 +321,7 @@ class BibleUpgradeForm(OpenLPWizard):
QtGui.QFormLayout.FieldRole, self.versionNameEdit[number]) QtGui.QFormLayout.FieldRole, self.versionNameEdit[number])
self.versionNameEdit[number].setText(bible.get_name()) self.versionNameEdit[number].setText(bible.get_name())
self.formLayout.addWidget(self.formWidget[number]) self.formLayout.addWidget(self.formWidget[number])
#Set up the Signal for the checkbox # Set up the Signal for the checkbox.
QtCore.QObject.connect(self.checkBox[number], QtCore.QObject.connect(self.checkBox[number],
QtCore.SIGNAL(u'stateChanged(int)'), QtCore.SIGNAL(u'stateChanged(int)'),
self.onCheckBoxIndexChanged) self.onCheckBoxIndexChanged)
@ -414,29 +417,22 @@ class BibleUpgradeForm(OpenLPWizard):
return True return True
elif self.currentPage() == self.backupPage: elif self.currentPage() == self.backupPage:
if not self.noBackupCheckBox.checkState() == QtCore.Qt.Checked: if not self.noBackupCheckBox.checkState() == QtCore.Qt.Checked:
if not unicode(self.backupDirectoryEdit.text()): backup_path = unicode(self.backupDirectoryEdit.text())
if not backup_path:
critical_error_message_box(UiStrings().EmptyField, critical_error_message_box(UiStrings().EmptyField,
translate('BiblesPlugin.UpgradeWizardForm', translate('BiblesPlugin.UpgradeWizardForm',
'You need to specify a Backup Directory for your ' 'You need to specify a Backup Directory for your '
'Bibles.')) 'Bibles.'))
self.backupDirectoryEdit.setFocus() self.backupDirectoryEdit.setFocus()
return False return False
elif not os.path.exists(unicode(
self.backupDirectoryEdit.text())):
critical_error_message_box(UiStrings().Error,
translate('BiblesPlugin.UpgradeWizardForm',
'The given path is not an existing directory.'))
self.backupDirectoryEdit.setFocus()
return False
else: else:
if not self.backupOldBibles(unicode( if not self.backupOldBibles(backup_path):
self.backupDirectoryEdit.text())):
critical_error_message_box(UiStrings().Error, critical_error_message_box(UiStrings().Error,
translate('BiblesPlugin.UpgradeWizardForm', translate('BiblesPlugin.UpgradeWizardForm',
'The backup was not successfull.\nTo backup your ' 'The backup was not successful.\nTo backup your '
'Bibles you need the permission to write in the given ' 'Bibles you need permission to write to the given '
'directory. If you have a permissions to write and ' 'directory. If you have write permissions and this '
'this error still occurs, please report a bug.')) 'error still occurs, please report a bug.'))
return False return False
return True return True
elif self.currentPage() == self.selectPage: elif self.currentPage() == self.selectPage:

View File

@ -70,15 +70,15 @@ class BookNameForm(QDialog, Ui_BookNameDialog):
self.onCheckBoxIndexChanged) self.onCheckBoxIndexChanged)
def onCheckBoxIndexChanged(self, index): def onCheckBoxIndexChanged(self, index):
''' """
Reload Combobox if CheckBox state has changed Reload Combobox if CheckBox state has changed
''' """
self.reloadComboBox() self.reloadComboBox()
def reloadComboBox(self): def reloadComboBox(self):
''' """
Reload the Combobox items Reload the Combobox items
''' """
self.correspondingComboBox.clear() self.correspondingComboBox.clear()
items = BiblesResourcesDB.get_books() items = BiblesResourcesDB.get_books()
for item in items: for item in items:

View File

@ -72,9 +72,8 @@ class BGExtract(object):
log.debug(u'BGExtract.get_bible_chapter("%s", "%s", "%s")', version, log.debug(u'BGExtract.get_bible_chapter("%s", "%s", "%s")', version,
bookname, chapter) bookname, chapter)
urlbookname = urllib.quote(bookname.encode("utf-8")) urlbookname = urllib.quote(bookname.encode("utf-8"))
url_params = urllib.urlencode( url_params = u'search=%s+%s&version=%s' % (urlbookname, chapter,
{u'search': u'%s %s' % (urlbookname, chapter), version)
u'version': u'%s' % version})
cleaner = [(re.compile('&nbsp;|<br />|\'\+\''), lambda match: '')] cleaner = [(re.compile('&nbsp;|<br />|\'\+\''), lambda match: '')]
soup = get_soup_for_bible_ref( soup = get_soup_for_bible_ref(
u'http://www.biblegateway.com/passage/?%s' % url_params, u'http://www.biblegateway.com/passage/?%s' % url_params,
@ -97,10 +96,10 @@ class BGExtract(object):
verse_list = {} verse_list = {}
# Cater for inconsistent mark up in the first verse of a chapter. # Cater for inconsistent mark up in the first verse of a chapter.
first_verse = verses.find(u'versenum') first_verse = verses.find(u'versenum')
if first_verse: if first_verse and len(first_verse.contents):
verse_list[1] = unicode(first_verse.contents[0]) verse_list[1] = unicode(first_verse.contents[0])
for verse in verses(u'sup', u'versenum'): for verse in verses(u'sup', u'versenum'):
raw_verse_num = verse.next raw_verse_num = verse.next
clean_verse_num = 0 clean_verse_num = 0
# Not all verses exist in all translations and may or may not be # Not all verses exist in all translations and may or may not be
# represented by a verse number. If they are not fine, if they are # represented by a verse number. If they are not fine, if they are

View File

@ -845,7 +845,8 @@ class BibleMediaItem(MediaManagerItem):
service_item.theme = None service_item.theme = None
else: else:
service_item.theme = self.settings.bible_theme service_item.theme = self.settings.bible_theme
[service_item.add_from_text(slide[:30], slide) for slide in raw_slides] for slide in raw_slides:
service_item.add_from_text(slide[:30], slide)
return True return True
def formatTitle(self, start_bitem, old_bitem): def formatTitle(self, start_bitem, old_bitem):

View File

@ -772,9 +772,9 @@ class SongImportForm(OpenLPWizard):
SettingsManager.get_last_dir(self.plugin.settingsSection, 1)) SettingsManager.get_last_dir(self.plugin.settingsSection, 1))
if not filename: if not filename:
return return
file = codecs.open(filename, u'w', u'utf-8') report_file = codecs.open(filename, u'w', u'utf-8')
file.write(self.errorReportTextEdit.toPlainText()) report_file.write(self.errorReportTextEdit.toPlainText())
file.close() report_file.close()
def addFileSelectItem(self, prefix, obj_prefix=None, can_disable=False, def addFileSelectItem(self, prefix, obj_prefix=None, can_disable=False,
single_select=False): single_select=False):

View File

@ -61,8 +61,8 @@ class EasiSlidesImport(SongImport):
""" """
log.info(u'Importing EasiSlides XML file %s', self.import_source) log.info(u'Importing EasiSlides XML file %s', self.import_source)
parser = etree.XMLParser(remove_blank_text=True) parser = etree.XMLParser(remove_blank_text=True)
file = etree.parse(self.import_source, parser) parsed_file = etree.parse(self.import_source, parser)
xml = unicode(etree.tostring(file)) xml = unicode(etree.tostring(parsed_file))
song_xml = objectify.fromstring(xml) song_xml = objectify.fromstring(xml)
self.import_wizard.progressBar.setMaximum(len(song_xml.Item)) self.import_wizard.progressBar.setMaximum(len(song_xml.Item))
for song in song_xml.Item: for song in song_xml.Item:

View File

@ -28,6 +28,7 @@
The :mod:`importer` modules provides the general song import functionality. The :mod:`importer` modules provides the general song import functionality.
""" """
import logging import logging
from opensongimport import OpenSongImport from opensongimport import OpenSongImport
from easislidesimport import EasiSlidesImport from easislidesimport import EasiSlidesImport
from olpimport import OpenLPSongImport from olpimport import OpenLPSongImport