summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2013-07-12 12:49:54 +0200
committerArno <am@disconnect.de>2013-07-12 12:49:54 +0200
commit5b18830e0072d2d69b85697129be3e44d60f9235 (patch)
treefad3930e4e788f088956635180663d48060451f5
parent11032ae73ea103d97d9fefb1375b957fa505eeaa (diff)
downloadSheMov-5b18830e0072d2d69b85697129be3e44d60f9235.tar.gz
SheMov-5b18830e0072d2d69b85697129be3e44d60f9235.tar.bz2
SheMov-5b18830e0072d2d69b85697129be3e44d60f9235.zip
Use MetadataEditorWidget
Use MetadataEditorWidget in NewMovieWizard and test it. Works perfectly in NewMovieWizard and MetadataEditor.
-rw-r--r--newmoviewizard.cpp123
-rw-r--r--newmoviewizard.h23
2 files changed, 34 insertions, 112 deletions
diff --git a/newmoviewizard.cpp b/newmoviewizard.cpp
index e8b3712..ad74f41 100644
--- a/newmoviewizard.cpp
+++ b/newmoviewizard.cpp
@@ -151,7 +151,7 @@ void NewMovieWizard::accept(){
}
//files have landed
//handle actors
- MovieMappingPage *actorPage = static_cast<MovieMappingPage*>(page(1));
+ MovieMappingPage *actorPage = qobject_cast<MovieMappingPage*>(page(1));
QStringList actors = actorPage->widget()->items();
QSqlQuery actorIdQ(db);
actorIdQ.prepare("SELECT iactors_id FROM actors WHERE tactorname = :name");
@@ -185,7 +185,7 @@ void NewMovieWizard::accept(){
}
//actors are in place!
//handle genres
- MovieMappingPage *genrePage = static_cast<MovieMappingPage*>(page(2));
+ MovieMappingPage *genrePage = qobject_cast<MovieMappingPage*>(page(2));
QStringList genres = genrePage->widget()->items();
QSqlQuery genreIdQ(db);
genreIdQ.prepare("SELECT igenres_id FROM genres WHERE tgenrename = :name");
@@ -223,14 +223,16 @@ void NewMovieWizard::accept(){
if(isEnabled){
QSqlQuery insertMetadataQ(db);
insertMetadataQ.prepare("INSERT INTO metadata (iseriespart_id, sireleaseyear, tsourcemedium, tsubject, treleasegroup, tencoderopts, tcomment, sipasses, dadded) VALUES(:pid, :rely, :source, :sub, :group, :encopts, :comment, :passes, :added)");
+ MovieMetadataPage *metadataPage = qobject_cast<MovieMetadataPage*>(page(3));
+ QList<QVariant> metadata = metadataPage->widget()->metadata();
insertMetadataQ.bindValue(":pid", seriesPartId);
- insertMetadataQ.bindValue(":rely", field("year"));
- insertMetadataQ.bindValue(":source", mMetadataPage->sourceMedium());
- insertMetadataQ.bindValue(":sub", field("subject"));
- insertMetadataQ.bindValue(":group", mMetadataPage->releaseGroup());
- insertMetadataQ.bindValue(":encopts", field("encoder"));
- insertMetadataQ.bindValue(":comment", mMetadataPage->comment());
- insertMetadataQ.bindValue(":passes", field("passes"));
+ insertMetadataQ.bindValue(":rely", metadata.at(ArchiveModel::ReleaseYear));
+ insertMetadataQ.bindValue(":source", metadata.at(ArchiveModel::Source));
+ insertMetadataQ.bindValue(":sub", metadata.at(ArchiveModel::Subject));
+ insertMetadataQ.bindValue(":group", metadata.at(ArchiveModel::ReleaseGroup));
+ insertMetadataQ.bindValue(":encopts", metadata.at(ArchiveModel::EncoderOpts));
+ insertMetadataQ.bindValue(":comment", metadata.at(ArchiveModel::Comment));
+ insertMetadataQ.bindValue(":passes", metadata.at(ArchiveModel::Passes));
insertMetadataQ.bindValue(":added", QDate::currentDate());
if(!insertMetadataQ.exec()){
db.rollback();
@@ -426,111 +428,44 @@ void MovieMappingPage::initializePage(){
MovieMetadataPage::MovieMetadataPage(QWidget *parent) : QWizardPage(parent){
setTitle(tr("Edit movie metadata"));
setSubTitle(tr("Set the movie metadata here, as far as known"));
- mModel = static_cast<SeriesMetadataModel*>(SmGlobals::instance()->model("SeriesMetadata"));
+ //mModel = static_cast<SeriesMetadataModel*>(SmGlobals::instance()->model("SeriesMetadata"));
setupGui();
}
void MovieMetadataPage::setupGui(){
- QFormLayout *rowLayout = new QFormLayout;
- mReleaseYear = new QSpinBox;
- mReleaseYear->setMaximum(3000);
- mReleaseYear->setMinimum(1900);
- rowLayout->addRow(tr("Release year"), mReleaseYear);
- mReleaseGroup = new QComboBox;
- mPasses = new QSpinBox;
- rowLayout->addRow(tr("Encoding passes"), mPasses);
- mReleaseGroup->setEditable(true);
- rowLayout->addRow(tr("Release group"), mReleaseGroup);
- mSourceMedium = new QComboBox;
- mSourceMedium->setEditable(true);
- rowLayout->addRow(tr("Source medium"), mSourceMedium);
- mSubject = new QLineEdit;
- rowLayout->addRow(tr("Usenet subject"), mSubject);
- mEncoderOpts = new QLineEdit;
- rowLayout->addRow(tr("Encoder options"), mEncoderOpts);
- QVBoxLayout *commentLayout = new QVBoxLayout;
- QLabel *commentLabel = new QLabel(tr("Comment"));
- commentLayout->addWidget(commentLabel);
- mComment = new QPlainTextEdit;
- commentLayout->addWidget(mComment);
+ mWidget = new MetadataEditorWidget;
+
QHBoxLayout *enabledLayout = new QHBoxLayout;
enabledLayout->setAlignment(Qt::AlignRight);
mMetadataEnabled = new QCheckBox(tr("Enable metadata"));
enabledLayout->addWidget(mMetadataEnabled);
connect(mMetadataEnabled, SIGNAL(stateChanged(int)), this, SLOT(toggleMetadata(int)));
-
- mWidgets << mReleaseYear << mReleaseGroup << mSourceMedium << mSubject << mEncoderOpts << mComment << mPasses;
- toggleMetadata(Qt::Unchecked);
+ toggleMetadata(Qt::Unchecked);
+ registerField("enabled", mMetadataEnabled);
QVBoxLayout *mainLayout = new QVBoxLayout;
- mainLayout->addLayout(rowLayout);
- mainLayout->addLayout(commentLayout);
+ mainLayout->addWidget(mWidget);
mainLayout->addLayout(enabledLayout);
setLayout(mainLayout);
-
- //expose data
- registerField("year", mReleaseYear);
- registerField("passes", mPasses);
- registerField("group", mReleaseGroup);
- registerField("source", mSourceMedium);
- registerField("subject", mSubject);
- registerField("encoder", mEncoderOpts);
- registerField("comment", mComment);
- registerField("enabled", mMetadataEnabled);
}
void MovieMetadataPage::initializePage(){
- //release groups
- mReleaseGroup->clear();
- QSqlDatabase db = QSqlDatabase::database("treedb");
- db.open();
- QSqlQuery releaseGroupsQ("SELECT DISTINCT(treleasegroup) FROM metadata ORDER BY treleasegroup ASC", db);
- QStringList relGroups;
- while(releaseGroupsQ.next()){
- relGroups << releaseGroupsQ.value(0).toString();
- }
- mReleaseGroup->addItems(relGroups);
- int relg = mReleaseGroup->findText("unknown");
- if(relg != -1){
- mReleaseGroup->setCurrentIndex(relg);
- }
-
- //source mediums
- mSourceMedium->clear();
- QStringList sourceMediums;
- QSqlQuery sourceMediumsQ("SELECT DISTINCT(tsourcemedium) FROM metadata ORDER BY tsourcemedium ASC", db);
- while(sourceMediumsQ.next()){
- sourceMediums << sourceMediumsQ.value(0).toString();
- }
- mSourceMedium->addItems(sourceMediums);
- int uks = mSourceMedium->findText("unknown");
- if(uks != -1){
- mSourceMedium->setCurrentIndex(uks);
+ ArchiveController *c = SmGlobals::instance()->archiveController();
+ mWidget->setReleaseGroups(c->archiveTreeModel()->allReleaseGroups());
+ mWidget->setSources(c->archiveTreeModel()->allSources());
+ QList<QVariant> curMetadata;
+ for(int i = 0; i < ArchiveModel::MetadataNumFields; ++i){
+ curMetadata << QVariant();
}
- mReleaseYear->setValue(QDate::currentDate().year());
- mPasses->setValue(0);
- mSubject->clear();
- mEncoderOpts->clear();
- mComment->clear();
-}
-
-QString MovieMetadataPage::comment() const {
- return mComment->toPlainText();
-}
-
-QString MovieMetadataPage::releaseGroup() const {
- return mReleaseGroup->currentText();
-}
-
-QString MovieMetadataPage::sourceMedium() const {
- return mSourceMedium->currentText();
+ curMetadata[ArchiveModel::ReleaseYear] = QDate::currentDate().year();
+ curMetadata[ArchiveModel::Source] = "unknown";
+ curMetadata[ArchiveModel::ReleaseGroup] = "unknown";
+ curMetadata[ArchiveModel::Added] = QDate::currentDate();
+ mWidget->setMetadata(curMetadata);
}
void MovieMetadataPage::toggleMetadata(int state){
- bool isEnabled = (state == Qt::Checked);
- foreach(QWidget *w, mWidgets){
- w->setEnabled(isEnabled);
- }
+ mWidget->setEnabledAll(state == Qt::Checked);
}
WizardTreeModel::WizardTreeModel(QStringList &headers, QObject *parent) : SmTreeModel(headers, parent){
diff --git a/newmoviewizard.h b/newmoviewizard.h
index 99646ca..0aae2d2 100644
--- a/newmoviewizard.h
+++ b/newmoviewizard.h
@@ -27,6 +27,7 @@ class PictureViewer2;
class QCompleter;
class QStringListModel;
class MappingEditorWidget;
+class MetadataEditorWidget;
class NewMovieWizard : public QWizard {
Q_OBJECT
@@ -45,7 +46,6 @@ class NewMovieWizard : public QWizard {
MovieMappingPage *mActorPage;
MovieMappingPage *mGenrePage;
MovieMetadataPage *mMetadataPage;
-
};
class MovieInfoPage : public QWizardPage {
@@ -94,32 +94,19 @@ class MovieMappingPage : public QWizardPage {
class MovieMetadataPage : public QWizardPage {
Q_OBJECT
- Q_PROPERTY(QString comment READ comment);
- Q_PROPERTY(QString releaseGroup READ releaseGroup);
- Q_PROPERTY(QString sourceMedium READ sourceMedium);
public:
explicit MovieMetadataPage(QWidget *parent = 0);
- virtual ~MovieMetadataPage() {}
+ MetadataEditorWidget *widget() { return mWidget; }
virtual void initializePage();
- QString comment() const;
- QString releaseGroup() const;
- QString sourceMedium() const;
- private slots:
+ private slots:
void toggleMetadata(int state);
private:
void setupGui();
- SeriesMetadataModel *mModel;
- QSpinBox *mReleaseYear;
- QComboBox *mSourceMedium;
- QComboBox *mReleaseGroup;
- QLineEdit *mSubject;
- QLineEdit *mEncoderOpts;
- QSpinBox *mPasses;
- QPlainTextEdit *mComment;
+ /* defined in archiveview.h */
+ MetadataEditorWidget *mWidget;
QCheckBox *mMetadataEnabled;
- QList<QWidget*> mWidgets;
};
class WizardTreeModel : public SmTreeModel {