From b039fbf6aaef0e961490f8267a91976866ac2e0a Mon Sep 17 00:00:00 2001 From: Arno Date: Sat, 6 Jul 2013 19:24:04 +0200 Subject: 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 :) --- archivemodel.cpp | 67 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 55 insertions(+), 12 deletions(-) (limited to 'archivemodel.cpp') diff --git a/archivemodel.cpp b/archivemodel.cpp index 3746105..2dd151b 100644 --- a/archivemodel.cpp +++ b/archivemodel.cpp @@ -12,6 +12,8 @@ #include #include #include +#include +#include #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 &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 &seriesPartIds){ QSqlQuery q(queryString, mDb); while(q.next()){ QList 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); -- cgit v1.2.3-70-g09d2