summaryrefslogtreecommitdiffstats
path: root/archivemodel.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2013-07-06 19:24:04 +0200
committerArno <am@disconnect.de>2013-07-06 19:24:04 +0200
commitb039fbf6aaef0e961490f8267a91976866ac2e0a (patch)
tree270fbd374dbb0d2cc524ba24328da537f30213a7 /archivemodel.cpp
parentbd6a6a7c42dabe2d0d86e309a6dc6b04de7c0a10 (diff)
downloadSheMov-b039fbf6aaef0e961490f8267a91976866ac2e0a.tar.gz
SheMov-b039fbf6aaef0e961490f8267a91976866ac2e0a.tar.bz2
SheMov-b039fbf6aaef0e961490f8267a91976866ac2e0a.zip
Lots of Display Changes
* Save header states * Implement delegates for columns * unify size and duration to 1 column * colorize View ... and lots of other things I forgot :)
Diffstat (limited to 'archivemodel.cpp')
-rw-r--r--archivemodel.cpp67
1 files changed, 55 insertions, 12 deletions
diff --git a/archivemodel.cpp b/archivemodel.cpp
index 3746105..2dd151b 100644
--- a/archivemodel.cpp
+++ b/archivemodel.cpp
@@ -12,6 +12,8 @@
#include <QMutexLocker>
#include <QSignalMapper>
#include <QFileInfo>
+#include <QBrush>
+#include <QFont>
#include "smtreeitem.h"
#include "archivemodel.h"
@@ -413,6 +415,7 @@ QVariant ArchiveFilesModel::data(const QModelIndex &index, int role) const {
return QVariant();
}
SmTreeItem *item = itemAt(index);
+ int col = index.column();
if(role == SeriesPartIdRole){
return item->data(SeriesPartId);
}
@@ -440,15 +443,52 @@ QVariant ArchiveFilesModel::data(const QModelIndex &index, int role) const {
if(role == FileIdRole){
return item->data(FileId);
}
- if(role == PicSizeRole){
- return item->data(PicSize);
+ if(role == SizeDurRole){
+ return item->data(SizeDur);
}
- if(role == DurationRole){
- return item->data(Duration);
+ if(role == SizeDurRole){
+ return item->data(SizeDur);
}
if(role == FullPathRole){
return item->data(FullPath);
}
+ if(role == Qt::ForegroundRole){
+ if(col == DvdNo){
+ if(item->data(DvdNo).toInt() < 0){
+ return QBrush(Qt::blue);
+ }else{
+ return QBrush(Qt::red);
+ }
+ }
+ if(col == Size){
+ qint64 size = item->data(Size).toInt();
+ qint64 fMax = Q_INT64_C(1024 * 1024 * 1024 * 4);
+ if(size < fMax){
+ return QBrush(Qt::green);
+ }else{
+ return QBrush(Qt::red);
+ }
+ }
+ }
+ if(role == Qt::TextAlignmentRole){
+ switch(col){
+ case Size:
+ case FileId:
+ case Quality:
+ case FileNumber:
+ case SizeDur:
+ return Qt::AlignRight;
+
+ }
+ }
+ if(role == Qt::FontRole){
+ switch(col){
+ case Md5Sum:
+ case FullPath:
+ case SizeDur:
+ return QFont("courier new");
+ }
+ }
return SmTreeModel::data(index, role);
}
@@ -488,14 +528,11 @@ void ArchiveFilesModel::populate(const QSet<int> &seriesPartIds){
}
SmTreeItem *root = new SmTreeItem(NumFields);
SmTreeItem *movies = new SmTreeItem(NumFields, root);
- movies->setData(Filename, tr("Movies"));
+ movies->setData(Expansion, QChar(0x2642));
root->appendChild(movies);
SmTreeItem *pictures = new SmTreeItem(NumFields, root);
- pictures->setData(Filename, tr("Pictures"));
+ pictures->setData(Expansion, QChar(0x2640));
root->appendChild(pictures);
- QSettings s;
- QString archivePath = s.value("paths/archive").toString();
-
QStringList ids;
foreach(int i, seriesPartIds){
ids << QString::number(i);
@@ -504,10 +541,16 @@ void ArchiveFilesModel::populate(const QSet<int> &seriesPartIds){
QSqlQuery q(queryString, mDb);
while(q.next()){
QList<QVariant> data;
- for(int i = 0; i < NumFields - 1; ++i){
- data << q.value(i);
+ data << QVariant(); //expansion (empty)
+ data << q.value(0) << q.value(1) << q.value(2) << q.value(3) << q.value(4) << q.value(5) << q.value(6) << q.value(7) << q.value(8); // << q.value(9);
+ if(!q.value(9).isNull()){
+ data << q.value(9);
+ }else if(!q.value(10).isNull()){
+ data << q.value(10);
+ }else{
+ data << 0x0;
}
- QString fullPath = Helper::createArchivePath(archivePath, data.at(Md5Sum).toString());
+ QString fullPath = Helper::createArchivePath(data.at(Filename).toString(), data.at(Md5Sum).toString());
data << fullPath;
if(data.at(FileType).toInt() == Movie){
SmTreeItem *newItem = new SmTreeItem(data, movies);