diff options
Diffstat (limited to 'moviemodel.cpp')
-rw-r--r-- | moviemodel.cpp | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/moviemodel.cpp b/moviemodel.cpp index 191b987..da921b4 100644 --- a/moviemodel.cpp +++ b/moviemodel.cpp @@ -87,13 +87,23 @@ QModelIndex MovieModel::index(int movieId, int column) const{ return retval; } -QModelIndex MovieModel::index(const QString &movieTitle) const { - QModelIndex retval = QModelIndex(); - for(int i = 0; i < rowCount(QModelIndex()); ++i){ - MovieItem *item = mItems.at(i); - if(item->dataAt(MovieItem::Title).toString() == movieTitle){ - retval = createIndex(i, 0, item); - break; +QModelIndexList MovieModel::columnContains(const QVariant &content, int column) const{ + QModelIndexList retval; + if((column == MovieItem::Title) || (column == MovieItem::Filename) || (column == MovieItem::Md5Sum)){ + QString part = content.toString(); + for(int i = 0; i < mItems.size(); ++i){ + QString current = mItems.at(i)->dataAt(column).toString(); + if(current.contains(part)){ + retval << createIndex(i, column, mItems.at(i)); + } + } + }else{ + qint64 value = content.toLongLong(); + for(int i = 0; i < mItems.size(); ++i){ + qint64 current = mItems.at(i)->dataAt(column).toLongLong(); + if(value == current){ + retval << createIndex(i, column, mItems.at(i)); + } } } return retval; |