summaryrefslogtreecommitdiffstats
path: root/archiveddelegate.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'archiveddelegate.cpp')
-rw-r--r--archiveddelegate.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/archiveddelegate.cpp b/archiveddelegate.cpp
new file mode 100644
index 0000000..6f9a49d
--- /dev/null
+++ b/archiveddelegate.cpp
@@ -0,0 +1,38 @@
+/*
+ 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 <QFontMetrics>
+#include <QPainter>
+#include <QApplication>
+
+#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(tr("No"));
+ if(index.data().toInt() > -1){
+ text = QString(tr("On DVD # %1")).arg(QString::number(index.data().toInt()));
+ }
+ QFontMetrics metrics(option.font);
+ return metrics.size(Qt::TextSingleLine, text);
+}
+