summaryrefslogtreecommitdiffstats
path: root/archiveddelegate.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 /archiveddelegate.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 '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);
+}
+