summaryrefslogtreecommitdiffstats
path: root/filestreemodel.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2010-08-07 11:03:33 +0200
committerArno <am@disconnect.de>2010-08-07 11:03:33 +0200
commit5df34cd08ee62a55dfd1b24bb7c62c244b2a543d (patch)
tree35f7d2d0396cab6123ba12bc194d53ec8c2d369c /filestreemodel.cpp
parentcc79c6f282877d7772bd3429fef797f5a4848c3f (diff)
downloadSheMov-5df34cd08ee62a55dfd1b24bb7c62c244b2a543d.tar.gz
SheMov-5df34cd08ee62a55dfd1b24bb7c62c244b2a543d.tar.bz2
SheMov-5df34cd08ee62a55dfd1b24bb7c62c244b2a543d.zip
Added tooltip to FilesTreeView
Added tooltip to FilesTreeView when showing archived or local movies. The tooltip shows all files associated with the SeriesPart.
Diffstat (limited to 'filestreemodel.cpp')
-rw-r--r--filestreemodel.cpp30
1 files changed, 29 insertions, 1 deletions
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<SeriesTreeModel*>(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<QString, QString> files = filesBySeriesPartId(seriesPartId);
+ QString retval = QString(tr("<p style=\"text-decoration: underline; font-weight: bold\">%1 %2</p>")).arg(seriesPartIdx.data(SeriesTreeModel::NameRole).toString()).arg(QString::number(seriesPartIdx.data(SeriesTreeModel::SeriesPartRole).toInt()));
+ retval.append(QString(tr("<p style=\"margin-bottom: 0px; padding-bottom: 0px\">Files:</p>")));
+ retval.append(tr("<ul style=\"margin-top: 0px\">"));
+ QHash<QString, QString>::const_iterator it = files.constBegin();
+ while(it != files.constEnd()){
+ retval.append(QString("<li style=\"margin-left: -10px\">%1</li>").arg(it.key()));
+ ++it;
+ }
+ retval.append(tr("</ul>"));
+ 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<QString, QString> FilesTreeModel::filesBySeriesPartId(int seriesPartId){
+QHash<QString, QString> FilesTreeModel::filesBySeriesPartId(int seriesPartId) const{
mFilesQuery->bindValue(":id", seriesPartId);
QHash<QString, QString> retval;
if(mFilesQuery->exec()){