Alternate background colors for dive list

This was written with massive hand-holding by Tomaz - actually, this was
mostly proposed via IRC by Tomaz and then implemented by me...

Right now because of the list-of-lists nature of the model we have the
small issue that every trip starts with a dark background dive, even if
the trip itself has a dark background.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Dirk Hohndel 2013-05-02 14:19:15 -07:00
parent c4e2c322a3
commit 021ef8ad09
2 changed files with 9 additions and 3 deletions

View file

@ -15,14 +15,16 @@ void StarWidgetsDelegate::paint(QPainter* painter, const QStyleOptionViewItem& o
QVariant value = index.model()->data(index, Qt::DisplayRole);
if(option.state & QStyle::State_Selected)
painter->fillRect(option.rect, option.palette.highlight());
else
painter->fillRect(option.rect, index.model()->data(index, Qt::BackgroundRole).value<QBrush>());
if (!value.isValid())
return;
int rating = value.toInt();
if(option.state & QStyle::State_Selected)
painter->fillRect(option.rect, option.palette.highlight());
painter->save();
painter->setRenderHint(QPainter::Antialiasing, true);

View file

@ -7,6 +7,8 @@
#include "models.h"
#include <QCoreApplication>
#include <QDebug>
#include <QColor>
#include <QBrush>
extern struct tank_info tank_info[100];
@ -599,6 +601,8 @@ QVariant DiveTripModel::data(const QModelIndex& index, int role) const
if (!index.isValid())
return QVariant();
if (role == Qt::BackgroundRole)
return QBrush(QColor(index.row() % 2 ? Qt::white : QColor(Qt::lightGray).lighter(120)));
TreeItemDT* item = static_cast<TreeItemDT*>(index.internalPointer());