diff options
author | Arno <am@disconnect.de> | 2013-07-12 11:44:04 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2013-07-12 11:44:04 +0200 |
commit | 11032ae73ea103d97d9fefb1375b957fa505eeaa (patch) | |
tree | e890ca63bbe7f79f5f659e6e14e7fa534e29c51e | |
parent | cbba8c474d5e90c4af05783e012415102f162c0e (diff) | |
download | SheMov-11032ae73ea103d97d9fefb1375b957fa505eeaa.tar.gz SheMov-11032ae73ea103d97d9fefb1375b957fa505eeaa.tar.bz2 SheMov-11032ae73ea103d97d9fefb1375b957fa505eeaa.zip |
Split MetadataEditor
Again, split the editor into a widget and a dialog, so we can use the
widget in NewMovieWizard.
-rw-r--r-- | archiveview.cpp | 64 | ||||
-rw-r--r-- | archiveview.h | 21 |
2 files changed, 56 insertions, 29 deletions
diff --git a/archiveview.cpp b/archiveview.cpp index 2521113..f0b3cf6 100644 --- a/archiveview.cpp +++ b/archiveview.cpp @@ -326,22 +326,21 @@ void ArchiveTree::editMetadata(){ MetadataEditor e(this); ArchiveController *c = SmGlobals::instance()->archiveController(); QStringList sources = c->archiveTreeModel()->allSources(); - e.setSources(sources); + e.widget()->setSources(sources); QStringList relGroups = c->archiveTreeModel()->allReleaseGroups(); - e.setReleaseGroups(relGroups); + e.widget()->setReleaseGroups(relGroups); QModelIndex idx = currentIndex(); int pId = idx.data(ArchiveModel::SeriesPartIdRole).toInt(); QList<QVariant> curMetadata = c->archiveTreeModel()->metadataList(pId); - e.setMetadata(curMetadata); + e.widget()->setMetadata(curMetadata); int res = e.exec(); if(res == QDialog::Accepted){ - QList<QVariant> data = e.metadata(); + QList<QVariant> data = e.widget()->metadata(); mModel->setMetadata(pId, data); c->treeSelectionChanged(QItemSelection(), QItemSelection()); } } - void ArchiveTree::impossible(const QString msg){ QMessageBox::critical(this, tr("Error"), msg); } @@ -512,14 +511,9 @@ MappingEditor::MappingEditor(const QString &caption, QWidget *parent, Qt::Window setMinimumWidth(300); } +/* Metadata Editor Widget */ - - - - -/* Metadata Editor */ - -MetadataEditor::MetadataEditor(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f){ +MetadataEditorWidget::MetadataEditorWidget(QWidget *parent) : QWidget(parent) { QLabel *captionL = new QLabel(tr("<b>Edit Metadata</b>")); QFormLayout *dataLayout = new QFormLayout; @@ -548,33 +542,24 @@ MetadataEditor::MetadataEditor(QWidget *parent, Qt::WindowFlags f) : QDialog(par mComment = new QTextEdit; commentLayout->addWidget(mComment); - QHBoxLayout *buttonLayout = new QHBoxLayout; - buttonLayout->addStretch(); - mCancel = new QPushButton(tr("Cancel")); - connect(mCancel, SIGNAL(clicked()), this, SLOT(reject())); - buttonLayout->addWidget(mCancel); - mAccept = new QPushButton(tr("Accept")); - connect(mAccept, SIGNAL(clicked()), this, SLOT(accept())); - buttonLayout->addWidget(mAccept); + mWidgets << mReleaseYear << mSource << mRelGroup << mSubject << mEncoderOpts << mPasses << mComment; QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(captionL); mainLayout->addLayout(dataLayout); mainLayout->addLayout(commentLayout); - mainLayout->addLayout(buttonLayout); setLayout(mainLayout); - setMinimumWidth(400); } -void MetadataEditor::setSources(const QStringList &sources){ +void MetadataEditorWidget::setSources(const QStringList &sources){ mSource->addItems(sources); } -void MetadataEditor::setReleaseGroups(const QStringList &relGroups){ +void MetadataEditorWidget::setReleaseGroups(const QStringList &relGroups){ mRelGroup->addItems(relGroups); } -void MetadataEditor::setMetadata(const QList<QVariant> &data){ +void MetadataEditorWidget::setMetadata(const QList<QVariant> &data){ mReleaseYear->setValue(data.at(ArchiveModel::ReleaseYear).toInt()); mSource->setCurrentText(data.at(ArchiveModel::Source).toString()); mSubject->setText(data.at(ArchiveModel::Subject).toString()); @@ -585,7 +570,7 @@ void MetadataEditor::setMetadata(const QList<QVariant> &data){ mAdded = data.at(ArchiveModel::Added).toDate(); } -QList<QVariant> MetadataEditor::metadata() const{ +QList<QVariant> MetadataEditorWidget::metadata() const{ QList<QVariant> retval; for(int i = 0; i < ArchiveModel::MetadataNumFields; ++i){ retval << QVariant(); @@ -601,6 +586,33 @@ QList<QVariant> MetadataEditor::metadata() const{ return retval; } +void MetadataEditorWidget::setEnabledAll(bool enabled){ + foreach(QWidget *w, mWidgets){ + w->setEnabled(enabled); + } +} + +/* Metadata Editor */ + +MetadataEditor::MetadataEditor(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f){ + mWidget = new MetadataEditorWidget; + + QHBoxLayout *buttonLayout = new QHBoxLayout; + buttonLayout->addStretch(); + mCancel = new QPushButton(tr("Cancel")); + connect(mCancel, SIGNAL(clicked()), this, SLOT(reject())); + buttonLayout->addWidget(mCancel); + mAccept = new QPushButton(tr("Accept")); + connect(mAccept, SIGNAL(clicked()), this, SLOT(accept())); + buttonLayout->addWidget(mAccept); + + QVBoxLayout *mainLayout = new QVBoxLayout; + mainLayout->addWidget(mWidget); + mainLayout->addLayout(buttonLayout); + setLayout(mainLayout); + setMinimumWidth(400); +} + /* Delegate for File no. */ QString FileNoDelegate::displayText(const QVariant &value, const QLocale &locale) const{ diff --git a/archiveview.h b/archiveview.h index ed19e4e..41c86c3 100644 --- a/archiveview.h +++ b/archiveview.h @@ -179,15 +179,18 @@ class MappingEditor : public QDialog { MappingEditorWidget *mWidget; }; -class MetadataEditor : public QDialog { +class MetadataEditorWidget : public QWidget { Q_OBJECT public: - explicit MetadataEditor(QWidget *parent = 0, Qt::WindowFlags f = 0); + explicit MetadataEditorWidget(QWidget *parent = 0); void setSources(const QStringList &sources); void setReleaseGroups(const QStringList &relGroups); void setMetadata(const QList<QVariant> &data); QList<QVariant> metadata() const; + public slots: + void setEnabledAll(bool enabled); + private: QSpinBox *mReleaseYear; QComboBox *mSource; @@ -196,9 +199,21 @@ class MetadataEditor : public QDialog { QLineEdit *mEncoderOpts; QSpinBox *mPasses; QTextEdit *mComment; + QDate mAdded; + QList<QWidget*> mWidgets; +}; + +class MetadataEditor : public QDialog { + Q_OBJECT + public: + explicit MetadataEditor(QWidget *parent = 0, Qt::WindowFlags f = 0); + MetadataEditorWidget *widget() { return mWidget; } + + private: + MetadataEditorWidget *mWidget; QPushButton *mCancel; QPushButton *mAccept; - QDate mAdded; + }; class FileNoDelegate : public QStyledItemDelegate { |