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
break
self.setGeometry(screen['size'])
self.display.setGeometry(screen['size'])
if not screen['primary']:
self.showFullScreen()
else:
self.hide()
self.showMinimized()
def frameView(self, frame):
self.display.setGeometry(0, 0, imagesize.width(), imagesize.height())
self.display.setPixmap(QtGui.QPixmap(frame))
self.display.setPixmap(frame)
def kill(self):
pass

View File

@ -95,6 +95,12 @@ class MainWindow(object):
self.ThemeManagerContents.serviceManager = self.ServiceManagerContents
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):
self.main_window.setObjectName(u'main_window')
self.main_window.resize(1087, 847)

View File

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