diff options
Diffstat (limited to 'actormodel.cpp')
-rw-r--r-- | actormodel.cpp | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/actormodel.cpp b/actormodel.cpp deleted file mode 100644 index 14edcf8..0000000 --- a/actormodel.cpp +++ /dev/null @@ -1,117 +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 <QIcon> - -#include "actormodel.h" - -ActorModel::ActorModel() {}; - -QModelIndex ActorModel::index(int row, int column, const QModelIndex &) const { - if((column != 0) || (row >= mItems.size()) || row < 0){ - return QModelIndex(); - } - return createIndex(row, 0, 0); -} - -QModelIndex ActorModel::index(const QVariant &item) const { - if(item == QVariant()){ - return QModelIndex(); - } - QString sItem = item.toString(); - for(int i = 0; i < mItems.size(); ++i){ - if(mItems.at(i) == sItem){ - return createIndex(i, 0, 0); - } - } - return QModelIndex(); -} - -int ActorModel::rowCount(const QModelIndex &) const { - return mItems.size(); -} - -QVariant ActorModel::data(const QModelIndex &index, int role) const { - if(!index.isValid() || (index.column() > 0) || (index.row() > mItems.size())){ - return QVariant(); - } - switch (role) { - case Qt::DisplayRole: - return mItems.at(index.row()); - break; - case Qt::DecorationRole: - return QIcon(":/dildo.png"); - break; - } - return QVariant(); -} - -bool ActorModel::insertRows(int row, int count, const QModelIndex &){ - beginInsertRows(QModelIndex(), row, row + count - 1); - for(int i = row; i < (row + count); ++i){ - mItems.insert(i, QString()); - } - endInsertRows(); - return true; -} - -bool ActorModel::removeRows(int row, int count, const QModelIndex &){ - if((row > mItems.size()) || ((row + count) > mItems.size())){ - return false; - } - beginRemoveRows(QModelIndex(), row, row + (count - 1)); - for(int i = row; i < (row + count); ++i){ - mItems.removeAt(i); - } - endRemoveRows(); - return true; -} - -bool ActorModel::setData(const QModelIndex &idx, const QVariant &data, int role){ - if(!idx.isValid() || (idx.column() != 0) || (role != Qt::EditRole)){ - return false; - } - mItems[idx.row()] = data.toString(); - qSort(mItems); - dataChanged(index(0, 0), index((mItems.size() - 1), 0)); - return true; -} - -bool ActorModel::addItem(const QVariant &data){ - if(mItems.contains(data.toString())){ - return false; - } - bool success = false; - if(insertRows(0, 1, QModelIndex())){ - QModelIndex idx = index(0, 0); - if(idx.isValid()){ - success = setData(idx, data, Qt::EditRole); - } - } - return success; -} - -bool ActorModel::removeItem(const QVariant &data){ - QModelIndex idx = index(data); - if(!idx.isValid()){ - return false; - } - bool retval = removeRows(idx.row(), 1, QModelIndex()); - if(retval){ - int lidx = mItems.indexOf(data.toString()); - if(lidx != -1){ - mItems.removeAt(lidx); - } - } - return retval; -} - -void ActorModel::clear() { - removeRows(0, mItems.size(), QModelIndex()); - mItems.clear(); -} - |