summaryrefslogtreecommitdiffstats
path: root/filestreemodel.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2011-05-22 09:41:36 +0200
committerArno <am@disconnect.de>2011-05-22 09:41:36 +0200
commit3699ffafe4864a1e20c8980a610d68756c37f5cf (patch)
tree9a8d41007382755ef60693044374c8cdc14962d9 /filestreemodel.cpp
parent47d30d5f4838a1980545c36308858efc7d5bde0d (diff)
downloadSheMov-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.cpp47
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;