From ff8fdb92b8c2dfaa4818150d75c32fc303b438cb Mon Sep 17 00:00:00 2001 From: Arno Date: Wed, 28 Jul 2010 22:21:38 +0200 Subject: Reset NewMovieWizard Well, the point of this commit was to have one NewMovieWizard in memory all the time and just show it when it's needed. For this several things were necessary: 1. implement initializePage() for every QWizardPage. For this I had to implement reset functions in some models. 2. setOption(QWizard::IndependentPages, true) in Wizard constructor. 3. Make NewMovieWizard a member of SheMov... Well, it was, already, but I didn't remove the ptr. The good news: the Wizard works. Bad News: 1. Program crashes in ArchiveViewWizard::currentChanged (see TODOS) 2. Cover files also have a quality Attribute attached. --- newmoviewizard.cpp | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) (limited to 'newmoviewizard.cpp') diff --git a/newmoviewizard.cpp b/newmoviewizard.cpp index 9a47a64..4b8d728 100644 --- a/newmoviewizard.cpp +++ b/newmoviewizard.cpp @@ -36,6 +36,7 @@ NewMovieWizard::NewMovieWizard(QWidget *parent) : QWizard(parent){ addPage(new MovieInfoPage); addPage(new MovieMappingPage("actors")); addPage(new MovieMappingPage("genres")); + setOption(QWizard::IndependentPages, true); } void NewMovieWizard::accept(){ @@ -120,12 +121,7 @@ MovieInfoPage::MovieInfoPage(QWidget *parent) : QWizardPage(parent){ //files model setup QStringList modelHeaders = QStringList() << tr("File name") << tr("Size") << tr("File Type") << tr("Full path"); mFileModel = new WizardTreeModel(modelHeaders, this); - SmTreeItem *root = new SmTreeItem(4); - mMoviesItem= new SmTreeItem(QList() << tr("Movie files") << QVariant() << QVariant() << QVariant(), root); - root->appendChild(mMoviesItem); - mCoversItem = new SmTreeItem(QList() << tr("Cover files") << QVariant() << QVariant() << QVariant(), root); - root->appendChild(mCoversItem); - mFileModel->setRoot(root); + initModel(); //files view mFileView = new QTreeView; @@ -221,6 +217,15 @@ MovieInfoPage::MovieInfoPage(QWidget *parent) : QWizardPage(parent){ registerField("onDvd", mOnDvd); } +void MovieInfoPage::initializePage(){ + initModel(); + mTitle->clear(); + mSeriesNo->setValue(1); + mPartno->setValue(1); + mQuality->setValue(8); + mOnDvd->setChecked(false); +} + void MovieInfoPage::addFiles(){ QSettings s; QString startDir = s.value("paths/selecteddir", QDir::homePath()).toString(); @@ -295,6 +300,15 @@ void MovieInfoPage::setNextDvdNo(){ mDvdNo->setValue(nextdvd + 1); } +void MovieInfoPage::initModel(){ + SmTreeItem *root = new SmTreeItem(4); + mMoviesItem= new SmTreeItem(QList() << tr("Movie files") << QVariant() << QVariant() << QVariant(), root); + root->appendChild(mMoviesItem); + mCoversItem = new SmTreeItem(QList() << tr("Cover files") << QVariant() << QVariant() << QVariant(), root); + root->appendChild(mCoversItem); + mFileModel->setRoot(root); +} + 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); @@ -308,6 +322,10 @@ MovieMappingPage::MovieMappingPage(const QString &table, QWidget *parent) : QWiz setLayout(mainLayout); } +void MovieMappingPage::initializePage(){ + model()->setStringList(QStringList()); +} + WizardTreeModel::WizardTreeModel(QStringList &headers, QObject *parent) : SmTreeModel(headers, parent){ FilesTreeModel *filesModel = static_cast(SmGlobals::instance()->model("FilesModel")); mFileTypeMap = filesModel->fileTypes(); -- cgit v1.2.3-70-g09d2