This commit is contained in:
Andreas Preikschat 2011-05-05 13:51:47 +02:00
parent cbd7ae2afc
commit e25145a81b
8 changed files with 40 additions and 56 deletions

View File

@ -277,7 +277,6 @@ from listwidgetwithdnd import ListWidgetWithDnD
from displaytags import DisplayTags
from eventreceiver import Receiver
from spelltextedit import SpellTextEdit
from imagemanager import ImageManager
from settingsmanager import SettingsManager
from plugin import PluginStatus, StringContent, Plugin
from pluginmanager import PluginManager
@ -289,6 +288,7 @@ from htmlbuilder import build_html, build_lyrics_format_css, \
build_lyrics_outline_css
from toolbar import OpenLPToolbar
from dockwidget import OpenLPDockWidget
from imagemanager import ImageManager
from renderer import Renderer
from mediamanageritem import MediaManagerItem
from openlp.core.utils.actions import ActionList

View File

@ -32,6 +32,7 @@ import logging
from PyQt4 import QtGui
from openlp.core.lib import build_icon
from openlp.core.ui import ScreenList
log = logging.getLogger(__name__)
@ -50,3 +51,11 @@ class OpenLPDockWidget(QtGui.QDockWidget):
self.setObjectName(name)
if icon:
self.setWindowIcon(build_icon(icon))
# Sort out the minimum width.
screens = ScreenList.get_instance()
screen_width = screens.current[u'size'].width()
mainwindow_docbars = screen_width / 5
if mainwindow_docbars > 300:
self.setMinimumWidth(300)
else:
self.setMinimumWidth(mainwindow_docbars)

View File

@ -35,6 +35,7 @@ import time
from PyQt4 import QtCore
from openlp.core.lib import resize_image, image_to_byte
from openlp.core.ui import ScreenList
log = logging.getLogger(__name__)
@ -68,10 +69,11 @@ class ImageManager(QtCore.QObject):
"""
log.info(u'Image Manager loaded')
def __init__(self, width, height):
def __init__(self):
QtCore.QObject.__init__(self)
self.width = width
self.height = height
current_screen = ScreenList.get_instance().current
self.width = current_screen[u'size'].width()
self.height = current_screen[u'size'].height()
self._cache = {}
self._thread_running = False
self._cache_dirty = False

View File

@ -28,7 +28,7 @@ import logging
from PyQt4 import QtCore, QtWebKit
from openlp.core.lib import ServiceItem, ImageManager, expand_tags, \
from openlp.core.lib import ServiceItem, expand_tags, \
build_lyrics_format_css, build_lyrics_outline_css, Receiver, \
ItemCapabilities
from openlp.core.lib.theme import ThemeLevel
@ -61,23 +61,22 @@ class Renderer(object):
"""
log.info(u'Renderer Loaded')
def __init__(self, theme_manager):
def __init__(self, imageManager, theme_manager):
"""
Initialise the render manager.
"""
log.debug(u'Initilisation started')
self.screens = ScreenList.get_instance()
self.width = self.screens.current[u'size'].width()
self.height = self.screens.current[u'size'].height()
self.image_manager = ImageManager(self.width, self.height)
self.display = MainDisplay(self, False)
self.display.imageManager = self.image_manager
self.theme_manager = theme_manager
self.image_manager = imageManager
self.screens = ScreenList.get_instance()
self.service_theme = u''
self.theme_level = u''
self.override_background = None
self.theme_data = None
self.bg_frame = None
self.force_page = False
self.display = MainDisplay(self, self.image_manager, False)
self.display.setup()
def update_display(self):
"""
@ -85,8 +84,7 @@ class Renderer(object):
"""
log.debug(u'Update Display')
self._calculate_default(self.screens.current[u'size'])
self.display = MainDisplay(self, False)
self.display.imageManager = self.image_manager
self.display = MainDisplay(self, self.image_manager, False)
self.display.setup()
self.bg_frame = None
self.theme_data = None

