- removed dangling list

- added debug message
- do not show an error message when the directory does not exist, instead create one
- do not override the file class
- clean ups

bzr-revno: 1605
This commit is contained in:
Andreas Preikschat 2011-06-02 15:09:37 +02:00
commit 847d69cd2f
8 changed files with 45 additions and 45 deletions

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

@ -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')

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

@ -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