From 9954c11ac9bc51fe81cc9949ff9799ac87512d92 Mon Sep 17 00:00:00 2001 From: Arno Date: Fri, 12 Jul 2013 14:25:59 +0200 Subject: Make PartNo and Subtitle editable --- archiveview.cpp | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) (limited to 'archiveview.cpp') diff --git a/archiveview.cpp b/archiveview.cpp index f0b3cf6..ca0d91f 100644 --- a/archiveview.cpp +++ b/archiveview.cpp @@ -341,6 +341,22 @@ void ArchiveTree::editMetadata(){ } } +void ArchiveTree::editSeriesPart(){ + QModelIndex idx = currentIndex(); + int curPart = idx.data(ArchiveModel::SeriesPartRole).toInt(); + QString subtitle = idx.data(ArchiveModel::SubtitleRole).toString(); + PartEditor e(this); + e.setPartNo(curPart); + e.setSubtitle(subtitle); + int res = e.exec(); + if(res == QDialog::Accepted){ + int pId = idx.data(ArchiveModel::SeriesPartIdRole).toInt(); + ArchiveController *c = SmGlobals::instance()->archiveController(); + c->archiveTreeModel()->setPartNo(pId, e.partNo(), e.subtitle()); + mModel->refresh(); + } +} + void ArchiveTree::impossible(const QString msg){ QMessageBox::critical(this, tr("Error"), msg); } @@ -613,6 +629,56 @@ MetadataEditor::MetadataEditor(QWidget *parent, Qt::WindowFlags f) : QDialog(par setMinimumWidth(400); } +/* Part Editor */ + +PartEditor::PartEditor(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f){ + QLabel *captionL = new QLabel(tr("Edit part")); + QFormLayout *editLayout = new QFormLayout; + + // part no + mPartNo = new QSpinBox; + mPartNo->setMinimum(0); + mPartNo->setMaximum(1024); + editLayout->addRow(tr("Part &no"), mPartNo); + + // subtitle + mSubtitle = new QLineEdit; + editLayout->addRow(tr("&Subtitle"), mSubtitle); + + // buttons + QHBoxLayout *buttonLayout = new QHBoxLayout; + buttonLayout->addStretch(); + mCancel = new QPushButton(tr("Cancel")); + connect(mCancel, SIGNAL(clicked()), this, SLOT(reject())); + mAccept = new QPushButton(tr("Accept")); + connect(mAccept, SIGNAL(clicked()), this, SLOT(accept())); + buttonLayout->addWidget(mCancel); + buttonLayout->addWidget(mAccept); + + // main layout + QVBoxLayout *mainLayout = new QVBoxLayout; + mainLayout->addWidget(captionL); + mainLayout->addLayout(editLayout); + mainLayout->addLayout(buttonLayout); + setLayout(mainLayout); +} + +void PartEditor::setPartNo(int partNo){ + mPartNo->setValue(partNo); +} + +int PartEditor::partNo() const { + return mPartNo->value(); +} + +void PartEditor::setSubtitle(const QString &subtitle){ + mSubtitle->setText(subtitle); +} + +QString PartEditor::subtitle() const { + return mSubtitle->text(); +} + /* Delegate for File no. */ QString FileNoDelegate::displayText(const QVariant &value, const QLocale &locale) const{ -- cgit v1.2.3-70-g09d2