summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--filestreemodel.cpp30
-rw-r--r--filestreemodel.h4
-rw-r--r--filestreewidget.cpp1
-rw-r--r--filestreewidget.h1
4 files changed, 34 insertions, 2 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()){
diff --git a/filestreemodel.h b/filestreemodel.h
index bea1d5c..405878b 100644
--- a/filestreemodel.h
+++ b/filestreemodel.h
@@ -16,6 +16,7 @@
#include "smtreemodel.h"
class QSqlQuery;
+class SeriesTreeModel;
class FilesTreeModel : public SmTreeModel {
Q_OBJECT
@@ -37,7 +38,7 @@ class FilesTreeModel : public SmTreeModel {
QVariant data(const QModelIndex &index, int role) const;
bool setData(const QModelIndex &index, const QVariant &value, int role);
Qt::ItemFlags flags(const QModelIndex &index) const;
- QHash<QString, QString> filesBySeriesPartId(int seriesPartId);
+ QHash<QString, QString> filesBySeriesPartId(int seriesPartId) const;
QList<QMap<QString, QString> > streamInfo(const QModelIndex &idx);
QMap<QString, QString> pictureInfo(const QModelIndex &idx);
QMap<QString, QString> pictureMetaInfo(const QModelIndex &idx);
@@ -63,6 +64,7 @@ class FilesTreeModel : public SmTreeModel {
QHash<int, QString> mFileTypes;
QHash<int, QString> mCoverTypes;
QHash<int, QString> mModeNames;
+ SeriesTreeModel *mSeriesModel;
int mMode;
};
diff --git a/filestreewidget.cpp b/filestreewidget.cpp
index 3161e57..9aa00f0 100644
--- a/filestreewidget.cpp
+++ b/filestreewidget.cpp
@@ -19,6 +19,7 @@
#include <QProcess>
#include <QFileDialog>
#include <QSettings>
+#include <QEvent>
#include <QDebug>
diff --git a/filestreewidget.h b/filestreewidget.h
index 4afa20a..e159d5a 100644
--- a/filestreewidget.h
+++ b/filestreewidget.h
@@ -21,6 +21,7 @@ class PictureViewer;
class QContextMenuEvent;
class QSpinBox;
class QPushButton;
+class QEvent;
class FilesTreeWidget : public QWidget {
Q_OBJECT