diff options
-rw-r--r-- | archivecontroller.cpp | 68 | ||||
-rw-r--r-- | archivecontroller.h | 6 | ||||
-rw-r--r-- | archiveview.cpp | 19 | ||||
-rw-r--r-- | archiveview.h | 4 |
4 files changed, 36 insertions, 61 deletions
diff --git a/archivecontroller.cpp b/archivecontroller.cpp index 99c55db..d13eb14 100644 --- a/archivecontroller.cpp +++ b/archivecontroller.cpp @@ -57,11 +57,6 @@ void ArchiveController::setMappingModels(QStandardItemModel *actorModel, QStanda mGenreModel = genreModel; } -void ArchiveController::setMetadata(QStandardItemModel *model, QTextEdit *comment){ - mMetaModel = model; - mComment = comment; -} - void ArchiveController::init(){ connect(mArchiveSelection, SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(treeSelectionChanged(QItemSelection,QItemSelection))); connect(mArchiveFiles, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(fileDoubleClicked(QModelIndex))); @@ -278,44 +273,7 @@ void ArchiveController::treeSelectionChanged(const QItemSelection &selected, con mGenreModel->appendRow(newItem); } - mMetaModel->clear(); - QList<QVariant> metadata = mArchiveModel->metadataList(*ids.begin()); - QStandardItem *mRelI1 = new QStandardItem(mMetaIcon, tr("Rel. Year")); - QStandardItem *mRelI2 = new QStandardItem(metadata.at(ArchiveModel::ReleaseYear).toString()); - mMetaModel->appendRow(QList<QStandardItem*>() << mRelI1 << mRelI2); - QStandardItem *mSrcI1 = new QStandardItem(mMetaIcon, tr("Source")); - QStandardItem *mSrcI2 = new QStandardItem(metadata.at(ArchiveModel::Source).toString()); - mMetaModel->appendRow(QList<QStandardItem*>() << mSrcI1 << mSrcI2); - QStandardItem *mSubjI1 = new QStandardItem(mMetaIcon, tr("Subj./Name")); - QStandardItem *mSubjI2 = new QStandardItem(metadata.at(ArchiveModel::Subject).toString()); - mSubjI2->setToolTip(metadata.at(ArchiveModel::Subject).toString()); - mMetaModel->appendRow(QList<QStandardItem*>() << mSubjI1 << mSubjI2); - QStandardItem *mAddI1 = new QStandardItem(mMetaIcon, tr("Added")); - QDateTime added = metadata.at(ArchiveModel::Added).toDateTime(); - QStandardItem *mAddI2 = new QStandardItem(added.toString("yyyy-MM-dd")); - mMetaModel->appendRow(QList<QStandardItem*>() << mAddI1 << mAddI2); - if(!metadata.at(ArchiveModel::ReleaseGroup).toString().isEmpty()){ - QStandardItem *mGrpI1 = new QStandardItem(mMetaIcon, tr("Group")); - QStandardItem *mGrpI2 = new QStandardItem(metadata.at(ArchiveModel::ReleaseGroup).toString()); - mMetaModel->appendRow(QList<QStandardItem*>() << mGrpI1 << mGrpI2); - } - if(!metadata.at(ArchiveModel::EncoderOpts).toString().isEmpty()){ - QStandardItem *mOptsI1 = new QStandardItem(mMetaIcon, tr("Enc. Opts")); - QStandardItem *mOptsI2 = new QStandardItem(metadata.at(ArchiveModel::EncoderOpts).toString()); - mMetaModel->appendRow(QList<QStandardItem*>() << mOptsI1 << mOptsI2); - } - if(metadata.at(ArchiveModel::Passes).toInt() > 0){ - QStandardItem *mPasI1 = new QStandardItem(mMetaIcon, tr("Passes")); - QStandardItem *mPasI2 = new QStandardItem(metadata.at(ArchiveModel::Passes).toString()); - mMetaModel->appendRow(QList<QStandardItem*>() << mPasI1 << mPasI2); - } - for(int i = 0; i < mMetaModel->rowCount(); ++i){ - QStandardItem *i1 = mMetaModel->item(i, 0); - i1->setEditable(false); - QStandardItem *i2 = mMetaModel->item(i, 1); - i2->setEditable(false); - } - mComment->setHtml(metadata.at(ArchiveModel::Comment).toString()); + getMetadata(ids); int nodeType = sel.first().data(ArchiveModel::TypeRole).toInt(); foreach(QAction *a, mActionsForTree){ @@ -325,6 +283,30 @@ void ArchiveController::treeSelectionChanged(const QItemSelection &selected, con } } +void ArchiveController::setMetadata(QTextEdit *metaEdit){ + mMetaEdit = metaEdit; +} + +void ArchiveController::getMetadata(QSet<int> ids){ + mMetaEdit->clear(); + QList<QVariant> metadata = mArchiveModel->metadataList(*ids.begin()); + QString meta; + meta.append("<html><body style=\"font-family: courier new; font-weight: bold\"><table>"); + meta.append(QString("<tr><td>Release year</td><td style=\"padding-left: 30px\">%1</td></tr>").arg(metadata.at(ArchiveModel::ReleaseYear).toString())); + meta.append(QString("<tr><td>Source</td><td style=\"padding-left: 30px\">%1</td></tr>").arg(metadata.at(ArchiveModel::Source).toString())); + meta.append(QString("<tr><td>Subj./Name</td><td style=\"padding-left: 30px\">%1</td></tr>").arg(metadata.at(ArchiveModel::Subject).toString())); + meta.append(QString("<tr><td>Added</td><td style=\"padding-left: 30px\">%1</td></tr>").arg(metadata.at(ArchiveModel::Added).toDateTime().toString())); + + meta.append("</table>"); + QString comment = metadata.at(ArchiveModel::Comment).toString(); + if(comment.isEmpty()){ + comment = tr("(none)"); + } + meta.append(QString("<p style=\"font-style: italic; margin-bottom: 0px\">Comments:</p><p style=\"margin-left: 10px; margin-top: 0px\">%1</p>").arg(comment)); + meta.append("</body></html>"); + mMetaEdit->setHtml(meta); +} + void ArchiveController::fileSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected){ Q_UNUSED(selected); Q_UNUSED(deselected); diff --git a/archivecontroller.h b/archivecontroller.h index f262afc..d3197e3 100644 --- a/archivecontroller.h +++ b/archivecontroller.h @@ -35,7 +35,7 @@ class ArchiveController : public QObject { void setArchiveFiles(ArchiveFiles *afiles, ArchiveFilesProxy *afilesproxy); void setModels(ArchiveModel *amodel, ArchiveFilesModel *afilesmodel); void setMappingModels(QStandardItemModel *actorModel, QStandardItemModel *genreModel); - void setMetadata(QStandardItemModel *model, QTextEdit *comment); + void setMetadata(QTextEdit *metaEdit); ArchiveFilesModel *archiveFilesModel() { return mArchiveFilesModel; } ArchiveFiles *archiveFiles() { return mArchiveFiles; } ArchiveModel *archiveTreeModel() { return mArchiveModel; } @@ -61,6 +61,7 @@ class ArchiveController : public QObject { private slots: void fileDoubleClicked(const QModelIndex &idx); + void getMetadata(QSet<int> ids); signals: void sizeChanged(qint64 newSize); @@ -79,8 +80,7 @@ class ArchiveController : public QObject { QItemSelectionModel *mFileSelection; QStandardItemModel *mActorModel; QStandardItemModel *mGenreModel; - QStandardItemModel *mMetaModel; - QTextEdit *mComment; + QTextEdit *mMetaEdit; QWidget *mParentWidget; QList<QAction*> mActionsForTree; QIcon mActorIcon; diff --git a/archiveview.cpp b/archiveview.cpp index 8e95eae..c4ac0e4 100644 --- a/archiveview.cpp +++ b/archiveview.cpp @@ -133,22 +133,17 @@ ArchiveView::ArchiveView(QWidget *parent) : QWidget(parent) { genreLayout->addWidget(mGenreView); genreBox->setLayout(genreLayout); - mMetaView = new SmTreeView; - mMetaView->setHeaderHidden(true); - mMetaModel = new QStandardItemModel(this); - mMetaView->setModel(mMetaModel); - mComment = new QTextEdit; - mComment->setReadOnly(true); QGroupBox *metadataBox = new QGroupBox("Metadata/Comment"); QVBoxLayout *metadataLayout = new QVBoxLayout; - metadataLayout->addWidget(mMetaView); - metadataLayout->addWidget(mComment); + mMeta = new QTextEdit; + mMeta->setReadOnly(true); + metadataLayout->addWidget(mMeta); metadataBox->setLayout(metadataLayout); QHBoxLayout *bottomRightLayout = new QHBoxLayout; - bottomRightLayout->addWidget(actorBox); - bottomRightLayout->addWidget(genreBox); - bottomRightLayout->addWidget(metadataBox); + bottomRightLayout->addWidget(actorBox, 1); + bottomRightLayout->addWidget(genreBox, 1); + bottomRightLayout->addWidget(metadataBox, 2); QWidget *bottomRightWidget = new QWidget; bottomRightWidget->setLayout(bottomRightLayout); @@ -286,7 +281,7 @@ void ArchiveView::initController(){ mController->setArchiveFiles(mFiles, mFilesProxy); mController->setModels(mArchiveModel, mFilesModel); mController->setMappingModels(mActorModel, mGenreModel); - mController->setMetadata(mMetaModel, mComment); + mController->setMetadata(mMeta); mController->init(); SmGlobals::instance()->setArchiveController(mController); } diff --git a/archiveview.h b/archiveview.h index 7b2f45a..7d477e8 100644 --- a/archiveview.h +++ b/archiveview.h @@ -76,11 +76,9 @@ class ArchiveView : public QWidget { QStringList mCurrentArchivePath; SmTreeView *mActorView; SmTreeView *mGenreView; - SmTreeView *mMetaView; - QTextEdit *mComment; + QTextEdit *mMeta; QStandardItemModel *mActorModel; QStandardItemModel *mGenreModel; - QStandardItemModel *mMetaModel; QSplitter *mTreeSplitter; QSplitter *mRightSplitter; QToolBar *mToolBar; |