diff options
author | Arno <am@disconnect.de> | 2011-05-22 09:41:36 +0200 |
---|---|---|
committer | Arno <am@disconnect.de> | 2011-05-22 09:41:36 +0200 |
commit | 3699ffafe4864a1e20c8980a610d68756c37f5cf (patch) | |
tree | 9a8d41007382755ef60693044374c8cdc14962d9 /filestreemodel.cpp | |
parent | 47d30d5f4838a1980545c36308858efc7d5bde0d (diff) | |
download | SheMov-3699ffafe4864a1e20c8980a610d68756c37f5cf.tar.gz SheMov-3699ffafe4864a1e20c8980a610d68756c37f5cf.tar.bz2 SheMov-3699ffafe4864a1e20c8980a610d68756c37f5cf.zip |
Propagate changes from SeriesTreeModel::IsLocaL
Propagate changes to SeriesTreeModel::IsLocal to all attached views.
For some reason this wasn't as easy as I thought...
Diffstat (limited to 'filestreemodel.cpp')
-rw-r--r-- | filestreemodel.cpp | 47 |
1 files changed, 13 insertions, 34 deletions
diff --git a/filestreemodel.cpp b/filestreemodel.cpp index 5b776dc..e6bfde5 100644 --- a/filestreemodel.cpp +++ b/filestreemodel.cpp @@ -25,7 +25,7 @@ #include "seriestreemodel.h" #include "smglobals.h" -FilesTreeModel::FilesTreeModel(QStringList &headers, QObject *parent) : SmTreeModel(headers, parent), mMode(Normal), mMagic(0xAABBCCDD){ +FilesTreeModel::FilesTreeModel(QStringList &headers, QObject *parent) : SmTreeModel(headers, parent), /*mMode(Normal),*/ mMagic(0xAABBCCDD){ //database setup mDb = QSqlDatabase::database("treedb"); mUpdateDvdQuery = new QSqlQuery(mDb); @@ -55,11 +55,6 @@ FilesTreeModel::FilesTreeModel(QStringList &headers, QObject *parent) : SmTreeMo mCoverTypes = mFileTypes; mCoverTypes.remove(1); - //mode names - mModeNames.insert(Normal, "Normal"); - mModeNames.insert(Archived, "Archived"); - mModeNames.insert(Local, "Local"); - //misc mSeriesModel = static_cast<SeriesTreeModel*>(SmGlobals::instance()->model("SeriesModel")); readCache(); @@ -81,13 +76,6 @@ FilesTreeModel::~FilesTreeModel(){ mDb = QSqlDatabase(); } -const QString FilesTreeModel::modeName(int mode) const{ - if(mode == -1){ - return QString(); - } - return mModeNames.value(mode); -} - void FilesTreeModel::setIds(const QList<int> &seriesPartIds){ QStringList ids; foreach(int s, seriesPartIds){ @@ -99,25 +87,6 @@ void FilesTreeModel::setIds(const QList<int> &seriesPartIds){ populate(filesQuery); } -void FilesTreeModel::setMode(int mode){ - QSqlQuery modeQuery(mDb); - bool queryOk = false; - switch(mode){ - case Local: - queryOk = modeQuery.prepare("SELECT iseriespart_id, tfilename, cmd5sum, bisize, idvd, sifiletype, sifileno, siquality, ifiles_id, series.tseries_name, seriesparts.iseriespart, seriesparts.bfavorite FROM files, seriesparts, series WHERE files.idvd = -1 AND files.sifiletype = 1 AND files.iseriespart_id = seriesparts.iseriesparts_id AND seriesparts.iseries_id = series.iseries_id"); - break; - case Archived: - queryOk = modeQuery.prepare("SELECT iseriespart_id, tfilename, cmd5sum, bisize, idvd, sifiletype, sifileno, siquality, ifiles_id, series.tseries_name, seriesparts.iseriespart, seriesparts.bfavorite FROM files, seriesparts, series WHERE files.idvd != -1 AND files.iseriespart_id = seriesparts.iseriesparts_id AND seriesparts.iseries_id = series.iseries_id"); - break; - default: - ; - } - if(queryOk){ - populate(modeQuery); - } - mMode = mode; -} - QVariant FilesTreeModel::data(const QModelIndex &index, int role) const{ if(!index.isValid()){ return QVariant(); @@ -159,7 +128,7 @@ QVariant FilesTreeModel::data(const QModelIndex &index, int role) const{ return item->data(index.column()); } if(role == Qt::ToolTipRole){ - if((mMode == Archived) && (item->data(FileType) == Movie)){ + if((mMode == SeriesTreeModel::Archived) && (item->data(FileType) == Movie)){ int seriesPartId = item->data(SeriesPartId).toInt(); int seriesId = mSeriesModel->seriesIdByPartId(seriesPartId); if(seriesId != -1){ @@ -275,6 +244,16 @@ bool FilesTreeModel::setData(const QModelIndex &index, const QVariant &value, in mUpdateDvdQuery->bindValue(":dvd", value); if(mUpdateDvdQuery->exec()){ item->setData(DvdNo, value); + bool isLocal = (value.toInt() == -1) ? true : false; + if(mode() == SeriesTreeModel::Local){ + if(!isLocal){ + removeRow(index.row(), index.parent()); + } + }else if(mode() == SeriesTreeModel::Archived){ + if(isLocal){ + removeRow(index.row(), index.parent()); + } + } return true; } } @@ -331,7 +310,7 @@ Qt::ItemFlags FilesTreeModel::flags(const QModelIndex &index) const{ if(mEditableColumns.values().contains(index.column())){ retval |= Qt::ItemIsEditable; } - if(mode() == Local){ + if(mode() == SeriesTreeModel::Local){ if(index.data(FavoriteRole).toBool() == true){ int inverse = ~Qt::ItemIsSelectable; retval &= inverse; |