diff options
-rw-r--r-- | TODOS | 11 | ||||
-rw-r--r-- | newmoviewizard.cpp | 30 | ||||
-rw-r--r-- | newmoviewizard.h | 3 | ||||
-rw-r--r-- | seriestreewidget.cpp | 17 | ||||
-rw-r--r-- | seriestreewidget.h | 1 | ||||
-rw-r--r-- | shemov.cpp | 8 | ||||
-rw-r--r-- | shemov.h | 1 |
7 files changed, 62 insertions, 9 deletions
@@ -22,10 +22,19 @@ SheMov (MainWindow) TODOS: -File properties for TreeView --Fix statistics menu! -Finish this file -Fix Unable to free statement on exit +TODOS 20100728: +-Whenn adding covers via NewMovieWizard covers have quality +-CRASH in ArchiveTreeWidget::currentChanged. This is totally +borked. Revisit and revamp, rename SeriesWidget::mapToSource +or make it virtual, maybe add some isValid() +-implement some moveToIncoming() or something for debugging + + + + GOOD FILES TO REMOVE: *archiveeditdialog *listeditor 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(); diff --git a/newmoviewizard.h b/newmoviewizard.h index 7c671cd..d79531f 100644 --- a/newmoviewizard.h +++ b/newmoviewizard.h @@ -41,6 +41,7 @@ class MovieInfoPage : public QWizardPage { public: explicit MovieInfoPage(QWidget *parent = 0); WizardTreeModel *model() { return mFileModel; } + virtual void initializePage(); private slots: void addFiles(); @@ -48,6 +49,7 @@ class MovieInfoPage : public QWizardPage { void onDvd(int); void typeChanged(QString); void setNextDvdNo(); + void initModel(); private: QTreeView *mFileView; @@ -71,6 +73,7 @@ class MovieMappingPage : public QWizardPage { public: explicit MovieMappingPage(const QString &table, QWidget *parent = 0); MappingTableItemModel *model() { return mWidget->model(); } + virtual void initializePage(); private: MappingTableWidget *mWidget; diff --git a/seriestreewidget.cpp b/seriestreewidget.cpp index a124450..7e5d41f 100644 --- a/seriestreewidget.cpp +++ b/seriestreewidget.cpp @@ -95,6 +95,23 @@ void SeriesTreeWidget::newSeries(){ } } +void SeriesTreeWidget::seriesAdded(QString seriesName, int seriesPart, bool resort){ + if(resort){ + mProxy->invalidate(); + } + QModelIndex destIdx = mModel->findValue(seriesName); + if(destIdx.isValid()){ + QModelIndex seriesPartIdx = mModel->findValue(seriesPart, destIdx, SeriesTreeModel::SeriesPart); + if(seriesPartIdx.isValid()){ + destIdx = seriesPartIdx; + } + } + if(destIdx.isValid()){ + QModelIndex proxyIndex = mProxy->mapFromSource(destIdx); + mView->selectionModel()->setCurrentIndex(proxyIndex, QItemSelectionModel::ClearAndSelect); + } +} + void SeriesTreeWidget::deleteFromSeries(){ QModelIndexList selected = mView->selectionModel()->selectedRows(); if(selected.isEmpty()){ diff --git a/seriestreewidget.h b/seriestreewidget.h index 815b5f5..fd850b4 100644 --- a/seriestreewidget.h +++ b/seriestreewidget.h @@ -33,6 +33,7 @@ class SeriesTreeWidget : public QWidget { public slots: void newSeries(); + void seriesAdded(const QString seriesName, int seriesPart, bool resort = true); void deleteFromSeries(); void readSettings(); void writeSettings(); @@ -61,6 +61,10 @@ SheMov::SheMov(QWidget *parent, Qt::WindowFlags flags) : QMainWindow(parent, fla connect(mATree->filesWidget()->filesTree()->selectionModel(), SIGNAL(selectionChanged(const QItemSelection &, const QItemSelection &)), this, SLOT(updateSelectionCount(const QItemSelection &, const QItemSelection &))); connect(mATree->seriesWidget()->seriesTree()->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(updateSelectionCount(QItemSelection,QItemSelection))); + //newmoviewizard + mNewMovieWizard = new NewMovieWizard(this); + connect(mNewMovieWizard, SIGNAL(seriesAdded(QString,int)), mATree->seriesWidget(), SLOT(seriesAdded(QString,int))); + QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(mTab); @@ -207,8 +211,8 @@ void SheMov::showStatistics(){ } void SheMov::newMovieWizard(){ - NewMovieWizard wiz(this); - wiz.exec(); + mNewMovieWizard->restart(); + mNewMovieWizard->show(); } void SheMov::setSize(qint64 size){ @@ -119,6 +119,7 @@ class SheMov : public QMainWindow { QMenu *mTreeViewMenu; QAction *mEditFSMenuA; + //widgets + dialogs QTabWidget *mTab; FilesystemWidget *mFSWidget; ArchiveTreeView *mATree; |