Enforce a minimum row size in the playlist, and stop the current track highlight bar from becoming really pale when on an "alternate" row.
This commit is contained in:
parent
00b19ae83e
commit
d54c8cf2f9
@ -21,6 +21,8 @@
|
|||||||
#include <QLineEdit>
|
#include <QLineEdit>
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
|
|
||||||
|
const int PlaylistDelegateBase::kMinHeight = 19;
|
||||||
|
|
||||||
PlaylistDelegateBase::PlaylistDelegateBase(QTreeView* view)
|
PlaylistDelegateBase::PlaylistDelegateBase(QTreeView* view)
|
||||||
: QStyledItemDelegate(view),
|
: QStyledItemDelegate(view),
|
||||||
view_(view)
|
view_(view)
|
||||||
@ -48,6 +50,13 @@ QString PlaylistDelegateBase::displayText(const QVariant& value, const QLocale&)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QSize PlaylistDelegateBase::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const {
|
||||||
|
QSize size = QStyledItemDelegate::sizeHint(option, index);
|
||||||
|
if (size.height() < kMinHeight)
|
||||||
|
size.setHeight(kMinHeight);
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
void PlaylistDelegateBase::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const {
|
void PlaylistDelegateBase::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const {
|
||||||
QStyledItemDelegate::paint(painter, Adjusted(option, index), index);
|
QStyledItemDelegate::paint(painter, Adjusted(option, index), index);
|
||||||
|
|
||||||
|
@ -31,9 +31,12 @@ class PlaylistDelegateBase : public QStyledItemDelegate {
|
|||||||
PlaylistDelegateBase(QTreeView* view);
|
PlaylistDelegateBase(QTreeView* view);
|
||||||
void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const;
|
void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const;
|
||||||
QString displayText(const QVariant& value, const QLocale& locale) const;
|
QString displayText(const QVariant& value, const QLocale& locale) const;
|
||||||
|
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
|
||||||
|
|
||||||
QStyleOptionViewItemV4 Adjusted(const QStyleOptionViewItem& option, const QModelIndex& index) const;
|
QStyleOptionViewItemV4 Adjusted(const QStyleOptionViewItem& option, const QModelIndex& index) const;
|
||||||
|
|
||||||
|
static const int kMinHeight;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
QTreeView* view_;
|
QTreeView* view_;
|
||||||
};
|
};
|
||||||
|
@ -123,8 +123,8 @@ QList<QPixmap> PlaylistView::LoadBarPixmap(const QString& filename) {
|
|||||||
// Colour the bar with the palette colour
|
// Colour the bar with the palette colour
|
||||||
QPainter p(&image);
|
QPainter p(&image);
|
||||||
p.setCompositionMode(QPainter::CompositionMode_SourceAtop);
|
p.setCompositionMode(QPainter::CompositionMode_SourceAtop);
|
||||||
p.setOpacity(0.4);
|
p.setOpacity(0.7);
|
||||||
p.fillRect(image.rect(), palette().color(QPalette::Highlight).lighter(125));
|
p.fillRect(image.rect(), palette().color(QPalette::Highlight));
|
||||||
p.end();
|
p.end();
|
||||||
|
|
||||||
// Animation steps
|
// Animation steps
|
||||||
@ -186,6 +186,7 @@ void PlaylistView::drawRow(QPainter* painter, const QStyleOptionViewItem& option
|
|||||||
opt.palette.setColor(QPalette::Text, Qt::white);
|
opt.palette.setColor(QPalette::Text, Qt::white);
|
||||||
opt.palette.setColor(QPalette::HighlightedText, Qt::white);
|
opt.palette.setColor(QPalette::HighlightedText, Qt::white);
|
||||||
opt.palette.setColor(QPalette::Highlight, Qt::transparent);
|
opt.palette.setColor(QPalette::Highlight, Qt::transparent);
|
||||||
|
opt.palette.setColor(QPalette::AlternateBase, Qt::transparent);
|
||||||
opt.font.setItalic(true);
|
opt.font.setItalic(true);
|
||||||
opt.decorationSize = QSize(20,20);
|
opt.decorationSize = QSize(20,20);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user