summaryrefslogtreecommitdiffstats
path: root/newmoviewizard.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2010-07-28 22:21:38 +0200
committerArno <am@disconnect.de>2010-07-28 22:21:38 +0200
commitff8fdb92b8c2dfaa4818150d75c32fc303b438cb (patch)
treebb21093ef7887a6f75e31aa7a070d636666574be /newmoviewizard.cpp
parent004b9243248a29eaa73b5fae5a5ef7b5ca914f94 (diff)
downloadSheMov-ff8fdb92b8c2dfaa4818150d75c32fc303b438cb.tar.gz
SheMov-ff8fdb92b8c2dfaa4818150d75c32fc303b438cb.tar.bz2
SheMov-ff8fdb92b8c2dfaa4818150d75c32fc303b438cb.zip
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.
Diffstat (limited to 'newmoviewizard.cpp')
-rw-r--r--newmoviewizard.cpp30
1 files changed, 24 insertions, 6 deletions
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<QVariant>() << tr("Movie files") << QVariant() << QVariant() << QVariant(), root);
- root->appendChild(mMoviesItem);
- mCoversItem = new SmTreeItem(QList<QVariant>() << 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<QVariant>() << tr("Movie files") << QVariant() << QVariant() << QVariant(), root);
+ root->appendChild(mMoviesItem);
+ mCoversItem = new SmTreeItem(QList<QVariant>() << 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<FilesTreeModel*>(SmGlobals::instance()->model("FilesModel"));
mFileTypeMap = filesModel->fileTypes();