diff options
Diffstat (limited to 'archiveview.cpp')
-rw-r--r-- | archiveview.cpp | 57 |
1 files changed, 51 insertions, 6 deletions
diff --git a/archiveview.cpp b/archiveview.cpp index 8e1257c..94e6a20 100644 --- a/archiveview.cpp +++ b/archiveview.cpp @@ -18,9 +18,12 @@ #include <QVBoxLayout> #include <QHeaderView> #include <QSpinBox> +#include <QGroupBox> +#include <QTextEdit> #include "archiveview.h" #include "archivecontroller.h" +#include "mappingtablewidget.h" #include "smglobals.h" #include "helper.h" @@ -92,13 +95,50 @@ ArchiveView::ArchiveView(QWidget *parent) : QWidget(parent) { mFilesProxy->setSourceModel(mFilesModel); mFiles->setModel(mFilesProxy); - QSplitter *treeSplitter = new QSplitter(Qt::Horizontal); - treeSplitter->addWidget(treeWidget); - treeSplitter->addWidget(mFiles); - treeSplitter->setStretchFactor(0, 1); - treeSplitter->setStretchFactor(1, 4); + QHBoxLayout *bottomRightLayout = new QHBoxLayout; + mActorView = new SmTreeView; + mActorView->setHeaderHidden(true); + mActorModel = new SimpleModel(this); + mActorView->setModel(mActorModel); + QGroupBox *actorBox = new QGroupBox(tr("Actors")); + QHBoxLayout *actorLayout = new QHBoxLayout; + actorLayout->addWidget(mActorView); + actorBox->setLayout(actorLayout); + + mGenreView = new SmTreeView; + mGenreView->setHeaderHidden(true); + mGenreModel = new SimpleModel(this); + mGenreView->setModel(mGenreModel); + QGroupBox *genreBox = new QGroupBox(tr("Genres")); + QHBoxLayout *genreLayout = new QHBoxLayout; + genreLayout->addWidget(mGenreView); + genreBox->setLayout(genreLayout); + + mMetadataView = new QTextEdit; + mMetadataView->setReadOnly(true); + QGroupBox *metadataBox = new QGroupBox("Metadata"); + QHBoxLayout *metadataLayout = new QHBoxLayout; + metadataLayout->addWidget(mMetadataView); + metadataBox->setLayout(metadataLayout); + + bottomRightLayout->addWidget(actorBox); + bottomRightLayout->addWidget(genreBox); + bottomRightLayout->addWidget(metadataBox); + QVBoxLayout *rightLayout = new QVBoxLayout; + rightLayout->addWidget(mFiles); + rightLayout->addLayout(bottomRightLayout); + QWidget *rightWidget = new QWidget; + rightLayout->setStretchFactor(mFiles, 3); + rightWidget->setLayout(rightLayout); + + mTreeSplitter = new QSplitter(Qt::Horizontal); + mTreeSplitter->addWidget(treeWidget); + mTreeSplitter->addWidget(rightWidget); + mTreeSplitter->setStretchFactor(0, 1); + mTreeSplitter->setStretchFactor(1, 4); QHBoxLayout *mainLayout = new QHBoxLayout; - mainLayout->addWidget(treeSplitter); + mainLayout->addWidget(mTreeSplitter); + setLayout(mainLayout); initController(); } @@ -117,6 +157,8 @@ void ArchiveView::readSettings(){ list = s.value("archivemodel/expandedseries").toList(); mExpandedItems[ArchiveModel::SeriesName] = list; mCurrentArchivePath = s.value("archivemodel/selectedseries").toStringList(); + QByteArray splitterState = s.value("archivemodel/vsplitter").toByteArray(); + mTreeSplitter->restoreState(splitterState); doSelection(); mFiles->readHeaderConfig(); mFiles->setSortingEnabled(true); @@ -130,6 +172,7 @@ void ArchiveView::writeSettings() { s.setValue("archivemodel/expandedactors", mExpandedItems.value(ArchiveModel::Actor)); s.setValue("archivemodel/expandedseries", mExpandedItems.value(ArchiveModel::SeriesName)); s.setValue("archivemodel/selectedseries", mCurrentArchivePath); + s.setValue("archivemodel/vsplitter", mTreeSplitter->saveState()); mFiles->writeHeaderConfig(); } @@ -200,6 +243,8 @@ void ArchiveView::initController(){ mController->setArchiveTree(mTree, mProxy); mController->setArchiveFiles(mFiles, mFilesProxy); mController->setModels(mArchiveModel, mFilesModel); + mController->setMappingModels(mActorModel, mGenreModel); + mController->setMetadata(mMetadataView); mController->init(); SmGlobals::instance()->setArchiveController(mController); } |