View File

@ -33,7 +33,6 @@ import os
from PyQt4 import QtCore
#from openlp.core.ui import ScreenList
from openlp.core.utils import AppLocation
class SettingsManager(object):
@ -41,21 +40,6 @@ class SettingsManager(object):
Class to control the initial settings for the UI and provide helper
functions for the loading and saving of application settings.
"""
def __init__(self):
from openlp.core.ui import ScreenList
self.screen = ScreenList.get_instance().current
self.width = self.screen[u'size'].width()
self.height = self.screen[u'size'].height()
self.mainwindow_height = self.height * 0.8
mainwindow_docbars = self.width / 5
self.mainwindow_left = 0
self.mainwindow_right = 0
if mainwindow_docbars > 300:
self.mainwindow_left = 300
self.mainwindow_right = 300
else:
self.mainwindow_left = mainwindow_docbars
self.mainwindow_right = mainwindow_docbars
@staticmethod
def get_last_dir(section, num=None):

View File

@ -60,11 +60,12 @@ class MainDisplay(DisplayWidget):
"""
This is the display screen.
"""
def __init__(self, parent, live):
DisplayWidget.__init__(self, live, parent=None)
def __init__(self, parent, imageManager, live):
DisplayWidget.__init__(self, live, parent)
self.parent = parent
self.screens = ScreenList.get_instance()
self.isLive = live
self.imageManager = imageManager
self.screens = ScreenList.get_instance()
self.alertTab = None
self.hideMode = None
self.videoHide = False

View File

@ -31,7 +31,7 @@ from tempfile import gettempdir
from PyQt4 import QtCore, QtGui
from openlp.core.lib import Renderer, build_icon, OpenLPDockWidget, \
SettingsManager, PluginManager, Receiver, translate
PluginManager, Receiver, translate, ImageManager
from openlp.core.lib.ui import UiStrings, base_action, checkable_action, \
icon_action, shortcut_action
from openlp.core.ui import AboutForm, SettingsForm, ServiceManager, \
@ -69,8 +69,6 @@ class Ui_MainWindow(object):
Set up the user interface
"""
mainWindow.setObjectName(u'MainWindow')
mainWindow.resize(self.settingsmanager.width,
self.settingsmanager.height)
mainWindow.setWindowIcon(build_icon(u':/icon/openlp-logo-64x64.png'))
mainWindow.setDockNestingEnabled(True)
# Set up the main container, which contains all the other form widgets.
@ -86,8 +84,8 @@ class Ui_MainWindow(object):
self.controlSplitter.setObjectName(u'controlSplitter')
self.mainContentLayout.addWidget(self.controlSplitter)
# Create slide controllers
self.previewController = SlideController(self, self.settingsmanager)
self.liveController = SlideController(self, self.settingsmanager, True)
self.previewController = SlideController(self)
self.liveController = SlideController(self, True)
previewVisible = QtCore.QSettings().value(
u'user interface/preview panel', QtCore.QVariant(True)).toBool()
self.previewController.panel.setVisible(previewVisible)
@ -135,8 +133,6 @@ class Ui_MainWindow(object):
self.mediaManagerDock = OpenLPDockWidget(mainWindow,
u'mediaManagerDock', u':/system/system_mediamanager.png')
self.mediaManagerDock.setStyleSheet(MEDIA_MANAGER_STYLE)
self.mediaManagerDock.setMinimumWidth(
self.settingsmanager.mainwindow_left)
# Create the media toolbox
self.MediaToolBox = QtGui.QToolBox(self.mediaManagerDock)
self.MediaToolBox.setObjectName(u'MediaToolBox')
@ -146,8 +142,6 @@ class Ui_MainWindow(object):
# Create the service manager
self.serviceManagerDock = OpenLPDockWidget(mainWindow,
u'serviceManagerDock', u':/system/system_servicemanager.png')
self.serviceManagerDock.setMinimumWidth(
self.settingsmanager.mainwindow_right)
self.ServiceManagerContents = ServiceManager(mainWindow,
self.serviceManagerDock)
self.serviceManagerDock.setWidget(self.ServiceManagerContents)
@ -156,8 +150,6 @@ class Ui_MainWindow(object):
# Create the theme manager
self.themeManagerDock = OpenLPDockWidget(mainWindow,
u'themeManagerDock', u':/system/system_thememanager.png')
self.themeManagerDock.setMinimumWidth(
self.settingsmanager.mainwindow_right)
self.themeManagerContents = ThemeManager(mainWindow,
self.themeManagerDock)
self.themeManagerContents.setObjectName(u'themeManagerContents')
@ -474,7 +466,6 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
self.serviceSettingsSection = u'servicemanager'
self.songsSettingsSection = u'songs'
self.serviceNotSaved = False
self.settingsmanager = SettingsManager()
self.aboutForm = AboutForm(self)
self.settingsForm = SettingsForm(self, self)
self.displayTagForm = DisplayTagForm(self)
@ -484,6 +475,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
pluginpath = AppLocation.get_directory(AppLocation.PluginsDir)
self.pluginManager = PluginManager(pluginpath)
self.pluginHelpers = {}
self.imageManager = ImageManager()
# Set up the interface
self.setupUi(self)
# Load settings after setupUi so default UI sizes are overwritten
@ -549,7 +541,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
# warning cyclic dependency
# renderer needs to call ThemeManager and
# ThemeManager needs to call Renderer
self.renderer = Renderer(self.themeManagerContents)
self.renderer = Renderer(self.imageManager, self.themeManagerContents)
# Define the media Dock Manager
self.mediaDockManager = MediaDockManager(self.MediaToolBox)
log.info(u'Load Plugins')
@ -782,8 +774,8 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
their locations
"""
log.debug(u'screenChanged')
self.renderer.update_display()
self.setFocus()
self.renderer.update_display()
self.activateWindow()
def closeEvent(self, event):

View File

@ -53,18 +53,19 @@ class SlideController(QtGui.QWidget):
SlideController is the slide controller widget. This widget is what the
user uses to control the displaying of verses/slides/etc on the screen.
"""
def __init__(self, parent, settingsmanager, isLive=False):
def __init__(self, parent, isLive=False):
"""
Set up the Slide Controller.
"""
QtGui.QWidget.__init__(self, parent)
self.settingsmanager = settingsmanager
self.isLive = isLive
self.parent = parent
self.screens = ScreenList.get_instance()
self.ratio = float(self.screens.current[u'size'].width()) / \
float(self.screens.current[u'size'].height())
self.display = MainDisplay(self, isLive)
self.image_manager = self.parent.imageManager
self.display = MainDisplay(self, self.image_manager, isLive)
#self.display.alertTab = self.alertTab
self.display.setup()
self.loopList = [
u'Start Loop',
@ -422,8 +423,7 @@ class SlideController(QtGui.QWidget):
screen previews.
"""
# rebuild display as screen size changed
self.display = MainDisplay(self, self.isLive)
self.display.imageManager = self.parent.renderer.image_manager
self.display = MainDisplay(self, self.image_manager, self.isLive)
self.display.alertTab = self.alertTab
self.display.setup()
if self.isLive:
@ -637,10 +637,8 @@ class SlideController(QtGui.QWidget):
# If current slide set background to image
if framenumber == slideno:
self.serviceItem.bg_image_bytes = \
self.parent.renderer.image_manager. \
get_image_bytes(frame[u'title'])
image = self.parent.renderer.image_manager. \
get_image(frame[u'title'])
self.image_manager.get_image_bytes(frame[u'title'])
image = self.image_manager.get_image(frame[u'title'])
label.setPixmap(QtGui.QPixmap.fromImage(image))
self.previewListWidget.setCellWidget(framenumber, 0, label)
slideHeight = width * self.parent.renderer.screen_ratio