summaryrefslogtreecommitdiffstats
path: root/newmoviewizard.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2010-09-11 18:28:48 +0200
committerArno <am@disconnect.de>2010-09-11 18:28:48 +0200
commit3c86ae36f5048929ed43e1d49060d45e927953e8 (patch)
treeb2301c0e4870972c2efd3971e80900390507e066 /newmoviewizard.cpp
parent9c2ffa8c6a9b1683ea21ed43f2b44f62fda7964e (diff)
downloadSheMov-3c86ae36f5048929ed43e1d49060d45e927953e8.tar.gz
SheMov-3c86ae36f5048929ed43e1d49060d45e927953e8.tar.bz2
SheMov-3c86ae36f5048929ed43e1d49060d45e927953e8.zip
Fix oddities in NewMovieWizard
Well, this one should have been easy, but there's always a way to make things complicated. Select proper entries for mPartno and mFileType in NewMovieWizard. Note to self: never ever forget about QObject::blockSignals(bool) again. This is way easier than fiddling around with boolean logic...
Diffstat (limited to 'newmoviewizard.cpp')
-rw-r--r--newmoviewizard.cpp31
1 files changed, 29 insertions, 2 deletions
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);
+}