summaryrefslogtreecommitdiffstats
path: root/archivetreeview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'archivetreeview.cpp')
-rw-r--r--archivetreeview.cpp48
1 files changed, 47 insertions, 1 deletions
diff --git a/archivetreeview.cpp b/archivetreeview.cpp
index 211aa37..d77f8e3 100644
--- a/archivetreeview.cpp
+++ b/archivetreeview.cpp
@@ -20,8 +20,14 @@
#include "filestreewidget.h"
#include "filestreemodel.h"
#include "seriestreemodel.h"
+#include "mappingtablewidget.h"
+#include "mappingtablemodel.h"
ArchiveTreeView::ArchiveTreeView(QWidget *parent) : QWidget(parent){
+ // models
+ mActorsModel = static_cast<MappingTableModel*>(SmModelSingleton::instance()->model("actors"));
+ mGenresModel = static_cast<MappingTableModel*>(SmModelSingleton::instance()->model("genres"));
+
// series view
mSeriesWidget = new SeriesTreeWidget;
QItemSelectionModel *selModel = mSeriesWidget->seriesTree()->selectionModel();
@@ -36,11 +42,29 @@ ArchiveTreeView::ArchiveTreeView(QWidget *parent) : QWidget(parent){
mFilesWidget->filesTree()->setColumnHidden(i, true);
}
+ // actors and genre
+ QWidget *genreActorWidget = new QWidget;
+ QHBoxLayout *genreActorLayout = new QHBoxLayout;
+ mActorsWidget = new MappingTableWidget("actors");
+ mGenresWidget = new MappingTableWidget("genres");
+ genreActorLayout->addWidget(mActorsWidget);
+ genreActorLayout->addWidget(mGenresWidget);
+ genreActorWidget->setLayout(genreActorLayout);
+
+ // fileview, actors and genres
+ QSplitter *verticalSplitter = new QSplitter(Qt::Vertical);
+ verticalSplitter->addWidget(mFilesWidget);
+ verticalSplitter->addWidget(genreActorWidget);
+ verticalSplitter->setStretchFactor(0, 3);
+ verticalSplitter->setStretchFactor(1, 1);
+
// layout
QHBoxLayout *mainLayout = new QHBoxLayout;
QSplitter *splitter = new QSplitter;
splitter->addWidget(mSeriesWidget);
- splitter->addWidget(mFilesWidget);
+ splitter->addWidget(verticalSplitter);
+ splitter->setStretchFactor(0, 2);
+ splitter->setStretchFactor(1, 3);
mainLayout->addWidget(splitter);
setLayout(mainLayout);
}
@@ -83,4 +107,26 @@ void ArchiveTreeView::currentChanged(const QItemSelection &selected, const QItem
mFilesWidget->filesTree()->resizeColumnToContents(1);
mFilesWidget->filesTree()->resizeColumnToContents(2);
mFilesWidget->filesTree()->resizeColumnToContents(3);
+ setMappingItems(selectedPartIds, mActorsModel, mActorsWidget);
+ setMappingItems(selectedPartIds, mGenresModel, mGenresWidget);
+}
+
+void ArchiveTreeView::setMappingItems(QList<int>seriesPartIds, MappingTableModel *model, MappingTableWidget *widget){
+ QStringList items;
+ foreach(int id, seriesPartIds){
+ QList<QVariant> actorNames = model->mappings(id);
+ foreach(QVariant v, actorNames){
+ if(!items.contains(v.toString())){
+ items << v.toString();
+ }
+ }
+ }
+ qSort(items);
+ widget->setStringList(items);
+ widget->setEditEnabled(seriesPartIds.count() == 1);
+ if(seriesPartIds.count() == 1){
+ widget->setCurrentId(seriesPartIds.at(0));
+ }else{
+ widget->setCurrentId(-1);
+ }
}