summaryrefslogtreecommitdiffstats
path: root/sizedelegate.cpp
diff options
context:
space:
mode:
authoram <am@f440f766-f032-0410-8965-dc7d17de2ca0>2009-07-21 13:48:56 +0000
committeram <am@f440f766-f032-0410-8965-dc7d17de2ca0>2009-07-21 13:48:56 +0000
commit84ed109c159dcbd0c9395717d54599e902060b26 (patch)
tree01bb4a4d6148ec46952a1cdd5e923bb7b642305e /sizedelegate.cpp
parentec3418479b28ca8e162f84d76c2eed78c27a114c (diff)
downloadSheMov-84ed109c159dcbd0c9395717d54599e902060b26.tar.gz
SheMov-84ed109c159dcbd0c9395717d54599e902060b26.tar.bz2
SheMov-84ed109c159dcbd0c9395717d54599e902060b26.zip
-Made CoverItem behave consistent
-get QModelIndex from MovieModel by movieId -ArchiveView: added delegates for dvd and size, MovieItem now returns size as int -Finished EditArchiveItemDialog -Reverted covereditor, it became too convoluted git-svn-id: file:///var/svn/repos2/shemov/trunk@393 f440f766-f032-0410-8965-dc7d17de2ca0
Diffstat (limited to 'sizedelegate.cpp')
-rw-r--r--sizedelegate.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/sizedelegate.cpp b/sizedelegate.cpp
new file mode 100644
index 0000000..c6b3ae0
--- /dev/null
+++ b/sizedelegate.cpp
@@ -0,0 +1,41 @@
+/*
+ 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 <QLocale>
+#include <QPainter>
+#include <QApplication>
+
+#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);
+}
+