diff options
Diffstat (limited to 'smdirmodel.cpp')
-rw-r--r-- | smdirmodel.cpp | 69 |
1 files changed, 11 insertions, 58 deletions
diff --git a/smdirmodel.cpp b/smdirmodel.cpp index b520d07..4f6968a 100644 --- a/smdirmodel.cpp +++ b/smdirmodel.cpp @@ -26,11 +26,7 @@ SmDirModel::SmDirModel(const QStringList &headers, QObject *parent) : SmTreeMode mRefreshTimer = new QTimer(this); readSettings(); - connect(this, SIGNAL(modelReset()), mWatch, SLOT(startAsyncJobs())); connect(mWatch, SIGNAL(population(SmTreeItem*)), this, SLOT(populate(SmTreeItem*))); - connect(mWatch, SIGNAL(setMd5Sum(QString,QString)), this, SLOT(setMd5Sum(QString,QString))); - connect(mWatch, SIGNAL(setFfmpeg(QString,QVariantMap)), this, SLOT(setFfmpeg(QString,QVariantMap))); - connect(mWatch, SIGNAL(setPicSize(QString,QVariant)), this, SLOT(setPicSize(QString,QVariant))); connect(mWatch, SIGNAL(newData(QList<QVariant>,int)), this, SLOT(dirEvent(QList<QVariant>,int))); } @@ -78,8 +74,15 @@ QVariant SmDirModel::data(const QModelIndex &index, int role) const{ } } case Qt::ForegroundRole: - if(index.column() == 0 && i->data(Present).toInt() > 0){ - return QVariant(QColor(Qt::darkGreen)); + if(index.column() == 0){ + if((i->data(Present).toInt() == InFiles) || (i->data(Present).toInt() == InPictures)){ + return QVariant(QColor(Qt::darkGreen)); + } + else if(i->data(Present).toInt() == InOrigin){ + return QVariant(QColor(Qt::darkRed)); + }else{ + return SmTreeModel::data(index, role); + } } return SmTreeModel::data(index, role); default: @@ -150,13 +153,10 @@ void SmDirModel::dirEvent(const QList<QVariant> &data, int e){ if(e == SmDirWatcher::Deleted){ removeRow(idx.row()); } - if(e == SmDirWatcher::Modified || e == SmDirWatcher::CloseWrite){ + if(e == SmDirWatcher::CloseWrite){ for(int i = 0; i < mHeaders.count(); ++i){ QModelIndex c = index(idx.row(), i, QModelIndex()); setData(c, data.at(i), Qt::EditRole); - if(e == SmDirWatcher::CloseWrite){ - mWatch->gatherAsync(data.at(FullPath).toString()); - } } } } @@ -183,53 +183,9 @@ void SmDirModel::refresh(){ setDir(mCurrentDir); } -void SmDirModel::setMd5Sum(QString path, QString md5){ - QModelIndex idx = find(path, FullPath); - if(idx.isValid()){ - QModelIndex md5Idx = createIndex(idx.column(), Md5sum, idx.internalPointer()); - setData(md5Idx, md5, Qt::EditRole); - QString mimeType = idx.data(TypeRole).toString(); - int present = 0; - QSqlQuery presentQ(mDb); - if(mimeType.startsWith("video")){ - presentQ.prepare("SELECT COUNT(*) FROM files WHERE cmd5sum = :md5"); - }else if(mimeType.startsWith("image")){ - presentQ.prepare("SELECT COUNT(*) FROM pics WHERE cmd5sum = :md5"); - }else{ - return; - } - presentQ.bindValue(":md5", md5); - presentQ.exec(); - while(presentQ.next()){ - present = presentQ.value(0).toInt(); - } - if(present){ - QModelIndex presentIdx = createIndex(idx.column(), Present, idx.internalPointer()); - setData(presentIdx, present, Qt::EditRole); - } - } -} - -void SmDirModel::setFfmpeg(QString path, QVariantMap data){ - QModelIndex idx = find(path, FullPath); - if(idx.isValid()){ - QModelIndex durIdx = createIndex(idx.column(), DurSize, idx.internalPointer()); - setData(durIdx, data["duration"].toDouble(), Qt::EditRole); - QModelIndex bitrateIdx = createIndex(idx.column(), Bitrate, idx.internalPointer()); - setData(bitrateIdx, data["bit_rate"], Qt::EditRole); - } -} - -void SmDirModel::setPicSize(QString path, QVariant data){ - QModelIndex idx = find(path, FullPath); - if(idx.isValid()){ - QModelIndex psIdx = createIndex(idx.column(), DurSize, idx.internalPointer()); - setData(psIdx, data, Qt::EditRole); - } -} - void SmDirModel::populate(SmTreeItem *root){ setRoot(root); + //mWatch->startAsyncJobs(); emit needResize(); } @@ -247,9 +203,6 @@ void SmDirModel::addFile(const QList<QVariant> &data){ beginResetModel(); root()->insertChild(w, newItem); endResetModel(); - if(!data.at(Md5sum).isValid() || !data.at(DurSize).isValid()){ - mWatch->gatherAsync(data.at(FullPath).toString()); - } return; } |