summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--filestreemodel.cpp2
-rw-r--r--newmoviewizard.cpp31
-rw-r--r--newmoviewizard.h4
3 files changed, 33 insertions, 4 deletions
diff --git a/filestreemodel.cpp b/filestreemodel.cpp
index d015e47..fd6264a 100644
--- a/filestreemodel.cpp
+++ b/filestreemodel.cpp
@@ -40,7 +40,7 @@ FilesTreeModel::FilesTreeModel(QStringList &headers, QObject *parent) : SmTreeMo
mDeleteFileQuery->prepare("DELETE FROM files WHERE ifiles_id = :id");
//file types
- mFileTypes.insert(1, "Movie");
+ mFileTypes.insert(1, tr("Movie"));
mFileTypes.insert(2, tr("Front cover"));
mFileTypes.insert(3, tr("Back cover"));
mFileTypes.insert(4, tr("General cover"));
diff --git a/newmoviewizard.cpp b/newmoviewizard.cpp
index 81e0312..5325c1c 100644
--- a/newmoviewizard.cpp
+++ b/newmoviewizard.cpp
@@ -130,6 +130,7 @@ MovieInfoPage::MovieInfoPage(QWidget *parent) : QWizardPage(parent){
//files view
mFileView = new QTreeView;
mFileView->setModel(mFileModel);
+ connect(mFileView->selectionModel(), SIGNAL(currentRowChanged(QModelIndex,QModelIndex)), this, SLOT(fileSelectionChanged(QModelIndex,QModelIndex)));
//add + remove files
QHBoxLayout *fileButtonLayout = new QHBoxLayout;
@@ -306,11 +307,11 @@ void MovieInfoPage::seriesPartChanged(int partNo){
if(selected.isEmpty()){
return;
}
- //int partNo = mPartno->value();
QModelIndex item = selected.at(0);
if(item.data(WizardTreeModel::FileTypeRole).toInt() == WizardTreeModel::Movie){
QModelIndex seriesPartIdx = mFileModel->index(item.row(), WizardTreeModel::FilePart, item.parent());
- mFileModel->setData(seriesPartIdx, partNo, Qt::EditRole);
+ QVariant data = (partNo == 0) ? QVariant() : QVariant(partNo);
+ mFileModel->setData(seriesPartIdx, data, Qt::EditRole);
}
}
@@ -329,6 +330,28 @@ void MovieInfoPage::initModel(){
mFileModel->setRoot(root);
}
+void MovieInfoPage::fileSelectionChanged(const QModelIndex &current, const QModelIndex &previous){
+ Q_UNUSED(previous);
+ int type = current.data(WizardTreeModel::FileTypeRole).toInt();
+ if(type == WizardTreeModel::Movie){
+ int part = 1;
+ QVariant filePart= current.data(WizardTreeModel::FilePartRole);
+ if(filePart.isValid()){
+ part = filePart.toInt();
+ }
+ mPartno->blockSignals(true);
+ mPartno->setValue(part);
+ mPartno->blockSignals(false);
+ }
+ QString typeString = mFileModel->typeName(type);
+ int comboIdx = mFileType->findText(typeString);
+ if(comboIdx != -1){
+ mFileType->blockSignals(true);
+ mFileType->setCurrentIndex(comboIdx);
+ mFileType->blockSignals(false);
+ }
+}
+
MovieMappingPage::MovieMappingPage(const QString &table, QWidget *parent) : QWizardPage(parent){
QString title = QString(tr("Edit %1")).arg(table);
QString subTitle = QString(tr("Edit %1 by adding them from the text field below")).arg(table);
@@ -438,3 +461,7 @@ int WizardTreeModel::typeId(const QString &value) const{
}
return -1;
}
+
+QString WizardTreeModel::typeName(int typeId) const{
+ return mFileTypeMap.value(typeId);
+}
diff --git a/newmoviewizard.h b/newmoviewizard.h
index 88667b9..9f476ed 100644
--- a/newmoviewizard.h
+++ b/newmoviewizard.h
@@ -51,6 +51,7 @@ class MovieInfoPage : public QWizardPage {
void seriesPartChanged(int);
void setNextDvdNo();
void initModel();
+ void fileSelectionChanged(const QModelIndex &current, const QModelIndex &previous);
private:
QTreeView *mFileView;
@@ -83,7 +84,7 @@ class MovieMappingPage : public QWizardPage {
class WizardTreeModel : public SmTreeModel {
Q_OBJECT
public:
- enum CustomRoles { FileNameRole = Qt::UserRole + 1, FileSizeRole = Qt::UserRole + 2, FileTypeRole = Qt::UserRole + 3, FilePartRole = Qt::UserRole + 4, FullPathRole = Qt::UserRole + 5 };
+ enum CustomRoles { FileNameRole = Qt::UserRole + 1, FileSizeRole = Qt::UserRole + 2, FileTypeRole = Qt::UserRole + 3, FilePartRole = Qt::UserRole + 4, FullPathRole = Qt::UserRole + 5 };
enum Fields { FileName = 0, FileSize = 1, FileType = 2, FilePart = 3, FullPath = 4 };
enum Types { Movie = 1, FrontCover = 2, BackCover = 3, GeneralCover = 4 };
explicit WizardTreeModel(QStringList &headers, QObject *parent = 0);
@@ -98,6 +99,7 @@ class WizardTreeModel : public SmTreeModel {
//file types
QStringList types() const;
int typeId(const QString &value) const;
+ QString typeName(int typeId) const;
private:
QHash<int, QString> mFileTypeMap;