From 175d243e0c0021e9f303474aa3088045a516a62c Mon Sep 17 00:00:00 2001 From: Arno Date: Wed, 10 Dec 2014 07:26:27 +0100 Subject: Weed out SeriesMetadataModel Delete last remnants of this class (includes and files). It's not needed any more. --- seriesmetadatamodel.cpp | 294 ------------------------------------------------ 1 file changed, 294 deletions(-) delete mode 100644 seriesmetadatamodel.cpp (limited to 'seriesmetadatamodel.cpp') 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 -#include -#include -#include -#include -#include -#include -#include -#include - -#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 SeriesMetadataModel::dataList(const QModelIndex &index) const{ - if(!index.isValid()){ - return QList(); - } - return mData; -} - -const QList SeriesMetadataModel::fieldList(int field, bool distinct) const{ - if(field >= mDataFields){ - return QList(); - } - 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 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(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 &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 &data){ - SmTreeItem *rootItem = new SmTreeItem(mColumns); - for(int i = 0; i < mDataFields; ++i){ - QList 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(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 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(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); -} -- cgit v1.2.3-70-g09d2