diff options
author | Arno <am@disconnect.de> | 2010-08-13 16:47:16 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2010-08-13 16:47:16 +0200 |
commit | a8fc46f186911ba4ab79231f24e6e4f940eb7cde (patch) | |
tree | 750fb6f4a54ec522d6de06df62fd86edc7b18989 | |
parent | 91cf2978ba97bc8ebda2da9df01d3dde22b99f14 (diff) | |
download | SheMov-a8fc46f186911ba4ab79231f24e6e4f940eb7cde.tar.gz SheMov-a8fc46f186911ba4ab79231f24e6e4f940eb7cde.tar.bz2 SheMov-a8fc46f186911ba4ab79231f24e6e4f940eb7cde.zip |
Fixed sorting of Display name
Fixed sorting of DisplayName column in FilesTreeModel. Now it's sorted
by SeriesName and SeriesPart separately instead of taking the whole
DisplayName as a string.
-rw-r--r-- | archivetreeview.cpp | 2 | ||||
-rw-r--r-- | filestreemodel.cpp | 16 | ||||
-rw-r--r-- | filestreemodel.h | 4 | ||||
-rw-r--r-- | filestreewidget.cpp | 5 | ||||
-rw-r--r-- | smglobals.cpp | 2 |
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); } |