openlp-core team mailing list archive
-
openlp-core team
-
Mailing list archive
-
Message #11736
[Merge] lp:~smpettit/openlp/import-settings into lp:openlp
Stevan Pettit has proposed merging lp:~smpettit/openlp/import-settings into lp:openlp.
Requested reviews:
Tim Bentley (trb143)
Raoul Snyman (raoul-snyman)
Related bugs:
Bug #838831 in OpenLP: "Import/Export Settings not working correctly for "shortcuts""
https://bugs.launchpad.net/openlp/+bug/838831
For more details, see:
https://code.launchpad.net/~smpettit/openlp/import-settings/+merge/73964
Bug #838831
Fixed problem with "shortcuts" section causing "The file you selected does appear to be a valid OpenLP...." error to be reported.
Added code to remove "@Invalid()" entries in the export file.
Changed all local variable names.
Changed string search.
--
https://code.launchpad.net/~smpettit/openlp/import-settings/+merge/73964
Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file 'openlp/core/ui/mainwindow.py'
--- openlp/core/ui/mainwindow.py 2011-08-29 16:54:09 +0000
+++ openlp/core/ui/mainwindow.py 2011-09-03 20:46:26 +0000
@@ -540,6 +540,7 @@
self.uiSettingsSection = u'user interface'
self.generalSettingsSection = u'general'
self.advancedlSettingsSection = u'advanced'
+ self.shortcutsSettingsSection = u'shortcuts'
self.servicemanagerSettingsSection = u'servicemanager'
self.songsSettingsSection = u'songs'
self.themesSettingsSection = u'themes'
@@ -913,42 +914,43 @@
QtGui.QMessageBox.No)
if answer == QtGui.QMessageBox.No:
return
- importFileName = unicode(QtGui.QFileDialog.getOpenFileName(self,
+ import_file_name = unicode(QtGui.QFileDialog.getOpenFileName(self,
translate('OpenLP.MainWindow', 'Open File'),
'',
translate('OpenLP.MainWindow',
'OpenLP Export Settings Files (*.conf)')))
- if not importFileName:
+ if not import_file_name:
return
- settingSections = []
+ setting_sections = []
# Add main sections.
- settingSections.extend([self.generalSettingsSection])
- settingSections.extend([self.advancedlSettingsSection])
- settingSections.extend([self.uiSettingsSection])
- settingSections.extend([self.servicemanagerSettingsSection])
- settingSections.extend([self.themesSettingsSection])
- settingSections.extend([self.displayTagsSection])
- settingSections.extend([self.headerSection])
+ setting_sections.extend([self.generalSettingsSection])
+ setting_sections.extend([self.advancedlSettingsSection])
+ setting_sections.extend([self.uiSettingsSection])
+ setting_sections.extend([self.shortcutsSettingsSection])
+ setting_sections.extend([self.servicemanagerSettingsSection])
+ setting_sections.extend([self.themesSettingsSection])
+ setting_sections.extend([self.displayTagsSection])
+ setting_sections.extend([self.headerSection])
# Add plugin sections.
for plugin in self.pluginManager.plugins:
- settingSections.extend([plugin.name])
+ setting_sections.extend([plugin.name])
settings = QtCore.QSettings()
- importSettings = QtCore.QSettings(importFileName,
+ import_settings = QtCore.QSettings(import_file_name,
QtCore.QSettings.IniFormat)
- importKeys = importSettings.allKeys()
- for sectionKey in importKeys:
+ import_keys = import_settings.allKeys()
+ for section_key in import_keys:
# We need to handle the really bad files.
try:
- section, key = sectionKey.split(u'/')
+ section, key = section_key.split(u'/')
except ValueError:
section = u'unknown'
key = u''
# Switch General back to lowercase.
if section == u'General':
section = u'general'
- sectionKey = section + "/" + key
+ section_key = section + "/" + key
# Make sure it's a valid section for us.
- if not section in settingSections:
+ if not section in setting_sections:
QtGui.QMessageBox.critical(self,
translate('OpenLP.MainWindow', 'Import settings'),
translate('OpenLP.MainWindow',
@@ -961,13 +963,13 @@
QtGui.QMessageBox.Ok))
return
# We have a good file, import it.
- for sectionKey in importKeys:
- value = importSettings.value(sectionKey)
- settings.setValue(u'%s' % (sectionKey) ,
+ for section_key in import_keys:
+ value = import_settings.value(section_key)
+ settings.setValue(u'%s' % (section_key) ,
QtCore.QVariant(value))
now = datetime.now()
settings.beginGroup(self.headerSection)
- settings.setValue( u'file_imported' , QtCore.QVariant(importFileName))
+ settings.setValue( u'file_imported' , QtCore.QVariant(import_file_name))
settings.setValue(u'file_date_imported',
now.strftime("%Y-%m-%d %H:%M"))
settings.endGroup()
@@ -1003,17 +1005,18 @@
temp_file = os.path.join(unicode(gettempdir()),
u'openlp', u'exportIni.tmp')
self.saveSettings()
- settingSections = []
+ setting_sections = []
# Add main sections.
- settingSections.extend([self.generalSettingsSection])
- settingSections.extend([self.advancedlSettingsSection])
- settingSections.extend([self.uiSettingsSection])
- settingSections.extend([self.servicemanagerSettingsSection])
- settingSections.extend([self.themesSettingsSection])
- settingSections.extend([self.displayTagsSection])
+ setting_sections.extend([self.generalSettingsSection])
+ setting_sections.extend([self.advancedlSettingsSection])
+ setting_sections.extend([self.uiSettingsSection])
+ setting_sections.extend([self.shortcutsSettingsSection])
+ setting_sections.extend([self.servicemanagerSettingsSection])
+ setting_sections.extend([self.themesSettingsSection])
+ setting_sections.extend([self.displayTagsSection])
# Add plugin sections.
for plugin in self.pluginManager.plugins:
- settingSections.extend([plugin.name])
+ setting_sections.extend([plugin.name])
# Delete old files if found.
if os.path.exists(temp_file):
os.remove(temp_file)
@@ -1023,41 +1026,42 @@
settings.remove(self.headerSection)
# Get the settings.
keys = settings.allKeys()
- exportSettings = QtCore.QSettings(temp_file,
+ export_settings = QtCore.QSettings(temp_file,
QtCore.QSettings.IniFormat)
# Add a header section.
# This is to insure it's our ini file for import.
now = datetime.now()
- applicationVersion = get_application_version()
+ application_version = get_application_version()
# Write INI format using Qsettings.
# Write our header.
- exportSettings.beginGroup(self.headerSection)
- exportSettings.setValue(u'Make_Changes', u'At_Own_RISK')
- exportSettings.setValue(u'type', u'OpenLP_settings_export')
- exportSettings.setValue(u'file_date_created',
+ export_settings.beginGroup(self.headerSection)
+ export_settings.setValue(u'Make_Changes', u'At_Own_RISK')
+ export_settings.setValue(u'type', u'OpenLP_settings_export')
+ export_settings.setValue(u'file_date_created',
now.strftime("%Y-%m-%d %H:%M"))
- exportSettings.setValue(u'version', applicationVersion[u'full'])
- exportSettings.endGroup()
+ export_settings.setValue(u'version', application_version[u'full'])
+ export_settings.endGroup()
# Write all the sections and keys.
- for sectionKey in keys:
- section, key = sectionKey.split(u'/')
- keyValue = settings.value(sectionKey)
- sectionKey = section + u"/" + key
+ for section_key in keys:
+ section, key = section_key.split(u'/')
+ key_value = settings.value(section_key)
# Change the service section to servicemanager.
if section == u'service':
- sectionKey = u'servicemanager/' + key
- exportSettings.setValue(sectionKey, keyValue)
- exportSettings.sync()
+ section_key = u'servicemanager/' + key
+ export_settings.setValue(section_key, key_value)
+ export_settings.sync()
# Temp INI file has been written. Blanks in keys are now '%20'.
# Read the temp file and output the user's INI file with blanks to
# make it more readable.
- tempIni = open(temp_file, u'r')
- exportIni = open(exportFileName, u'w')
- for fileRecord in tempIni:
- fileRecord = fileRecord.replace(u'%20', u' ')
- exportIni.write(fileRecord)
- tempIni.close()
- exportIni.close()
+ temp_ini = open(temp_file, u'r')
+ export_ini = open(exportFileName, u'w')
+ for file_record in temp_ini:
+ file_record = file_record.replace(u'%20', u' ')
+ # Get rid of any invalid entries.
+ if file_record.find(u'@Invalid()') == -1:
+ export_ini.write(file_record)
+ temp_ini.close()
+ export_ini.close()
os.remove(temp_file)
return
Follow ups