summaryrefslogtreecommitdiffstats
path: root/filestreewidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'filestreewidget.cpp')
-rw-r--r--filestreewidget.cpp65
1 files changed, 64 insertions, 1 deletions
diff --git a/filestreewidget.cpp b/filestreewidget.cpp
index d3d5ad4..b25804f 100644
--- a/filestreewidget.cpp
+++ b/filestreewidget.cpp
@@ -6,12 +6,16 @@
*/
#include <QHBoxLayout>
+#include <QVBoxLayout>
#include <QSettings>
#include <QMessageBox>
#include <QFile>
#include <QDir>
#include <QContextMenuEvent>
#include <QMenu>
+#include <QLabel>
+#include <QSpinBox>
+#include <QPushButton>
#include <QDebug>
@@ -83,6 +87,29 @@ void FilesTreeWidget::moveToBurn(){
}
}
+void FilesTreeWidget::setDvdNo(){
+ DvdNoDialog dlg(this);
+ int retval = dlg.exec();
+ if(retval == QDialog::Accepted){
+ QModelIndexList selected = mView->selectionModel()->selectedRows();
+ if(selected.isEmpty()){
+ return;
+ }
+ int dvdNo = dlg.dvdNo();
+ foreach(QModelIndex i, selected){
+ int type = i.data(FilesTreeModel::FileTypeRole).toInt();
+ if(type != FilesTreeModel::Movie){
+ continue;
+ }
+ QModelIndex real = mProxy->mapToSource(i);
+ if(real.isValid()){
+ QModelIndex dvdColumn = mModel->index(real.row(), FilesTreeModel::DvdNo, real.parent());
+ mModel->setData(dvdColumn, dvdNo, Qt::EditRole);
+ }
+ }
+ }
+}
+
void FilesTreeWidget::fileSelectionChanged(const QModelIndex &current, const QModelIndex &previous){
Q_UNUSED(previous);
int seriesPartId = current.data(FilesTreeModel::SeriesPartIdRole).toInt();
@@ -93,7 +120,7 @@ void FilesTreeWidget::fileSelectionChanged(const QModelIndex &current, const QMo
QModelIndex seriesPartIdx = mSeriesModel->findValue(seriesPartId, seriesIdx, SeriesTreeModel::SeriesPartId);
QString seriesNumber = QString::number(seriesPartIdx.data(SeriesTreeModel::SeriesPartRole).toInt());
QString msg;
- if(filePart != 0){
+ if(filePart > 0){
msg = QString(tr("%1 %2 (%3)")).arg(seriesIdx.data(SeriesTreeModel::NameRole).toString()).arg(seriesNumber).arg(filePart);
}else{
msg = QString(tr("%1 %2")).arg(seriesIdx.data(SeriesTreeModel::NameRole).toString()).arg(seriesNumber);
@@ -142,3 +169,39 @@ bool FilesTreeSortModel::lessThan(const QModelIndex &left, const QModelIndex &ri
}
return QSortFilterProxyModel::lessThan(left, right);
}
+
+DvdNoDialog::DvdNoDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f){
+ //spin box
+ QHBoxLayout *spinBoxLayout = new QHBoxLayout;
+ QLabel *l1 = new QLabel(tr("Select &Dvd no."));
+ mDvdNo = new QSpinBox;
+ l1->setBuddy(mDvdNo);
+ spinBoxLayout->addWidget(l1);
+ spinBoxLayout->addWidget(mDvdNo);
+ mDvdNo->setMinimum(-1);
+ SeriesTreeModel *seriesModel = static_cast<SeriesTreeModel*>(SmModelSingleton::instance()->model("SeriesModel"));
+ int nextDvdNo = seriesModel->findNextDvdNo();
+ mDvdNo->setValue(nextDvdNo);
+
+ //buttons
+ QHBoxLayout *buttonLayout = new QHBoxLayout;
+ mOk = new QPushButton(tr("Ok"));
+ connect(mOk, SIGNAL(clicked()), this, SLOT(accept()));
+ buttonLayout->addStretch();
+ buttonLayout->addWidget(mOk);
+ mCancel = new QPushButton(tr("Cancel"));
+ connect(mCancel, SIGNAL(clicked()), this, SLOT(reject()));
+ buttonLayout->addWidget(mCancel);
+
+ //main layout
+ QVBoxLayout *mainLayout = new QVBoxLayout;
+ mainLayout->addLayout(spinBoxLayout);
+ mainLayout->addLayout(buttonLayout);
+ setLayout(mainLayout);
+
+ setWindowTitle(tr("Select Dvd no."));
+}
+
+int DvdNoDialog::dvdNo() const {
+ return mDvdNo->value();
+}