summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--archivecontroller.cpp48
-rw-r--r--archivecontroller.h6
-rw-r--r--archivemodel.cpp23
-rw-r--r--archivemodel.h1
-rw-r--r--archiveview.cpp44
-rw-r--r--archiveview.h5
6 files changed, 81 insertions, 46 deletions
diff --git a/archivecontroller.cpp b/archivecontroller.cpp
index a50023b..0cd0b1c 100644
--- a/archivecontroller.cpp
+++ b/archivecontroller.cpp
@@ -57,8 +57,9 @@ void ArchiveController::setMappingModels(QStandardItemModel *actorModel, QStanda
mGenreModel = genreModel;
}
-void ArchiveController::setMetadata(QTextEdit *metadata){
- mMetadataView = metadata;
+void ArchiveController::setMetadata(QStandardItemModel *model, QTextEdit *comment){
+ mMetaModel = model;
+ mComment = comment;
}
void ArchiveController::init(){
@@ -230,6 +231,7 @@ void ArchiveController::addFiles(){
void ArchiveController::readConfig(){
mActorIcon = SmGlobals::instance()->iconFor("actor");
mGenreIcon = SmGlobals::instance()->iconFor("genre");
+ mMetaIcon = QIcon(":/huge_bra.png");
}
void ArchiveController::moveFilesToSeriespart(const QStringList &md5Sums, int newSeriesPart){
@@ -265,8 +267,46 @@ void ArchiveController::treeSelectionChanged(const QItemSelection &selected, con
QStandardItem *newItem = new QStandardItem(mGenreIcon, genre);
mGenreModel->appendRow(newItem);
}
- QString metaData = mArchiveModel->metadata(*ids.begin());
- mMetadataView->setHtml(metaData);
+
+ 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());
+
int nodeType = sel.first().data(ArchiveModel::TypeRole).toInt();
foreach(QAction *a, mActionsForTree){
a->setEnabled(a->data().toInt() & nodeType);
diff --git a/archivecontroller.h b/archivecontroller.h
index 5c3974f..3b743bd 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(QTextEdit *metadata);
+ void setMetadata(QStandardItemModel *model, QTextEdit *comment);
ArchiveFilesModel *archiveFilesModel() { return mArchiveFilesModel; }
ArchiveFiles *archiveFiles() { return mArchiveFiles; }
ArchiveModel *archiveTreeModel() { return mArchiveModel; }
@@ -78,11 +78,13 @@ class ArchiveController : public QObject {
QItemSelectionModel *mFileSelection;
QStandardItemModel *mActorModel;
QStandardItemModel *mGenreModel;
- QTextEdit *mMetadataView;
+ QStandardItemModel *mMetaModel;
+ QTextEdit *mComment;
QWidget *mParentWidget;
QList<QAction*> mActionsForTree;
QIcon mActorIcon;
QIcon mGenreIcon;
+ QIcon mMetaIcon;
QIcon mFileIcon;
};
diff --git a/archivemodel.cpp b/archivemodel.cpp
index ff37e73..1d6c8d0 100644
--- a/archivemodel.cpp
+++ b/archivemodel.cpp
@@ -394,29 +394,6 @@ void ArchiveModel::setGenres(int partId, const QStringList &genres){
mDb.commit();
}
-
-QString ArchiveModel::metadata(int partId) const{
- QString retval;
- retval.append("<html><table>");
- QSqlQuery metadataQuery(mDb);
- metadataQuery.prepare("SELECT sireleaseyear, tsourcemedium, tsubject, treleasegroup, tencoderopts, tcomment, sipasses, dadded FROM metadata WHERE iseriespart_id = :id");
- metadataQuery.bindValue(":id", partId);
- metadataQuery.exec();
- while(metadataQuery.next()){
- retval.append(QString("<tr><td style=\"padding-right:10\"><i>Release year</i></td><td>%1</td></tr>").arg(QString::number(metadataQuery.value(0).toInt())));
- retval.append(QString("<tr><td><i>Source</i></td><td>%1</td></tr>").arg(metadataQuery.value(1).toString()));
- retval.append(QString("<tr><td><i>Subject</i></td><td>%1</td></tr>").arg(metadataQuery.value(2).toString()));
- retval.append(QString("<tr><td><i>Rel. Group</i></td><td>%1</td></tr>").arg(metadataQuery.value(3).toString()));
- retval.append(QString("<tr><td><i>Enc. Opts</i></td><td>%1</td></tr>").arg(metadataQuery.value(4).toString()));
- retval.append(QString("<tr><td><i>Passes</i></td><td>%1</td></tr>").arg(QString::number(metadataQuery.value(6).toInt())));
- QDate added = metadataQuery.value(7).toDate();
- retval.append(QString("<tr><td><i>Added</i></td><td>%1</td></tr>").arg(added.toString("yyyy-MM-dd")));
- retval.append(QString("<tr><td><i>Comment</i></td><td>%1</td></tr>").arg(metadataQuery.value(5).toString()));
- }
- retval.append("</table></html>");
- return retval;
-}
-
QList<QVariant> ArchiveModel::metadataList(int partId) const{
QSqlQuery metadataQuery(mDb);
metadataQuery.prepare("SELECT sireleaseyear, tsourcemedium, tsubject, treleasegroup, tencoderopts, tcomment, sipasses, dadded FROM metadata WHERE iseriespart_id = :id");
diff --git a/archivemodel.h b/archivemodel.h
index 6903cfd..00bd46b 100644
--- a/archivemodel.h
+++ b/archivemodel.h
@@ -47,7 +47,6 @@ class ArchiveModel : public SmTreeModel {
QStringList genres(const QSet<int> &genreIds) const;
QStringList allGenres() const;
void setGenres(int partId, const QStringList &genres);
- QString metadata(int partId) const;
QList<QVariant> metadataList(int partId) const;
void setMetadata(int partId, const QList<QVariant> &data);
bool setPartNo(int partId, int newPartId, const QString &subtitle);
diff --git a/archiveview.cpp b/archiveview.cpp
index 4cf24d0..b7ae5e6 100644
--- a/archiveview.cpp
+++ b/archiveview.cpp
@@ -115,7 +115,6 @@ ArchiveView::ArchiveView(QWidget *parent) : QWidget(parent) {
mFilesProxy->setSourceModel(mFilesModel);
mFiles->setModel(mFilesProxy);
- QHBoxLayout *bottomRightLayout = new QHBoxLayout;
mActorView = new SmTreeView;
mActorView->setHeaderHidden(true);
mActorModel = new QStandardItemModel(this);
@@ -134,27 +133,39 @@ ArchiveView::ArchiveView(QWidget *parent) : QWidget(parent) {
genreLayout->addWidget(mGenreView);
genreBox->setLayout(genreLayout);
- mMetadataView = new QTextEdit;
- mMetadataView->setReadOnly(true);
- QGroupBox *metadataBox = new QGroupBox("Metadata");
- QHBoxLayout *metadataLayout = new QHBoxLayout;
- metadataLayout->addWidget(mMetadataView);
+ 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);
metadataBox->setLayout(metadataLayout);
+ QHBoxLayout *bottomRightLayout = new QHBoxLayout;
bottomRightLayout->addWidget(actorBox);
bottomRightLayout->addWidget(genreBox);
bottomRightLayout->addWidget(metadataBox);
- QVBoxLayout *rightLayout = new QVBoxLayout;
- rightLayout->addWidget(mToolBar);
- rightLayout->addWidget(mFiles);
- rightLayout->addLayout(bottomRightLayout);
- QWidget *rightWidget = new QWidget;
- rightLayout->setStretchFactor(mFiles, 3);
- rightWidget->setLayout(rightLayout);
+ QWidget *bottomRightWidget = new QWidget;
+ bottomRightWidget->setLayout(bottomRightLayout);
+
+ QVBoxLayout *topRightLayout = new QVBoxLayout;
+ topRightLayout->addWidget(mToolBar);
+ topRightLayout->addWidget(mFiles);
+ QWidget *topRightWidget = new QWidget;
+ topRightWidget->setLayout(topRightLayout);
+
+ mRightSplitter = new QSplitter(Qt::Vertical);
+ mRightSplitter->addWidget(topRightWidget);
+ mRightSplitter->addWidget(bottomRightWidget);
+ mRightSplitter->setStretchFactor(0, 4);
mTreeSplitter = new QSplitter(Qt::Horizontal);
mTreeSplitter->addWidget(treeWidget);
- mTreeSplitter->addWidget(rightWidget);
+ mTreeSplitter->addWidget(mRightSplitter);
mTreeSplitter->setStretchFactor(0, 1);
mTreeSplitter->setStretchFactor(1, 4);
QHBoxLayout *mainLayout = new QHBoxLayout;
@@ -185,6 +196,8 @@ void ArchiveView::readSettings(){
mCurrentArchivePath = s.value("archivemodel/selectedseries").toStringList();
QByteArray splitterState = s.value("archivemodel/vsplitter").toByteArray();
mTreeSplitter->restoreState(splitterState);
+ QByteArray hSplitterState = s.value("archivemodel/hsplitter").toByteArray();
+ mRightSplitter->restoreState(hSplitterState);
doSelection();
mFiles->readHeaderConfig();
mFiles->setSortingEnabled(true);
@@ -201,6 +214,7 @@ void ArchiveView::writeSettings() {
s.setValue("archivemodel/expandedfavorites", mExpandedItems.value(ArchiveModel::FavoriteOrder));
s.setValue("archivemodel/selectedseries", mCurrentArchivePath);
s.setValue("archivemodel/vsplitter", mTreeSplitter->saveState());
+ s.setValue("archivemodel/hsplitter", mRightSplitter->saveState());
mFiles->writeHeaderConfig();
}
@@ -272,7 +286,7 @@ void ArchiveView::initController(){
mController->setArchiveFiles(mFiles, mFilesProxy);
mController->setModels(mArchiveModel, mFilesModel);
mController->setMappingModels(mActorModel, mGenreModel);
- mController->setMetadata(mMetadataView);
+ mController->setMetadata(mMetaModel, mComment);
mController->init();
SmGlobals::instance()->setArchiveController(mController);
}
diff --git a/archiveview.h b/archiveview.h
index 202e2f9..d0bb252 100644
--- a/archiveview.h
+++ b/archiveview.h
@@ -75,10 +75,13 @@ class ArchiveView : public QWidget {
QStringList mCurrentArchivePath;
SmTreeView *mActorView;
SmTreeView *mGenreView;
+ SmTreeView *mMetaView;
+ QTextEdit *mComment;
QStandardItemModel *mActorModel;
QStandardItemModel *mGenreModel;
+ QStandardItemModel *mMetaModel;
QSplitter *mTreeSplitter;
- QTextEdit *mMetadataView;
+ QSplitter *mRightSplitter;
QToolBar *mToolBar;
};