summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--TODOS11
-rw-r--r--newmoviewizard.cpp30
-rw-r--r--newmoviewizard.h3
-rw-r--r--seriestreewidget.cpp17
-rw-r--r--seriestreewidget.h1
-rw-r--r--shemov.cpp8
-rw-r--r--shemov.h1
7 files changed, 62 insertions, 9 deletions
diff --git a/TODOS b/TODOS
index 8f37176..7a60061 100644
--- a/TODOS
+++ b/TODOS
@@ -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();
diff --git a/shemov.cpp b/shemov.cpp
index 03b9271..6c443de 100644
--- a/shemov.cpp
+++ b/shemov.cpp
@@ -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){
diff --git a/shemov.h b/shemov.h
index 4ba2f48..ac0332e 100644
--- a/shemov.h
+++ b/shemov.h
@@ -119,6 +119,7 @@ class SheMov : public QMainWindow {
QMenu *mTreeViewMenu;
QAction *mEditFSMenuA;
+ //widgets + dialogs
QTabWidget *mTab;
FilesystemWidget *mFSWidget;
ArchiveTreeView *mATree;