Head r861

This commit is contained in:
Jon Tibble 2010-06-20 00:12:00 +01:00
commit afefd3c45f
3 changed files with 32 additions and 12 deletions

View File

@ -30,6 +30,7 @@ import os.path
from PyQt4 import QtCore, QtGui from PyQt4 import QtCore, QtGui
from openlp.core.lib import ThemeXML, translate from openlp.core.lib import ThemeXML, translate
from openlp.core.utils import get_images_filter
from amendthemedialog import Ui_AmendThemeDialog from amendthemedialog import Ui_AmendThemeDialog
log = logging.getLogger(u'AmendThemeForm') log = logging.getLogger(u'AmendThemeForm')
@ -209,8 +210,11 @@ class AmendThemeForm(QtGui.QDialog, Ui_AmendThemeDialog):
self.previewTheme() self.previewTheme()
def onImageToolButtonClicked(self): def onImageToolButtonClicked(self):
filename = unicode(QtGui.QFileDialog.getOpenFileName( images_filter = get_images_filter()
self, translate('AmendThemeForm', 'Open File'))) images_filter = '%s;;%s (*.*) (*)' % (images_filter,
translate('AmendThemeForm', 'All Files'))
filename = QtGui.QFileDialog.getOpenFileName(self,
translate('AmendThemeForm', 'Select Image'), u'', images_filter)
if filename: if filename:
self.ImageLineEdit.setText(filename) self.ImageLineEdit.setText(filename)
self.theme.background_filename = filename self.theme.background_filename = filename

View File

@ -30,17 +30,20 @@ import os
import sys import sys
import logging import logging
import urllib2 import urllib2
from datetime import datetime from datetime import datetime
from PyQt4 import QtCore
from PyQt4 import QtGui, QtCore
import openlp import openlp
from openlp.core.lib import translate
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
images_filter = None
class AppLocation(object): class AppLocation(object):
""" """
Retrieve a directory based on the directory type. The :class:`AppLocation` class is a static class which retrieves a
directory based on the directory type.
""" """
AppDir = 1 AppDir = 1
ConfigDir = 2 ConfigDir = 2
@ -176,6 +179,22 @@ def get_filesystem_encoding():
encoding = sys.getdefaultencoding() encoding = sys.getdefaultencoding()
return encoding return encoding
def get_images_filter():
"""
Returns a filter string for a file dialog containing all the supported
image formats.
"""
global images_filter
if not images_filter:
log.debug(u'Generating images filter.')
formats = [unicode(fmt)
for fmt in QtGui.QImageReader.supportedImageFormats()]
visible_formats = u'(*.%s)' % u'; *.'.join(formats)
actual_formats = u'(*.%s)' % u' *.'.join(formats)
images_filter = u'%s %s %s' % (translate('OpenLP', 'Image Files'),
visible_formats, actual_formats)
return images_filter
from languagemanager import LanguageManager from languagemanager import LanguageManager
__all__ = [u'AppLocation', u'check_latest_version', u'add_actions', __all__ = [u'AppLocation', u'check_latest_version', u'add_actions',

View File

@ -30,7 +30,7 @@ from PyQt4 import QtCore, QtGui
from openlp.core.lib import MediaManagerItem, BaseListWithDnD, build_icon, \ from openlp.core.lib import MediaManagerItem, BaseListWithDnD, build_icon, \
context_menu_action, ItemCapabilities, SettingsManager, translate context_menu_action, ItemCapabilities, SettingsManager, translate
from openlp.core.utils import AppLocation from openlp.core.utils import AppLocation, get_images_filter
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
@ -61,12 +61,9 @@ class ImageMediaItem(MediaManagerItem):
def retranslateUi(self): def retranslateUi(self):
self.OnNewPrompt = translate('ImagePlugin.MediaItem', self.OnNewPrompt = translate('ImagePlugin.MediaItem',
'Select Image(s)') 'Select Image(s)')
file_formats = u'' file_formats = get_images_filter()
for file_format in QtGui.QImageReader.supportedImageFormats(): self.OnNewFileMasks = u'%s;;%s (*.*) (*)' % (file_formats,
file_formats += u'*.%s ' % file_format unicode(translate('ImagePlugin.MediaItem', 'All Files')))
self.OnNewFileMasks = unicode(
translate('ImagePlugin.MediaItem',
'Images (%s);; All files (*)')) % file_formats
def requiredIcons(self): def requiredIcons(self):
MediaManagerItem.requiredIcons(self) MediaManagerItem.requiredIcons(self)