/* 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 #include "sizedelegate.h" SizeDelegate::SizeDelegate(QObject *parent) : QAbstractItemDelegate(parent) {}; void SizeDelegate::paint(QPainter *p, const QStyleOptionViewItem &option, const QModelIndex &index) const{ p->save(); qint64 size = index.data().toInt(); qint64 maxSize = Q_INT64_C(2147483648); QColor c(QColor(Qt::darkGreen)); if(size > maxSize){ c = QColor(Qt::red); } qApp->style()->drawControl(QStyle::CE_ItemViewItem, &option, p); p->setPen(QPen(c)); p->setFont(option.font); QLocale l; QString text = l.toString(size); p->drawText(option.rect, Qt::AlignRight | Qt::AlignCenter | Qt::AlignVCenter, text); p->restore(); } QSize SizeDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const { QFont font = option.font; QFontMetrics metrics(font); QLocale l; QString size = l.toString(index.data().toInt()); return metrics.size(Qt::TextSingleLine, size); }