summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--archivetreeview.cpp2
-rw-r--r--filestreemodel.cpp16
-rw-r--r--filestreemodel.h4
-rw-r--r--filestreewidget.cpp5
-rw-r--r--smglobals.cpp2
5 files changed, 23 insertions, 6 deletions
diff --git a/archivetreeview.cpp b/archivetreeview.cpp
index 0d91d21..b00737e 100644
--- a/archivetreeview.cpp
+++ b/archivetreeview.cpp
@@ -48,6 +48,7 @@ ArchiveTreeView::ArchiveTreeView(QWidget *parent) : QWidget(parent){
for(int i = 5; i < 12; ++i){
mFilesWidget->filesTree()->setColumnHidden(i, true);
}
+ mFilesWidget->filesTree()->setColumnHidden(14, true);
connect(mSeriesWidget, SIGNAL(filesReload()), mFilesWidget->filesTree(), SLOT(expandAll()));
// actors and genre
@@ -171,6 +172,7 @@ void ArchiveTreeView::currentChanged(const QItemSelection &selected, const QItem
mFilesWidget->filesTree()->resizeColumnToContents(FilesTreeModel::Quality);
mFilesWidget->filesTree()->resizeColumnToContents(FilesTreeModel::DvdNo);
mFilesWidget->filesTree()->resizeColumnToContents(FilesTreeModel::DisplayName);
+ mFilesWidget->filesTree()->resizeColumnToContents(FilesTreeModel::SizeDuration);
setMappingItems(selectedPartIds, mActorsModel, mActorsWidget);
setMappingItems(selectedPartIds, mGenresModel, mGenresWidget);
}
diff --git a/filestreemodel.cpp b/filestreemodel.cpp
index fd42802..6d1be0f 100644
--- a/filestreemodel.cpp
+++ b/filestreemodel.cpp
@@ -212,6 +212,15 @@ QVariant FilesTreeModel::data(const QModelIndex &index, int role) const{
if(role == FilesIdRole){
return item->data(FilesId);
}
+ if(role == SeriesPartRole){
+ return item->data(SeriesPart);
+ }
+ if(role == DisplayNameRole){
+ return item->data(DisplayName);
+ }
+ if(role == SeriesNameRole){
+ return item->data(SeriesName);
+ }
return QVariant();
}
@@ -452,11 +461,11 @@ void FilesTreeModel::writeCache(){
}
void FilesTreeModel::populate(QSqlQuery &filesQuery){
- SmTreeItem *root = new SmTreeItem(14);
- SmTreeItem *files = new SmTreeItem(14, root);
+ SmTreeItem *root = new SmTreeItem(15);
+ SmTreeItem *files = new SmTreeItem(15, root);
files->setData(FileName, tr("Movies"));
root->appendChild(files);
- SmTreeItem *covers = new SmTreeItem(14, root);
+ SmTreeItem *covers = new SmTreeItem(15, root);
covers->setData(FileName, tr("Covers"));
root->appendChild(covers);
QLocale l;
@@ -478,6 +487,7 @@ void FilesTreeModel::populate(QSqlQuery &filesQuery){
QString displayName = QString("%1 %2").arg(filesQuery.value(9).toString()).arg(filesQuery.value(10).toString());
data << displayName;
data << tr("N/A"); // duration or size
+ data << filesQuery.value(9).toString(); // series name
QString fullPath = data.at(FullPath).toString();
QFileInfo fi(fullPath);
switch(filesQuery.value(5).toInt()){
diff --git a/filestreemodel.h b/filestreemodel.h
index 2a9519f..3646e43 100644
--- a/filestreemodel.h
+++ b/filestreemodel.h
@@ -21,9 +21,9 @@ class SeriesTreeModel;
class FilesTreeModel : public SmTreeModel {
Q_OBJECT
public:
- enum CustomRoles { FileNameRole = Qt::UserRole + 1, FullPathRole = Qt::UserRole + 2, SizeRole = Qt::UserRole + 3, DvdNoRole = Qt::UserRole + 4, SizeDisplayRole = Qt::UserRole + 5, FileTypeRole = Qt::UserRole + 6, Md5SumRole = Qt::UserRole + 7, PartNoRole = Qt::UserRole + 8, SeriesPartIdRole = Qt::UserRole + 9, QualityRole = Qt::UserRole + 10, FilesIdRole = Qt::UserRole + 11, SeriesPartRole = Qt::UserRole + 12, DisplayNameRole = Qt::UserRole + 13, SizeDurationRole = Qt::UserRole + 14 };
+ enum CustomRoles { FileNameRole = Qt::UserRole + 1, FullPathRole = Qt::UserRole + 2, SizeRole = Qt::UserRole + 3, DvdNoRole = Qt::UserRole + 4, SizeDisplayRole = Qt::UserRole + 5, FileTypeRole = Qt::UserRole + 6, Md5SumRole = Qt::UserRole + 7, PartNoRole = Qt::UserRole + 8, SeriesPartIdRole = Qt::UserRole + 9, QualityRole = Qt::UserRole + 10, FilesIdRole = Qt::UserRole + 11, SeriesPartRole = Qt::UserRole + 12, DisplayNameRole = Qt::UserRole + 13, SizeDurationRole = Qt::UserRole + 14, SeriesNameRole = Qt::UserRole + 15 };
enum FileTypes { Movie = 1, FrontCover = 2, BackCover = 3, GeneralCover = 4 };
- enum Fields { FileName = 0, PartNo = 1, SizeDisplay = 2, Quality = 3, DvdNo = 4, FullPath = 5, Size = 6, FileType = 7, Md5Sum = 8, SeriesPartId = 9, FilesId = 10, SeriesPart = 11, DisplayName = 12, SizeDuration = 13 };
+ enum Fields { FileName = 0, PartNo = 1, SizeDisplay = 2, Quality = 3, DvdNo = 4, FullPath = 5, Size = 6, FileType = 7, Md5Sum = 8, SeriesPartId = 9, FilesId = 10, SeriesPart = 11, DisplayName = 12, SizeDuration = 13, SeriesName = 14 };
enum Mode { Normal = 0, Archived = 1, Local = 2 };
explicit FilesTreeModel(QStringList &headers, QObject *parent = 0);
const QHash<int, QString> fileTypes() const { return mFileTypes; }
diff --git a/filestreewidget.cpp b/filestreewidget.cpp
index c00456d..2b28c93 100644
--- a/filestreewidget.cpp
+++ b/filestreewidget.cpp
@@ -282,6 +282,11 @@ bool FilesTreeSortModel::lessThan(const QModelIndex &left, const QModelIndex &ri
if(left.column() == FilesTreeModel::DvdNoRole){
return left.data(FilesTreeModel::DvdNoRole).toInt() < right.data(FilesTreeModel::DvdNoRole).toInt();
}
+ if(left.column() == FilesTreeModel::DisplayName){
+ if(left.data(FilesTreeModel::SeriesNameRole) == right.data(FilesTreeModel::SeriesNameRole)){
+ return left.data(FilesTreeModel::SeriesPartRole).toInt() < right.data(FilesTreeModel::SeriesPartRole).toInt();
+ }
+ }
return QSortFilterProxyModel::lessThan(left, right);
}
diff --git a/smglobals.cpp b/smglobals.cpp
index 8c572f1..e70da89 100644
--- a/smglobals.cpp
+++ b/smglobals.cpp
@@ -53,7 +53,7 @@ QAbstractItemModel *SmGlobals::model(const QString &which){
}
}else if(which == "FilesModel"){
if(!mModels.contains(which)){
- QStringList headers = QStringList() << tr("Name") << tr("Part") << tr("Size") << tr("Qual.") << tr("Dvd") << tr("Full Path") << tr("Size") << tr("Type") << tr("Md5 sum") << tr("Series part ID") << tr("File ID") << tr("Seriespart") << tr("Display name") << tr("Dur./Size");
+ QStringList headers = QStringList() << tr("Name") << tr("Part") << tr("Size") << tr("Qual.") << tr("Dvd") << tr("Full Path") << tr("Size") << tr("Type") << tr("Md5 sum") << tr("Series part ID") << tr("File ID") << tr("Seriespart") << tr("Display name") << tr("Dur./Size") << tr("Series name");
FilesTreeModel *model = new FilesTreeModel(headers);
mModels.insert(which, model);
}