#include "recipeingredientlistmodel.h" RecipeIngredientListModel::RecipeIngredientListModel(){ this->ingredients = vector(); } int RecipeIngredientListModel::rowCount(const QModelIndex &parent) const{ return this->ingredients.size(); } QVariant RecipeIngredientListModel::data(const QModelIndex &index, int role) const{ int row = index.row(); RecipeIngredient i = this->ingredients[row]; string displayStr = i.toString(); switch(role){ case Qt::DisplayRole: return QString::fromStdString(displayStr); } return QVariant(); } void RecipeIngredientListModel::setIngredients(vector ingredients){ this->ingredients = ingredients; QModelIndex index = createIndex(0, 0); QModelIndex bottomIndex = createIndex(ingredients.size()-1, 0); emit dataChanged(index, bottomIndex); } bool RecipeIngredientListModel::addIngredient(RecipeIngredient ri){ //Add only if it doesn't exist already. for (unsigned int i = 0; i < this->ingredients.size(); i++){ if (!this->ingredients[i].getName().compare(ri.getName())){ return false; } } this->ingredients.push_back(ri); QModelIndex index = createIndex(this->ingredients.size()-1, 0); QModelIndex bottomIndex = createIndex(this->ingredients.size()-1, 0); emit dataChanged(index, bottomIndex); return true; } void RecipeIngredientListModel::deleteIngredient(int index){ this->ingredients.erase(this->ingredients.begin() + index); emit dataChanged(createIndex(0, 0), createIndex(this->ingredients.size()-1, 0)); } vector RecipeIngredientListModel::getIngredients(){ return this->ingredients; }