diff options
author | Arno <am@disconnect.de> | 2014-12-10 07:26:27 +0100 |
---|---|---|
committer | Arno <am@disconnect.de> | 2014-12-10 07:26:27 +0100 |
commit | 175d243e0c0021e9f303474aa3088045a516a62c (patch) | |
tree | 1f74b9ba413242cc298edd167fd749dcecac07c0 | |
parent | 0e27f8f8aaf1a0dbff9aed960e78f109517a387a (diff) | |
download | SheMov-175d243e0c0021e9f303474aa3088045a516a62c.tar.gz SheMov-175d243e0c0021e9f303474aa3088045a516a62c.tar.bz2 SheMov-175d243e0c0021e9f303474aa3088045a516a62c.zip |
Weed out SeriesMetadataModel
Delete last remnants of this class (includes and files). It's not needed
any more.
-rw-r--r-- | newmoviewizard.cpp | 1 | ||||
-rw-r--r-- | newmoviewizard.h | 1 | ||||
-rw-r--r-- | seriesmetadatamodel.cpp | 294 | ||||
-rw-r--r-- | seriesmetadatamodel.h | 102 | ||||
-rw-r--r-- | shemov.pro | 2 | ||||
-rw-r--r-- | smglobals.cpp | 7 |
6 files changed, 0 insertions, 407 deletions
diff --git a/newmoviewizard.cpp b/newmoviewizard.cpp index 9f350e0..f6f5cc0 100644 --- a/newmoviewizard.cpp +++ b/newmoviewizard.cpp @@ -29,7 +29,6 @@ #include "smtreeitem.h" #include "smglobals.h" #include "mappingtablemodel.h" -#include "seriesmetadatamodel.h" #include "delegates.h" #include "helper.h" #include "pictureviewer2.h" diff --git a/newmoviewizard.h b/newmoviewizard.h index b198267..af185ae 100644 --- a/newmoviewizard.h +++ b/newmoviewizard.h @@ -19,7 +19,6 @@ class QComboBox; class QCheckBox; class QPlainTextEdit; class QSortFilterProxyModel; -class SeriesMetadataModel; class WizardTreeModel; class MovieInfoPage; class MovieMappingPage; diff --git a/seriesmetadatamodel.cpp b/seriesmetadatamodel.cpp deleted file mode 100644 index 383c77b..0000000 --- a/seriesmetadatamodel.cpp +++ /dev/null @@ -1,294 +0,0 @@ -/* - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License - as published by the Free Software Foundation; either version - 2 of the License, or (at your option) any later version. -*/ - -#include <QSqlQuery> -#include <QtWidgets/QSpinBox> -#include <QtWidgets/QLineEdit> -#include <QtWidgets/QComboBox> -#include <QtWidgets/QPlainTextEdit> -#include <QtWidgets/QDateEdit> -#include <QtWidgets/QFormLayout> -#include <QtWidgets/QLabel> -#include <QtWidgets/QGroupBox> - -#include "seriesmetadatamodel.h" -#include "smtreeitem.h" -#include "smtreeview.h" -#include "smglobals.h" -#include "helper.h" - -SeriesMetadataModel::SeriesMetadataModel(const QStringList &headers, QObject *parent) : SmTreeModel(headers, parent), mColumns(3), mDataFields(8), mCurrentId(-1){ - //setup database - mDb = QSqlDatabase::database("treedb"); - mPopulateQuery = new QSqlQuery(mDb); - mPopulateQuery->prepare("SELECT sireleaseyear, tsourcemedium, tsubject, treleasegroup, tencoderopts, tcomment, sipasses, dadded FROM metadata WHERE iseriespart_id = :id"); - mPresentQuery = new QSqlQuery(mDb); - mPresentQuery->prepare("SELECT COUNT(*) FROM metadata WHERE iseriespart_id = :id"); - mUpdateAllQuery = new QSqlQuery(mDb); - mUpdateAllQuery->prepare("UPDATE metadata SET sireleaseyear = :year, tsourcemedium = :source, tsubject = :subject, treleasegroup = :group, tencoderopts = :encopts, tcomment = :comment, sipasses = :passes, dadded = :added WHERE iseriespart_id = :id"); - mInsertQuery = new QSqlQuery(mDb); - mInsertQuery->prepare("INSERT INTO metadata (iseriespart_id, sireleaseyear, tsourcemedium, tsubject, treleasegroup, tencoderopts, tcomment, sipasses, dadded) VALUES(:id, :year, :source, :subject, :group, :encopts, :comment, :passes, :added)"); - - //misc - mDbColumnNames.insert(ReleaseYear, "sireleaseyear"); - mDbColumnNames.insert(SourceMedium, "tsourcemedium"); - mDbColumnNames.insert(Subject, "tsubject"); - mDbColumnNames.insert(ReleaseGroup, "treleasegroup"); - mDbColumnNames.insert(EncoderOpts, "tencoderopts"); - mDbColumnNames.insert(Comment, "tcomment"); - mDbColumnNames.insert(Passes, "sipasses"); - mDbColumnNames.insert(Added, "dadded"); - - for(int i = 0; i < mDataFields; ++i){ - mData << QVariant(); - } - mDisplayColumnNames.insert(ReleaseYear, "Release year"); - mDisplayColumnNames.insert(SourceMedium, "Source medium"); - mDisplayColumnNames.insert(Subject, "Usenet subject"); - mDisplayColumnNames.insert(ReleaseGroup, "Release group"); - mDisplayColumnNames.insert(EncoderOpts, "Encoder options"); - mDisplayColumnNames.insert(Comment, "Comment"); - mDisplayColumnNames.insert(Passes, "Encoding passes"); - mDisplayColumnNames.insert(Added, "Date added"); -} - -QVariant SeriesMetadataModel::data(int column) const { - if((column < 0 ) || (column >= mDataFields)){ - return QVariant(); - } - return mData.at(column); -} - -const QList<QVariant> SeriesMetadataModel::dataList(const QModelIndex &index) const{ - if(!index.isValid()){ - return QList<QVariant>(); - } - return mData; -} - -const QList<QVariant> SeriesMetadataModel::fieldList(int field, bool distinct) const{ - if(field >= mDataFields){ - return QList<QVariant>(); - } - QString queryTempl; - if(distinct){ - queryTempl = QString("SELECT DISTINCT(%1) FROM metadata ORDER BY %1").arg(mDbColumnNames.value(field)); - }else{ - queryTempl = QString("SELECT %1 FROM metadata ORDER BY %1").arg(mDbColumnNames.value(field)); - } - QList<QVariant> retval; - QSqlQuery query(queryTempl, mDb); - while(query.next()){ - retval << query.value(0); - } - return retval; -} - -bool SeriesMetadataModel::setData(const QModelIndex &index, const QVariant &value, int role){ - if(!index.isValid()){ - return false; - } - if(index.row() >= mDataFields){ - return false; - } - if(role != Qt::EditRole){ - return false; - } - SmTreeItem *item = static_cast<SmTreeItem*>(index.internalPointer()); - Q_ASSERT(item); - item->setData(index.column(), value); - mData[item->data(2).toInt()] = value; - update(); - return true; -} - -void SeriesMetadataModel::setAllData(int seriesId, const QList<QVariant> &data){ - if(data.size() != mDataFields){ - return; - } - mCurrentId = seriesId; - mData = data; - createTree(mData); - update(); -} - -bool SeriesMetadataModel::hasRecord(int seriesPartId) const{ - int count = -1; - mPresentQuery->bindValue(":id", seriesPartId); - if(mPresentQuery->exec()){ - while(mPresentQuery->next()){ - count = mPresentQuery->value(0).toInt(); - } - } - return (count > 0); -} - -Qt::ItemFlags SeriesMetadataModel::flags(const QModelIndex &index) const{ - Qt::ItemFlags retval; - retval |= Qt::ItemIsEnabled | Qt::ItemIsSelectable; - if(index.column() == 1){ - retval |= Qt::ItemIsEditable; - } - return retval; -} - -void SeriesMetadataModel::populate(int seriesPartId){ - mCurrentId = seriesPartId; - if(hasRecord(seriesPartId)){ - mPopulateQuery->bindValue(":id", seriesPartId); - if(mPopulateQuery->exec()){ - while(mPopulateQuery->next()){ - for(int i = 0; i < mDataFields; ++i){ - mData[i] = mPopulateQuery->value(i); - } - - } - } - }else{ - for(int i = 0; i < numFields(); ++i){ - mData[i] = QVariant(); - } - } - createTree(mData); -} - -void SeriesMetadataModel::update(){ - QSqlQuery *query; - if(hasRecord(mCurrentId)){ - query = mUpdateAllQuery; - }else{ - query = mInsertQuery; - } - query->bindValue(":id", mCurrentId); - query->bindValue(":year", mData.at(ReleaseYear)); - query->bindValue(":source", mData.at(SourceMedium)); - query->bindValue(":subject", mData.at(Subject)); - query->bindValue(":group", mData.at(ReleaseGroup)); - query->bindValue(":encopts", mData.at(EncoderOpts)); - query->bindValue(":comment", mData.at(Comment)); - query->bindValue(":passes", mData.at(Passes)); - query->bindValue(":added", mData.at(Added)); - query->exec(); -} - -void SeriesMetadataModel::createTree(const QList<QVariant> &data){ - SmTreeItem *rootItem = new SmTreeItem(mColumns); - for(int i = 0; i < mDataFields; ++i){ - QList<QVariant> itemData; - itemData << mDisplayColumnNames.value(i) << data.at(i) << i; - SmTreeItem *item = new SmTreeItem(itemData, rootItem); - rootItem->appendChild(item); - } - setRoot(rootItem); -} - -MetadataWidget::MetadataWidget(QWidget *parent, Qt::WindowFlags f) : QWidget(parent, f){ - //model - mModel = static_cast<SeriesMetadataModel*>(SmGlobals::instance()->model("SeriesMetadata")); - - //layout - QFormLayout *rowLayout = new QFormLayout; - mReleaseYear = new QSpinBox; - mReleaseYear->setMaximum(3000); - mReleaseYear->setMinimum(1900); - rowLayout->addRow(mModel->columnName(SeriesMetadataModel::ReleaseYear), mReleaseYear); - mReleaseGroup = new QComboBox; - mPasses = new QSpinBox; - rowLayout->addRow(mModel->columnName(SeriesMetadataModel::Passes), mPasses); - mReleaseGroup->setEditable(true); - rowLayout->addRow(mModel->columnName(SeriesMetadataModel::ReleaseGroup), mReleaseGroup); - mSourceMedium = new QComboBox; - mSourceMedium->setEditable(true); - rowLayout->addRow(mModel->columnName(SeriesMetadataModel::SourceMedium), mSourceMedium); - mSubject = new QLineEdit; - rowLayout->addRow(mModel->columnName(SeriesMetadataModel::Subject), mSubject); - mEncoderOpts = new QLineEdit; - rowLayout->addRow(mModel->columnName(SeriesMetadataModel::EncoderOpts), mEncoderOpts); - mAdded = new QDateEdit(QDate::currentDate()); - rowLayout->addRow(mModel->columnName(SeriesMetadataModel::Added), mAdded); - QVBoxLayout *commentLayout = new QVBoxLayout; - QLabel *commentLabel = new QLabel(mModel->columnName(SeriesMetadataModel::Comment)); - commentLayout->addWidget(commentLabel); - mComment = new QPlainTextEdit; - commentLayout->addWidget(mComment); - QVBoxLayout *mainLayout = new QVBoxLayout; - mainLayout->addLayout(rowLayout); - mainLayout->addLayout(commentLayout); - setLayout(mainLayout); - - //init widgets - QStringList relGroups = Helper::toStringList(mModel->fieldList(SeriesMetadataModel::ReleaseGroup)); - mReleaseGroup->addItems(relGroups); - QStringList sources = Helper::toStringList(mModel->fieldList(SeriesMetadataModel::SourceMedium)); - mSourceMedium->addItems(sources); -} - -void MetadataWidget::setSeriesPartId(int id){ - if(!mModel->hasRecord(id)){ - return; - } - mModel->populate(id); - mReleaseYear->setValue(mModel->data(SeriesMetadataModel::ReleaseYear).toInt()); - mPasses->setValue(mModel->data(SeriesMetadataModel::Passes).toInt()); - mSubject->setText(mModel->data(SeriesMetadataModel::Subject).toString()); - mEncoderOpts->setText(mModel->data(SeriesMetadataModel::EncoderOpts).toString()); - mComment->setPlainText(mModel->data(SeriesMetadataModel::Comment).toString()); - mAdded->setDate(mModel->data(SeriesMetadataModel::Added).toDate()); - int relGroupIdx = mReleaseGroup->findText(mModel->data(SeriesMetadataModel::ReleaseGroup).toString()); - if(relGroupIdx != -1){ - mReleaseGroup->setCurrentIndex(relGroupIdx); - } - int sourceMediumIdx = mSourceMedium->findData(mModel->data(SeriesMetadataModel::SourceMedium).toString()); - if(sourceMediumIdx != -1){ - mSourceMedium->setCurrentIndex(sourceMediumIdx); - } -} - -void MetadataWidget::accept(){ - QList<QVariant> metaData; - for(int i = 0; i < mModel->numFields(); ++i){ - metaData << QVariant(); - } - - metaData[SeriesMetadataModel::ReleaseYear] = mReleaseYear->value(); - metaData[SeriesMetadataModel::Subject] = mSubject->text(); - metaData[SeriesMetadataModel::EncoderOpts] = mEncoderOpts->text(); - metaData[SeriesMetadataModel::Passes] = mPasses->value(); - metaData[SeriesMetadataModel::SourceMedium] = mSourceMedium->currentText(); - metaData[SeriesMetadataModel::ReleaseGroup] = mReleaseGroup->currentText(); - metaData[SeriesMetadataModel::Comment] = mComment->toPlainText(); - metaData[SeriesMetadataModel::Added] = mAdded->date(); - mModel->setAllData(mModel->currentId(), metaData); -} - -MetadataDisplay::MetadataDisplay(QWidget *parent) : QWidget(parent){ - //model - mModel = static_cast<SeriesMetadataModel*>(SmGlobals::instance()->model("SeriesMetadata")); - - //display - QGroupBox *gb = new QGroupBox(tr("Metadata")); - QHBoxLayout *gbLayout = new QHBoxLayout; - mDisplay = new SmTreeView; - mDisplay->setModel(mModel); - mDisplay->setSelectionBehavior(QAbstractItemView::SelectRows); - mDisplay->setAlternatingRowColors(true); - mDisplay->setHeaderHidden(true); - gbLayout->addWidget(mDisplay); - gb->setLayout(gbLayout); - - //laoyut - QVBoxLayout *mainLayout = new QVBoxLayout; - mainLayout->addWidget(gb); - setLayout(mainLayout); -} - -void MetadataDisplay::setSeriesPartId(int seriesPartId){ - mModel->populate(seriesPartId); - mDisplay->setColumnHidden(2, true); - mDisplay->resizeColumnToContents(0); - mDisplay->resizeColumnToContents(1); -} diff --git a/seriesmetadatamodel.h b/seriesmetadatamodel.h deleted file mode 100644 index 8c25c6b..0000000 --- a/seriesmetadatamodel.h +++ /dev/null @@ -1,102 +0,0 @@ -/* - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License - as published by the Free Software Foundation; either version - 2 of the License, or (at your option) any later version. -*/ - -#ifndef SERIESMETADATAMODEL_H -#define SERIESMETADATAMODEL_H - -#include <QSqlDatabase> -#include <QHash> -#include <QtWidgets/QWidget> - -class QSqlQuery; -class QSpinBox; -class QComboBox; -class QLineEdit; -class QPlainTextEdit; -class QDateEdit; -class QLabel; -class SmTreeView; - -#include "smtreemodel.h" - -class SeriesMetadataModel : public SmTreeModel { - Q_OBJECT - public: - enum Fields { ReleaseYear = 0, SourceMedium = 1, Subject = 2, ReleaseGroup = 3, EncoderOpts = 4, Comment = 5, Passes = 6, Added = 7 }; - explicit SeriesMetadataModel(const QStringList &headers, QObject *parent = 0); - - //data - int currentId() const { return mCurrentId; } - int numFields() const { return mDataFields; } - virtual QVariant data(int column) const; - const QList<QVariant> dataList(const QModelIndex &index) const; - const QList<QVariant> fieldList(int field, bool distinct = true) const; - virtual bool setData(const QModelIndex &index, const QVariant &value, int role); - void setAllData(int seriesId, const QList<QVariant> &data); - const QString columnName(int column) const { return mDisplayColumnNames.value(column); } - - //misc - bool hasRecord(int seriesPartId) const; - Qt::ItemFlags flags(const QModelIndex &index) const; - - public slots: - void populate(int seriesPartId); - void update(); - - private: - void createTree(const QList<QVariant> &data); - const int mColumns; - const int mDataFields; - int mCurrentId; - QSqlDatabase mDb; - QSqlQuery *mPopulateQuery; - QSqlQuery *mPresentQuery; - QSqlQuery *mUpdateAllQuery; - QSqlQuery *mInsertQuery; - QHash<int, QString> mDbColumnNames; - QHash<int, QString> mDisplayColumnNames; - QList<QVariant> mData; -}; - -class MetadataWidget : public QWidget { - Q_OBJECT - public: - explicit MetadataWidget(QWidget *parent = 0, Qt::WindowFlags f = 0); - virtual ~MetadataWidget() {} - - public slots: - void setSeriesPartId(int id); - void accept(); - - private: - QSpinBox *mReleaseYear; - QComboBox *mSourceMedium; - QComboBox *mReleaseGroup; - QLineEdit *mSubject; - QLineEdit *mEncoderOpts; - QSpinBox *mPasses; - QPlainTextEdit *mComment; - QDateEdit *mAdded; - SeriesMetadataModel *mModel; -}; - -class MetadataDisplay : public QWidget { - Q_OBJECT - public: - explicit MetadataDisplay(QWidget *parent = 0); - virtual ~MetadataDisplay() {} - - public slots: - void setSeriesPartId(int seriesId); - - private: - SeriesMetadataModel *mModel; - SmTreeView *mDisplay; - -}; - -#endif // SERIESMETADATAMODEL_H @@ -25,7 +25,6 @@ SOURCES = main.cpp \ filepropertiesdialog.cpp \ hoverwindow.cpp \ consistencycheck.cpp \ - seriesmetadatamodel.cpp \ mappingtableeditor.cpp \ smdialog.cpp \ dbanalyzer.cpp \ @@ -65,7 +64,6 @@ HEADERS = \ filepropertiesdialog.h \ hoverwindow.h \ consistencycheck.h \ - seriesmetadatamodel.h \ mappingtableeditor.h \ smdialog.h \ dbanalyzer.h \ diff --git a/smglobals.cpp b/smglobals.cpp index 624effc..5c56855 100644 --- a/smglobals.cpp +++ b/smglobals.cpp @@ -23,7 +23,6 @@ #include "smglobals.h" #include "archivemodel.h" #include "mappingtablemodel.h" -#include "seriesmetadatamodel.h" #include "mappingtreemodel.h" #include "pictureviewer2.h" #include "picfilesmodel.h" @@ -74,12 +73,6 @@ QAbstractItemModel *SmGlobals::model(const QString &which){ MappingTableModel *model = new MappingTableModel(headers, "genres"); mModels.insert(which, model); } - }else if(which == "SeriesMetadata"){ - if(!mModels.contains(which)){ - QStringList headers = QStringList() << tr("SeriesPartId") << tr("Release Year") << tr("Source Medium") << tr("Subject") << tr("Release Group") << tr("Encoder Options") << tr("Comment") << tr("Encoding Passes") << tr("Added"); - SeriesMetadataModel *model = new SeriesMetadataModel(headers); - mModels.insert(which, model); - } }else if(which == "MappingTree"){ if(!mModels.contains("MappingTree")){ QStringList headers = QStringList() << tr("Name") << tr("Id") << tr("Date") << tr("Parent") << tr("PPID"); |