/* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. */ #include #include #include #include "archiveddelegate.h" ArchivedDelegate::ArchivedDelegate(QObject *parent) : QAbstractItemDelegate(parent) {}; void ArchivedDelegate::paint(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const{ p->save(); qApp->style()->drawControl(QStyle::CE_ItemViewItem, &option, p); QColor c(QColor(Qt::darkGreen)); QString text(tr("No")); if(index.data().toInt() > -1){ c = QColor(Qt::red); text = QString(tr("On DVD # %1")).arg(QString::number(index.data().toInt())); } p->setPen(QPen(c)); p->drawText(option.rect, Qt::AlignLeft | Qt::AlignVCenter, text); p->restore(); } QSize ArchivedDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const { QString text; if(index.data().toInt() == -1){ text = QString(tr("On DVD # %1")).arg(QString::number(index.data().toInt())); }else if(index.data().toInt() == -2){ text = tr("(unknown"); }else{ text = tr("No"); } QFontMetrics metrics(option.font); return metrics.size(Qt::TextSingleLine, text); }