summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2010-05-23 12:19:59 +0200
committerArno <am@disconnect.de>2010-05-23 12:19:59 +0200
commitf3b7e335c988cadd463063ca72790a638e44970e (patch)
treef79f92f658c7ef6134284dae9f5ce6dd8be0295e
parent8827510ec55eda169340b5414bd60eb3ba3bfb79 (diff)
downloadSheMov-f3b7e335c988cadd463063ca72790a638e44970e.tar.gz
SheMov-f3b7e335c988cadd463063ca72790a638e44970e.tar.bz2
SheMov-f3b7e335c988cadd463063ca72790a638e44970e.zip
Added cover page to AddMovieWizard
Finished AddMovieWizard. Added one last page to add covers to movie.
-rw-r--r--addmoviewizard.cpp88
-rw-r--r--addmoviewizard.h19
-rw-r--r--archiveviewwidget.cpp38
3 files changed, 106 insertions, 39 deletions
diff --git a/addmoviewizard.cpp b/addmoviewizard.cpp
index b7dfbf2..71eb1af 100644
--- a/addmoviewizard.cpp
+++ b/addmoviewizard.cpp
@@ -13,6 +13,13 @@
#include <QSpinBox>
#include <QComboBox>
#include <QModelIndex>
+#include <QSignalMapper>
+#include <QPushButton>
+#include <QFileDialog>
+#include <QSettings>
+#include <QFileInfo>
+#include <QFile>
+#include <QHash>
#include "addmoviewizard.h"
#include "listmodelsingleton.h"
@@ -20,12 +27,14 @@
#include "listeditor.h"
#include "moviemodelsingleton.h"
#include "moviemodel.h"
+#include "helper.h"
AddMovieWizard::AddMovieWizard(QWidget *parent) : QWizard(parent){
addPage(new MovieNamePage);
addPage(new MovieActorPage);
addPage(new MovieGenrePage);
+ addPage(new MovieCoverPage);
}
void AddMovieWizard::accept(){
@@ -61,6 +70,23 @@ void AddMovieWizard::accept(){
}
}
+ QHash<QString, QString> covers;
+ covers.insert("front", field("frontCover").toString());
+ covers.insert("back", field("backCover").toString());
+ covers.insert("general", field("generalCover").toString());
+
+ QList<CoverItem> coverItems;
+ foreach(QString type, covers.keys()){
+ if(covers[type].isEmpty()){
+ continue;
+ }
+ QString md5sum = Helper::md5Sum(covers[type]);
+ QString destFile = Helper::moveToArchive(covers[type], md5sum);
+ if(!destFile.isEmpty()){
+ coverItems << CoverItem(covers[type], type, md5sum);
+ }
+ }
+
movieData[MovieItem::Md5Sum] = md5;
movieData[MovieItem::Genre] = genreId;
movieData[MovieItem::Dvd] = dvdno;
@@ -69,7 +95,7 @@ void AddMovieWizard::accept(){
movieData[MovieItem::Quality] = quality;
movieData[MovieItem::SeriesNo] = seriesno;
movieData[MovieItem::PartNo] = partno;
- model->addMovie(movieData, actorIds, QList<CoverItem>());
+ model->addMovie(movieData, actorIds, coverItems);
QDialog::accept();
}
@@ -172,3 +198,63 @@ MovieGenrePage::MovieGenrePage(QWidget *parent) : QWizardPage(parent){
setLayout(mainLayout);
}
+
+/* MovieCoverPage */
+MovieCoverPage::MovieCoverPage(QWidget *parent) : QWizardPage(parent){
+ setTitle(tr("Covers"));
+ setSubTitle(tr("Select covers for the movie"));
+ setPixmap(QWizard::LogoPixmap, QPixmap(":/shemov.png"));
+
+ QSignalMapper *mapper = new QSignalMapper(this);
+ QGridLayout *mainLayout = new QGridLayout;
+
+ QLabel *l1 = new QLabel(tr("Front cover"));
+ mFrontCover = new QLineEdit;
+ mSelectFront = new QPushButton(tr("Browse..."));
+ connect(mSelectFront, SIGNAL(clicked()), mapper, SLOT(map()));
+ mapper->setMapping(mSelectFront, mFrontCover);
+ mainLayout->addWidget(l1, 0, 0);
+ mainLayout->addWidget(mFrontCover, 0, 1);
+ mainLayout->addWidget(mSelectFront, 0, 2);
+
+ QLabel *l2 = new QLabel(tr("Back cover"));
+ mBackCover = new QLineEdit;
+ mSelectBack = new QPushButton(tr("Browse..."));
+ connect(mSelectBack, SIGNAL(clicked()), mapper, SLOT(map()));
+ mapper->setMapping(mSelectBack, mBackCover);
+ mainLayout->addWidget(l2, 1, 0);
+ mainLayout->addWidget(mBackCover, 1, 1);
+ mainLayout->addWidget(mSelectBack, 1, 2);
+
+ QLabel *l3 = new QLabel(tr("General cover"));
+ mGeneralCover = new QLineEdit;
+ mSelectGeneral = new QPushButton(tr("Browse..."));
+ connect(mSelectGeneral, SIGNAL(clicked()), mapper, SLOT(map()));
+ mapper->setMapping(mSelectGeneral, mGeneralCover);
+ mainLayout->addWidget(l3, 2, 0);
+ mainLayout->addWidget(mGeneralCover, 2, 1);
+ mainLayout->addWidget(mSelectGeneral, 2, 2);
+
+ registerField("frontCover", mFrontCover);
+ registerField("backCover", mBackCover);
+ registerField("generalCover", mGeneralCover);
+
+ connect(mapper, SIGNAL(mapped(QWidget*)), this, SLOT(selectFile(QWidget*)));
+
+ setLayout(mainLayout);
+}
+
+void MovieCoverPage::selectFile(QWidget *lineEdit){
+ QLineEdit *curLineEdit = static_cast<QLineEdit*>(lineEdit);
+ Q_ASSERT(curLineEdit);
+ QSettings s;
+ if(mLastOpenedDir.isEmpty()){
+ mLastOpenedDir = s.value("paths/selecteddir", QDir::homePath()).toString();
+ }
+ QString file = QFileDialog::getOpenFileName(this, tr("Select cover"), mLastOpenedDir);
+ curLineEdit->setText(file);
+ if(!file.isEmpty()){
+ QFileInfo fi(file);
+ mLastOpenedDir = fi.absolutePath();
+ }
+}
diff --git a/addmoviewizard.h b/addmoviewizard.h
index adc293c..ba4816e 100644
--- a/addmoviewizard.h
+++ b/addmoviewizard.h
@@ -14,6 +14,7 @@
class QLineEdit;
class QSpinBox;
class QComboBox;
+class QPushButton;
class ActorWidget;
class AddMovieWizard : public QWizard {
@@ -58,4 +59,22 @@ class MovieGenrePage : public QWizardPage {
QComboBox *mGenre;
};
+class MovieCoverPage : public QWizardPage {
+ Q_OBJECT
+ public:
+ explicit MovieCoverPage(QWidget *parent = 0);
+
+ private slots:
+ void selectFile(QWidget *lineEdit);
+
+ private:
+ QLineEdit *mFrontCover;
+ QLineEdit *mBackCover;
+ QLineEdit *mGeneralCover;
+ QPushButton *mSelectFront;
+ QPushButton *mSelectBack;
+ QPushButton *mSelectGeneral;
+ QString mLastOpenedDir;
+};
+
#endif
diff --git a/archiveviewwidget.cpp b/archiveviewwidget.cpp
index 5c0c22c..1aad409 100644
--- a/archiveviewwidget.cpp
+++ b/archiveviewwidget.cpp
@@ -113,44 +113,6 @@ void ArchiveViewWidget::editCovers(){
void ArchiveViewWidget::addMovie(){
AddMovieWizard wiz(this);
wiz.exec();
- /*TextEnterDialog dlg(tr("Enter movie title"), this);
- dlg.exec();
- QString title;
- if(dlg.result() == QDialog::Accepted){
- title = dlg.text().toLower().trimmed();
- }else{
- return;
- }
- TextEnterDialog dlg2(tr("Enter series no. (Empty for none)"), this);
- dlg2.exec();
- int seriesno = -1;
- if(dlg2.result() == QDialog::Accepted){
- if(!dlg2.text().isEmpty()){
- bool success = false;
- int sn = dlg2.text().trimmed().toInt(&success);
- if(success){
- seriesno = sn;
- }
- }
- }else{
- return;
- }
-
- QList<QVariant> movieData;
- movieData << title;
- for(int i = 1; i < MovieItem::NumRows; ++i){
- movieData << QVariant();
- }
- QString md5(32, '0');
- movieData[MovieItem::Md5Sum] = md5;
- movieData[MovieItem::Genre] = mGenreModel->defaultId();
- movieData[MovieItem::Dvd] = -2;
- movieData[MovieItem::Filename] = tr("(DVD)");
- movieData[MovieItem::Size] = Q_INT64_C(4707319808);
- movieData[MovieItem::Quality] = 0;
- movieData[MovieItem::SeriesNo] = seriesno;
- movieData[MovieItem::PartNo] = -1;
- mMovieModel->addMovie(movieData, QList<QVariant>(), QList<CoverItem>());*/
}
void ArchiveViewWidget::showMovie(const QModelIndex &movie){