Vertically centre playlist/userlist icons when large text increases row height

This commit is contained in:
Et0h 2016-10-19 03:05:39 +01:00
parent 9ecf5d004d
commit b7b3c9b66d

View File

@ -25,6 +25,7 @@ class UserlistItemDelegate(QtGui.QStyledItemDelegate):
def paint(self, itemQPainter, optionQStyleOptionViewItem, indexQModelIndex): def paint(self, itemQPainter, optionQStyleOptionViewItem, indexQModelIndex):
column = indexQModelIndex.column() column = indexQModelIndex.column()
midY = int((optionQStyleOptionViewItem.rect.y() + optionQStyleOptionViewItem.rect.bottomLeft().y()) / 2)
if column == constants.USERLIST_GUI_USERNAME_COLUMN: if column == constants.USERLIST_GUI_USERNAME_COLUMN:
currentQAbstractItemModel = indexQModelIndex.model() currentQAbstractItemModel = indexQModelIndex.model()
itemQModelIndex = currentQAbstractItemModel.index(indexQModelIndex.row(), constants.USERLIST_GUI_USERNAME_COLUMN, indexQModelIndex.parent()) itemQModelIndex = currentQAbstractItemModel.index(indexQModelIndex.row(), constants.USERLIST_GUI_USERNAME_COLUMN, indexQModelIndex.parent())
@ -41,19 +42,19 @@ class UserlistItemDelegate(QtGui.QStyledItemDelegate):
if roomController and not controlIconQPixmap.isNull(): if roomController and not controlIconQPixmap.isNull():
itemQPainter.drawPixmap ( itemQPainter.drawPixmap (
optionQStyleOptionViewItem.rect.x()+6, optionQStyleOptionViewItem.rect.x()+6,
optionQStyleOptionViewItem.rect.y(), midY-8,
controlIconQPixmap.scaled(16, 16, Qt.KeepAspectRatio)) controlIconQPixmap.scaled(16, 16, Qt.KeepAspectRatio))
if userReady and not tickIconQPixmap.isNull(): if userReady and not tickIconQPixmap.isNull():
itemQPainter.drawPixmap ( itemQPainter.drawPixmap (
(optionQStyleOptionViewItem.rect.x()-10), (optionQStyleOptionViewItem.rect.x()-10),
optionQStyleOptionViewItem.rect.y(), midY - 8,
tickIconQPixmap.scaled(16, 16, Qt.KeepAspectRatio)) tickIconQPixmap.scaled(16, 16, Qt.KeepAspectRatio))
elif userReady == False and not crossIconQPixmap.isNull(): elif userReady == False and not crossIconQPixmap.isNull():
itemQPainter.drawPixmap ( itemQPainter.drawPixmap (
(optionQStyleOptionViewItem.rect.x()-10), (optionQStyleOptionViewItem.rect.x()-10),
optionQStyleOptionViewItem.rect.y(), midY - 8,
crossIconQPixmap.scaled(16, 16, Qt.KeepAspectRatio)) crossIconQPixmap.scaled(16, 16, Qt.KeepAspectRatio))
isUserRow = indexQModelIndex.parent() != indexQModelIndex.parent().parent() isUserRow = indexQModelIndex.parent() != indexQModelIndex.parent().parent()
if isUserRow: if isUserRow:
@ -70,7 +71,7 @@ class UserlistItemDelegate(QtGui.QStyledItemDelegate):
fileSwitchIconQPixmap = QtGui.QPixmap(resourcespath + u"film_go.png") fileSwitchIconQPixmap = QtGui.QPixmap(resourcespath + u"film_go.png")
itemQPainter.drawPixmap ( itemQPainter.drawPixmap (
(optionQStyleOptionViewItem.rect.x()), (optionQStyleOptionViewItem.rect.x()),
optionQStyleOptionViewItem.rect.y(), midY - 8,
fileSwitchIconQPixmap.scaled(16, 16, Qt.KeepAspectRatio)) fileSwitchIconQPixmap.scaled(16, 16, Qt.KeepAspectRatio))
optionQStyleOptionViewItem.rect.setX(optionQStyleOptionViewItem.rect.x()+16) optionQStyleOptionViewItem.rect.setX(optionQStyleOptionViewItem.rect.x()+16)
@ -78,7 +79,7 @@ class UserlistItemDelegate(QtGui.QStyledItemDelegate):
streamSwitchIconQPixmap = QtGui.QPixmap(resourcespath + u"world_go.png") streamSwitchIconQPixmap = QtGui.QPixmap(resourcespath + u"world_go.png")
itemQPainter.drawPixmap ( itemQPainter.drawPixmap (
(optionQStyleOptionViewItem.rect.x()), (optionQStyleOptionViewItem.rect.x()),
optionQStyleOptionViewItem.rect.y(), midY - 8,
streamSwitchIconQPixmap.scaled(16, 16, Qt.KeepAspectRatio)) streamSwitchIconQPixmap.scaled(16, 16, Qt.KeepAspectRatio))
optionQStyleOptionViewItem.rect.setX(optionQStyleOptionViewItem.rect.x()+16) optionQStyleOptionViewItem.rect.setX(optionQStyleOptionViewItem.rect.x()+16)
QtGui.QStyledItemDelegate.paint(self, itemQPainter, optionQStyleOptionViewItem, indexQModelIndex) QtGui.QStyledItemDelegate.paint(self, itemQPainter, optionQStyleOptionViewItem, indexQModelIndex)
@ -107,9 +108,10 @@ class MainWindow(QtGui.QMainWindow):
resourcespath = utils.findWorkingDir() + u"/resources/" resourcespath = utils.findWorkingDir() + u"/resources/"
if currentlyPlayingFile: if currentlyPlayingFile:
currentlyplayingIconQPixmap = QtGui.QPixmap(resourcespath + u"bullet_right_grey.png") currentlyplayingIconQPixmap = QtGui.QPixmap(resourcespath + u"bullet_right_grey.png")
midY = int((optionQStyleOptionViewItem.rect.y() + optionQStyleOptionViewItem.rect.bottomLeft().y()) / 2)
itemQPainter.drawPixmap ( itemQPainter.drawPixmap (
(optionQStyleOptionViewItem.rect.x()+4), (optionQStyleOptionViewItem.rect.x()+4),
optionQStyleOptionViewItem.rect.y(), midY-8,
currentlyplayingIconQPixmap.scaled(6, 16, Qt.KeepAspectRatio)) currentlyplayingIconQPixmap.scaled(6, 16, Qt.KeepAspectRatio))
optionQStyleOptionViewItem.rect.setX(optionQStyleOptionViewItem.rect.x()+10) optionQStyleOptionViewItem.rect.setX(optionQStyleOptionViewItem.rect.x()+10)