diff options
author | Arno <am@disconnect.de> | 2013-07-12 14:25:59 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2013-07-12 14:25:59 +0200 |
commit | 9954c11ac9bc51fe81cc9949ff9799ac87512d92 (patch) | |
tree | a0c546ea4cbf706cc602a1f3c019b2149740a6a6 /archiveview.cpp | |
parent | 5b18830e0072d2d69b85697129be3e44d60f9235 (diff) | |
download | SheMov-9954c11ac9bc51fe81cc9949ff9799ac87512d92.tar.gz SheMov-9954c11ac9bc51fe81cc9949ff9799ac87512d92.tar.bz2 SheMov-9954c11ac9bc51fe81cc9949ff9799ac87512d92.zip |
Make PartNo and Subtitle editable
Diffstat (limited to 'archiveview.cpp')
-rw-r--r-- | archiveview.cpp | 66 |
1 files changed, 66 insertions, 0 deletions
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{ |