diff options
-rw-r--r-- | archivemodel.cpp | 31 | ||||
-rw-r--r-- | archivemodel.h | 1 | ||||
-rw-r--r-- | archivetreeview.h | 3 | ||||
-rw-r--r-- | archiveview.cpp | 16 | ||||
-rw-r--r-- | archiveview.h | 6 | ||||
-rw-r--r-- | smglobals.cpp | 2 |
6 files changed, 48 insertions, 11 deletions
diff --git a/archivemodel.cpp b/archivemodel.cpp index 3bae59b..3379d67 100644 --- a/archivemodel.cpp +++ b/archivemodel.cpp @@ -24,6 +24,36 @@ const QStringList ArchiveModel::availableOrders() const { return retval; } +QVariant ArchiveModel::data(const QModelIndex &index, int role) const{ + SmTreeItem *item = itemAt(index); + if(role == Qt::DisplayRole && index.column() == 0){ + QString retval; + int part = item->data(SeriesPart).toInt(); + int childCount = item->data(Count).toInt(); + int nodeType = item->data(Type).toInt(); + if(nodeType == SeriesNode){ + retval = QString("%1 (%2)").arg(item->data(Name).toString()).arg(QString::number(childCount)); + }else if(nodeType == SeriesPartNode){ + if(part > 0){ + retval = QString("%1 %2").arg(item->data(Name).toString()).arg(QString::number(part)); + }else{ + QString subtitle = item->data(Subtitle).toString(); + if(!subtitle.isEmpty()){ + retval = QString("%1 - %2").arg(item->data(Name).toString()).arg(item->data(Subtitle).toString()); + } + } + } + return retval; + } + if(role == Qt::ForegroundRole){ + bool favorite = item->data(Favorite).toBool(); + if(favorite){ + return QColor(Qt::darkGreen); + } + } + return SmTreeModel::data(index, role); +} + void ArchiveModel::setOrder(int order) { switch (order) { case SeriesName: @@ -42,7 +72,6 @@ void ArchiveModel::setOrder(int order) { void ArchiveModel::populateBySeriesName() { SmTreeItem *rootItem = new SmTreeItem(NumFields); - //fetchChildren(rootItem); fetchSeries(QVariant(), rootItem); fetchParts(rootItem); setRoot(rootItem); diff --git a/archivemodel.h b/archivemodel.h index 8e71a46..f4af14e 100644 --- a/archivemodel.h +++ b/archivemodel.h @@ -23,6 +23,7 @@ class ArchiveModel : public SmTreeModel { enum NodeType { SeriesNode, SeriesPartNode, GenreNode, ActorNode }; explicit ArchiveModel(const QStringList &headers, QObject *parent = 0); const QStringList availableOrders() const; + virtual QVariant data(const QModelIndex &index, int role) const; signals: diff --git a/archivetreeview.h b/archivetreeview.h index ac70f16..b62d323 100644 --- a/archivetreeview.h +++ b/archivetreeview.h @@ -20,8 +20,7 @@ class NoCoverMovieDialog; class MetadataDisplay; class QItemSelection; -class ArchiveTreeView : public QWidget -{ +class ArchiveTreeView : public QWidget { Q_OBJECT public: enum CopyType { WindowsDir, WindowsFullPath, UnixDir, UnixFullPath }; diff --git a/archiveview.cpp b/archiveview.cpp index d91fab7..fd1a4ff 100644 --- a/archiveview.cpp +++ b/archiveview.cpp @@ -20,6 +20,14 @@ ArchiveView::ArchiveView(QWidget *parent) : QWidget(parent) { mArchiveModel = static_cast<ArchiveModel*>(SmGlobals::instance()->model("ArchiveModel")); mTree = new ArchiveTree; + mTree->setColumnHidden(ArchiveModel::SeriesId, true); + mTree->setColumnHidden(ArchiveModel::SeriesPartId, true); + mTree->setColumnHidden(ArchiveModel::SeriesPart, true); + mTree->setColumnHidden(ArchiveModel::Type, true); + mTree->setColumnHidden(ArchiveModel::Favorite, true); + mTree->setColumnHidden(ArchiveModel::Subtitle, true); + mTree->setColumnHidden(ArchiveModel::Count, true); + mTree->resizeColumnToContents(ArchiveModel::Name); mSortOrder = new QComboBox; mSortOrder->addItems(mArchiveModel->availableOrders()); QLabel *l1 = new QLabel(tr("Filter")); @@ -41,20 +49,20 @@ ArchiveView::ArchiveView(QWidget *parent) : QWidget(parent) { QSplitter *treeSplitter = new QSplitter(Qt::Horizontal); treeSplitter->addWidget(treeWidget); treeSplitter->addWidget(mFiles); - treeSplitter->setStretchFactor(0, 2); - treeSplitter->setStretchFactor(1, 3); + treeSplitter->setStretchFactor(0, 1); + treeSplitter->setStretchFactor(1, 4); QHBoxLayout *mainLayout = new QHBoxLayout; mainLayout->addWidget(treeSplitter); setLayout(mainLayout); } -ArchiveTree::ArchiveTree(QWidget *parent) : QTreeView(parent) { +ArchiveTree::ArchiveTree(QWidget *parent) : SmTreeView(parent) { mModel = static_cast<ArchiveModel*>(SmGlobals::instance()->model("ArchiveModel")); mProxy = new QSortFilterProxyModel; mProxy->setSourceModel(mModel); setModel(mProxy); } -ArchiveFiles::ArchiveFiles(QWidget *parent) : QTreeView(parent){ +ArchiveFiles::ArchiveFiles(QWidget *parent) : SmTreeView(parent){ } diff --git a/archiveview.h b/archiveview.h index a8aed6b..d97ca7f 100644 --- a/archiveview.h +++ b/archiveview.h @@ -9,9 +9,9 @@ #define ARCHIVEVIEW_H #include <QWidget> -#include <QTreeView> #include "archivemodel.h" +#include "smtreeview.h" class QSortFilterProxyModel; class QComboBox; @@ -33,7 +33,7 @@ class ArchiveView : public QWidget { ArchiveModel *mArchiveModel; }; -class ArchiveTree : public QTreeView { +class ArchiveTree : public SmTreeView { public: explicit ArchiveTree(QWidget *parent = 0); @@ -42,7 +42,7 @@ class ArchiveTree : public QTreeView { ArchiveModel *mModel; }; -class ArchiveFiles : public QTreeView { +class ArchiveFiles : public SmTreeView { public: explicit ArchiveFiles(QWidget *parent = 0); }; diff --git a/smglobals.cpp b/smglobals.cpp index 7b6e36c..9946e28 100644 --- a/smglobals.cpp +++ b/smglobals.cpp @@ -107,7 +107,7 @@ QAbstractItemModel *SmGlobals::model(const QString &which){ mModels.insert(which, model); } }else if(which == "ArchiveModel"){ - QStringList headers = QStringList() << tr("Series") << tr("Series ID") << tr("Series part ID") << tr("Part") << tr("Type") << tr("Favorite") << tr("Subtitle") << tr("Is Local") << tr("Count"); + QStringList headers = QStringList() << tr("Series") << tr("Series ID") << tr("Series part ID") << tr("Part") << tr("Type") << tr("Favorite") << tr("Subtitle") << tr("Count"); ArchiveModel *model = new ArchiveModel(headers); mModels.insert(which, model); } |