Ejemplo n.º 1
0
void TrackViewDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
    QObject *obj = static_cast<QObject*>(index.internalPointer());
    Track *track = qobject_cast<Track*>(obj);
    if (track)
    {
        paintTrack(painter, option, index, track);
        return;
    }

    if (index.column() == 0)
    {
        Disk *disk = qobject_cast<Disk*>(obj);
        if (disk)
        {
            paintDisk(painter, option, index, disk);
        }
    }
}
Ejemplo n.º 2
0
void TrackViewDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
    QStyleOptionViewItem opt = option;
    opt.state &= ~QStyle::State_Selected;

    QObject *obj = static_cast<QObject*>(index.internalPointer());
    Track *track = qobject_cast<Track*>(obj);
    if (track)
    {
        QColor bgColor = (index.row() % 2) ? mTrackView->palette().base().color() : mTrackView->palette().alternateBase().color();
        painter->fillRect(opt.rect, bgColor);

        paintTrack(painter, opt, index, track);
        return;
    }

    if (index.column() == 0)
    {
        Disk *disk = qobject_cast<Disk*>(obj);
        if (disk)
        {
            QColor bgColor = mTrackView->palette().base().color();
            painter->fillRect(opt.rect, bgColor);

            if (mTrackView-> selectionModel()->isSelected(index))
            {
                QRect rect = opt.rect;
                if (index.row() > 0)
                    rect.setTop(rect.top() + TOP_PADDING);
                drawSelectionMark(painter, rect);
            }

            paintDisk(painter, opt, index, disk);
        }
    }
}