More servicing changes (Preview and Live) behave and can be selected.

Setup Slidecontroller so it has an identity
Setup SlideController so it knows anout the display
Fix maindisplay view bugs
This commit is contained in:
Tim Bentley 2009-05-03 08:20:15 +01:00
parent 183a7e54c7
commit e5ba8b73a6
3 changed files with 39 additions and 33 deletions

View File

@ -45,14 +45,14 @@ class MainDisplay(QtGui.QWidget):
screen = scrn screen = scrn
break break
self.setGeometry(screen['size']) self.setGeometry(screen['size'])
self.display.setGeometry(screen['size'])
if not screen['primary']: if not screen['primary']:
self.showFullScreen() self.showFullScreen()
else: else:
self.hide() self.showMinimized()
def frameView(self, frame): def frameView(self, frame):
self.display.setGeometry(0, 0, imagesize.width(), imagesize.height()) self.display.setPixmap(frame)
self.display.setPixmap(QtGui.QPixmap(frame))
def kill(self): def kill(self):
pass pass

View File

@ -95,6 +95,12 @@ class MainWindow(object):
self.ThemeManagerContents.serviceManager = self.ServiceManagerContents self.ThemeManagerContents.serviceManager = self.ServiceManagerContents
self.ThemeManagerContents.loadThemes() self.ThemeManagerContents.loadThemes()
# Initialise SlideControllers
log.info(u'Set Up SlideControllers')
self.PreviewController.isLive = False
self.LiveController.isLive = True
self.LiveController.mainDisplay = self.main_display
def setupUi(self): def setupUi(self):
self.main_window.setObjectName(u'main_window') self.main_window.setObjectName(u'main_window')
self.main_window.resize(1087, 847) self.main_window.resize(1087, 847)

View File

@ -43,14 +43,18 @@ class SlideData(QAbstractListModel):
def clearItems(self): def clearItems(self):
self.items=[] self.items=[]
def columnCount(self, parent):
return 1
def rowCount(self, parent): def rowCount(self, parent):
return len(self.items) return len(self.items)
def insertRow(self, row, frame, text): def insertRow(self, row, frame):
self.beginInsertRows(QModelIndex(),row,row) self.beginInsertRows(QModelIndex(),row,row)
log.info(u'insert row %d' % row) log.info(u'insert row %d' % row)
# create a preview image # create a preview image
self.items.insert(row,(frame, text)) frame1 = frame.scaled(QtCore.QSize(350,260))
self.items.insert(row,(frame1))
log.info(u'Items: %s' % self.items) log.info(u'Items: %s' % self.items)
self.endInsertRows() self.endInsertRows()
@ -59,17 +63,17 @@ class SlideData(QAbstractListModel):
self.items.pop(row) self.items.pop(row)
self.endRemoveRows() self.endRemoveRows()
def addRow(self, frame, text): def addRow(self, frame):
self.insertRow(len(self.items), frame, text) self.insertRow(len(self.items), frame)
def data(self, index, role): def data(self, index, role):
row=index.row() row=index.row()
if row > len(self.items): # if the last row is selected and deleted, we then get called with an empty row! if row > len(self.items): # if the last row is selected and deleted, we then get called with an empty row!
return QVariant() return QVariant()
if role==Qt.DisplayRole: # if role==Qt.DisplayRole:
retval= self.items[row][1] # retval= self.items[row][1]
elif role == Qt.DecorationRole: if role == Qt.DecorationRole:
retval= self.items[row][0] retval= self.items[row]#[0]
else: else:
retval= QVariant() retval= QVariant()
# log.info("Returning"+ str(retval)) # log.info("Returning"+ str(retval))
@ -110,25 +114,16 @@ class SlideController(QtGui.QWidget):
self.PaneLayout.setSpacing(50) self.PaneLayout.setSpacing(50)
self.PaneLayout.setMargin(0) self.PaneLayout.setMargin(0)
#self.VerseListView = QtGui.QListWidget(customEditDialog)
#self.VerseListView.setObjectName("VerseListView")
#self.horizontalLayout_4.addWidget(self.VerseListView)
self.Controller = QtGui.QScrollArea(self.Splitter) self.Controller = QtGui.QScrollArea(self.Splitter)
self.Controller.setWidgetResizable(True) self.Controller.setWidgetResizable(True)
#self.ControllerContents = QtGui.QWidget(self.Controller) self.PreviewListView = QtGui.QListView(self.Splitter)
#self.ControllerContents.setGeometry(QtCore.QRect(0, 0, 228, 536)) self.PreviewListView.setAlternatingRowColors(True)
self.PreviewListData = SlideData()
self.CustomListView = QtGui.QListView(self.Splitter) self.PreviewListView.setModel(self.PreviewListData)
self.CustomListView.setAlternatingRowColors(True)
self.CustomListData = SlideData()
self.CustomListView.setModel(self.CustomListData)
self.Controller.setGeometry(QtCore.QRect(0, 0, 828, 536)) self.Controller.setGeometry(QtCore.QRect(0, 0, 828, 536))
#self.Controller.setWidget(self.ControllerContents)
self.Controller.setWidget(self.PreviewListView)
self.Controller.setWidget(self.CustomListView)
self.SlidePreview = QtGui.QLabel(self.Splitter) self.SlidePreview = QtGui.QLabel(self.Splitter)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
@ -143,20 +138,25 @@ class SlideController(QtGui.QWidget):
self.SlidePreview.setScaledContents(True) self.SlidePreview.setScaledContents(True)
self.SlidePreview.setObjectName("SlidePreview") self.SlidePreview.setObjectName("SlidePreview")
def previewFrame(self, frame): QtCore.QObject.connect(self.PreviewListView,
#self.SlidePreview.setPixmap(frame) QtCore.SIGNAL("clicked(QModelIndex)"), self.onSlideSelected)
# imageLabel = QtGui.QLabel()
#imageLabel.setPixmap(frame) def onSlideSelected(self, index):
# self.Controller.setWidget(imageLabel) frame = self.PreviewListData.getValue(index)
pass self.previewFrame(frame)
def previewFrame(self, frame):
self.SlidePreview.setPixmap(frame)
if self.isLive:
self.mainDisplay.frameView(frame)
def addServiceItem(self, serviceitem): def addServiceItem(self, serviceitem):
self.serviceitem = serviceitem self.serviceitem = serviceitem
self.serviceitem.render() self.serviceitem.render()
self.CustomListData.clearItems() self.PreviewListData.clearItems()
for frame in self.serviceitem.frames: for frame in self.serviceitem.frames:
self.CustomListData.addRow(frame, u'some text') self.PreviewListData.addRow(frame)
def render(self): def render(self):
pass pass