diff --git a/openlp.pyw b/openlp.pyw index cc58c6a21..41462b3cf 100755 --- a/openlp.pyw +++ b/openlp.pyw @@ -26,6 +26,8 @@ # Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### +import sip +sip.setapi(u'QString', 2) # Import uuid now, to avoid the rare bug described in the support system: # http://support.openlp.org/issues/102 # If https://bugs.gentoo.org/show_bug.cgi?id=317557 is fixed, the import can be diff --git a/openlp/core/__init__.py b/openlp/core/__init__.py index 71c27a1d0..5d0bb1e0e 100644 --- a/openlp/core/__init__.py +++ b/openlp/core/__init__.py @@ -40,7 +40,7 @@ from traceback import format_exception from PyQt4 import QtCore, QtGui -from openlp.core.lib import Receiver, check_directory_exists +from openlp.core.lib import Receiver, Settings, check_directory_exists, Settings from openlp.core.lib.ui import UiStrings from openlp.core.resources import qInitResources from openlp.core.ui.mainwindow import MainWindow @@ -78,7 +78,6 @@ QToolBar } """ - class OpenLP(QtGui.QApplication): """ The core application class. This class inherits from Qt's QApplication @@ -98,6 +97,7 @@ class OpenLP(QtGui.QApplication): """ Run the OpenLP application. """ + # On Windows, the args passed into the constructor are # ignored. Not very handy, so set the ones we want to use. self.args.extend(args) @@ -111,16 +111,14 @@ class OpenLP(QtGui.QApplication): # Decide how many screens we have and their size screens = ScreenList(self.desktop()) # First time checks in settings - has_run_wizard = QtCore.QSettings().value( - u'general/has run wizard', QtCore.QVariant(False)).toBool() + has_run_wizard = Settings().value( + u'general/has run wizard', False) if not has_run_wizard: if FirstTimeForm(screens).exec_() == QtGui.QDialog.Accepted: - QtCore.QSettings().setValue(u'general/has run wizard', - QtCore.QVariant(True)) + Settings().setValue(u'general/has run wizard', True) if os.name == u'nt': self.setStyleSheet(application_stylesheet) - show_splash = QtCore.QSettings().value( - u'general/show splash', QtCore.QVariant(True)).toBool() + show_splash = Settings().value(u'general/show splash', True) if show_splash: self.splash = SplashScreen() self.splash.show() @@ -139,8 +137,7 @@ class OpenLP(QtGui.QApplication): self.processEvents() if not has_run_wizard: self.mainWindow.firstTime() - update_check = QtCore.QSettings().value( - u'general/update check', QtCore.QVariant(True)).toBool() + update_check = Settings().value(u'general/update check', True) if update_check: VersionThread(self.mainWindow).start() Receiver.send_message(u'live_display_blank_check') @@ -264,8 +261,7 @@ def main(args=None): if app.isAlreadyRunning(): sys.exit() # First time checks in settings - if not QtCore.QSettings().value(u'general/has run wizard', - QtCore.QVariant(False)).toBool(): + if not Settings().value(u'general/has run wizard', False): if not FirstTimeLanguageForm().exec_(): # if cancel then stop processing sys.exit() diff --git a/openlp/core/lib/__init__.py b/openlp/core/lib/__init__.py index 9af8debb8..d16adda3c 100644 --- a/openlp/core/lib/__init__.py +++ b/openlp/core/lib/__init__.py @@ -63,6 +63,22 @@ class ServiceItemAction(object): Next = 3 +class Settings(QtCore.QSettings): + def __init__(self, *args): + QtCore.QSettings.__init__(self, *args) + import copy + self.value_ = copy.deepcopy(self.value) + self.value = copy.deepcopy(self.value2) + + def value2(self, key, defaultValue): + setting = self.value_(key, defaultValue) + if isinstance(defaultValue, int): + return setting.toInt()[0] + if isinstance(defaultValue, basestring): + return setting.toString() + if isinstance(defaultValue, bool): + return setting.toBool() + def translate(context, text, comment=None, encoding=QtCore.QCoreApplication.CodecForTr, n=-1, translate=QtCore.QCoreApplication.translate): diff --git a/openlp/core/lib/db.py b/openlp/core/lib/db.py index e097983eb..0af1fe995 100644 --- a/openlp/core/lib/db.py +++ b/openlp/core/lib/db.py @@ -38,7 +38,7 @@ from sqlalchemy.exc import SQLAlchemyError, InvalidRequestError, DBAPIError, \ from sqlalchemy.orm import scoped_session, sessionmaker, mapper from sqlalchemy.pool import NullPool -from openlp.core.lib import translate +from openlp.core.lib import translate, Settings from openlp.core.lib.ui import critical_error_message_box from openlp.core.utils import AppLocation, delete_file @@ -179,13 +179,12 @@ class Manager(object): The file name to use for this database. Defaults to None resulting in the plugin_name being used. """ - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(plugin_name) self.db_url = u'' self.is_dirty = False self.session = None - db_type = unicode( - settings.value(u'db type', QtCore.QVariant(u'sqlite')).toString()) + db_type = unicode(settings.value(u'db type', u'sqlite')) if db_type == u'sqlite': if db_file_name: self.db_url = u'sqlite:///%s/%s' % ( @@ -196,13 +195,12 @@ class Manager(object): AppLocation.get_section_data_path(plugin_name), plugin_name) else: self.db_url = u'%s://%s:%s@%s/%s' % (db_type, - urlquote(unicode(settings.value(u'db username').toString())), - urlquote(unicode(settings.value(u'db password').toString())), - urlquote(unicode(settings.value(u'db hostname').toString())), - urlquote(unicode(settings.value(u'db database').toString()))) + urlquote(unicode(settings.value(u'db username'))), + urlquote(unicode(settings.value(u'db password'))), + urlquote(unicode(settings.value(u'db hostname'))), + urlquote(unicode(settings.value(u'db database')))) if db_type == u'mysql': - db_encoding = unicode( - settings.value(u'db encoding', u'utf8').toString()) + db_encoding = unicode(settings.value(u'db encoding', u'utf8')) self.db_url += u'?charset=%s' % urlquote(db_encoding) settings.endGroup() if upgrade_mod: diff --git a/openlp/core/lib/formattingtags.py b/openlp/core/lib/formattingtags.py index 11fd898c3..2404f3ad7 100644 --- a/openlp/core/lib/formattingtags.py +++ b/openlp/core/lib/formattingtags.py @@ -31,7 +31,7 @@ import cPickle from PyQt4 import QtCore -from openlp.core.lib import translate +from openlp.core.lib import translate, Settings class FormattingTags(object): @@ -68,8 +68,8 @@ class FormattingTags(object): if isinstance(tag[element], unicode): tag[element] = tag[element].encode('utf8') # Formatting Tags were also known as display tags. - QtCore.QSettings().setValue(u'displayTags/html_tags', - QtCore.QVariant(cPickle.dumps(tags) if tags else u'')) + Settings().setValue(u'displayTags/html_tags', + cPickle.dumps(tags) if tags else u'') @staticmethod def load_tags(): @@ -164,8 +164,7 @@ class FormattingTags(object): FormattingTags.add_html_tags(temporary_tags) # Formatting Tags were also known as display tags. - user_expands = QtCore.QSettings().value(u'displayTags/html_tags', - QtCore.QVariant(u'')).toString() + user_expands = Settings().value(u'displayTags/html_tags', u'') # cPickle only accepts str not unicode strings user_expands_string = str(user_expands) if user_expands_string: diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 9bd6fc2a7..aee0af32d 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -34,7 +34,7 @@ import re from PyQt4 import QtCore, QtGui from openlp.core.lib import SettingsManager, OpenLPToolbar, ServiceItem, \ - StringContent, build_icon, translate, Receiver, ListWidgetWithDnD + StringContent, build_icon, translate, Receiver, ListWidgetWithDnD, Settings from openlp.core.lib.searchedit import SearchEdit from openlp.core.lib.ui import UiStrings, create_widget_action, \ critical_error_message_box @@ -462,8 +462,7 @@ class MediaManagerItem(QtGui.QWidget): """ Allows the list click action to be determined dynamically """ - if QtCore.QSettings().value(u'advanced/double click live', - QtCore.QVariant(False)).toBool(): + if Settings().value(u'advanced/double click live', False): self.onLiveClick() else: self.onPreviewClick() @@ -472,8 +471,8 @@ class MediaManagerItem(QtGui.QWidget): """ Allows the change of current item in the list to be actioned """ - if QtCore.QSettings().value(u'advanced/single click preview', - QtCore.QVariant(False)).toBool() and self.quickPreviewAllowed \ + if Settings().value(u'advanced/single click preview', + False) and self.quickPreviewAllowed \ and self.listView.selectedIndexes() \ and self.autoSelectId == -1: self.onPreviewClick(True) @@ -521,7 +520,7 @@ class MediaManagerItem(QtGui.QWidget): def createItemFromId(self, item_id): item = QtGui.QListWidgetItem() - item.setData(QtCore.Qt.UserRole, QtCore.QVariant(item_id)) + item.setData(QtCore.Qt.UserRole, item_id) return item def onAddClick(self): diff --git a/openlp/core/lib/plugin.py b/openlp/core/lib/plugin.py index a27e496cf..e060b4f85 100644 --- a/openlp/core/lib/plugin.py +++ b/openlp/core/lib/plugin.py @@ -31,7 +31,7 @@ import logging from PyQt4 import QtCore -from openlp.core.lib import Receiver +from openlp.core.lib import Receiver, Settings from openlp.core.lib.ui import UiStrings from openlp.core.utils import get_application_version @@ -190,17 +190,17 @@ class Plugin(QtCore.QObject): """ Sets the status of the plugin """ - self.status = QtCore.QSettings().value( - self.settingsSection + u'/status', - QtCore.QVariant(PluginStatus.Inactive)).toInt()[0] + #TODO: check if [0] is needed. + self.status = Settings().value( + self.settingsSection + u'/status', PluginStatus.Inactive) def toggleStatus(self, new_status): """ Changes the status of the plugin and remembers it """ self.status = new_status - QtCore.QSettings().setValue( - self.settingsSection + u'/status', QtCore.QVariant(self.status)) + Settings().setValue( + self.settingsSection + u'/status', self.status) if new_status == PluginStatus.Active: self.initialise() elif new_status == PluginStatus.Inactive: diff --git a/openlp/core/lib/settingsmanager.py b/openlp/core/lib/settingsmanager.py index 0fc4cac96..a77df513f 100644 --- a/openlp/core/lib/settingsmanager.py +++ b/openlp/core/lib/settingsmanager.py @@ -34,6 +34,7 @@ import os from PyQt4 import QtCore +from openlp.core.lib import Settings from openlp.core.utils import AppLocation class SettingsManager(object): @@ -58,9 +59,7 @@ class SettingsManager(object): name = u'last directory %d' % num else: name = u'last directory' - last_dir = unicode(QtCore.QSettings().value( - section + u'/' + name, QtCore.QVariant(u'')).toString()) - return last_dir + return unicode(Settings().value(section + u'/' + name, u'')) @staticmethod def set_last_dir(section, directory, num=None): @@ -81,8 +80,7 @@ class SettingsManager(object): name = u'last directory %d' % num else: name = u'last directory' - QtCore.QSettings().setValue( - section + u'/' + name, QtCore.QVariant(directory)) + Settings().setValue(section + u'/' + name, directory) @staticmethod def set_list(section, name, list): @@ -98,15 +96,14 @@ class SettingsManager(object): ``list`` The list of values to save. """ - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(section) - old_count = settings.value( - u'%s count' % name, QtCore.QVariant(0)).toInt()[0] + #TODO: check if [0] is needed. + old_count = settings.value(u'%s count' % name, 0) new_count = len(list) - settings.setValue(u'%s count' % name, QtCore.QVariant(new_count)) + settings.setValue(u'%s count' % name, new_count) for counter in range(new_count): - settings.setValue( - u'%s %d' % (name, counter), QtCore.QVariant(list[counter-1])) + settings.setValue(u'%s %d' % (name, counter), list[counter - 1]) if old_count > new_count: # Tidy up any old list items for counter in range(new_count, old_count): @@ -124,15 +121,13 @@ class SettingsManager(object): ``name`` The name of the list. """ - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(section) - list_count = settings.value( - u'%s count' % name, QtCore.QVariant(0)).toInt()[0] + list_count = settings.value(u'%s count' % name, 0) list = [] if list_count: for counter in range(list_count): - item = unicode( - settings.value(u'%s %d' % (name, counter)).toString()) + item = unicode(settings.value(u'%s %d' % (name, counter))) if item: list.append(item) settings.endGroup() diff --git a/openlp/core/lib/ui.py b/openlp/core/lib/ui.py index c4b1181b1..3f81af279 100644 --- a/openlp/core/lib/ui.py +++ b/openlp/core/lib/ui.py @@ -365,6 +365,7 @@ def create_action(parent, name, **kwargs): ``separator`` True in case the action will be considered a separator. + #FIXME: check ``data`` Data which is set as QVariant type. @@ -400,7 +401,7 @@ def create_action(parent, name, **kwargs): if kwargs.pop(u'separator', False): action.setSeparator(True) if u'data' in kwargs: - action.setData(QtCore.QVariant(kwargs.pop(u'data'))) + action.setData(kwargs.pop(u'data')) if kwargs.get(u'shortcuts'): action.setShortcuts(kwargs.pop(u'shortcuts')) if u'context' in kwargs: diff --git a/openlp/core/ui/advancedtab.py b/openlp/core/ui/advancedtab.py index 8b60a55ee..d44758c22 100644 --- a/openlp/core/ui/advancedtab.py +++ b/openlp/core/ui/advancedtab.py @@ -31,7 +31,8 @@ from datetime import datetime, timedelta from PyQt4 import QtCore, QtGui -from openlp.core.lib import SettingsTab, translate, build_icon, Receiver +from openlp.core.lib import Receiver, Settings, SettingsTab, translate, \ + build_icon from openlp.core.lib.ui import UiStrings from openlp.core.lib import SlideLimits from openlp.core.utils import get_images_filter @@ -340,56 +341,52 @@ class AdvancedTab(SettingsTab): """ Load settings from disk. """ - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(self.settingsSection) # The max recent files value does not have an interface and so never # gets actually stored in the settings therefore the default value of # 20 will always be used. - self.recentSpinBox.setMaximum(QtCore.QSettings().value( - u'max recent files', QtCore.QVariant(20)).toInt()[0]) + self.recentSpinBox.setMaximum(Settings().value( + u'max recent files', 20)) self.recentSpinBox.setValue(settings.value(u'recent file count', - QtCore.QVariant(4)).toInt()[0]) + 4)) self.mediaPluginCheckBox.setChecked( settings.value(u'save current plugin', - QtCore.QVariant(False)).toBool()) + False)) self.doubleClickLiveCheckBox.setChecked( settings.value(u'double click live', - QtCore.QVariant(False)).toBool()) + False)) self.singleClickPreviewCheckBox.setChecked( settings.value(u'single click preview', - QtCore.QVariant(False)).toBool()) + False)) self.expandServiceItemCheckBox.setChecked( settings.value(u'expand service item', - QtCore.QVariant(False)).toBool()) + False)) self.enableAutoCloseCheckBox.setChecked( settings.value(u'enable exit confirmation', - QtCore.QVariant(True)).toBool()) + True)) self.hideMouseCheckBox.setChecked( - settings.value(u'hide mouse', QtCore.QVariant(False)).toBool()) + settings.value(u'hide mouse', False)) self.serviceNameDay.setCurrentIndex( settings.value(u'default service day', - QtCore.QVariant(self.defaultServiceDay)).toInt()[0]) + self.defaultServiceDay)) self.serviceNameTime.setTime(QtCore.QTime( - settings.value(u'default service hour', - self.defaultServiceHour).toInt()[0], + settings.value(u'default service hour', self.defaultServiceHour), settings.value(u'default service minute', - self.defaultServiceMinute).toInt()[0])) + self.defaultServiceMinute))) self.shouldUpdateServiceNameExample = True self.serviceNameEdit.setText(settings.value(u'default service name', - self.defaultServiceName).toString()) - default_service_enabled = settings.value(u'default service enabled', - QtCore.QVariant(True)).toBool() + self.defaultServiceName)) + default_service_enabled = settings.value( + u'default service enabled', True) self.serviceNameCheckBox.setChecked(default_service_enabled) self.serviceNameCheckBoxToggled(default_service_enabled) self.x11BypassCheckBox.setChecked( - settings.value(u'x11 bypass wm', QtCore.QVariant(True)).toBool()) - self.defaultColor = settings.value(u'default color', - QtCore.QVariant(u'#ffffff')).toString() + settings.value(u'x11 bypass wm', True)) + self.defaultColor = settings.value(u'default color', u'#ffffff') self.defaultFileEdit.setText(settings.value(u'default image', - QtCore.QVariant(u':/graphics/openlp-splash-screen.png'))\ - .toString()) - self.slide_limits = settings.value( - u'slide limits', QtCore.QVariant(SlideLimits.End)).toInt()[0] + u':/graphics/openlp-splash-screen.png')) + self.slide_limits = settings.value(u'slide limits', SlideLimits.End) if self.slide_limits == SlideLimits.End: self.endSlideRadioButton.setChecked(True) elif self.slide_limits == SlideLimits.Wrap: @@ -404,7 +401,7 @@ class AdvancedTab(SettingsTab): """ Save settings to disk. """ - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(self.settingsSection) settings.setValue(u'default service enabled', self.serviceNameCheckBox.isChecked()) @@ -421,25 +418,22 @@ class AdvancedTab(SettingsTab): self.serviceNameTime.time().hour()) settings.setValue(u'default service minute', self.serviceNameTime.time().minute()) - settings.setValue(u'recent file count', - QtCore.QVariant(self.recentSpinBox.value())) + settings.setValue(u'recent file count', self.recentSpinBox.value()) settings.setValue(u'save current plugin', - QtCore.QVariant(self.mediaPluginCheckBox.isChecked())) + self.mediaPluginCheckBox.isChecked()) settings.setValue(u'double click live', - QtCore.QVariant(self.doubleClickLiveCheckBox.isChecked())) + self.doubleClickLiveCheckBox.isChecked()) settings.setValue(u'single click preview', - QtCore.QVariant(self.singleClickPreviewCheckBox.isChecked())) + self.singleClickPreviewCheckBox.isChecked()) settings.setValue(u'expand service item', - QtCore.QVariant(self.expandServiceItemCheckBox.isChecked())) + self.expandServiceItemCheckBox.isChecked()) settings.setValue(u'enable exit confirmation', - QtCore.QVariant(self.enableAutoCloseCheckBox.isChecked())) - settings.setValue(u'hide mouse', - QtCore.QVariant(self.hideMouseCheckBox.isChecked())) - settings.setValue(u'x11 bypass wm', - QtCore.QVariant(self.x11BypassCheckBox.isChecked())) + self.enableAutoCloseCheckBox.isChecked()) + settings.setValue(u'hide mouse', self.hideMouseCheckBox.isChecked()) + settings.setValue(u'x11 bypass wm', self.x11BypassCheckBox.isChecked()) settings.setValue(u'default color', self.defaultColor) settings.setValue(u'default image', self.defaultFileEdit.text()) - settings.setValue(u'slide limits', QtCore.QVariant(self.slide_limits)) + settings.setValue(u'slide limits', self.slide_limits) settings.endGroup() if self.displayChanged: Receiver.send_message(u'config_screen_changed') diff --git a/openlp/core/ui/firsttimeform.py b/openlp/core/ui/firsttimeform.py index 5926733a8..e14db5ae7 100644 --- a/openlp/core/ui/firsttimeform.py +++ b/openlp/core/ui/firsttimeform.py @@ -38,7 +38,7 @@ from ConfigParser import SafeConfigParser from PyQt4 import QtCore, QtGui from openlp.core.lib import translate, PluginStatus, Receiver, build_icon, \ - check_directory_exists + check_directory_exists, Settings from openlp.core.utils import get_web_page, AppLocation from firsttimewizard import Ui_FirstTimeWizard, FirstTimePage @@ -62,7 +62,7 @@ class ThemeScreenshotThread(QtCore.QThread): urllib.urlretrieve(u'%s%s' % (self.parent().web, screenshot), os.path.join(gettempdir(), u'openlp', screenshot)) item = QtGui.QListWidgetItem(title, self.parent().themesListWidget) - item.setData(QtCore.Qt.UserRole, QtCore.QVariant(filename)) + item.setData(QtCore.Qt.UserRole, filename) item.setCheckState(QtCore.Qt.Unchecked) item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable) @@ -113,8 +113,8 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard): check_directory_exists(os.path.join(gettempdir(), u'openlp')) self.noInternetFinishButton.setVisible(False) # Check if this is a re-run of the wizard. - self.hasRunWizard = QtCore.QSettings().value( - u'general/has run wizard', QtCore.QVariant(False)).toBool() + self.hasRunWizard = Settings().value( + u'general/has run wizard', False) # Sort out internet access for downloads if self.webAccess: songs = self.config.get(u'songs', u'languages') @@ -125,7 +125,7 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard): filename = unicode(self.config.get( u'songs_%s' % song, u'filename'), u'utf8') item = QtGui.QListWidgetItem(title, self.songsListWidget) - item.setData(QtCore.Qt.UserRole, QtCore.QVariant(filename)) + item.setData(QtCore.Qt.UserRole, filename) item.setCheckState(QtCore.Qt.Unchecked) item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable) bible_languages = self.config.get(u'bibles', u'languages') @@ -133,8 +133,9 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard): for lang in bible_languages: language = unicode(self.config.get( u'bibles_%s' % lang, u'title'), u'utf8') + # FIXME langItem = QtGui.QTreeWidgetItem( - self.biblesTreeWidget, QtCore.QStringList(language)) + self.biblesTreeWidget, language) bibles = self.config.get(u'bibles_%s' % lang, u'translations') bibles = bibles.split(u',') for bible in bibles: @@ -142,10 +143,9 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard): u'bible_%s' % bible, u'title'), u'utf8') filename = unicode(self.config.get( u'bible_%s' % bible, u'filename')) - item = QtGui.QTreeWidgetItem( - langItem, QtCore.QStringList(title)) - item.setData(0, QtCore.Qt.UserRole, - QtCore.QVariant(filename)) + # FIXME + item = QtGui.QTreeWidgetItem(langItem, title) + item.setData(0, QtCore.Qt.UserRole, filename) item.setCheckState(0, QtCore.Qt.Unchecked) item.setFlags(item.flags() | QtCore.Qt.ItemIsUserCheckable) self.biblesTreeWidget.expandAll() @@ -206,9 +206,8 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard): index = self.themeComboBox.findText(theme) if index == -1: self.themeComboBox.addItem(theme) - default_theme = unicode(QtCore.QSettings().value( - u'themes/global theme', - QtCore.QVariant(u'')).toString()) + default_theme = unicode(Settings().value( + u'themes/global theme', u'')) # Pre-select the current default theme. index = self.themeComboBox.findText(default_theme) self.themeComboBox.setCurrentIndex(index) @@ -257,8 +256,7 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard): self._performWizard() Receiver.send_message(u'openlp_process_events') Receiver.send_message(u'cursor_normal') - QtCore.QSettings().setValue(u'general/has run wizard', - QtCore.QVariant(True)) + Settings().setValue(u'general/has run wizard', True) self.close() def urlGetFile(self, url, fpath): @@ -296,7 +294,7 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard): screenshot = self.config.get(u'theme_%s' % theme, u'screenshot') for index in xrange(self.themesListWidget.count()): item = self.themesListWidget.item(index) - if item.data(QtCore.Qt.UserRole) == QtCore.QVariant(filename): + if item.data(QtCore.Qt.UserRole) == filename: break item.setIcon(build_icon( os.path.join(gettempdir(), u'openlp', screenshot))) @@ -456,16 +454,16 @@ class FirstTimeForm(QtGui.QWizard, Ui_FirstTimeWizard): os.path.join(themes_destination, theme)) # Set Default Display if self.displayComboBox.currentIndex() != -1: - QtCore.QSettings().setValue(u'General/monitor', - QtCore.QVariant(self.displayComboBox.currentIndex())) + Settings().setValue(u'General/monitor', + self.displayComboBox.currentIndex()) self.screens.set_current_display( - self.displayComboBox.currentIndex()) + self.displayComboBox.currentIndex()) # Set Global Theme if self.themeComboBox.currentIndex() != -1: - QtCore.QSettings().setValue(u'themes/global theme', - QtCore.QVariant(self.themeComboBox.currentText())) + Settings().setValue(u'themes/global theme', + self.themeComboBox.currentText()) def _setPluginStatus(self, field, tag): - status = PluginStatus.Active if field.checkState() \ - == QtCore.Qt.Checked else PluginStatus.Inactive - QtCore.QSettings().setValue(tag, QtCore.QVariant(status)) + status = PluginStatus.Active if field.checkState() == QtCore.Qt.Checked\ + else PluginStatus.Inactive + Settings().setValue(tag, status) diff --git a/openlp/core/ui/generaltab.py b/openlp/core/ui/generaltab.py index baf28f40f..6c6fec519 100644 --- a/openlp/core/ui/generaltab.py +++ b/openlp/core/ui/generaltab.py @@ -28,7 +28,7 @@ import logging from PyQt4 import QtCore, QtGui -from openlp.core.lib import SettingsTab, Receiver, translate +from openlp.core.lib import Receiver, Settings, SettingsTab, translate from openlp.core.lib.ui import UiStrings from openlp.core.ui import ScreenList @@ -265,53 +265,50 @@ class GeneralTab(SettingsTab): """ Load the settings to populate the form """ - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(self.settingsSection) self.monitorComboBox.clear() self.monitorComboBox.addItems(self.screens.get_screen_list()) - monitorNumber = settings.value(u'monitor', - QtCore.QVariant(self.screens.display_count - 1)).toInt()[0] + monitorNumber = settings.value( + u'monitor', self.screens.display_count - 1) self.monitorComboBox.setCurrentIndex(monitorNumber) - self.numberEdit.setText(unicode(settings.value( - u'ccli number', QtCore.QVariant(u'')).toString())) - self.usernameEdit.setText(unicode(settings.value( - u'songselect username', QtCore.QVariant(u'')).toString())) - self.passwordEdit.setText(unicode(settings.value( - u'songselect password', QtCore.QVariant(u'')).toString())) + self.numberEdit.setText(settings.value(u'ccli number', u'')) + self.usernameEdit.setText(settings.value(u'songselect username', u'')) + self.passwordEdit.setText(settings.value(u'songselect password', u'')) self.saveCheckServiceCheckBox.setChecked(settings.value(u'save prompt', - QtCore.QVariant(False)).toBool()) + False)) self.autoUnblankCheckBox.setChecked(settings.value(u'auto unblank', - QtCore.QVariant(False)).toBool()) + False)) self.displayOnMonitorCheck.setChecked(self.screens.display) self.warningCheckBox.setChecked(settings.value(u'blank warning', - QtCore.QVariant(False)).toBool()) + False)) self.autoOpenCheckBox.setChecked(settings.value(u'auto open', - QtCore.QVariant(False)).toBool()) + False)) self.showSplashCheckBox.setChecked(settings.value(u'show splash', - QtCore.QVariant(True)).toBool()) + True)) self.checkForUpdatesCheckBox.setChecked(settings.value(u'update check', - QtCore.QVariant(True)).toBool()) + True)) self.autoPreviewCheckBox.setChecked(settings.value(u'auto preview', - QtCore.QVariant(False)).toBool()) + False)) self.timeoutSpinBox.setValue(settings.value(u'loop delay', - QtCore.QVariant(5)).toInt()[0]) + 5)) self.monitorRadioButton.setChecked( not settings.value(u'override position', - QtCore.QVariant(False)).toBool()) + False)) self.overrideRadioButton.setChecked(settings.value(u'override position', - QtCore.QVariant(False)).toBool()) + False)) self.customXValueEdit.setValue(settings.value(u'x position', - QtCore.QVariant(self.screens.current[u'size'].x())).toInt()[0]) + self.screens.current[u'size'].x())) self.customYValueEdit.setValue(settings.value(u'y position', - QtCore.QVariant(self.screens.current[u'size'].y())).toInt()[0]) + self.screens.current[u'size'].y())) self.customHeightValueEdit.setValue(settings.value(u'height', - QtCore.QVariant(self.screens.current[u'size'].height())).toInt()[0]) + self.screens.current[u'size'].height())) self.customWidthValueEdit.setValue(settings.value(u'width', - QtCore.QVariant(self.screens.current[u'size'].width())).toInt()[0]) + self.screens.current[u'size'].width())) self.startPausedCheckBox.setChecked(settings.value( - u'audio start paused', QtCore.QVariant(True)).toBool()) + u'audio start paused', True)) self.repeatListCheckBox.setChecked(settings.value( - u'audio repeat list', QtCore.QVariant(False)).toBool()) + u'audio repeat list', False)) settings.endGroup() self.monitorComboBox.setDisabled(self.overrideRadioButton.isChecked()) self.customXValueEdit.setEnabled(self.overrideRadioButton.isChecked()) @@ -327,48 +324,36 @@ class GeneralTab(SettingsTab): """ Save the settings from the form """ - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(self.settingsSection) - settings.setValue(u'monitor', - QtCore.QVariant(self.monitorComboBox.currentIndex())) + settings.setValue(u'monitor', self.monitorComboBox.currentIndex()) settings.setValue(u'display on monitor', - QtCore.QVariant(self.displayOnMonitorCheck.isChecked())) - settings.setValue(u'blank warning', - QtCore.QVariant(self.warningCheckBox.isChecked())) - settings.setValue(u'auto open', - QtCore.QVariant(self.autoOpenCheckBox.isChecked())) - settings.setValue(u'show splash', - QtCore.QVariant(self.showSplashCheckBox.isChecked())) + self.displayOnMonitorCheck.isChecked()) + settings.setValue(u'blank warning', self.warningCheckBox.isChecked()) + settings.setValue(u'auto open', self.autoOpenCheckBox.isChecked()) + settings.setValue(u'show splash', self.showSplashCheckBox.isChecked()) settings.setValue(u'update check', - QtCore.QVariant(self.checkForUpdatesCheckBox.isChecked())) + self.checkForUpdatesCheckBox.isChecked()) settings.setValue(u'save prompt', - QtCore.QVariant(self.saveCheckServiceCheckBox.isChecked())) - settings.setValue(u'auto unblank', - QtCore.QVariant(self.autoUnblankCheckBox.isChecked())) - settings.setValue(u'auto preview', - QtCore.QVariant(self.autoPreviewCheckBox.isChecked())) - settings.setValue(u'loop delay', - QtCore.QVariant(self.timeoutSpinBox.value())) - settings.setValue(u'ccli number', - QtCore.QVariant(self.numberEdit.displayText())) + self.saveCheckServiceCheckBox.isChecked()) + settings.setValue(u'auto unblank', self.autoUnblankCheckBox.isChecked()) + settings.setValue(u'auto preview', self.autoPreviewCheckBox.isChecked()) + settings.setValue(u'loop delay', self.timeoutSpinBox.value()) + settings.setValue(u'ccli number', self.numberEdit.displayText()) settings.setValue(u'songselect username', - QtCore.QVariant(self.usernameEdit.displayText())) + self.usernameEdit.displayText()) settings.setValue(u'songselect password', - QtCore.QVariant(self.passwordEdit.displayText())) - settings.setValue(u'x position', - QtCore.QVariant(self.customXValueEdit.value())) - settings.setValue(u'y position', - QtCore.QVariant(self.customYValueEdit.value())) - settings.setValue(u'height', - QtCore.QVariant(self.customHeightValueEdit.value())) - settings.setValue(u'width', - QtCore.QVariant(self.customWidthValueEdit.value())) + self.passwordEdit.displayText()) + settings.setValue(u'x position', self.customXValueEdit.value()) + settings.setValue(u'y position', self.customYValueEdit.value()) + settings.setValue(u'height', self.customHeightValueEdit.value()) + settings.setValue(u'width', self.customWidthValueEdit.value()) settings.setValue(u'override position', - QtCore.QVariant(self.overrideRadioButton.isChecked())) + self.overrideRadioButton.isChecked()) settings.setValue(u'audio start paused', - QtCore.QVariant(self.startPausedCheckBox.isChecked())) + self.startPausedCheckBox.isChecked()) settings.setValue(u'audio repeat list', - QtCore.QVariant(self.repeatListCheckBox.isChecked())) + self.repeatListCheckBox.isChecked()) settings.endGroup() # On save update the screens as well self.postSetUp(True) diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index 15fb9eefe..dd20230fe 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -36,7 +36,7 @@ from PyQt4 import QtCore, QtGui, QtWebKit, QtOpenGL from PyQt4.phonon import Phonon from openlp.core.lib import Receiver, build_html, ServiceItem, image_to_byte, \ - translate, PluginManager, expand_tags + translate, PluginManager, expand_tags, Settings from openlp.core.lib.theme import BackgroundType from openlp.core.ui import HideMode, ScreenList, AlertLocation @@ -134,8 +134,7 @@ class MainDisplay(Display): self.setStyleSheet(u'border: 0px; margin: 0px; padding: 0px;') windowFlags = QtCore.Qt.FramelessWindowHint | QtCore.Qt.Tool | \ QtCore.Qt.WindowStaysOnTopHint - if QtCore.QSettings().value(u'advanced/x11 bypass wm', - QtCore.QVariant(True)).toBool(): + if Settings().value(u'advanced/x11 bypass wm', True): windowFlags |= QtCore.Qt.X11BypassWindowManagerHint # FIXME: QtCore.Qt.SplashScreen is workaround to make display screen # stay always on top on Mac OS X. For details see bug 906926. @@ -195,13 +194,12 @@ class MainDisplay(Display): Display.setup(self) if self.isLive: # Build the initial frame. - image_file = QtCore.QSettings().value(u'advanced/default image', - QtCore.QVariant(u':/graphics/openlp-splash-screen.png'))\ - .toString() + image_file = Settings().value(u'advanced/default image', + u':/graphics/openlp-splash-screen.png') background_color = QtGui.QColor() - background_color.setNamedColor(QtCore.QSettings().value( + background_color.setNamedColor(Settings().value( u'advanced/default color', - QtCore.QVariant(u'#ffffff')).toString()) + u'#ffffff')) if not background_color.isValid(): background_color = QtCore.Qt.white splash_image = QtGui.QImage(image_file) @@ -260,7 +258,7 @@ class MainDisplay(Display): height = self.frame.evaluateJavaScript(js) if shrink: if text: - alert_height = int(height.toString()) + alert_height = int(height) self.resize(self.width(), alert_height) self.setVisible(True) if location == AlertLocation.Middle: @@ -352,8 +350,8 @@ class MainDisplay(Display): # Single screen active if self.screens.display_count == 1: # Only make visible if setting enabled. - if QtCore.QSettings().value(u'general/display on monitor', - QtCore.QVariant(True)).toBool(): + if Settings().value( + u'general/display on monitor', True): self.setVisible(True) else: self.setVisible(True) @@ -401,8 +399,8 @@ class MainDisplay(Display): self.footer(serviceItem.foot_text) # if was hidden keep it hidden if self.hideMode and self.isLive and not serviceItem.is_media(): - if QtCore.QSettings().value(u'general/auto unblank', - QtCore.QVariant(False)).toBool(): + if Settings().value(u'general/auto unblank', + False): Receiver.send_message(u'slidecontroller_live_unblank') else: self.hideDisplay(self.hideMode) @@ -425,8 +423,8 @@ class MainDisplay(Display): log.debug(u'hideDisplay mode = %d', mode) if self.screens.display_count == 1: # Only make visible if setting enabled. - if not QtCore.QSettings().value(u'general/display on monitor', - QtCore.QVariant(True)).toBool(): + if not Settings().value(u'general/display on monitor', + True): return if mode == HideMode.Screen: self.frame.evaluateJavaScript(u'show_blank("desktop");') @@ -450,8 +448,8 @@ class MainDisplay(Display): log.debug(u'showDisplay') if self.screens.display_count == 1: # Only make visible if setting enabled. - if not QtCore.QSettings().value(u'general/display on monitor', - QtCore.QVariant(True)).toBool(): + if not Settings().value(u'general/display on monitor', + True): return self.frame.evaluateJavaScript('show_blank("show");') if self.isHidden(): @@ -465,8 +463,8 @@ class MainDisplay(Display): """ Hide mouse cursor when moved over display. """ - if QtCore.QSettings().value(u'advanced/hide mouse', - QtCore.QVariant(False)).toBool(): + if Settings().value(u'advanced/hide mouse', + False): self.setCursor(QtCore.Qt.BlankCursor) self.frame.evaluateJavaScript('document.body.style.cursor = "none"') else: diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index e4a4e1616..64167d194 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -37,7 +37,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import Renderer, build_icon, OpenLPDockWidget, \ PluginManager, Receiver, translate, ImageManager, PluginStatus from openlp.core.lib.ui import UiStrings, create_action -from openlp.core.lib import SlideLimits +from openlp.core.lib import SlideLimits, Settings from openlp.core.ui import AboutForm, SettingsForm, ServiceManager, \ ThemeManager, SlideController, PluginForm, MediaDockManager, \ ShortcutListForm, FormattingTagForm @@ -99,13 +99,13 @@ class Ui_MainWindow(object): # Create slide controllers self.previewController = SlideController(self) self.liveController = SlideController(self, True) - previewVisible = QtCore.QSettings().value( - u'user interface/preview panel', QtCore.QVariant(True)).toBool() + previewVisible = Settings().value( + u'user interface/preview panel', True) self.previewController.panel.setVisible(previewVisible) - liveVisible = QtCore.QSettings().value(u'user interface/live panel', - QtCore.QVariant(True)).toBool() - panelLocked = QtCore.QSettings().value(u'user interface/lock panel', - QtCore.QVariant(False)).toBool() + liveVisible = Settings().value(u'user interface/live panel', + True) + panelLocked = Settings().value(u'user interface/lock panel', + False) self.liveController.panel.setVisible(liveVisible) # Create menu self.menuBar = QtGui.QMenuBar(mainWindow) @@ -684,10 +684,9 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): self.previewController.screenSizeChanged() self.liveController.screenSizeChanged() log.info(u'Load data from Settings') - if QtCore.QSettings().value(u'advanced/save current plugin', - QtCore.QVariant(False)).toBool(): - savedPlugin = QtCore.QSettings().value( - u'advanced/current media plugin', QtCore.QVariant()).toInt()[0] + if Settings().value(u'advanced/save current plugin', False): + savedPlugin = Settings().value( + u'advanced/current media plugin', ) if savedPlugin != -1: self.mediaToolBox.setCurrentIndex(savedPlugin) self.settingsForm.postSetUp() @@ -738,12 +737,12 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): if not isinstance(filename, unicode): filename = unicode(filename, sys.getfilesystemencoding()) self.serviceManagerContents.loadFile(filename) - elif QtCore.QSettings().value( + elif Settings().value( self.generalSettingsSection + u'/auto open', - QtCore.QVariant(False)).toBool(): + False): self.serviceManagerContents.loadLastFile() - view_mode = QtCore.QSettings().value(u'%s/view mode' % \ - self.generalSettingsSection, u'default').toString() + view_mode = Settings().value(u'%s/view mode' % \ + self.generalSettingsSection, u'default') if view_mode == u'default': self.modeDefaultItem.setChecked(True) elif view_mode == u'setup': @@ -820,12 +819,12 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): """ Check and display message if screen blank on setup. """ - settings = QtCore.QSettings() + settings = Settings() self.liveController.mainDisplaySetBackground() if settings.value(u'%s/screen blank' % self.generalSettingsSection, - QtCore.QVariant(False)).toBool(): + False): if settings.value(u'%s/blank warning' % self.generalSettingsSection, - QtCore.QVariant(False)).toBool(): + False): QtGui.QMessageBox.question(self, translate('OpenLP.MainWindow', 'OpenLP Main Display Blanked'), @@ -954,8 +953,8 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): # Add plugin sections. for plugin in self.pluginManager.plugins: setting_sections.extend([plugin.name]) - settings = QtCore.QSettings() - import_settings = QtCore.QSettings(import_file_name, + settings = Settings() + import_settings = Settings(import_file_name, QtCore.QSettings.IniFormat) import_keys = import_settings.allKeys() for section_key in import_keys: @@ -985,11 +984,10 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): # We have a good file, import it. for section_key in import_keys: value = import_settings.value(section_key) - settings.setValue(u'%s' % (section_key), - QtCore.QVariant(value)) + settings.setValue(u'%s' % (section_key), value) now = datetime.now() settings.beginGroup(self.headerSection) - settings.setValue(u'file_imported', QtCore.QVariant(import_file_name)) + settings.setValue(u'file_imported', import_file_name) settings.setValue(u'file_date_imported', now.strftime("%Y-%m-%d %H:%M")) settings.endGroup() @@ -1041,11 +1039,11 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): os.remove(temp_file) if os.path.exists(export_file_name): os.remove(export_file_name) - settings = QtCore.QSettings() + settings = Settings() settings.remove(self.headerSection) # Get the settings. keys = settings.allKeys() - export_settings = QtCore.QSettings(temp_file, + export_settings = Settings(temp_file, QtCore.QSettings.IniFormat) # Add a header section. # This is to insure it's our conf file for import. @@ -1104,7 +1102,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): Set OpenLP to a different view mode. """ if mode: - settings = QtCore.QSettings() + settings = Settings() settings.setValue(u'%s/view mode' % self.generalSettingsSection, mode) self.mediaManagerDock.setVisible(media) @@ -1149,8 +1147,8 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): else: event.ignore() else: - if QtCore.QSettings().value(u'advanced/enable exit confirmation', - QtCore.QVariant(True)).toBool(): + if Settings().value(u'advanced/enable exit confirmation', + True): ret = QtGui.QMessageBox.question(self, translate('OpenLP.MainWindow', 'Close OpenLP'), translate('OpenLP.MainWindow', @@ -1174,10 +1172,10 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): """ # Clean temporary files used by services self.serviceManagerContents.cleanUp() - if QtCore.QSettings().value(u'advanced/save current plugin', - QtCore.QVariant(False)).toBool(): - QtCore.QSettings().setValue(u'advanced/current media plugin', - QtCore.QVariant(self.mediaToolBox.currentIndex())) + if Settings().value(u'advanced/save current plugin', + False): + Settings().setValue(u'advanced/current media plugin', + self.mediaToolBox.currentIndex()) # Call the cleanup method to shutdown plugins. log.info(u'cleanup plugins') self.pluginManager.finalise_plugins() @@ -1254,8 +1252,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): False - Hidden """ self.previewController.panel.setVisible(visible) - QtCore.QSettings().setValue(u'user interface/preview panel', - QtCore.QVariant(visible)) + Settings().setValue(u'user interface/preview panel', visible) self.viewPreviewPanel.setChecked(visible) def setLockPanel(self, lock): @@ -1286,8 +1283,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): self.viewThemeManagerItem.setEnabled(True) self.viewPreviewPanel.setEnabled(True) self.viewLivePanel.setEnabled(True) - QtCore.QSettings().setValue(u'user interface/lock panel', - QtCore.QVariant(lock)) + Settings().setValue(u'user interface/lock panel', lock) def setLivePanelVisibility(self, visible): """ @@ -1300,8 +1296,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): False - Hidden """ self.liveController.panel.setVisible(visible) - QtCore.QSettings().setValue(u'user interface/live panel', - QtCore.QVariant(visible)) + Settings().setValue(u'user interface/live panel', visible) self.viewLivePanel.setChecked(visible) def loadSettings(self): @@ -1310,19 +1305,19 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): """ log.debug(u'Loading QSettings') # Migrate Wrap Settings to Slide Limits Settings - if QtCore.QSettings().contains(self.generalSettingsSection + + if Settings().contains(self.generalSettingsSection + u'/enable slide loop'): - if QtCore.QSettings().value(self.generalSettingsSection + - u'/enable slide loop', QtCore.QVariant(True)).toBool(): - QtCore.QSettings().setValue(self.advancedSettingsSection + - u'/slide limits', QtCore.QVariant(SlideLimits.Wrap)) + if Settings().value(self.generalSettingsSection + + u'/enable slide loop', True): + Settings().setValue(self.advancedSettingsSection + + u'/slide limits', SlideLimits.Wrap) else: - QtCore.QSettings().setValue(self.advancedSettingsSection + - u'/slide limits', QtCore.QVariant(SlideLimits.End)) - QtCore.QSettings().remove(self.generalSettingsSection + + Settings().setValue(self.advancedSettingsSection + + u'/slide limits', SlideLimits.End) + Settings().remove(self.generalSettingsSection + u'/enable slide loop') Receiver.send_message(u'slidecontroller_update_slide_limits') - settings = QtCore.QSettings() + settings = Settings() # Remove obsolete entries. settings.remove(u'custom slide') settings.remove(u'service') @@ -1331,7 +1326,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): settings.endGroup() settings.beginGroup(self.uiSettingsSection) self.move(settings.value(u'main window position', - QtCore.QVariant(QtCore.QPoint(0, 0))).toPoint()) + QtCore.QPoint(0, 0))).toPoint() self.restoreGeometry( settings.value(u'main window geometry').toByteArray()) self.restoreState(settings.value(u'main window state').toByteArray()) @@ -1351,25 +1346,21 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): if self.settingsImported: return log.debug(u'Saving QSettings') - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(self.generalSettingsSection) - recentFiles = QtCore.QVariant(self.recentFiles) \ - if self.recentFiles else QtCore.QVariant() + recentFiles = self.recentFiles if self.recentFiles else u'' settings.setValue(u'recent files', recentFiles) settings.endGroup() settings.beginGroup(self.uiSettingsSection) - settings.setValue(u'main window position', - QtCore.QVariant(self.pos())) - settings.setValue(u'main window state', - QtCore.QVariant(self.saveState())) - settings.setValue(u'main window geometry', - QtCore.QVariant(self.saveGeometry())) + settings.setValue(u'main window position', self.pos()) + settings.setValue(u'main window state', self.saveState()) + settings.setValue(u'main window geometry', self.saveGeometry()) settings.setValue(u'live splitter geometry', - QtCore.QVariant(self.liveController.splitter.saveState())) + self.liveController.splitter.saveState()) settings.setValue(u'preview splitter geometry', - QtCore.QVariant(self.previewController.splitter.saveState())) + self.previewController.splitter.saveState()) settings.setValue(u'mainwindow splitter geometry', - QtCore.QVariant(self.controlSplitter.saveState())) + self.controlSplitter.saveState()) settings.endGroup() def updateRecentFilesMenu(self): @@ -1377,8 +1368,8 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): Updates the recent file menu with the latest list of service files accessed. """ - recentFileCount = QtCore.QSettings().value( - u'advanced/recent file count', QtCore.QVariant(4)).toInt()[0] + recentFileCount = Settings().value( + u'advanced/recent file count', 4) existingRecentFiles = [recentFile for recentFile in self.recentFiles if os.path.isfile(unicode(recentFile))] recentFilesToDisplay = existingRecentFiles[0:recentFileCount] @@ -1410,8 +1401,8 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): # The maxRecentFiles value does not have an interface and so never gets # actually stored in the settings therefore the default value of 20 will # always be used. - maxRecentFiles = QtCore.QSettings().value(u'advanced/max recent files', - QtCore.QVariant(20)).toInt()[0] + maxRecentFiles = Settings().value( + u'advanced/max recent files', 20) if filename: # Add some cleanup to reduce duplication in the recent file list filename = os.path.abspath(filename) @@ -1422,7 +1413,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): position = self.recentFiles.indexOf(filename) if position != -1: self.recentFiles.removeAt(position) - self.recentFiles.insert(0, QtCore.QString(filename)) + self.recentFiles.insert(0, filename) while self.recentFiles.count() > maxRecentFiles: # Don't care what API says takeLast works, removeLast doesn't! self.recentFiles.takeLast() diff --git a/openlp/core/ui/media/__init__.py b/openlp/core/ui/media/__init__.py index 5c4428a61..7fb5ccd04 100644 --- a/openlp/core/ui/media/__init__.py +++ b/openlp/core/ui/media/__init__.py @@ -26,6 +26,8 @@ ############################################################################### import logging +from openlp.core.lib import Settings + from PyQt4 import QtCore log = logging.getLogger(__name__) @@ -78,12 +80,12 @@ def get_media_players(): Here an special media player is chosen for all media actions. """ log.debug(u'get_media_players') - players = unicode(QtCore.QSettings().value(u'media/players').toString()) + players = Settings().value(u'media/players') if not players: players = u'webkit' reg_ex = QtCore.QRegExp(".*\[(.*)\].*") - if QtCore.QSettings().value(u'media/override player', - QtCore.QVariant(QtCore.Qt.Unchecked)).toInt()[0] == QtCore.Qt.Checked: + if Settings().value(u'media/override player', + QtCore.Qt.Unchecked) == QtCore.Qt.Checked: if reg_ex.exactMatch(players): overridden_player = u'%s' % reg_ex.cap(1) else: @@ -107,10 +109,10 @@ def set_media_players(players_list, overridden_player=u'auto'): """ log.debug(u'set_media_players') players = u','.join(players_list) - if QtCore.QSettings().value(u'media/override player', - QtCore.QVariant(QtCore.Qt.Unchecked)).toInt()[0] == \ - QtCore.Qt.Checked and overridden_player != u'auto': + if Settings().value(u'media/override player', + QtCore.Qt.Unchecked) == QtCore.Qt.Checked and \ + overridden_player != u'auto': players = players.replace(overridden_player, u'[%s]' % overridden_player) - QtCore.QSettings().setValue(u'media/players', QtCore.QVariant(players)) + Settings().setValue(u'media/players', players) from mediacontroller import MediaController diff --git a/openlp/core/ui/media/mediacontroller.py b/openlp/core/ui/media/mediacontroller.py index b7356fcf5..2fb0c6fd4 100644 --- a/openlp/core/ui/media/mediacontroller.py +++ b/openlp/core/ui/media/mediacontroller.py @@ -332,9 +332,8 @@ class MediaController(object): display.frame.evaluateJavaScript(u'show_video( \ "setBackBoard", null, null, null,"visible");') # now start playing - if controller.isLive and \ - (QtCore.QSettings().value(u'general/auto unblank', - QtCore.QVariant(False)).toBool() or \ + if controller.isLive and (Settings().value( + u'general/auto unblank', False) or controller.media_info.is_background == True) or \ controller.isLive == False: if not self.video_play([controller]): diff --git a/openlp/core/ui/media/vlcplayer.py b/openlp/core/ui/media/vlcplayer.py index 6d26f3b34..93a06b0b3 100644 --- a/openlp/core/ui/media/vlcplayer.py +++ b/openlp/core/ui/media/vlcplayer.py @@ -33,7 +33,7 @@ import sys from PyQt4 import QtCore, QtGui -from openlp.core.lib import Receiver +from openlp.core.lib import Receiver, Settings from openlp.core.lib.mediaplayer import MediaPlayer from openlp.core.ui.media import MediaState @@ -114,8 +114,7 @@ class VlcPlayer(MediaPlayer): command_line_options = u'--no-video-title-show' if not display.hasAudio: command_line_options += u' --no-audio --no-video-title-show' - if QtCore.QSettings().value(u'advanced/hide mouse', - QtCore.QVariant(False)).toBool() and \ + if Settings().value(u'advanced/hide mouse', False) and \ display.controller.isLive: command_line_options += u' --mouse-hide-timeout=0' display.vlcInstance = vlc.Instance(command_line_options) diff --git a/openlp/core/ui/printserviceform.py b/openlp/core/ui/printserviceform.py index 943f8daff..3cf55713b 100644 --- a/openlp/core/ui/printserviceform.py +++ b/openlp/core/ui/printserviceform.py @@ -31,7 +31,7 @@ import os from PyQt4 import QtCore, QtGui from lxml import html -from openlp.core.lib import translate, get_text_file_string, Receiver +from openlp.core.lib import translate, get_text_file_string, Receiver, Settings from openlp.core.lib.ui import UiStrings from openlp.core.ui.printservicedialog import Ui_PrintServiceDialog, ZoomSize from openlp.core.utils import AppLocation @@ -120,20 +120,18 @@ class PrintServiceForm(QtGui.QDialog, Ui_PrintServiceDialog): self.zoom = 0 self.setupUi(self) # Load the settings for the dialog. - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(u'advanced') self.slideTextCheckBox.setChecked(settings.value( - u'print slide text', QtCore.QVariant(False)).toBool()) + u'print slide text', False)) self.pageBreakAfterText.setChecked(settings.value( - u'add page break', QtCore.QVariant(False)).toBool()) + u'add page break', False)) if not self.slideTextCheckBox.isChecked(): self.pageBreakAfterText.setDisabled(True) self.metaDataCheckBox.setChecked(settings.value( - u'print file meta data', QtCore.QVariant(False)).toBool()) - self.notesCheckBox.setChecked(settings.value( - u'print notes', QtCore.QVariant(False)).toBool()) - self.zoomComboBox.setCurrentIndex(settings.value( - u'display size', QtCore.QVariant(0)).toInt()[0]) + u'print file meta data', False)) + self.notesCheckBox.setChecked(settings.value(u'print notes', False)) + self.zoomComboBox.setCurrentIndex(settings.value(u'display size', 0)) settings.endGroup() # Signals QtCore.QObject.connect(self.printButton, @@ -318,9 +316,9 @@ class PrintServiceForm(QtGui.QDialog, Ui_PrintServiceDialog): elif display == ZoomSize.TwentyFive: self.previewWidget.fitToWidth() self.previewWidget.zoomIn(0.25) - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(u'advanced') - settings.setValue(u'display size', QtCore.QVariant(display)) + settings.setValue(u'display size', display) settings.endGroup() def copyText(self): @@ -389,16 +387,15 @@ class PrintServiceForm(QtGui.QDialog, Ui_PrintServiceDialog): Save the settings and close the dialog. """ # Save the settings for this dialog. - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(u'advanced') settings.setValue(u'print slide text', - QtCore.QVariant(self.slideTextCheckBox.isChecked())) + self.slideTextCheckBox.isChecked()) settings.setValue(u'add page break', - QtCore.QVariant(self.pageBreakAfterText.isChecked())) + self.pageBreakAfterText.isChecked()) settings.setValue(u'print file meta data', - QtCore.QVariant(self.metaDataCheckBox.isChecked())) - settings.setValue(u'print notes', - QtCore.QVariant(self.notesCheckBox.isChecked())) + self.metaDataCheckBox.isChecked()) + settings.setValue(u'print notes', self.notesCheckBox.isChecked()) settings.endGroup() def update_song_usage(self): diff --git a/openlp/core/ui/screen.py b/openlp/core/ui/screen.py index 21fbd6144..c603e1904 100644 --- a/openlp/core/ui/screen.py +++ b/openlp/core/ui/screen.py @@ -33,7 +33,7 @@ import copy from PyQt4 import QtCore -from openlp.core.lib import Receiver, translate +from openlp.core.lib import Receiver, translate, Settings log = logging.getLogger(__name__) @@ -241,22 +241,16 @@ class ScreenList(object): """ Loads the screen size and the monitor number from the settings. """ - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(u'general') self.set_current_display(settings.value(u'monitor', - QtCore.QVariant(self.display_count - 1)).toInt()[0]) - self.display = settings.value( - u'display on monitor', QtCore.QVariant(True)).toBool() - override_display = settings.value( - u'override position', QtCore.QVariant(False)).toBool() - x = settings.value(u'x position', - QtCore.QVariant(self.current[u'size'].x())).toInt()[0] - y = settings.value(u'y position', - QtCore.QVariant(self.current[u'size'].y())).toInt()[0] - width = settings.value(u'width', - QtCore.QVariant(self.current[u'size'].width())).toInt()[0] - height = settings.value(u'height', - QtCore.QVariant(self.current[u'size'].height())).toInt()[0] + self.display_count - 1)) + self.display = settings.value(u'display on monitor', True) + override_display = settings.value(u'override position', False) + x = settings.value(u'x position', self.current[u'size'].x()) + y = settings.value(u'y position', self.current[u'size'].y()) + width = settings.value(u'width', self.current[u'size'].width()) + height = settings.value(u'height', self.current[u'size'].height()) self.override[u'size'] = QtCore.QRect(x, y, width, height) self.override[u'primary'] = False settings.endGroup() diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 79faad819..ae76ccd44 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -38,7 +38,7 @@ log = logging.getLogger(__name__) from PyQt4 import QtCore, QtGui from openlp.core.lib import OpenLPToolbar, ServiceItem, Receiver, build_icon, \ - ItemCapabilities, SettingsManager, translate, str_to_bool + ItemCapabilities, SettingsManager, translate, str_to_bool, Settings from openlp.core.lib.theme import ThemeLevel from openlp.core.lib.ui import UiStrings, critical_error_message_box, \ create_widget_action, find_and_set_in_combo_box @@ -274,9 +274,9 @@ class ServiceManager(QtGui.QWidget): QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'service_item_update'), self.serviceItemUpdate) # Last little bits of setting up - self.service_theme = unicode(QtCore.QSettings().value( + self.service_theme = unicode(Settings().value( self.mainwindow.serviceManagerSettingsSection + u'/service theme', - QtCore.QVariant(u'')).toString()) + u'')) self.servicePath = AppLocation.get_section_data_path(u'servicemanager') # build the drag and drop context menu self.dndMenu = QtGui.QMenu() @@ -350,10 +350,9 @@ class ServiceManager(QtGui.QWidget): Setter for service file. """ self._fileName = unicode(fileName) - self.mainwindow.setServiceModified(self.isModified(), - self.shortFileName()) - QtCore.QSettings(). \ - setValue(u'servicemanager/last file',QtCore.QVariant(fileName)) + self.mainwindow.setServiceModified( + self.isModified(), self.shortFileName()) + Settings().setValue(u'servicemanager/last file', fileName) def fileName(self): """ @@ -371,9 +370,8 @@ class ServiceManager(QtGui.QWidget): """ Triggered when Config dialog is updated. """ - self.expandTabs = QtCore.QSettings().value( - u'advanced/expand service item', - QtCore.QVariant(u'False')).toBool() + self.expandTabs = Settings().value( + u'advanced/expand service item', False) def supportedSuffixes(self, suffix): self.suffixes.append(suffix) @@ -433,7 +431,7 @@ class ServiceManager(QtGui.QWidget): def onRecentServiceClicked(self): sender = self.sender() - self.loadFile(sender.data().toString()) + self.loadFile(sender.data()) def newFile(self): """ @@ -444,8 +442,7 @@ class ServiceManager(QtGui.QWidget): self.setFileName(u'') self.serviceId += 1 self.setModified(False) - QtCore.QSettings(). \ - setValue(u'servicemanager/last file',QtCore.QVariant(u'')) + Settings().setValue(u'servicemanager/last file', u'') Receiver.send_message(u'servicemanager_new_service') def saveFile(self): @@ -593,17 +590,17 @@ class ServiceManager(QtGui.QWidget): Get a file name and then call :func:`ServiceManager.saveFile` to save the file. """ - default_service_enabled = QtCore.QSettings().value( - u'advanced/default service enabled', QtCore.QVariant(True)).toBool() + default_service_enabled = Settings().value( + u'advanced/default service enabled', True) if default_service_enabled: - service_day = QtCore.QSettings().value( + service_day = Settings().value( u'advanced/default service day', 7).toInt()[0] if service_day == 7: time = datetime.now() else: - service_hour = QtCore.QSettings().value( + service_hour = Settings().value( u'advanced/default service hour', 11).toInt()[0] - service_minute = QtCore.QSettings().value( + service_minute = Settings().value( u'advanced/default service minute', 0).toInt()[0] now = datetime.now() day_delta = service_day - now.weekday() @@ -611,13 +608,13 @@ class ServiceManager(QtGui.QWidget): day_delta += 7 time = now + timedelta(days=day_delta) time = time.replace(hour=service_hour, minute=service_minute) - default_pattern = unicode(QtCore.QSettings().value( + default_pattern = unicode(Settings().value( u'advanced/default service name', translate('OpenLP.AdvancedTab', 'Service %Y-%m-%d %H-%M', 'This may not contain any of the following characters: ' '/\\?*|<>\[\]":+\nSee http://docs.python.org/library/' 'datetime.html#strftime-strptime-behavior for more ' - 'information.')).toString()) + 'information.'))) default_filename = time.strftime(default_pattern) else: default_filename = u'' @@ -692,8 +689,8 @@ class ServiceManager(QtGui.QWidget): self.setFileName(fileName) self.mainwindow.addRecentFile(fileName) self.setModified(False) - QtCore.QSettings().setValue( - 'servicemanager/last file', QtCore.QVariant(fileName)) + Settings().setValue( + 'servicemanager/last file', fileName) else: critical_error_message_box( message=translate('OpenLP.ServiceManager', @@ -734,8 +731,7 @@ class ServiceManager(QtGui.QWidget): service was last closed. Can be blank if there was no service present. """ - fileName = QtCore.QSettings(). \ - value(u'servicemanager/last file',QtCore.QVariant(u'')).toString() + fileName = Settings().value(u'servicemanager/last file', u'') if fileName: self.loadFile(fileName) @@ -1062,15 +1058,14 @@ class ServiceManager(QtGui.QWidget): .is_capable(ItemCapabilities.HasVariableStartTime): tips.append(item[u'service_item'].get_media_time()) treewidgetitem.setToolTip(0, u'
'.join(tips)) - treewidgetitem.setData(0, QtCore.Qt.UserRole, - QtCore.QVariant(item[u'order'])) + treewidgetitem.setData(0, QtCore.Qt.UserRole, item[u'order']) treewidgetitem.setSelected(item[u'selected']) # Add the children to their parent treewidgetitem. for count, frame in enumerate(serviceitem.get_frames()): child = QtGui.QTreeWidgetItem(treewidgetitem) text = frame[u'title'].replace(u'\n', u' ') child.setText(0, text[:40]) - child.setData(0, QtCore.Qt.UserRole, QtCore.QVariant(count)) + child.setData(0, QtCore.Qt.UserRole, count) if serviceItem == itemcount: if item[u'expanded'] and serviceItemChild == count: self.serviceManagerList.setCurrentItem(child) @@ -1106,10 +1101,9 @@ class ServiceManager(QtGui.QWidget): log.debug(u'onThemeComboBoxSelected') self.service_theme = unicode(self.themeComboBox.currentText()) self.mainwindow.renderer.set_service_theme(self.service_theme) - QtCore.QSettings().setValue( + Settings().setValue( self.mainwindow.serviceManagerSettingsSection + - u'/service theme', - QtCore.QVariant(self.service_theme)) + u'/service theme', self.service_theme) self.regenerateServiceItems(True) def themeChange(self): @@ -1287,9 +1281,9 @@ class ServiceManager(QtGui.QWidget): if self.serviceItems[item][u'service_item'].is_valid: self.mainwindow.liveController.addServiceManagerItem( self.serviceItems[item][u'service_item'], child) - if QtCore.QSettings().value( + if Settings().value( self.mainwindow.generalSettingsSection + u'/auto preview', - QtCore.QVariant(False)).toBool(): + False): item += 1 if self.serviceItems and item < len(self.serviceItems) and \ self.serviceItems[item][u'service_item'].is_capable( diff --git a/openlp/core/ui/shortcutlistform.py b/openlp/core/ui/shortcutlistform.py index 457525dc0..377da339f 100644 --- a/openlp/core/ui/shortcutlistform.py +++ b/openlp/core/ui/shortcutlistform.py @@ -30,7 +30,7 @@ import re from PyQt4 import QtCore, QtGui -from openlp.core.lib import Receiver +from openlp.core.lib import Receiver, Settings from openlp.core.utils import translate from openlp.core.utils.actions import ActionList from shortcutlistdialog import Ui_ShortcutListDialog @@ -131,8 +131,7 @@ class ShortcutListForm(QtGui.QDialog, Ui_ShortcutListDialog): actionText = REMOVE_AMPERSAND.sub('', unicode(action.text())) actionItem = QtGui.QTreeWidgetItem([actionText]) actionItem.setIcon(0, action.icon()) - actionItem.setData(0, - QtCore.Qt.UserRole, QtCore.QVariant(action)) + actionItem.setData(0, QtCore.Qt.UserRole, action) item.addChild(actionItem) self.treeWidget.addTopLevelItem(item) item.setExpanded(True) @@ -337,7 +336,7 @@ class ShortcutListForm(QtGui.QDialog, Ui_ShortcutListDialog): Save the shortcuts. **Note**, that we do not have to load the shortcuts, as they are loaded in :class:`~openlp.core.utils.ActionList`. """ - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(u'shortcuts') for category in self.action_list.categories: # Check if the category is for internal use only. @@ -349,8 +348,7 @@ class ShortcutListForm(QtGui.QDialog, Ui_ShortcutListDialog): map(QtGui.QKeySequence.toString, action.shortcuts())) action.setShortcuts(self.changedActions[action]) self.action_list.update_shortcut_map(action, old_shortcuts) - settings.setValue( - action.objectName(), QtCore.QVariant(action.shortcuts())) + settings.setValue(action.objectName(), action.shortcuts()) settings.endGroup() def onClearPrimaryButtonClicked(self, toggled): diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 1dc005aa6..2dff89bc3 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -35,7 +35,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import OpenLPToolbar, Receiver, ItemCapabilities, \ translate, build_icon, build_html, PluginManager, ServiceItem from openlp.core.lib.ui import UiStrings, create_action -from openlp.core.lib import SlideLimits, ServiceItemAction +from openlp.core.lib import SlideLimits, ServiceItemAction, Settings from openlp.core.ui import HideMode, MainDisplay, Display, ScreenList from openlp.core.utils.actions import ActionList, CategoryOrder @@ -236,8 +236,8 @@ class SlideController(Controller): text=UiStrings().PlaySlidesToEnd, icon=u':/media/media_time.png', checked=False, shortcuts=[], category=self.category, triggers=self.onPlaySlidesOnce) - if QtCore.QSettings().value(self.parent().generalSettingsSection + - u'/enable slide loop', QtCore.QVariant(True)).toBool(): + if Settings().value(self.parent().generalSettingsSection + + u'/enable slide loop', True): self.playSlidesMenu.setDefaultAction(self.playSlidesLoop) else: self.playSlidesMenu.setDefaultAction(self.playSlidesOnce) @@ -662,9 +662,9 @@ class SlideController(Controller): """ Updates the Slide Limits variable from the settings. """ - self.slide_limits = QtCore.QSettings().value( + self.slide_limits = Settings().value( self.parent().advancedSettingsSection + u'/slide limits', - QtCore.QVariant(SlideLimits.End)).toInt()[0] + SlideLimits.End) def enableToolBar(self, item): """ @@ -692,9 +692,9 @@ class SlideController(Controller): self.playSlidesLoop.setChecked(False) self.playSlidesLoop.setIcon(build_icon(u':/media/media_time.png')) if item.is_text(): - if QtCore.QSettings().value( + if Settings().value( self.parent().songsSettingsSection + u'/display songbar', - QtCore.QVariant(True)).toBool() and self.slideList: + True) and self.slideList: self.songMenu.show() if item.is_capable(ItemCapabilities.CanLoop) and \ len(item.get_frames()) > 1: @@ -813,14 +813,14 @@ class SlideController(Controller): QtCore.QObject.connect(action, QtCore.SIGNAL(u'triggered(bool)'), self.onTrackTriggered) - self.display.audioPlayer.repeat = QtCore.QSettings().value( + self.display.audioPlayer.repeat = Settings().value( self.parent().generalSettingsSection + \ u'/audio repeat list', - QtCore.QVariant(False)).toBool() - if QtCore.QSettings().value( + False) + if Settings().value( self.parent().generalSettingsSection + \ u'/audio start paused', - QtCore.QVariant(True)).toBool(): + True): self.audioPauseItem.setChecked(True) self.display.audioPlayer.pause() else: @@ -930,9 +930,8 @@ class SlideController(Controller): Allow the main display to blank the main display at startup time """ log.debug(u'mainDisplaySetBackground live = %s' % self.isLive) - display_type = QtCore.QSettings().value( - self.parent().generalSettingsSection + u'/screen blank', - QtCore.QVariant(u'')).toString() + display_type = Settings().value( + self.parent().generalSettingsSection + u'/screen blank', u'') if self.screens.which_screen(self.window()) != \ self.screens.which_screen(self.display): # Order done to handle initial conversion @@ -971,11 +970,11 @@ class SlideController(Controller): self.themeScreen.setChecked(False) self.desktopScreen.setChecked(False) if checked: - QtCore.QSettings().setValue( + Settings().setValue( self.parent().generalSettingsSection + u'/screen blank', - QtCore.QVariant(u'blanked')) + u'blanked') else: - QtCore.QSettings().remove( + Settings().remove( self.parent().generalSettingsSection + u'/screen blank') self.blankPlugin() self.updatePreview() @@ -992,11 +991,11 @@ class SlideController(Controller): self.themeScreen.setChecked(checked) self.desktopScreen.setChecked(False) if checked: - QtCore.QSettings().setValue( + Settings().setValue( self.parent().generalSettingsSection + u'/screen blank', - QtCore.QVariant(u'themed')) + u'themed') else: - QtCore.QSettings().remove( + Settings().remove( self.parent().generalSettingsSection + u'/screen blank') self.blankPlugin() self.updatePreview() @@ -1013,11 +1012,11 @@ class SlideController(Controller): self.themeScreen.setChecked(False) self.desktopScreen.setChecked(checked) if checked: - QtCore.QSettings().setValue( + Settings().setValue( self.parent().generalSettingsSection + u'/screen blank', - QtCore.QVariant(u'hidden')) + u'hidden') else: - QtCore.QSettings().remove( + Settings().remove( self.parent().generalSettingsSection + u'/screen blank') self.hidePlugin(checked) self.updatePreview() @@ -1311,8 +1310,8 @@ class SlideController(Controller): """ triggered by clicking the Preview slide items """ - if QtCore.QSettings().value(u'advanced/double click live', - QtCore.QVariant(False)).toBool(): + if Settings().value(u'advanced/double click live', + False): # Live and Preview have issues if we have video or presentations # playing in both at the same time. if self.serviceItem.is_command(): @@ -1397,5 +1396,4 @@ class SlideController(Controller): def onTrackTriggered(self): action = self.sender() - index = action.data().toInt()[0] - self.display.audioPlayer.goTo(index) + self.display.audioPlayer.goTo(action.data()) diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index f8c061851..1a9f142f7 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -350,38 +350,38 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): if self.theme.background_type == \ BackgroundType.to_string(BackgroundType.Solid): self.colorButton.setStyleSheet(u'background-color: %s' % - self.theme.background_color) - self.setField(u'background_type', QtCore.QVariant(0)) + self.theme.background_color) + self.setField(u'background_type', 0) elif self.theme.background_type == \ BackgroundType.to_string(BackgroundType.Gradient): self.gradientStartButton.setStyleSheet(u'background-color: %s' % self.theme.background_start_color) self.gradientEndButton.setStyleSheet(u'background-color: %s' % self.theme.background_end_color) - self.setField(u'background_type', QtCore.QVariant(1)) + self.setField(u'background_type', 1) elif self.theme.background_type == \ BackgroundType.to_string(BackgroundType.Image): self.imageColorButton.setStyleSheet(u'background-color: %s' % self.theme.background_border_color) self.imageFileEdit.setText(self.theme.background_filename) - self.setField(u'background_type', QtCore.QVariant(2)) + self.setField(u'background_type', 2) elif self.theme.background_type == \ BackgroundType.to_string(BackgroundType.Transparent): - self.setField(u'background_type', QtCore.QVariant(3)) + self.setField(u'background_type', 3) if self.theme.background_direction == \ BackgroundGradientType.to_string(BackgroundGradientType.Horizontal): - self.setField(u'gradient', QtCore.QVariant(0)) + self.setField(u'gradient', 0) elif self.theme.background_direction == \ BackgroundGradientType.to_string(BackgroundGradientType.Vertical): - self.setField(u'gradient', QtCore.QVariant(1)) + self.setField(u'gradient', 1) elif self.theme.background_direction == \ BackgroundGradientType.to_string(BackgroundGradientType.Circular): - self.setField(u'gradient', QtCore.QVariant(2)) + self.setField(u'gradient', 2) elif self.theme.background_direction == \ BackgroundGradientType.to_string(BackgroundGradientType.LeftTop): - self.setField(u'gradient', QtCore.QVariant(3)) + self.setField(u'gradient', 3) else: - self.setField(u'gradient', QtCore.QVariant(4)) + self.setField(u'gradient', 4) def setMainAreaPageValues(self): """ @@ -391,26 +391,19 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): QtGui.QFont(self.theme.font_main_name)) self.mainColorButton.setStyleSheet(u'background-color: %s' % self.theme.font_main_color) - self.setField(u'mainSizeSpinBox', - QtCore.QVariant(self.theme.font_main_size)) + self.setField(u'mainSizeSpinBox', self.theme.font_main_size) self.setField(u'lineSpacingSpinBox', - QtCore.QVariant(self.theme.font_main_line_adjustment)) - self.setField(u'outlineCheckBox', - QtCore.QVariant(self.theme.font_main_outline)) + self.theme.font_main_line_adjustment) + self.setField(u'outlineCheckBox', self.theme.font_main_outline) self.outlineColorButton.setStyleSheet(u'background-color: %s' % self.theme.font_main_outline_color) - self.setField(u'outlineSizeSpinBox', - QtCore.QVariant(self.theme.font_main_outline_size)) - self.setField(u'shadowCheckBox', - QtCore.QVariant(self.theme.font_main_shadow)) + self.setField(u'outlineSizeSpinBox', self.theme.font_main_outline_size) + self.setField(u'shadowCheckBox', self.theme.font_main_shadow) self.shadowColorButton.setStyleSheet(u'background-color: %s' % self.theme.font_main_shadow_color) - self.setField(u'shadowSizeSpinBox', - QtCore.QVariant(self.theme.font_main_shadow_size)) - self.setField(u'mainBoldCheckBox', - QtCore.QVariant(self.theme.font_main_bold)) - self.setField(u'mainItalicsCheckBox', - QtCore.QVariant(self.theme.font_main_italics)) + self.setField(u'shadowSizeSpinBox', self.theme.font_main_shadow_size) + self.setField(u'mainBoldCheckBox', self.theme.font_main_bold) + self.setField(u'mainItalicsCheckBox', self.theme.font_main_italics) def setFooterAreaPageValues(self): """ @@ -420,8 +413,7 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): QtGui.QFont(self.theme.font_footer_name)) self.footerColorButton.setStyleSheet(u'background-color: %s' % self.theme.font_footer_color) - self.setField(u'footerSizeSpinBox', - QtCore.QVariant(self.theme.font_footer_size)) + self.setField(u'footerSizeSpinBox', self.theme.font_footer_size) def setPositionPageValues(self): """ @@ -429,40 +421,31 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard): """ # Main Area self.mainPositionCheckBox.setChecked(not self.theme.font_main_override) - self.setField(u'mainPositionX', QtCore.QVariant(self.theme.font_main_x)) - self.setField(u'mainPositionY', QtCore.QVariant(self.theme.font_main_y)) - self.setField(u'mainPositionHeight', - QtCore.QVariant(self.theme.font_main_height)) - self.setField(u'mainPositionWidth', - QtCore.QVariant(self.theme.font_main_width)) + self.setField(u'mainPositionX', self.theme.font_main_x) + self.setField(u'mainPositionY', self.theme.font_main_y) + self.setField(u'mainPositionHeight', self.theme.font_main_height) + self.setField(u'mainPositionWidth', self.theme.font_main_width) # Footer self.footerPositionCheckBox.setChecked( not self.theme.font_footer_override) - self.setField(u'footerPositionX', - QtCore.QVariant(self.theme.font_footer_x)) - self.setField(u'footerPositionY', - QtCore.QVariant(self.theme.font_footer_y)) - self.setField(u'footerPositionHeight', - QtCore.QVariant(self.theme.font_footer_height)) - self.setField(u'footerPositionWidth', - QtCore.QVariant(self.theme.font_footer_width)) + self.setField(u'footerPositionX', self.theme.font_footer_x) + self.setField(u'footerPositionY', self.theme.font_footer_y) + self.setField(u'footerPositionHeight', self.theme.font_footer_height) + self.setField(u'footerPositionWidth', self.theme.font_footer_width) def setAlignmentPageValues(self): """ Handle the display and state of the Alignments page. """ - self.setField(u'horizontal', - QtCore.QVariant(self.theme.display_horizontal_align)) - self.setField(u'vertical', - QtCore.QVariant(self.theme.display_vertical_align)) - self.setField(u'slideTransition', - QtCore.QVariant(self.theme.display_slide_transition)) + self.setField(u'horizontal', self.theme.display_horizontal_align) + self.setField(u'vertical', self.theme.display_vertical_align) + self.setField(u'slideTransition', self.theme.display_slide_transition) def setPreviewPageValues(self): """ Handle the display and state of the Preview page. """ - self.setField(u'name', QtCore.QVariant(self.theme.theme_name)) + self.setField(u'name', self.theme.theme_name) def onBackgroundComboBoxCurrentIndexChanged(self, index): """ diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index 665c435b9..f4235e2b4 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -36,7 +36,7 @@ from xml.etree.ElementTree import ElementTree, XML from PyQt4 import QtCore, QtGui from openlp.core.lib import OpenLPToolbar, get_text_file_string, build_icon, \ - Receiver, SettingsManager, translate, check_item_selected, \ + Receiver, Settings, SettingsManager, translate, check_item_selected, \ check_directory_exists, create_thumb, validate_thumb from openlp.core.lib.theme import ThemeXML, BackgroundType, VerticalType, \ BackgroundGradientType @@ -164,9 +164,8 @@ class ThemeManager(QtGui.QWidget): """ Triggered when Config dialog is updated. """ - self.global_theme = unicode(QtCore.QSettings().value( - self.settingsSection + u'/global theme', - QtCore.QVariant(u'')).toString()) + self.global_theme = Settings().value( + self.settingsSection + u'/global theme', u'') def checkListState(self, item): """ @@ -244,9 +243,8 @@ class ThemeManager(QtGui.QWidget): name = unicode(translate('OpenLP.ThemeManager', '%s (default)')) % self.global_theme self.themeListWidget.item(count).setText(name) - QtCore.QSettings().setValue( - self.settingsSection + u'/global theme', - QtCore.QVariant(self.global_theme)) + Settings().setValue( + self.settingsSection + u'/global theme', self.global_theme) Receiver.send_message(u'theme_update_global', self.global_theme) self._pushThemes() @@ -448,9 +446,8 @@ class ThemeManager(QtGui.QWidget): theme = ThemeXML() theme.theme_name = UiStrings().Default self._writeTheme(theme, None, None) - QtCore.QSettings().setValue( - self.settingsSection + u'/global theme', - QtCore.QVariant(theme.theme_name)) + Settings().setValue( + self.settingsSection + u'/global theme', theme.theme_name) self.configUpdated() files = SettingsManager.get_files(self.settingsSection, u'.png') # Sort the themes by its name considering language specific characters. @@ -475,7 +472,7 @@ class ThemeManager(QtGui.QWidget): else: icon = create_thumb(theme, thumb) item_name.setIcon(icon) - item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(text_name)) + item_name.setData(QtCore.Qt.UserRole, text_name) self.themeListWidget.addItem(item_name) self.theme_list.append(text_name) self._pushThemes() @@ -767,9 +764,8 @@ class ThemeManager(QtGui.QWidget): Check to see if theme has been selected and the destructive action is allowed. """ - self.global_theme = unicode(QtCore.QSettings().value( - self.settingsSection + u'/global theme', - QtCore.QVariant(u'')).toString()) + self.global_theme = unicode(Settings().value( + self.settingsSection + u'/global theme', u'')) if check_item_selected(self.themeListWidget, select_text): item = self.themeListWidget.currentItem() theme = unicode(item.text()) diff --git a/openlp/core/ui/themestab.py b/openlp/core/ui/themestab.py index f763a9e74..d078cfdac 100644 --- a/openlp/core/ui/themestab.py +++ b/openlp/core/ui/themestab.py @@ -27,7 +27,7 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import SettingsTab, Receiver, translate +from openlp.core.lib import Receiver, Settings, SettingsTab, translate from openlp.core.lib.theme import ThemeLevel from openlp.core.lib.ui import UiStrings, find_and_set_in_combo_box @@ -132,11 +132,11 @@ class ThemesTab(SettingsTab): 'any themes associated with either the service or the songs.')) def load(self): - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(self.settingsSection) - self.theme_level = settings.value( - u'theme level', ThemeLevel.Song).toInt()[0] - self.global_theme = unicode(settings.value(u'global theme').toString()) + self.theme_level = settings.value(u'theme level', ThemeLevel.Song) + # TODO: check empty string (logic). + self.global_theme = settings.value(u'global theme', u'') settings.endGroup() if self.theme_level == ThemeLevel.Global: self.GlobalLevelRadioButton.setChecked(True) @@ -146,10 +146,10 @@ class ThemesTab(SettingsTab): self.SongLevelRadioButton.setChecked(True) def save(self): - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(self.settingsSection) - settings.setValue(u'theme level', QtCore.QVariant(self.theme_level)) - settings.setValue(u'global theme', QtCore.QVariant(self.global_theme)) + settings.setValue(u'theme level', self.theme_level) + settings.setValue(u'global theme', self.global_theme) settings.endGroup() self.mainwindow.renderer.set_global_theme( self.global_theme, self.theme_level) @@ -183,15 +183,14 @@ class ThemesTab(SettingsTab): [u'Bible Theme', u'Song Theme'] """ # Reload as may have been triggered by the ThemeManager. - self.global_theme = unicode(QtCore.QSettings().value( - self.settingsSection + u'/global theme', - QtCore.QVariant(u'')).toString()) + self.global_theme = Settings().value( + self.settingsSection + u'/global theme', u'') self.DefaultComboBox.clear() self.DefaultComboBox.addItems(theme_list) find_and_set_in_combo_box(self.DefaultComboBox, self.global_theme) self.mainwindow.renderer.set_global_theme( self.global_theme, self.theme_level) - if self.global_theme is not u'': + if self.global_theme: self.__previewGlobalTheme() def __previewGlobalTheme(self): diff --git a/openlp/core/utils/__init__.py b/openlp/core/utils/__init__.py index 9d00e22b7..57d0a33c6 100644 --- a/openlp/core/utils/__init__.py +++ b/openlp/core/utils/__init__.py @@ -37,6 +37,8 @@ import sys import time import urllib2 +from openlp.core.lib import Settings + from PyQt4 import QtGui, QtCore if sys.platform != u'win32' and sys.platform != u'darwin': @@ -281,12 +283,12 @@ def check_latest_version(current_version): """ version_string = current_version[u'full'] # set to prod in the distribution config file. - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(u'general') last_test = unicode(settings.value(u'last version test', - QtCore.QVariant(datetime.now().date())).toString()) + datetime.now().date())) this_test = unicode(datetime.now().date()) - settings.setValue(u'last version test', QtCore.QVariant(this_test)) + settings.setValue(u'last version test', this_test) settings.endGroup() if last_test != this_test: if current_version[u'build']: diff --git a/openlp/core/utils/actions.py b/openlp/core/utils/actions.py index 271a7c884..961037675 100644 --- a/openlp/core/utils/actions.py +++ b/openlp/core/utils/actions.py @@ -28,6 +28,8 @@ The :mod:`~openlp.core.utils.actions` module provides action list classes used by the shortcuts system. """ +from openlp.core.lib import Settings + from PyQt4 import QtCore, QtGui class ActionCategory(object): @@ -226,10 +228,9 @@ class ActionList(object): else: self.categories[category].actions.add(action, weight) # Load the shortcut from the config. - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(u'shortcuts') - shortcuts = settings.value(action.objectName(), - QtCore.QVariant(action.shortcuts())).toStringList() + shortcuts = settings.value(action.objectName(), action.shortcuts()) settings.endGroup() if not shortcuts: action.setShortcuts([]) diff --git a/openlp/core/utils/languagemanager.py b/openlp/core/utils/languagemanager.py index 929105ad2..65582885a 100644 --- a/openlp/core/utils/languagemanager.py +++ b/openlp/core/utils/languagemanager.py @@ -34,7 +34,7 @@ import sys from PyQt4 import QtCore, QtGui from openlp.core.utils import AppLocation -from openlp.core.lib import translate +from openlp.core.lib import translate, Settings log = logging.getLogger(__name__) @@ -75,13 +75,16 @@ class LanguageManager(object): AppLocation.LanguageDir)) trans_dir = QtCore.QDir(AppLocation.get_directory( AppLocation.LanguageDir)) - file_names = trans_dir.entryList(QtCore.QStringList(u'*.qm'), - QtCore.QDir.Files, QtCore.QDir.Name) + file_names = trans_dir.entryList( + u'*.qm', QtCore.QDir.Files, QtCore.QDir.Name) # Remove qm files from the list which start with "qt_". - file_names = file_names.filter(QtCore.QRegExp("^(?!qt_)")) + file_names = filter( + lambda file_: not file_.startswith(u'qt_'), file_names) + names = [] for name in file_names: - file_names.replaceInStrings(name, trans_dir.filePath(name)) - return file_names + names.append(trans_dir.filePath(name)) + #file_names.replaceInStrings(name, trans_dir.filePath(name)) + return names @staticmethod def language_name(qm_file): @@ -101,9 +104,8 @@ class LanguageManager(object): """ Retrieve a saved language to use from settings """ - settings = QtCore.QSettings() - language = unicode(settings.value( - u'general/language', QtCore.QVariant(u'[en]')).toString()) + settings = Settings() + language = unicode(settings.value(u'general/language', u'[en]')) log.info(u'Language file: \'%s\' Loaded from conf file' % language) reg_ex = QtCore.QRegExp("^\[(.*)\]") if reg_ex.exactMatch(language): @@ -133,8 +135,7 @@ class LanguageManager(object): language = unicode(qm_list[action_name]) if LanguageManager.auto_language: language = u'[%s]' % language - QtCore.QSettings().setValue( - u'general/language', QtCore.QVariant(language)) + Settings().setValue(u'general/language', language) log.info(u'Language file: \'%s\' written to conf file' % language) if message: QtGui.QMessageBox.information(None, diff --git a/openlp/plugins/alerts/alertsplugin.py b/openlp/plugins/alerts/alertsplugin.py index ebaabb214..03078b5cb 100644 --- a/openlp/plugins/alerts/alertsplugin.py +++ b/openlp/plugins/alerts/alertsplugin.py @@ -29,7 +29,8 @@ import logging from PyQt4 import QtCore -from openlp.core.lib import Plugin, StringContent, build_icon, translate +from openlp.core.lib import Plugin, StringContent, build_icon, translate, \ + Settings from openlp.core.lib.db import Manager from openlp.core.lib.ui import create_action, UiStrings from openlp.core.lib.theme import VerticalType @@ -160,8 +161,8 @@ class AlertsPlugin(Plugin): def toggleAlertsState(self): self.alertsActive = not self.alertsActive - QtCore.QSettings().setValue(self.settingsSection + u'/active', - QtCore.QVariant(self.alertsActive)) + Settings().setValue(self.settingsSection + u'/active', + self.alertsActive) def onAlertsTrigger(self): self.alertForm.loadList() diff --git a/openlp/plugins/alerts/forms/alertform.py b/openlp/plugins/alerts/forms/alertform.py index 4f7633062..d494d2a4d 100644 --- a/openlp/plugins/alerts/forms/alertform.py +++ b/openlp/plugins/alerts/forms/alertform.py @@ -77,7 +77,7 @@ class AlertForm(QtGui.QDialog, Ui_AlertDialog): order_by_ref=AlertItem.text) for alert in alerts: item_name = QtGui.QListWidgetItem(alert.text) - item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(alert.id)) + item_name.setData(QtCore.Qt.UserRole, alert.id) self.alertListWidget.addItem(item_name) def onDisplayClicked(self): diff --git a/openlp/plugins/alerts/lib/alertstab.py b/openlp/plugins/alerts/lib/alertstab.py index 22346b0aa..cf0c88409 100644 --- a/openlp/plugins/alerts/lib/alertstab.py +++ b/openlp/plugins/alerts/lib/alertstab.py @@ -27,7 +27,7 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import SettingsTab, translate, Receiver +from openlp.core.lib import SettingsTab, translate, Receiver, Settings from openlp.core.ui import AlertLocation from openlp.core.lib.ui import UiStrings, create_valign_selection_widgets @@ -152,19 +152,15 @@ class AlertsTab(SettingsTab): self.updateDisplay() def load(self): - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(self.settingsSection) - self.timeout = settings.value(u'timeout', QtCore.QVariant(5)).toInt()[0] - self.font_color = unicode(settings.value( - u'font color', QtCore.QVariant(u'#ffffff')).toString()) - self.font_size = settings.value( - u'font size', QtCore.QVariant(40)).toInt()[0] - self.bg_color = unicode(settings.value( - u'background color', QtCore.QVariant(u'#660000')).toString()) + self.timeout = settings.value(u'timeout', 5) + self.font_color = unicode(settings.value(u'font color', u'#ffffff')) + self.font_size = settings.value(u'font size', 40) + self.bg_color = unicode(settings.value(u'background color', u'#660000')) self.font_face = unicode(settings.value( - u'font face', QtCore.QVariant(QtGui.QFont().family())).toString()) - self.location = settings.value( - u'location', QtCore.QVariant(AlertLocation.Bottom)).toInt()[0] + u'font face', QtGui.QFont().family())) + self.location = settings.value(u'location', AlertLocation.Bottom) settings.endGroup() self.fontSizeSpinBox.setValue(self.font_size) self.timeoutSpinBox.setValue(self.timeout) @@ -180,20 +176,20 @@ class AlertsTab(SettingsTab): self.changed = False def save(self): - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(self.settingsSection) # Check value has changed as no event handles this field - if settings.value(u'location', QtCore.QVariant(1)).toInt()[0] != \ + if settings.value(u'location', 1) != \ self.verticalComboBox.currentIndex(): self.changed = True - 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)) + settings.setValue(u'background color', self.bg_color) + settings.setValue(u'font color', self.font_color) + settings.setValue(u'font size', self.font_size) 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)) + settings.setValue(u'font face', self.font_face) + settings.setValue(u'timeout', self.timeout) self.location = self.verticalComboBox.currentIndex() - settings.setValue(u'location', QtCore.QVariant(self.location)) + settings.setValue(u'location', self.location) settings.endGroup() if self.changed: Receiver.send_message(u'update_display_css') diff --git a/openlp/plugins/bibles/bibleplugin.py b/openlp/plugins/bibles/bibleplugin.py index 0dddab214..193960102 100644 --- a/openlp/plugins/bibles/bibleplugin.py +++ b/openlp/plugins/bibles/bibleplugin.py @@ -29,7 +29,8 @@ import logging from PyQt4 import QtCore, QtGui -from openlp.core.lib import Plugin, StringContent, build_icon, translate +from openlp.core.lib import Plugin, StringContent, build_icon, translate, \ + Settings from openlp.core.lib.ui import create_action, UiStrings from openlp.core.utils.actions import ActionList from openlp.plugins.bibles.lib import BibleManager, BiblesTab, BibleMediaItem @@ -91,11 +92,11 @@ class BiblePlugin(Plugin): QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)) == QtGui.QMessageBox.Yes: self.onToolsUpgradeItemTriggered() - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(self.settingsSection) if settings.contains(u'bookname language'): settings.setValue(u'book name language', settings.value( - u'bookname language', QtCore.QVariant(0)).toInt()[0]) + u'bookname language', 0)) settings.remove(u'bookname language') settings.endGroup() diff --git a/openlp/plugins/bibles/forms/bibleimportform.py b/openlp/plugins/bibles/forms/bibleimportform.py index cc50fdf9b..299c7430a 100644 --- a/openlp/plugins/bibles/forms/bibleimportform.py +++ b/openlp/plugins/bibles/forms/bibleimportform.py @@ -33,7 +33,7 @@ import locale from PyQt4 import QtCore, QtGui -from openlp.core.lib import Receiver, translate +from openlp.core.lib import Receiver, translate, Settings 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 @@ -590,32 +590,26 @@ class BibleImportForm(OpenLPWizard): """ Set default values for the wizard pages. """ - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(self.plugin.settingsSection) self.restart() self.finishButton.setVisible(False) self.cancelButton.setVisible(True) - self.setField(u'source_format', QtCore.QVariant(0)) - self.setField(u'osis_location', QtCore.QVariant('')) - self.setField(u'csv_booksfile', QtCore.QVariant('')) - self.setField(u'csv_versefile', QtCore.QVariant('')) - self.setField(u'opensong_file', QtCore.QVariant('')) - self.setField(u'web_location', QtCore.QVariant(WebDownload.Crosswalk)) + self.setField(u'source_format', 0) + self.setField(u'osis_location', '') + self.setField(u'csv_booksfile', '') + self.setField(u'csv_versefile', '') + self.setField(u'opensong_file', '') + self.setField(u'web_location', WebDownload.Crosswalk) self.setField(u'web_biblename', - QtCore.QVariant(self.webTranslationComboBox.currentIndex())) - self.setField(u'proxy_server', - settings.value(u'proxy address', QtCore.QVariant(u''))) - self.setField(u'proxy_username', - settings.value(u'proxy username', QtCore.QVariant(u''))) - self.setField(u'proxy_password', - settings.value(u'proxy password', QtCore.QVariant(u''))) - self.setField(u'openlp1_location', QtCore.QVariant('')) - self.setField(u'license_version', - QtCore.QVariant(self.versionNameEdit.text())) - self.setField(u'license_copyright', - QtCore.QVariant(self.copyrightEdit.text())) - self.setField(u'license_permissions', - QtCore.QVariant(self.permissionsEdit.text())) + self.webTranslationComboBox.currentIndex()) + self.setField(u'proxy_server', settings.value(u'proxy address', u'')) + self.setField(u'proxy_username', settings.value(u'proxy username', u'')) + self.setField(u'proxy_password', settings.value(u'proxy password', u'')) + self.setField(u'openlp1_location', '') + self.setField(u'license_version', self.versionNameEdit.text()) + self.setField(u'license_copyright', self.copyrightEdit.text()) + self.setField(u'license_permissions', self.permissionsEdit.text()) self.onWebSourceComboBoxIndexChanged(WebDownload.Crosswalk) settings.endGroup() diff --git a/openlp/plugins/bibles/forms/bibleupgradeform.py b/openlp/plugins/bibles/forms/bibleupgradeform.py index 88bbd8c63..fddefec36 100644 --- a/openlp/plugins/bibles/forms/bibleupgradeform.py +++ b/openlp/plugins/bibles/forms/bibleupgradeform.py @@ -34,7 +34,7 @@ from tempfile import gettempdir from PyQt4 import QtCore, QtGui from openlp.core.lib import Receiver, SettingsManager, translate, \ - check_directory_exists + check_directory_exists, Settings 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 @@ -341,7 +341,7 @@ class BibleUpgradeForm(OpenLPWizard): Set default values for the wizard pages. """ log.debug(u'BibleUpgrade setDefaults') - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(self.plugin.settingsSection) self.stop_import_flag = False self.success.clear() diff --git a/openlp/plugins/bibles/lib/__init__.py b/openlp/plugins/bibles/lib/__init__.py index 6cd8b8d8e..b5dc0087a 100644 --- a/openlp/plugins/bibles/lib/__init__.py +++ b/openlp/plugins/bibles/lib/__init__.py @@ -33,7 +33,7 @@ import re from PyQt4 import QtCore -from openlp.core.lib import translate +from openlp.core.lib import translate, Settings from openlp.plugins.bibles.lib.db import BiblesResourcesDB log = logging.getLogger(__name__) @@ -185,13 +185,13 @@ def update_reference_separators(): ':|v|V|verse|verses;;-|to;;,|and;;end', 'Double-semicolon delimited separators for parsing references. ' 'Consult the developers for further information.')).split(u';;') - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(u'bibles') custom_separators = [ - unicode(settings.value(u'verse separator').toString()), - unicode(settings.value(u'range separator').toString()), - unicode(settings.value(u'list separator').toString()), - unicode(settings.value(u'end separator').toString())] + settings.value(u'verse separator'), + settings.value(u'range separator'), + settings.value(u'list separator'), + settings.value(u'end separator')] settings.endGroup() for index, role in enumerate([u'v', u'r', u'l', u'e']): if custom_separators[index].strip(u'|') == u'': diff --git a/openlp/plugins/bibles/lib/biblestab.py b/openlp/plugins/bibles/lib/biblestab.py index c352a5faf..148b75cd5 100644 --- a/openlp/plugins/bibles/lib/biblestab.py +++ b/openlp/plugins/bibles/lib/biblestab.py @@ -29,7 +29,7 @@ import logging from PyQt4 import QtCore, QtGui -from openlp.core.lib import Receiver, SettingsTab, translate +from openlp.core.lib import Receiver, SettingsTab, translate, Settings from openlp.core.lib.ui import UiStrings, find_and_set_in_combo_box from openlp.plugins.bibles.lib import LayoutStyle, DisplayStyle, \ update_reference_separators, get_reference_separator, LanguageSelection @@ -414,18 +414,14 @@ class BiblesTab(SettingsTab): self.getGreyTextPalette(True)) def load(self): - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(self.settingsSection) - self.show_new_chapters = settings.value( - u'display new chapter', QtCore.QVariant(False)).toBool() - self.display_style = settings.value( - u'display brackets', QtCore.QVariant(0)).toInt()[0] - self.layout_style = settings.value( - u'verse layout style', QtCore.QVariant(0)).toInt()[0] - self.bible_theme = unicode( - settings.value(u'bible theme', QtCore.QVariant(u'')).toString()) - self.second_bibles = settings.value( - u'second bibles', QtCore.QVariant(True)).toBool() + self.show_new_chapters = settings.value(u'display new chapter', False) + self.display_style = settings.value(u'display brackets', 0) + self.layout_style = settings.value(u'verse layout style', 0) + #TODO: Check + self.bible_theme = unicode(settings.value(u'bible theme', u'')) + self.second_bibles = settings.value(u'second bibles', True) self.newChaptersCheckBox.setChecked(self.show_new_chapters) self.displayStyleComboBox.setCurrentIndex(self.display_style) self.layoutStyleComboBox.setCurrentIndex(self.layout_style) @@ -482,24 +478,19 @@ class BiblesTab(SettingsTab): self.endSeparatorLineEdit.setPalette( self.getGreyTextPalette(False)) self.endSeparatorCheckBox.setChecked(True) - self.language_selection = settings.value( - u'book name language', QtCore.QVariant(0)).toInt()[0] + self.language_selection = settings.value(u'book name language', 0) self.languageSelectionComboBox.setCurrentIndex(self.language_selection) settings.endGroup() def save(self): - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(self.settingsSection) - settings.setValue(u'display new chapter', - QtCore.QVariant(self.show_new_chapters)) - settings.setValue(u'display brackets', - QtCore.QVariant(self.display_style)) - settings.setValue(u'verse layout style', - QtCore.QVariant(self.layout_style)) - settings.setValue(u'book name language', - QtCore.QVariant(self.language_selection)) - settings.setValue(u'second bibles', QtCore.QVariant(self.second_bibles)) - settings.setValue(u'bible theme', QtCore.QVariant(self.bible_theme)) + settings.setValue(u'display new chapter', self.show_new_chapters) + settings.setValue(u'display brackets', self.display_style) + settings.setValue(u'verse layout style', self.layout_style) + settings.setValue(u'book name language', self.language_selection) + settings.setValue(u'second bibles', self.second_bibles) + settings.setValue(u'bible theme', self.bible_theme) if self.verseSeparatorCheckBox.isChecked(): settings.setValue(u'verse separator', self.verseSeparatorLineEdit.text()) diff --git a/openlp/plugins/bibles/lib/manager.py b/openlp/plugins/bibles/lib/manager.py index 9a82cc388..03382c572 100644 --- a/openlp/plugins/bibles/lib/manager.py +++ b/openlp/plugins/bibles/lib/manager.py @@ -30,7 +30,7 @@ import os from PyQt4 import QtCore -from openlp.core.lib import Receiver, SettingsManager, translate +from openlp.core.lib import Receiver, SettingsManager, translate, Settings from openlp.core.utils import AppLocation, delete_file from openlp.plugins.bibles.lib import parse_reference, \ get_reference_separator, LanguageSelection @@ -125,9 +125,8 @@ class BibleManager(object): self.web = u'Web' self.db_cache = None self.path = AppLocation.get_section_data_path(self.settingsSection) - self.proxy_name = unicode( - QtCore.QSettings().value(self.settingsSection + u'/proxy name', - QtCore.QVariant(u'')).toString()) + self.proxy_name = unicode(Settings().value( + self.settingsSection + u'/proxy name', u'')) self.suffix = u'.sqlite' self.import_wizard = None self.reload_bibles() @@ -334,9 +333,8 @@ class BibleManager(object): if language_selection: language_selection = int(language_selection.value) if language_selection is None or language_selection == -1: - language_selection = QtCore.QSettings().value( - self.settingsSection + u'/bookname language', - QtCore.QVariant(0)).toInt()[0] + language_selection = Settings().value( + self.settingsSection + u'/bookname language', 0) reflist = parse_reference(versetext, self.db_cache[bible], language_selection, book_ref_id) if reflist: @@ -381,9 +379,8 @@ class BibleManager(object): if language_selection and language_selection.value != u'None': return int(language_selection.value) if language_selection is None or language_selection.value == u'None': - return QtCore.QSettings().value( - self.settingsSection + u'/bookname language', - QtCore.QVariant(0)).toInt()[0] + return Settings().value( + self.settingsSection + u'/bookname language', 0) def verse_search(self, bible, second_bible, text): """ @@ -437,7 +434,7 @@ class BibleManager(object): }) return None - def save_meta_data(self, bible, version, copyright, permissions, + def save_meta_data(self, bible, version, copyright, permissions, book_name_language=None): """ Saves the bibles meta data. @@ -456,7 +453,7 @@ class BibleManager(object): """ log.debug(u'get_meta %s,%s', bible, key) return self.db_cache[bible].get_object(BibleMeta, key) - + def update_book(self, bible, book): """ Update a book of the bible. diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 3c723d760..09c59fdf9 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -31,7 +31,7 @@ import locale from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, Receiver, ItemCapabilities, \ - translate, create_separated_list + translate, create_separated_list, Settings from openlp.core.lib.searchedit import SearchEdit from openlp.core.lib.ui import UiStrings, set_case_insensitive_completer, \ create_horizontal_adjusting_combo_box, critical_error_message_box, \ @@ -101,7 +101,7 @@ class BibleMediaItem(MediaManagerItem): reference = bitem.data(QtCore.Qt.UserRole) if isinstance(reference, QtCore.QVariant): reference = reference.toPyObject() - obj = reference[QtCore.QString(key)] + obj = reference[unicode(key)] if isinstance(obj, QtCore.QVariant): obj = obj.toPyObject() return unicode(obj).strip() @@ -294,8 +294,8 @@ class BibleMediaItem(MediaManagerItem): def configUpdated(self): log.debug(u'configUpdated') - if QtCore.QSettings().value(self.settingsSection + u'/second bibles', - QtCore.QVariant(True)).toBool(): + if Settings().value(self.settingsSection + u'/second bibles', + True): self.advancedSecondLabel.setVisible(True) self.advancedSecondComboBox.setVisible(True) self.quickSecondLabel.setVisible(True) @@ -362,9 +362,9 @@ class BibleMediaItem(MediaManagerItem): translate('BiblesPlugin.MediaItem', 'Text Search'), translate('BiblesPlugin.MediaItem', 'Search Text...')) ]) - self.quickSearchEdit.setCurrentSearchType(QtCore.QSettings().value( + self.quickSearchEdit.setCurrentSearchType(Settings().value( u'%s/last search type' % self.settingsSection, - QtCore.QVariant(BibleSearch.Reference)).toInt()[0]) + BibleSearch.Reference)) self.configUpdated() log.debug(u'bible manager initialise complete') @@ -386,17 +386,16 @@ class BibleMediaItem(MediaManagerItem): self.advancedVersionComboBox.addItems(bibles) self.advancedSecondComboBox.addItems(bibles) # set the default value - bible = QtCore.QSettings().value( - self.settingsSection + u'/advanced bible', - QtCore.QVariant(u'')).toString() + bible = Settings().value( + self.settingsSection + u'/advanced bible', u'') if bible in bibles: find_and_set_in_combo_box(self.advancedVersionComboBox, bible) self.initialiseAdvancedBible(unicode(bible)) elif bibles: self.initialiseAdvancedBible(bibles[0]) - bible = QtCore.QSettings().value( - self.settingsSection + u'/quick bible', QtCore.QVariant( - self.quickVersionComboBox.currentText())).toString() + bible = Settings().value( + self.settingsSection + u'/quick bible', + self.quickVersionComboBox.currentText()) find_and_set_in_combo_box(self.quickVersionComboBox, bible) def reloadBibles(self, process=False): @@ -417,7 +416,7 @@ class BibleMediaItem(MediaManagerItem): ``bible`` The bible to initialise (unicode). - + ``last_book_id`` The "book reference id" of the book which is choosen at the moment. (int) @@ -453,14 +452,14 @@ class BibleMediaItem(MediaManagerItem): book[u'book_reference_id']) self.advancedBookComboBox.addItem(data[u'name']) self.advancedBookComboBox.setItemData( - row, QtCore.QVariant(book[u'book_reference_id'])) + row, book[u'book_reference_id']) if first: first = False first_book = book initialise_chapter_verse = True if last_book_id and last_book_id == int(book[u'book_reference_id']): index = self.advancedBookComboBox.findData( - QtCore.QVariant(book[u'book_reference_id'])) + book[u'book_reference_id']) if index == -1: # Not Found. index = 0 @@ -497,12 +496,11 @@ class BibleMediaItem(MediaManagerItem): """ log.debug(u'updateAutoCompleter') # Save the current search type to the configuration. - QtCore.QSettings().setValue(u'%s/last search type' % - self.settingsSection, - QtCore.QVariant(self.quickSearchEdit.currentSearchType())) + Settings().setValue(u'%s/last search type' % + self.settingsSection, self.quickSearchEdit.currentSearchType()) # Save the current bible to the configuration. - QtCore.QSettings().setValue(self.settingsSection + u'/quick bible', - QtCore.QVariant(self.quickVersionComboBox.currentText())) + Settings().setValue(self.settingsSection + u'/quick bible', + self.quickVersionComboBox.currentText()) books = [] # We have to do a 'Reference Search'. if self.quickSearchEdit.currentSearchType() == BibleSearch.Reference: @@ -596,22 +594,22 @@ class BibleMediaItem(MediaManagerItem): self.advancedStyleComboBox.setCurrentIndex(self.settings.layout_style) self.settings.layoutStyleComboBox.setCurrentIndex( self.settings.layout_style) - QtCore.QSettings().setValue( + Settings().setValue( self.settingsSection + u'/verse layout style', - QtCore.QVariant(self.settings.layout_style)) + self.settings.layout_style) def onAdvancedStyleComboBoxChanged(self): self.settings.layout_style = self.advancedStyleComboBox.currentIndex() self.quickStyleComboBox.setCurrentIndex(self.settings.layout_style) self.settings.layoutStyleComboBox.setCurrentIndex( self.settings.layout_style) - QtCore.QSettings().setValue( + Settings().setValue( self.settingsSection + u'/verse layout style', - QtCore.QVariant(self.settings.layout_style)) + self.settings.layout_style) def onAdvancedVersionComboBox(self): - QtCore.QSettings().setValue(self.settingsSection + u'/advanced bible', - QtCore.QVariant(self.advancedVersionComboBox.currentText())) + Settings().setValue(self.settingsSection + u'/advanced bible', + self.advancedVersionComboBox.currentText()) self.initialiseAdvancedBible( unicode(self.advancedVersionComboBox.currentText()), self.advancedBookComboBox.itemData( @@ -855,24 +853,24 @@ class BibleMediaItem(MediaManagerItem): verse.book.book_reference_id) book = data[u'name'] data = { - 'book': QtCore.QVariant(book), - 'chapter': QtCore.QVariant(verse.chapter), - 'verse': QtCore.QVariant(verse.verse), - 'bible': QtCore.QVariant(bible), - 'version': QtCore.QVariant(version), - 'copyright': QtCore.QVariant(copyright), - 'permissions': QtCore.QVariant(permissions), - 'text': QtCore.QVariant(verse.text), - 'second_bible': QtCore.QVariant(second_bible), - 'second_version': QtCore.QVariant(second_version), - 'second_copyright': QtCore.QVariant(second_copyright), - 'second_permissions': QtCore.QVariant(second_permissions), - 'second_text': QtCore.QVariant(u'') + 'book': book, + 'chapter': verse.chapter, + 'verse': verse.verse, + 'bible': bible, + 'version': version, + 'copyright': copyright, + 'permissions': permissions, + 'text': verse.text, + 'second_bible': second_bible, + 'second_version': second_version, + 'second_copyright': second_copyright, + 'second_permissions': second_permissions, + 'second_text': u'' } if second_bible: try: - data[u'second_text'] = QtCore.QVariant( - self.second_search_results[count].text) + data[u'second_text'] = \ + self.second_search_results[count].text except IndexError: log.exception(u'The second_search_results does not have as ' 'many verses as the search_results.') @@ -883,7 +881,7 @@ class BibleMediaItem(MediaManagerItem): bible_text = u'%s %d%s%d (%s)' % (book, verse.chapter, verse_separator, verse.verse, version) bible_verse = QtGui.QListWidgetItem(bible_text) - bible_verse.setData(QtCore.Qt.UserRole, QtCore.QVariant(data)) + bible_verse.setData(QtCore.Qt.UserRole, data) items.append(bible_verse) return items diff --git a/openlp/plugins/custom/lib/customtab.py b/openlp/plugins/custom/lib/customtab.py index 0466cf696..d3f5f2b46 100644 --- a/openlp/plugins/custom/lib/customtab.py +++ b/openlp/plugins/custom/lib/customtab.py @@ -27,7 +27,7 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import SettingsTab, translate +from openlp.core.lib import SettingsTab, translate, Settings class CustomTab(SettingsTab): """ @@ -66,11 +66,10 @@ class CustomTab(SettingsTab): self.displayFooter = True def load(self): - self.displayFooter = QtCore.QSettings().value( - self.settingsSection + u'/display footer', - QtCore.QVariant(True)).toBool() + self.displayFooter = Settings().value( + self.settingsSection + u'/display footer', True) self.displayFooterCheckBox.setChecked(self.displayFooter) def save(self): - QtCore.QSettings().setValue(self.settingsSection + u'/display footer', - QtCore.QVariant(self.displayFooter)) + Settings().setValue(self.settingsSection + u'/display footer', + self.displayFooter) diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index af2f261ca..bea2858d8 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -32,7 +32,7 @@ from PyQt4 import QtCore, QtGui from sqlalchemy.sql import or_, func from openlp.core.lib import MediaManagerItem, Receiver, ItemCapabilities, \ - check_item_selected, translate + check_item_selected, translate, Settings from openlp.core.lib.ui import UiStrings from openlp.plugins.custom.forms import EditCustomForm from openlp.plugins.custom.lib import CustomXMLParser @@ -99,9 +99,8 @@ class CustomMediaItem(MediaManagerItem): ]) self.loadList(self.manager.get_all_objects( CustomSlide, order_by_ref=CustomSlide.title)) - self.searchTextEdit.setCurrentSearchType(QtCore.QSettings().value( - u'%s/last search type' % self.settingsSection, - QtCore.QVariant(CustomSearch.Titles)).toInt()[0]) + self.searchTextEdit.setCurrentSearchType(Settings().value( + u'%s/last search type' % self.settingsSection, CustomSearch.Titles)) def loadList(self, custom_slides): # Sort out what custom we want to select after loading the list. @@ -113,8 +112,7 @@ class CustomMediaItem(MediaManagerItem): cmp=locale.strcoll, key=lambda custom: custom.title.lower()) for custom_slide in custom_slides: custom_name = QtGui.QListWidgetItem(custom_slide.title) - custom_name.setData( - QtCore.Qt.UserRole, QtCore.QVariant(custom_slide.id)) + custom_name.setData(QtCore.Qt.UserRole, custom_slide.id) self.listView.addItem(custom_name) # Auto-select the custom. if custom_slide.id == self.autoSelectId: @@ -218,8 +216,8 @@ class CustomMediaItem(MediaManagerItem): service_item.title = title for slide in raw_slides: service_item.add_from_text(slide[:30], slide) - if QtCore.QSettings().value(self.settingsSection + u'/display footer', - QtCore.QVariant(True)).toBool() or credit: + if Settings().value(self.settingsSection + u'/display footer', + True) or credit: raw_footer.append(title + u' ' + credit) else: raw_footer.append(u'') @@ -228,9 +226,8 @@ class CustomMediaItem(MediaManagerItem): def onSearchTextButtonClicked(self): # Save the current search type to the configuration. - QtCore.QSettings().setValue(u'%s/last search type' % - self.settingsSection, - QtCore.QVariant(self.searchTextEdit.currentSearchType())) + Settings().setValue(u'%s/last search type' % + self.settingsSection, self.searchTextEdit.currentSearchType()) # Reload the list considering the new search type. search_keywords = unicode(self.searchTextEdit.displayText()) search_results = [] diff --git a/openlp/plugins/images/imageplugin.py b/openlp/plugins/images/imageplugin.py index 53f825916..e547a34cc 100644 --- a/openlp/plugins/images/imageplugin.py +++ b/openlp/plugins/images/imageplugin.py @@ -29,8 +29,8 @@ from PyQt4 import QtCore, QtGui import logging -from openlp.core.lib import Plugin, StringContent, build_icon, translate, \ - Receiver +from openlp.core.lib import build_icon, Plugin, Receiver, Settings, \ + StringContent, translate from openlp.plugins.images.lib import ImageMediaItem, ImageTab log = logging.getLogger(__name__) @@ -94,6 +94,6 @@ class ImagePlugin(Plugin): image manager to require updates. Actual update is triggered by the last part of saving the config. """ - background = QtGui.QColor(QtCore.QSettings().value(self.settingsSection - + u'/background color', QtCore.QVariant(u'#000000'))) + background = QtGui.QColor(Settings().value(self.settingsSection + + u'/background color', u'#000000')) self.liveController.imageManager.update_images(u'image', background) diff --git a/openlp/plugins/images/lib/imagetab.py b/openlp/plugins/images/lib/imagetab.py index a8188ace6..1fc6e834b 100644 --- a/openlp/plugins/images/lib/imagetab.py +++ b/openlp/plugins/images/lib/imagetab.py @@ -27,7 +27,7 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import SettingsTab, translate, Receiver +from openlp.core.lib import Receiver, Settings, SettingsTab, translate class ImageTab(SettingsTab): """ @@ -82,19 +82,18 @@ class ImageTab(SettingsTab): u'background-color: %s' % self.bg_color) def load(self): - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(self.settingsSection) - self.bg_color = unicode(settings.value( - u'background color', QtCore.QVariant(u'#000000')).toString()) + self.bg_color = unicode(settings.value(u'background color', u'#000000')) self.initial_color = self.bg_color settings.endGroup() self.backgroundColorButton.setStyleSheet( u'background-color: %s' % self.bg_color) def save(self): - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(self.settingsSection) - settings.setValue(u'background color', QtCore.QVariant(self.bg_color)) + settings.setValue(u'background color', self.bg_color) settings.endGroup() if self.initial_color != self.bg_color: Receiver.send_message(u'image_updated') diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index ffa67b95e..56f8203e7 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -33,7 +33,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, build_icon, ItemCapabilities, \ SettingsManager, translate, check_item_selected, check_directory_exists, \ - Receiver, create_thumb, validate_thumb + Receiver, create_thumb, validate_thumb, Settings from openlp.core.lib.ui import UiStrings, critical_error_message_box from openlp.core.utils import AppLocation, delete_file, get_images_filter @@ -141,7 +141,7 @@ class ImageMediaItem(MediaManagerItem): item_name = QtGui.QListWidgetItem(filename) item_name.setIcon(icon) item_name.setToolTip(imageFile) - item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(imageFile)) + item_name.setData(QtCore.Qt.UserRole, imageFile) self.listView.addItem(item_name) if not initialLoad: self.plugin.formParent.incrementProgressBar() @@ -151,8 +151,8 @@ class ImageMediaItem(MediaManagerItem): def generateSlideData(self, service_item, item=None, xmlVersion=False, remote=False): - background = QtGui.QColor(QtCore.QSettings().value(self.settingsSection - + u'/background color', QtCore.QVariant(u'#000000'))) + background = QtGui.QColor(Settings().value(self.settingsSection + + u'/background color', u'#000000')) if item: items = [item] else: @@ -220,9 +220,8 @@ class ImageMediaItem(MediaManagerItem): if check_item_selected(self.listView, translate('ImagePlugin.MediaItem', 'You must select an image to replace the background with.')): - background = QtGui.QColor(QtCore.QSettings().value( - self.settingsSection + u'/background color', - QtCore.QVariant(u'#000000'))) + background = QtGui.QColor(Settings().value( + self.settingsSection + u'/background color', u'#000000')) item = self.listView.selectedIndexes()[0] bitem = self.listView.item(item.row()) filename = unicode(bitem.data(QtCore.Qt.UserRole).toString()) diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index 592cd08c6..efe045a02 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -293,13 +293,13 @@ class MediaMediaItem(MediaManagerItem): filename = os.path.split(unicode(track))[1] item_name = QtGui.QListWidgetItem(filename) item_name.setIcon(build_icon(CLAPPERBOARD)) - item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(track)) + item_name.setData(QtCore.Qt.UserRole, track) else: filename = os.path.split(unicode(track))[1] item_name = QtGui.QListWidgetItem(filename) #TODO: add the appropriate Icon #item_name.setIcon(build_icon(DVD_ICON)) - item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(track)) + item_name.setData(QtCore.Qt.UserRole, track) item_name.setToolTip(track) self.listView.addItem(item_name) diff --git a/openlp/plugins/media/lib/mediatab.py b/openlp/plugins/media/lib/mediatab.py index c7ec1a61b..566c2a821 100644 --- a/openlp/plugins/media/lib/mediatab.py +++ b/openlp/plugins/media/lib/mediatab.py @@ -27,7 +27,7 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import SettingsTab, translate, Receiver +from openlp.core.lib import Receiver, Settings, SettingsTab, translate from openlp.core.lib.ui import UiStrings, create_button from openlp.core.ui.media import get_media_players, set_media_players class MediaQCheckBox(QtGui.QCheckBox): @@ -186,9 +186,8 @@ class MediaTab(SettingsTab): else: checkbox.setChecked(False) self.updatePlayerList() - self.overridePlayerCheckBox.setChecked(QtCore.QSettings().value( - self.settingsSection + u'/override player', - QtCore.QVariant(QtCore.Qt.Unchecked)).toInt()[0]) + self.overridePlayerCheckBox.setChecked(Settings().value( + self.settingsSection + u'/override player', QtCore.Qt.Unchecked)) def save(self): override_changed = False @@ -200,10 +199,10 @@ class MediaTab(SettingsTab): player_string_changed = True override_changed = True setting_key = self.settingsSection + u'/override player' - if QtCore.QSettings().value(setting_key).toInt()[0] != \ + if Settings().value(setting_key).toInt()[0] != \ self.overridePlayerCheckBox.checkState(): - QtCore.QSettings().setValue(setting_key, - QtCore.QVariant(self.overridePlayerCheckBox.checkState())) + Settings().setValue(setting_key, + self.overridePlayerCheckBox.checkState()) override_changed = True if override_changed: Receiver.send_message(u'mediaitem_media_rebuild') diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py index 13c636e83..954ab8d00 100644 --- a/openlp/plugins/media/mediaplugin.py +++ b/openlp/plugins/media/mediaplugin.py @@ -29,7 +29,8 @@ import logging from PyQt4 import QtCore -from openlp.core.lib import Plugin, StringContent, build_icon, translate +from openlp.core.lib import Plugin, StringContent, build_icon, translate, \ + Settings from openlp.plugins.media.lib import MediaMediaItem, MediaTab log = logging.getLogger(__name__) @@ -126,7 +127,7 @@ class MediaPlugin(Plugin): we want to check if we have the old "Use Phonon" setting, and convert it to "enable Phonon" and "make it the first one in the list". """ - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(self.settingsSection) if settings.contains(u'use phonon'): log.info(u'Found old Phonon setting') @@ -140,8 +141,7 @@ class MediaPlugin(Plugin): if player != u'phonon'] new_players.insert(0, u'phonon') self.mediaController.mediaPlayers[u'phonon'].isActive = True - settings.setValue(u'players', \ - QtCore.QVariant(u','.join(new_players))) + settings.setValue(u'players', u','.join(new_players)) self.settingsTab.load() settings.remove(u'use phonon') settings.endGroup() diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index 68eea809b..76897c355 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -33,7 +33,7 @@ from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, build_icon, SettingsManager, \ translate, check_item_selected, Receiver, ItemCapabilities, create_thumb, \ - validate_thumb + validate_thumb, Settings from openlp.core.lib.ui import UiStrings, critical_error_message_box, \ create_horizontal_adjusting_combo_box from openlp.plugins.presentations.lib import MessageListener @@ -149,8 +149,8 @@ class PresentationMediaItem(MediaManagerItem): if self.displayTypeComboBox.count() > 1: self.displayTypeComboBox.insertItem(0, self.Automatic) self.displayTypeComboBox.setCurrentIndex(0) - if QtCore.QSettings().value(self.settingsSection + u'/override app', - QtCore.QVariant(QtCore.Qt.Unchecked)) == QtCore.Qt.Checked: + if Settings().value(self.settingsSection + u'/override app', + QtCore.Qt.Unchecked) == QtCore.Qt.Checked: self.presentationWidget.show() else: self.presentationWidget.hide() @@ -211,7 +211,7 @@ class PresentationMediaItem(MediaManagerItem): 'This type of presentation is not supported.')) continue item_name = QtGui.QListWidgetItem(filename) - item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(file)) + item_name.setData(QtCore.Qt.UserRole, file) item_name.setIcon(icon) item_name.setToolTip(file) self.listView.addItem(item_name) diff --git a/openlp/plugins/presentations/lib/presentationcontroller.py b/openlp/plugins/presentations/lib/presentationcontroller.py index 7702f19cd..b8e70e3a8 100644 --- a/openlp/plugins/presentations/lib/presentationcontroller.py +++ b/openlp/plugins/presentations/lib/presentationcontroller.py @@ -32,7 +32,7 @@ import shutil from PyQt4 import QtCore from openlp.core.lib import Receiver, check_directory_exists, create_thumb, \ - validate_thumb + validate_thumb, Settings from openlp.core.utils import AppLocation log = logging.getLogger(__name__) @@ -392,10 +392,8 @@ class PresentationController(object): """ Return whether the controller is currently enabled """ - if QtCore.QSettings().value( - self.settings_section + u'/' + self.name, - QtCore.QVariant(QtCore.Qt.Checked)).toInt()[0] == \ - QtCore.Qt.Checked: + if Settings().value(self.settings_section + u'/' + self.name, + QtCore.Qt.Checked) == QtCore.Qt.Checked: return self.is_available() else: return False diff --git a/openlp/plugins/presentations/lib/presentationtab.py b/openlp/plugins/presentations/lib/presentationtab.py index 1b9fa04d9..5338eb132 100644 --- a/openlp/plugins/presentations/lib/presentationtab.py +++ b/openlp/plugins/presentations/lib/presentationtab.py @@ -27,7 +27,7 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import Receiver, SettingsTab, translate +from openlp.core.lib import Receiver, Settings, SettingsTab, translate from openlp.core.lib.ui import UiStrings class PresentationTab(SettingsTab): @@ -102,12 +102,11 @@ class PresentationTab(SettingsTab): for key in self.controllers: controller = self.controllers[key] checkbox = self.PresenterCheckboxes[controller.name] - checkbox.setChecked(QtCore.QSettings().value( + checkbox.setChecked(Settings().value( self.settingsSection + u'/' + controller.name, - QtCore.QVariant(QtCore.Qt.Checked)).toInt()[0]) - self.OverrideAppCheckBox.setChecked(QtCore.QSettings().value( - self.settingsSection + u'/override app', - QtCore.QVariant(QtCore.Qt.Unchecked)).toInt()[0]) + QtCore.Qt.Checked)) + self.OverrideAppCheckBox.setChecked(Settings().value( + self.settingsSection + u'/override app', QtCore.Qt.Unchecked)) def save(self): """ @@ -123,20 +122,20 @@ class PresentationTab(SettingsTab): if controller.is_available(): checkbox = self.PresenterCheckboxes[controller.name] setting_key = self.settingsSection + u'/' + controller.name - if QtCore.QSettings().value(setting_key) != \ + if Settings().value(setting_key) != \ checkbox.checkState(): changed = True - QtCore.QSettings().setValue(setting_key, - QtCore.QVariant(checkbox.checkState())) + Settings().setValue(setting_key, + checkbox.checkState()) if checkbox.isChecked(): controller.start_process() else: controller.kill() setting_key = self.settingsSection + u'/override app' - if QtCore.QSettings().value(setting_key) != \ + if Settings().value(setting_key) != \ self.OverrideAppCheckBox.checkState(): - QtCore.QSettings().setValue(setting_key, - QtCore.QVariant(self.OverrideAppCheckBox.checkState())) + Settings().setValue(setting_key, + self.OverrideAppCheckBox.checkState()) changed = True if changed: Receiver.send_message(u'mediaitem_presentation_rebuild') diff --git a/openlp/plugins/remotes/lib/httpserver.py b/openlp/plugins/remotes/lib/httpserver.py index 43afebb41..ecd1b6b0d 100644 --- a/openlp/plugins/remotes/lib/httpserver.py +++ b/openlp/plugins/remotes/lib/httpserver.py @@ -121,7 +121,7 @@ import urlparse from PyQt4 import QtCore, QtNetwork from mako.template import Template -from openlp.core.lib import Receiver, PluginStatus, StringContent +from openlp.core.lib import Receiver, Settings, PluginStatus, StringContent from openlp.core.utils import AppLocation, translate log = logging.getLogger(__name__) @@ -169,12 +169,10 @@ class HttpServer(object): clients. Listen out for socket connections. """ log.debug(u'Start TCP server') - port = QtCore.QSettings().value( - self.plugin.settingsSection + u'/port', - QtCore.QVariant(4316)).toInt()[0] - address = QtCore.QSettings().value( - self.plugin.settingsSection + u'/ip address', - QtCore.QVariant(u'0.0.0.0')).toString() + port = Settings().value( + self.plugin.settingsSection + u'/port', 4316) + address = Settings().value( + self.plugin.settingsSection + u'/ip address', u'0.0.0.0') self.server = QtNetwork.QTcpServer() self.server.listen(QtNetwork.QHostAddress(address), port) QtCore.QObject.connect(Receiver.get_receiver(), @@ -404,14 +402,11 @@ class HttpConnection(object): u'slide': self.parent.current_slide or 0, u'item': self.parent.current_item._uuid \ if self.parent.current_item else u'', - u'twelve':QtCore.QSettings().value( - u'remotes/twelve hour', QtCore.QVariant(True)).toBool(), - u'blank': self.parent.plugin.liveController.blankScreen.\ - isChecked(), - u'theme': self.parent.plugin.liveController.themeScreen.\ - isChecked(), - u'display': self.parent.plugin.liveController.desktopScreen.\ - isChecked() + u'twelve': Settings().value(u'remotes/twelve hour', True), + u'blank': self.parent.plugin.liveController.blankScreen.isChecked(), + u'theme': self.parent.plugin.liveController.themeScreen.isChecked(), + u'display': \ + self.parent.plugin.liveController.desktopScreen.isChecked() } return HttpResponse(json.dumps({u'results': result}), {u'Content-Type': u'application/json'}) diff --git a/openlp/plugins/remotes/lib/remotetab.py b/openlp/plugins/remotes/lib/remotetab.py index bae2a7090..be08bb500 100644 --- a/openlp/plugins/remotes/lib/remotetab.py +++ b/openlp/plugins/remotes/lib/remotetab.py @@ -27,7 +27,7 @@ from PyQt4 import QtCore, QtGui, QtNetwork -from openlp.core.lib import SettingsTab, translate, Receiver +from openlp.core.lib import Settings, SettingsTab, translate, Receiver ZERO_URL = u'0.0.0.0' @@ -149,30 +149,29 @@ class RemoteTab(SettingsTab): def load(self): self.portSpinBox.setValue( - QtCore.QSettings().value(self.settingsSection + u'/port', - QtCore.QVariant(4316)).toInt()[0]) + Settings().value(self.settingsSection + u'/port', + 4316)) self.addressEdit.setText( - QtCore.QSettings().value(self.settingsSection + u'/ip address', - QtCore.QVariant(ZERO_URL)).toString()) - self.twelveHour = QtCore.QSettings().value( - self.settingsSection + u'/twelve hour', - QtCore.QVariant(True)).toBool() + Settings().value(self.settingsSection + u'/ip address', + ZERO_URL)) + self.twelveHour = Settings().value( + self.settingsSection + u'/twelve hour', True) self.twelveHourCheckBox.setChecked(self.twelveHour) self.setUrls() def save(self): changed = False - if QtCore.QSettings().value(self.settingsSection + u'/ip address', - QtCore.QVariant(ZERO_URL).toString() != self.addressEdit.text() or - QtCore.QSettings().value(self.settingsSection + u'/port', - QtCore.QVariant(4316).toInt()[0]) != self.portSpinBox.value()): + if Settings().value(self.settingsSection + u'/ip address', + ZERO_URL != self.addressEdit.text() or + Settings().value(self.settingsSection + u'/port', + 4316) != self.portSpinBox.value()): changed = True - QtCore.QSettings().setValue(self.settingsSection + u'/port', - QtCore.QVariant(self.portSpinBox.value())) - QtCore.QSettings().setValue(self.settingsSection + u'/ip address', - QtCore.QVariant(self.addressEdit.text())) - QtCore.QSettings().setValue(self.settingsSection + u'/twelve hour', - QtCore.QVariant(self.twelveHour)) + Settings().setValue(self.settingsSection + u'/port', + self.portSpinBox.value()) + Settings().setValue(self.settingsSection + u'/ip address', + self.addressEdit.text()) + Settings().setValue(self.settingsSection + u'/twelve hour', + self.twelveHour) if changed: Receiver.send_message(u'remotes_config_updated') diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index 195dda729..0bcf60b07 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -145,8 +145,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): for author in authors: row = self.authorsComboBox.count() self.authorsComboBox.addItem(author.display_name) - self.authorsComboBox.setItemData( - row, QtCore.QVariant(author.id)) + self.authorsComboBox.setItemData(row, author.id) self.authors.append(author.display_name) set_case_insensitive_completer(self.authors, self.authorsComboBox) @@ -166,7 +165,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): row = combo.count() combo.addItem(object.name) cache.append(object.name) - combo.setItemData(row, QtCore.QVariant(object.id)) + combo.setItemData(row, object.id) set_case_insensitive_completer(cache, combo) def loadThemes(self, theme_list): @@ -280,7 +279,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): verse[0][u'label'] = u'1' verse_def = u'%s%s' % (verse[0][u'type'], verse[0][u'label']) item = QtGui.QTableWidgetItem(verse[1]) - item.setData(QtCore.Qt.UserRole, QtCore.QVariant(verse_def)) + item.setData(QtCore.Qt.UserRole, verse_def) self.verseListWidget.setItem(count, 0, item) else: verses = self.song.lyrics.split(u'\n\n') @@ -290,7 +289,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): item = QtGui.QTableWidgetItem(verse) verse_def = u'%s%s' % \ (VerseType.Tags[VerseType.Verse], unicode(count + 1)) - item.setData(QtCore.Qt.UserRole, QtCore.QVariant(verse_def)) + item.setData(QtCore.Qt.UserRole, verse_def) self.verseListWidget.setItem(count, 0, item) if self.song.verse_order: # we translate verse order @@ -312,20 +311,19 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): self.authorsListView.clear() for author in self.song.authors: author_name = QtGui.QListWidgetItem(unicode(author.display_name)) - author_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(author.id)) + author_name.setData(QtCore.Qt.UserRole, author.id) self.authorsListView.addItem(author_name) # clear the results self.topicsListView.clear() for topic in self.song.topics: topic_name = QtGui.QListWidgetItem(unicode(topic.name)) - topic_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(topic.id)) + topic_name.setData(QtCore.Qt.UserRole, topic.id) self.topicsListView.addItem(topic_name) self.audioListWidget.clear() for media in self.song.media_files: media_file = QtGui.QListWidgetItem( os.path.split(media.file_name)[1]) - media_file.setData(QtCore.Qt.UserRole, - QtCore.QVariant(media.file_name)) + media_file.setData(QtCore.Qt.UserRole, media.file_name) self.audioListWidget.addItem(media_file) self.titleEdit.setFocus(QtCore.Qt.OtherFocusReason) # Hide or show the preview button. @@ -396,7 +394,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): Add an author to the author list. """ author_item = QtGui.QListWidgetItem(unicode(author.display_name)) - author_item.setData(QtCore.Qt.UserRole, QtCore.QVariant(author.id)) + author_item.setData(QtCore.Qt.UserRole, author.id) self.authorsListView.addItem(author_item) def onAuthorsListViewClicked(self): @@ -422,8 +420,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): topic = Topic.populate(name=text) self.manager.save_object(topic) topic_item = QtGui.QListWidgetItem(unicode(topic.name)) - topic_item.setData(QtCore.Qt.UserRole, - QtCore.QVariant(topic.id)) + topic_item.setData(QtCore.Qt.UserRole, topic.id) self.topicsListView.addItem(topic_item) self.loadTopics() self.topicsComboBox.setCurrentIndex(0) @@ -439,8 +436,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): 'This topic is already in the list.')) else: topic_item = QtGui.QListWidgetItem(unicode(topic.name)) - topic_item.setData(QtCore.Qt.UserRole, - QtCore.QVariant(topic.id)) + topic_item.setData(QtCore.Qt.UserRole, topic.id) self.topicsListView.addItem(topic_item) self.topicsComboBox.setCurrentIndex(0) else: @@ -469,7 +465,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): after_text, verse_tag, verse_num = self.verseForm.getVerse() verse_def = u'%s%s' % (verse_tag, verse_num) item = QtGui.QTableWidgetItem(after_text) - item.setData(QtCore.Qt.UserRole, QtCore.QVariant(verse_def)) + item.setData(QtCore.Qt.UserRole, verse_def) item.setText(after_text) self.verseListWidget.setRowCount( self.verseListWidget.rowCount() + 1) @@ -488,7 +484,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): if self.verseForm.exec_(): after_text, verse_tag, verse_num = self.verseForm.getVerse() verse_def = u'%s%s' % (verse_tag, verse_num) - item.setData(QtCore.Qt.UserRole, QtCore.QVariant(verse_def)) + item.setData(QtCore.Qt.UserRole, verse_def) item.setText(after_text) # number of lines has changed, repaint the list moving the data if len(tempText.split(u'\n')) != len(after_text.split(u'\n')): @@ -557,8 +553,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): if parts.endswith(u'\n'): parts = parts.rstrip(u'\n') item = QtGui.QTableWidgetItem(parts) - item.setData(QtCore.Qt.UserRole, - QtCore.QVariant(verse_def)) + item.setData(QtCore.Qt.UserRole, verse_def) self.verseListWidget.setRowCount( self.verseListWidget.rowCount() + 1) self.verseListWidget.setItem( @@ -733,8 +728,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): """ filters = u'%s (*)' % UiStrings().AllFiles filenames = QtGui.QFileDialog.getOpenFileNames(self, - translate('SongsPlugin.EditSongForm', 'Open File(s)'), - QtCore.QString(), filters) + translate('SongsPlugin.EditSongForm', 'Open File(s)'), u'', filters) for filename in filenames: item = QtGui.QListWidgetItem(os.path.split(unicode(filename))[1]) item.setData(QtCore.Qt.UserRole, filename) diff --git a/openlp/plugins/songs/forms/songexportform.py b/openlp/plugins/songs/forms/songexportform.py index 397b52cfc..498191f53 100644 --- a/openlp/plugins/songs/forms/songexportform.py +++ b/openlp/plugins/songs/forms/songexportform.py @@ -218,8 +218,9 @@ class SongExportForm(OpenLPWizard): # Add the songs to the list of selected songs. for item in items: song = QtGui.QListWidgetItem(item.text()) + # TODO: check toPyObject() song.setData(QtCore.Qt.UserRole, - QtCore.QVariant(item.data(QtCore.Qt.UserRole).toPyObject())) + item.data(QtCore.Qt.UserRole).toPyObject()) song.setFlags(QtCore.Qt.ItemIsEnabled) self.selectedListWidget.addItem(song) return True @@ -260,7 +261,7 @@ class SongExportForm(OpenLPWizard): for author in song.authors]) title = u'%s (%s)' % (unicode(song.title), authors) item = QtGui.QListWidgetItem(title) - item.setData(QtCore.Qt.UserRole, QtCore.QVariant(song)) + item.setData(QtCore.Qt.UserRole, song) item.setFlags(QtCore.Qt.ItemIsSelectable| QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsEnabled) item.setCheckState(QtCore.Qt.Unchecked) @@ -308,8 +309,9 @@ class SongExportForm(OpenLPWizard): ``text`` The text to search for. (unicode string) """ + #TODO: check if unicode() can be removed. return [item for item in listWidget.findItems( - QtCore.QString(unicode(text)), QtCore.Qt.MatchContains) + unicode(text), QtCore.Qt.MatchContains) ] def onItemActivated(self, item): @@ -333,6 +335,8 @@ class SongExportForm(OpenLPWizard): ``text`` The text of the *searchLineEdit*. (QString) """ + #TODO: check if unicode() can be removed. + print type(text) search_result = [ song for song in self._findListWidgetItems( self.availableListWidget, unicode(text)) diff --git a/openlp/plugins/songs/forms/songimportform.py b/openlp/plugins/songs/forms/songimportform.py index d5f7715ea..65d769792 100644 --- a/openlp/plugins/songs/forms/songimportform.py +++ b/openlp/plugins/songs/forms/songimportform.py @@ -33,7 +33,7 @@ import os from PyQt4 import QtCore, QtGui -from openlp.core.lib import Receiver, SettingsManager, translate +from openlp.core.lib import Receiver, Settings, SettingsManager, translate from openlp.core.lib.ui import UiStrings, critical_error_message_box from openlp.core.ui.wizard import OpenLPWizard, WizardStrings from openlp.plugins.songs.lib.importer import SongFormat @@ -387,7 +387,7 @@ class SongImportForm(OpenLPWizard): return True elif self.currentPage() == self.sourcePage: source_format = self.formatComboBox.currentIndex() - QtCore.QSettings().setValue(u'songs/last import type', + Settings().setValue(u'songs/last import type', source_format) if source_format == SongFormat.OpenLP2: if self.openLP2FilenameEdit.text().isEmpty(): @@ -740,7 +740,7 @@ class SongImportForm(OpenLPWizard): self.restart() self.finishButton.setVisible(False) self.cancelButton.setVisible(True) - last_import_type = QtCore.QSettings().value( + last_import_type = Settings().value( u'songs/last import type').toInt()[0] if last_import_type < 0 or \ last_import_type >= self.formatComboBox.count(): diff --git a/openlp/plugins/songs/forms/songmaintenanceform.py b/openlp/plugins/songs/forms/songmaintenanceform.py index 7ba49a102..51bb37e00 100644 --- a/openlp/plugins/songs/forms/songmaintenanceform.py +++ b/openlp/plugins/songs/forms/songmaintenanceform.py @@ -131,7 +131,7 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): else: author_name = QtGui.QListWidgetItem( u' '.join([author.first_name, author.last_name])) - author_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(author.id)) + author_name.setData(QtCore.Qt.UserRole, author.id) self.authorsListWidget.addItem(author_name) def resetTopics(self): @@ -142,7 +142,7 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): topics = self.manager.get_all_objects(Topic, order_by_ref=Topic.name) for topic in topics: topic_name = QtGui.QListWidgetItem(topic.name) - topic_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(topic.id)) + topic_name.setData(QtCore.Qt.UserRole, topic.id) self.topicsListWidget.addItem(topic_name) def resetBooks(self): @@ -154,7 +154,7 @@ class SongMaintenanceForm(QtGui.QDialog, Ui_SongMaintenanceDialog): for book in books: book_name = QtGui.QListWidgetItem(u'%s (%s)' % (book.name, book.publisher)) - book_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(book.id)) + book_name.setData(QtCore.Qt.UserRole, book.id) self.booksListWidget.addItem(book_name) def checkAuthor(self, new_author, edit=False): diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 51158a954..456062b69 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -34,8 +34,9 @@ import shutil from PyQt4 import QtCore, QtGui from sqlalchemy.sql import or_ -from openlp.core.lib import MediaManagerItem, Receiver, ItemCapabilities, \ - translate, check_item_selected, PluginStatus, create_separated_list +from openlp.core.lib import MediaManagerItem, Receiver, Settings, \ + ItemCapabilities, translate, check_item_selected, PluginStatus, \ + create_separated_list from openlp.core.lib.ui import UiStrings, create_widget_action from openlp.core.utils import AppLocation from openlp.plugins.songs.forms import EditSongForm, SongMaintenanceForm, \ @@ -131,15 +132,13 @@ class SongMediaItem(MediaManagerItem): self.searchTextEdit.setFocus() def configUpdated(self): - self.searchAsYouType = QtCore.QSettings().value( - self.settingsSection + u'/search as type', - QtCore.QVariant(u'False')).toBool() - self.updateServiceOnEdit = QtCore.QSettings().value( - self.settingsSection + u'/update service on edit', - QtCore.QVariant(u'False')).toBool() - self.addSongFromService = QtCore.QSettings().value( - self.settingsSection + u'/add song from service', - QtCore.QVariant(u'True')).toBool() + # TODO: Check .toBool() + self.searchAsYouType = bool(Settings().value( + self.settingsSection + u'/search as type', False)) + self.updateServiceOnEdit = bool(Settings().value( + self.settingsSection + u'/update service on edit', False)) + self.addSongFromService = bool(Settings().value( + self.settingsSection + u'/add song from service', True)) def retranslateUi(self): self.searchTextLabel.setText(u'%s:' % UiStrings().Search) @@ -168,16 +167,14 @@ class SongMediaItem(MediaManagerItem): (SongSearch.Themes, u':/slides/slide_theme.png', UiStrings().Themes, UiStrings().SearchThemes) ]) - self.searchTextEdit.setCurrentSearchType(QtCore.QSettings().value( - u'%s/last search type' % self.settingsSection, - QtCore.QVariant(SongSearch.Entire)).toInt()[0]) + self.searchTextEdit.setCurrentSearchType(Settings().value( + u'%s/last search type' % self.settingsSection, SongSearch.Entire)) self.configUpdated() def onSearchTextButtonClicked(self): # Save the current search type to the configuration. - QtCore.QSettings().setValue(u'%s/last search type' % - self.settingsSection, - QtCore.QVariant(self.searchTextEdit.currentSearchType())) + Settings().setValue(u'%s/last search type' % + self.settingsSection, self.searchTextEdit.currentSearchType()) # Reload the list considering the new search type. search_keywords = unicode(self.searchTextEdit.displayText()) search_results = [] @@ -271,7 +268,7 @@ class SongMediaItem(MediaManagerItem): song_detail = u'%s (%s)' % (song_title, create_separated_list(author_list)) song_name = QtGui.QListWidgetItem(song_detail) - song_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(song.id)) + song_name.setData(QtCore.Qt.UserRole, song.id) self.listView.addItem(song_name) # Auto-select the item if name has been set if song.id == self.autoSelectId: @@ -288,7 +285,7 @@ class SongMediaItem(MediaManagerItem): continue song_detail = u'%s (%s)' % (author.display_name, song.title) song_name = QtGui.QListWidgetItem(song_detail) - song_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(song.id)) + song_name.setData(QtCore.Qt.UserRole, song.id) self.listView.addItem(song_name) def displayResultsBook(self, searchresults, song_number=False): @@ -306,7 +303,7 @@ class SongMediaItem(MediaManagerItem): song_detail = u'%s - %s (%s)' % (book.name, song.song_number, song.title) song_name = QtGui.QListWidgetItem(song_detail) - song_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(song.id)) + song_name.setData(QtCore.Qt.UserRole, song.id) self.listView.addItem(song_name) def onClearTextButtonClick(self): @@ -516,12 +513,10 @@ class SongMediaItem(MediaManagerItem): service_item.raw_footer.append(song.title) service_item.raw_footer.append(create_separated_list(author_list)) service_item.raw_footer.append(song.copyright) - if QtCore.QSettings().value(u'general/ccli number', - QtCore.QVariant(u'')).toString(): + if Settings().value(u'general/ccli number', u''): service_item.raw_footer.append(unicode( translate('SongsPlugin.MediaItem', 'CCLI License: ') + - QtCore.QSettings().value(u'general/ccli number', - QtCore.QVariant(u'')).toString())) + Settings().value(u'general/ccli number', u''))) service_item.audit = [ song.title, author_list, song.copyright, unicode(song.ccli_number) ] diff --git a/openlp/plugins/songs/lib/songstab.py b/openlp/plugins/songs/lib/songstab.py index 9d6de087f..6d58c894e 100644 --- a/openlp/plugins/songs/lib/songstab.py +++ b/openlp/plugins/songs/lib/songstab.py @@ -27,7 +27,7 @@ from PyQt4 import QtCore, QtGui -from openlp.core.lib import SettingsTab, translate +from openlp.core.lib import Settings, SettingsTab, translate class SongsTab(SettingsTab): """ @@ -110,16 +110,12 @@ class SongsTab(SettingsTab): self.update_load = True def load(self): - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(self.settingsSection) - self.song_search = settings.value( - u'search as type', QtCore.QVariant(False)).toBool() - self.tool_bar = settings.value( - u'display songbar', QtCore.QVariant(True)).toBool() - self.update_edit = settings.value( - u'update service on edit', QtCore.QVariant(False)).toBool() - self.update_load = settings.value( - u'add song from service', QtCore.QVariant(True)).toBool() + self.song_search = settings.value(u'search as type', False) + self.tool_bar = settings.value(u'display songbar', True) + self.update_edit = settings.value(u'update service on edit', False) + self.update_load = settings.value(u'add song from service', True) self.searchAsTypeCheckBox.setChecked(self.song_search) self.toolBarActiveCheckBox.setChecked(self.tool_bar) self.updateOnEditCheckBox.setChecked(self.update_edit) @@ -127,12 +123,10 @@ class SongsTab(SettingsTab): settings.endGroup() def save(self): - settings = QtCore.QSettings() + settings = Settings() settings.beginGroup(self.settingsSection) - settings.setValue(u'search as type', QtCore.QVariant(self.song_search)) - settings.setValue(u'display songbar', QtCore.QVariant(self.tool_bar)) - settings.setValue(u'update service on edit', - QtCore.QVariant(self.update_edit)) - settings.setValue(u'add song from service', - QtCore.QVariant(self.update_load)) + settings.setValue(u'search as type', self.song_search) + settings.setValue(u'display songbar', self.tool_bar) + settings.setValue(u'update service on edit', self.update_edit) + settings.setValue(u'add song from service', self.update_load) settings.endGroup() diff --git a/openlp/plugins/songusage/forms/songusagedetailform.py b/openlp/plugins/songusage/forms/songusagedetailform.py index 363455ea5..f1cdb4cbc 100644 --- a/openlp/plugins/songusage/forms/songusagedetailform.py +++ b/openlp/plugins/songusage/forms/songusagedetailform.py @@ -31,7 +31,7 @@ import os from PyQt4 import QtCore, QtGui from sqlalchemy.sql import and_ -from openlp.core.lib import SettingsManager, translate, Receiver, \ +from openlp.core.lib import Receiver, Settings, SettingsManager, translate, \ check_directory_exists from openlp.plugins.songusage.lib.db import SongUsageItem from songusagedetaildialog import Ui_SongUsageDetailDialog @@ -59,12 +59,11 @@ class SongUsageDetailForm(QtGui.QDialog, Ui_SongUsageDetailDialog): year = QtCore.QDate().currentDate().year() if QtCore.QDate().currentDate().month() < 9: year -= 1 - toDate = QtCore.QSettings().value( - u'songusage/to date', - QtCore.QVariant(QtCore.QDate(year, 8, 31))).toDate() - fromDate = QtCore.QSettings().value( + toDate = Settings().value( + u'songusage/to date', QtCore.QDate(year, 8, 31)).toDate() + fromDate = Settings().value( u'songusage/from date', - QtCore.QVariant(QtCore.QDate(year - 1, 9, 1))).toDate() + QtCore.QDate(year - 1, 9, 1)).toDate() self.fromDate.setSelectedDate(fromDate) self.toDate.setSelectedDate(toDate) self.fileLineEdit.setText( @@ -103,10 +102,10 @@ class SongUsageDetailForm(QtGui.QDialog, Ui_SongUsageDetailDialog): 'usage_detail_%s_%s.txt')) % ( self.fromDate.selectedDate().toString(u'ddMMyyyy'), self.toDate.selectedDate().toString(u'ddMMyyyy')) - QtCore.QSettings().setValue(u'songusage/from date', - QtCore.QVariant(self.fromDate.selectedDate())) - QtCore.QSettings().setValue(u'songusage/to date', - QtCore.QVariant(self.toDate.selectedDate())) + Settings().setValue(u'songusage/from date', + self.fromDate.selectedDate()) + Settings().setValue(u'songusage/to date', + self.toDate.selectedDate()) usage = self.plugin.manager.get_all_objects( SongUsageItem, and_( SongUsageItem.usagedate >= self.fromDate.selectedDate().toPyDate(), diff --git a/openlp/plugins/songusage/songusageplugin.py b/openlp/plugins/songusage/songusageplugin.py index 7746f9b28..48450510f 100644 --- a/openlp/plugins/songusage/songusageplugin.py +++ b/openlp/plugins/songusage/songusageplugin.py @@ -30,8 +30,8 @@ from datetime import datetime from PyQt4 import QtCore, QtGui -from openlp.core.lib import Plugin, StringContent, Receiver, build_icon, \ - translate +from openlp.core.lib import build_icon, Plugin, Receiver, Settings, \ + StringContent, translate from openlp.core.lib.db import Manager from openlp.core.lib.ui import create_action from openlp.core.utils.actions import ActionList @@ -125,9 +125,8 @@ class SongUsagePlugin(Plugin): QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'print_service_started'), self.printSongUsage) - self.songUsageActive = QtCore.QSettings().value( - self.settingsSection + u'/active', - QtCore.QVariant(False)).toBool() + self.songUsageActive = Settings().value( + self.settingsSection + u'/active', False) # Set the button and checkbox state self.setButtonState() action_list = ActionList.get_instance() @@ -168,8 +167,8 @@ class SongUsagePlugin(Plugin): the UI when necessary, """ self.songUsageActive = not self.songUsageActive - QtCore.QSettings().setValue(self.settingsSection + u'/active', - QtCore.QVariant(self.songUsageActive)) + Settings().setValue(self.settingsSection + u'/active', + self.songUsageActive) self.setButtonState() def setButtonState(self):