summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2016-11-06 03:12:26 +0100
committerArno <arno@disconnect.de>2016-11-06 03:12:26 +0100
commit6274b353c2f22703371e4751b6cb7f96a38d94e9 (patch)
treec477d6697c44b2eaebae2c80e3eea050f10f05db
parent6e596a0c4bdbb41962816f96c00cf7c95b6d0cac (diff)
downloadSheMov-6274b353c2f22703371e4751b6cb7f96a38d94e9.tar.gz
SheMov-6274b353c2f22703371e4751b6cb7f96a38d94e9.tar.bz2
SheMov-6274b353c2f22703371e4751b6cb7f96a38d94e9.zip
Revamp Comments and Metadata
Make it a QTextEdit (again?) with HTML content: * A table for metadata * A paragraph for the comment(s) Also add a stretch factor to the containing widget giving it more space.
-rw-r--r--archivecontroller.cpp68
-rw-r--r--archivecontroller.h6
-rw-r--r--archiveview.cpp19
-rw-r--r--archiveview.h4
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;