summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--archiveview.cpp64
-rw-r--r--archiveview.h21
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 {