summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2013-07-12 11:22:17 +0200
committerArno <am@disconnect.de>2013-07-12 11:22:17 +0200
commitcbba8c474d5e90c4af05783e012415102f162c0e (patch)
tree8b1dc2972beb70d0bbc16e7165d23638b22be1bf
parent96df0c7b20a6f3e8c118d373f52193f71ab4b521 (diff)
downloadSheMov-cbba8c474d5e90c4af05783e012415102f162c0e.tar.gz
SheMov-cbba8c474d5e90c4af05783e012415102f162c0e.tar.bz2
SheMov-cbba8c474d5e90c4af05783e012415102f162c0e.zip
Use MappingEditorWidget in NewMovieWizard
-rw-r--r--archiveview.cpp15
-rw-r--r--archiveview.h4
-rw-r--r--newmoviewizard.cpp22
-rw-r--r--newmoviewizard.h7
4 files changed, 33 insertions, 15 deletions
diff --git a/archiveview.cpp b/archiveview.cpp
index 1d0502a..2521113 100644
--- a/archiveview.cpp
+++ b/archiveview.cpp
@@ -395,10 +395,10 @@ QWidget *FileTypeDelegate::createEditor(QWidget *parent, const QStyleOptionViewI
/* Mapping Editor Widget */
-MappingEditorWidget::MappingEditorWidget(const QString &caption, QWidget *parent) : QWidget(parent){
+MappingEditorWidget::MappingEditorWidget(const QString &caption, QWidget *parent) : QWidget(parent), mCaption(caption){
// the view
mModel = new QStandardItemModel(this);
- mModel->setHorizontalHeaderLabels(QStringList() << caption);
+ mModel->setHorizontalHeaderItem(0, new QStandardItem(mCaption));
mProxy = new QSortFilterProxyModel(this);
mProxy->setSourceModel(mModel);
QVBoxLayout *viewLayout = new QVBoxLayout;
@@ -420,10 +420,11 @@ MappingEditorWidget::MappingEditorWidget(const QString &caption, QWidget *parent
// edit buttons
QHBoxLayout *editButtonLayout = new QHBoxLayout;
- mRemove = new QPushButton(tr("Remove"));
+ editButtonLayout->addStretch();
+ mRemove = new QPushButton(tr("&Remove"));
connect(mRemove, SIGNAL(clicked()), this, SLOT(removeItem()));
editButtonLayout->addWidget(mRemove);
- mAdd = new QPushButton(tr("Add"));
+ mAdd = new QPushButton(tr("&Add"));
connect(mAdd, SIGNAL(clicked()), this, SLOT(addItem()));
editButtonLayout->addWidget(mAdd);
@@ -456,6 +457,12 @@ QStringList MappingEditorWidget::items() const{
return retval;
}
+void MappingEditorWidget::clear(){
+ mModel->clear();
+ mModel->setHorizontalHeaderItem(0, new QStandardItem(mCaption));
+ mEditor->clear();
+}
+
void MappingEditorWidget::addItem(){
QString itemName = mEditor->text();
if(itemName.isEmpty()){
diff --git a/archiveview.h b/archiveview.h
index 36c3eb4..ed19e4e 100644
--- a/archiveview.h
+++ b/archiveview.h
@@ -144,6 +144,9 @@ class MappingEditorWidget : public QWidget {
void setCurrentItems(const QStringList &items);
QStringList items() const;
+ public slots:
+ void clear();
+
private slots:
void addItem();
void removeItem();
@@ -157,6 +160,7 @@ class MappingEditorWidget : public QWidget {
QLineEdit *mEditor;
QCompleter *mCompleter;
QStringListModel *mCompleterModel;
+ QString mCaption;
};
/* dialog putting MappingEditorWidget and
diff --git a/newmoviewizard.cpp b/newmoviewizard.cpp
index 8e4e684..e8b3712 100644
--- a/newmoviewizard.cpp
+++ b/newmoviewizard.cpp
@@ -40,8 +40,8 @@
NewMovieWizard::NewMovieWizard(QWidget *parent) : QWizard(parent){
mInfoPage = new MovieInfoPage;
- mActorPage = new MovieMappingPage("actors");
- mGenrePage = new MovieMappingPage("genres");
+ mActorPage = new MovieMappingPage("Actors");
+ mGenrePage = new MovieMappingPage("Genres");
mMetadataPage = new MovieMetadataPage;
addPage(mInfoPage);
addPage(mActorPage);
@@ -152,8 +152,7 @@ void NewMovieWizard::accept(){
//files have landed
//handle actors
MovieMappingPage *actorPage = static_cast<MovieMappingPage*>(page(1));
- MappingTableItemModel *actorItemModel = actorPage->model();
- QStringList actors = actorItemModel->stringList();
+ QStringList actors = actorPage->widget()->items();
QSqlQuery actorIdQ(db);
actorIdQ.prepare("SELECT iactors_id FROM actors WHERE tactorname = :name");
QSqlQuery insertActorQ(db);
@@ -187,8 +186,7 @@ void NewMovieWizard::accept(){
//actors are in place!
//handle genres
MovieMappingPage *genrePage = static_cast<MovieMappingPage*>(page(2));
- MappingTableItemModel *genreItemModel = genrePage->model();
- QStringList genres = genreItemModel->stringList();
+ QStringList genres = genrePage->widget()->items();
QSqlQuery genreIdQ(db);
genreIdQ.prepare("SELECT igenres_id FROM genres WHERE tgenrename = :name");
QSqlQuery insertGenreQ(db);
@@ -402,13 +400,13 @@ void MovieInfoPage::removeFile(){
mFileModel->removeRows(selected.at(0).row(), 1, selected.at(0).parent());
}
-MovieMappingPage::MovieMappingPage(const QString &table, QWidget *parent) : QWizardPage(parent){
+MovieMappingPage::MovieMappingPage(const QString &table, QWidget *parent) : QWizardPage(parent), mTable(table){
QString title = QString(tr("Edit %1")).arg(table);
QString subTitle = QString(tr("Edit %1 by adding them from the text field below")).arg(table);
setTitle(title);
setSubTitle(subTitle);
- mWidget = new MappingTableWidget(table);
+ mWidget = new MappingEditorWidget(table);
QHBoxLayout *mainLayout = new QHBoxLayout;
mainLayout->addWidget(mWidget);
@@ -416,7 +414,13 @@ MovieMappingPage::MovieMappingPage(const QString &table, QWidget *parent) : QWiz
}
void MovieMappingPage::initializePage(){
- model()->setStringList(QStringList());
+ ArchiveController *c = SmGlobals::instance()->archiveController();
+ if(mTable.toLower() == "actors"){
+ mWidget->fillCompleter(c->archiveTreeModel()->allActors());
+ }else if(mTable.toLower() == "genres"){
+ mWidget->fillCompleter(c->archiveTreeModel()->allGenres());
+ }
+ mWidget->clear();
}
MovieMetadataPage::MovieMetadataPage(QWidget *parent) : QWizardPage(parent){
diff --git a/newmoviewizard.h b/newmoviewizard.h
index dbba1c6..99646ca 100644
--- a/newmoviewizard.h
+++ b/newmoviewizard.h
@@ -26,6 +26,7 @@ class MovieMetadataPage;
class PictureViewer2;
class QCompleter;
class QStringListModel;
+class MappingEditorWidget;
class NewMovieWizard : public QWizard {
Q_OBJECT
@@ -82,11 +83,13 @@ class MovieMappingPage : public QWizardPage {
Q_OBJECT
public:
explicit MovieMappingPage(const QString &table, QWidget *parent = 0);
- MappingTableItemModel *model() { return mWidget->model(); }
+ MappingEditorWidget *widget() { return mWidget; }
virtual void initializePage();
private:
- MappingTableWidget *mWidget;
+ /* defined in archiveview.h */
+ MappingEditorWidget *mWidget;
+ QString mTable;
};
class MovieMetadataPage : public QWizardPage {