From 5df34cd08ee62a55dfd1b24bb7c62c244b2a543d Mon Sep 17 00:00:00 2001 From: Arno Date: Sat, 7 Aug 2010 11:03:33 +0200 Subject: Added tooltip to FilesTreeView Added tooltip to FilesTreeView when showing archived or local movies. The tooltip shows all files associated with the SeriesPart. --- filestreemodel.cpp | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'filestreemodel.cpp') diff --git a/filestreemodel.cpp b/filestreemodel.cpp index 67c7c82..1020b17 100644 --- a/filestreemodel.cpp +++ b/filestreemodel.cpp @@ -17,6 +17,8 @@ #include "filestreemodel.h" #include "smtreeitem.h" #include "helper.h" +#include "seriestreemodel.h" +#include "smglobals.h" FilesTreeModel::FilesTreeModel(QStringList &headers, QObject *parent) : SmTreeModel(headers, parent), mMode(Normal){ //database setup @@ -46,6 +48,9 @@ FilesTreeModel::FilesTreeModel(QStringList &headers, QObject *parent) : SmTreeMo mModeNames.insert(Normal, "Normal"); mModeNames.insert(Archived, "Archived"); mModeNames.insert(Local, "Local"); + + //misc + mSeriesModel = static_cast(SmGlobals::instance()->model("SeriesModel")); } FilesTreeModel::~FilesTreeModel(){ @@ -127,6 +132,29 @@ QVariant FilesTreeModel::data(const QModelIndex &index, int role) const{ } return item->data(index.column()); } + if(role == Qt::ToolTipRole){ + if(mMode != Normal){ + int seriesPartId = item->data(SeriesPartId).toInt(); + int seriesId = mSeriesModel->seriesIdByPartId(seriesPartId); + if(seriesId != -1){ + QModelIndex seriesIdx = mSeriesModel->findValue(seriesId, QModelIndex(), SeriesTreeModel::SeriesId); + if(seriesIdx.isValid()){ + QModelIndex seriesPartIdx = mSeriesModel->findValue(seriesPartId, seriesIdx, SeriesTreeModel::SeriesPartId); + QHash files = filesBySeriesPartId(seriesPartId); + QString retval = QString(tr("

%1 %2

")).arg(seriesPartIdx.data(SeriesTreeModel::NameRole).toString()).arg(QString::number(seriesPartIdx.data(SeriesTreeModel::SeriesPartRole).toInt())); + retval.append(QString(tr("

Files:

"))); + retval.append(tr("
    ")); + QHash::const_iterator it = files.constBegin(); + while(it != files.constEnd()){ + retval.append(QString("
  • %1
  • ").arg(it.key())); + ++it; + } + retval.append(tr("
")); + return retval; + } + } + } + } if(role == Qt::EditRole){ return item->data(index.column()); } @@ -227,7 +255,7 @@ Qt::ItemFlags FilesTreeModel::flags(const QModelIndex &index) const{ return retval; } -QHash FilesTreeModel::filesBySeriesPartId(int seriesPartId){ +QHash FilesTreeModel::filesBySeriesPartId(int seriesPartId) const{ mFilesQuery->bindValue(":id", seriesPartId); QHash retval; if(mFilesQuery->exec()){ -- cgit v1.2.3-70-g09d2