summaryrefslogtreecommitdiffstats
path: root/archiveview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'archiveview.cpp')
-rw-r--r--archiveview.cpp66
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{