Re-organized ingredient-related objects, added descriptions.
This commit is contained in:
parent
b6f5da57d6
commit
05a18d6a9a
15
RecipeDB.pro
15
RecipeDB.pro
|
@ -13,24 +13,27 @@ TEMPLATE = app
|
|||
|
||||
|
||||
SOURCES += SQLite/sqlite3.c \
|
||||
model/recipe/ingredient.cpp \
|
||||
model/recipe/instruction.cpp \
|
||||
model/recipe/recipe.cpp \
|
||||
model/recipe/recipeingredient.cpp \
|
||||
userInterface/mainwindow.cpp \
|
||||
main.cpp \
|
||||
model/database/database.cpp \
|
||||
model/recipe/ingredientlistmodel.cpp
|
||||
model/recipe/ingredients/unitofmeasure.cpp \
|
||||
model/recipe/ingredients/ingredient.cpp \
|
||||
model/recipe/ingredients/ingredientlistmodel.cpp \
|
||||
model/recipe/ingredients/recipeingredient.cpp
|
||||
|
||||
HEADERS += SQLite/sqlite3.h \
|
||||
SQLite/sqlite3ext.h \
|
||||
model/recipe/ingredient.h \
|
||||
model/recipe/instruction.h \
|
||||
model/recipe/recipe.h \
|
||||
model/recipe/recipeingredient.h \
|
||||
userInterface/mainwindow.h \
|
||||
model/database/database.h \
|
||||
model/recipe/ingredientlistmodel.h
|
||||
model/recipe/ingredientlistmodel.h \
|
||||
model/recipe/ingredients/unitofmeasure.h \
|
||||
model/recipe/ingredients/ingredient.h \
|
||||
model/recipe/ingredients/ingredientlistmodel.h \
|
||||
model/recipe/ingredients/recipeingredient.h
|
||||
|
||||
FORMS += gui/mainwindow.ui
|
||||
|
||||
|
|
|
@ -432,6 +432,9 @@
|
|||
<property name="sizeAdjustPolicy">
|
||||
<enum>QAbstractScrollArea::AdjustToContents</enum>
|
||||
</property>
|
||||
<property name="autoFormatting">
|
||||
<set>QTextEdit::AutoNone</set>
|
||||
</property>
|
||||
<property name="lineWrapMode">
|
||||
<enum>QTextEdit::WidgetWidth</enum>
|
||||
</property>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
#include <vector>
|
||||
|
||||
#include "SQLite/sqlite3.h"
|
||||
#include "model/recipe/ingredient.h"
|
||||
#include "model/recipe/ingredients/ingredient.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include "headers/ingredient.h"
|
||||
#include "model/recipe/ingredients/ingredient.h"
|
||||
|
||||
Ingredient::Ingredient(){
|
||||
setId(-1);
|
|
@ -5,6 +5,10 @@
|
|||
|
||||
using namespace std;
|
||||
|
||||
/**
|
||||
* @brief The Ingredient class represents an ingredient, which is classified by a food group, and has a name and an ID. An ingredient cannot be included on its own in a recipe, and must be paired with a Unit in a RecipeIngredient Object.
|
||||
*/
|
||||
|
||||
class Ingredient
|
||||
{
|
||||
public:
|
|
@ -1,4 +1,4 @@
|
|||
#include "model/recipe/ingredientlistmodel.h"
|
||||
#include "model/recipe/ingredients/ingredientlistmodel.h"
|
||||
|
||||
IngredientListModel::IngredientListModel(){
|
||||
this->ingredients = vector<Ingredient>();
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include <QAbstractListModel>
|
||||
|
||||
#include "model/recipe/ingredient.h"
|
||||
#include "model/recipe/ingredients/ingredient.h"
|
||||
|
||||
class IngredientListModel : public QAbstractListModel
|
||||
{
|
|
@ -1,4 +1,4 @@
|
|||
#include "headers/recipeingredient.h"
|
||||
#include "model/recipe/ingredients/recipeingredient.h"
|
||||
|
||||
RecipeIngredient::RecipeIngredient(int id, string name, string foodGroup, int quantity, string unit) : Ingredient(id, name, foodGroup){
|
||||
setQuantity(quantity);
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include <string>
|
||||
|
||||
#include "headers/ingredient.h"
|
||||
#include "model/recipe/ingredients/ingredient.h"
|
||||
|
||||
using namespace std;
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
#include "unitofmeasure.h"
|
||||
|
||||
UnitOfMeasure::UnitOfMeasure()
|
||||
{
|
||||
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
#ifndef UNITOFMEASURE_H
|
||||
#define UNITOFMEASURE_H
|
||||
|
||||
#include <string>
|
||||
|
||||
using namespace std;
|
||||
|
||||
/**
|
||||
* @brief The UnitOfMeasure class represents a way to measure an ingredient. It contains a name, an abbreviation, plural name, and some information on conversion.
|
||||
*/
|
||||
|
||||
class UnitOfMeasure
|
||||
{
|
||||
public:
|
||||
UnitOfMeasure();
|
||||
private:
|
||||
string name;
|
||||
string plural;
|
||||
string abbreviation;
|
||||
};
|
||||
|
||||
#endif // UNITOFMEASURE_H
|
|
@ -1,4 +1,4 @@
|
|||
#include "headers/instruction.h"
|
||||
#include "model/recipe/instruction.h"
|
||||
|
||||
Instruction::Instruction()
|
||||
{
|
||||
|
|
|
@ -2,24 +2,25 @@
|
|||
|
||||
Recipe::Recipe(){
|
||||
this->name = "NULL";
|
||||
this->ingredients = vector<Ingredient>();
|
||||
this->instructions = vector<Instruction>();
|
||||
this->ingredients = vector<RecipeIngredient>();
|
||||
this->instruction = Instruction();
|
||||
}
|
||||
|
||||
Recipe::Recipe(string name, vector<Ingredient> ingredients, vector<Instruction> instructions){
|
||||
Recipe::Recipe(string name, vector<RecipeIngredient> ingredients, Instruction instruction)
|
||||
{
|
||||
this->name = name;
|
||||
this->ingredients = ingredients;
|
||||
this->instructions = instructions;
|
||||
this->instruction = instruction;
|
||||
}
|
||||
|
||||
string Recipe::getName(){
|
||||
return this->name;
|
||||
}
|
||||
|
||||
vector<Ingredient> Recipe::getIngredients(){
|
||||
vector<RecipeIngredient> Recipe::getIngredients(){
|
||||
return this->ingredients;
|
||||
}
|
||||
|
||||
vector<Instruction> Recipe::getInstructions(){
|
||||
return this->instructions;
|
||||
Instruction Recipe::getInstruction(){
|
||||
return this->instruction;
|
||||
}
|
||||
|
|
|
@ -3,27 +3,40 @@
|
|||
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include <hash_map>
|
||||
|
||||
#include "model/recipe/ingredient.h"
|
||||
#include "model/recipe/ingredients/recipeingredient.h"
|
||||
#include "model/recipe/instruction.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
/**
|
||||
* @brief The Recipe class represents all the data of a recipe:
|
||||
* - A name.
|
||||
* - List of ingredients.
|
||||
* - An instruction object, which represents a block of HTML text which forms the instructions.
|
||||
* - An image, if possible.
|
||||
* - Created Date
|
||||
* - A list of tags.
|
||||
* - Makes X Servings.
|
||||
* - Prep time.
|
||||
* - Cook time.
|
||||
* The recipe object can be used to populate the window with a full recipe. Prep time, cook time, servings, will be displayed at the beginning of the instructions block.
|
||||
*/
|
||||
|
||||
class Recipe
|
||||
{
|
||||
public:
|
||||
Recipe();
|
||||
Recipe(string name, vector<Ingredient> ingredients, vector<Instruction> instructions);
|
||||
Recipe(string name, vector<RecipeIngredient> ingredients, Instruction instruction);
|
||||
|
||||
string getName();
|
||||
vector<Ingredient> getIngredients();
|
||||
vector<Instruction> getInstructions();
|
||||
vector<RecipeIngredient> getIngredients();
|
||||
Instruction getInstruction();
|
||||
private:
|
||||
string name;
|
||||
vector<string> tags;
|
||||
vector<Ingredient> ingredients;
|
||||
vector<Instruction> instructions;
|
||||
vector<RecipeIngredient> ingredients;
|
||||
Instruction instruction;
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ MainWindow::~MainWindow(){
|
|||
|
||||
void MainWindow::loadFromRecipe(Recipe recipe){
|
||||
setRecipeName(recipe.getName());
|
||||
setInstructions(recipe.getInstructions());
|
||||
setInstruction(recipe.getInstruction());
|
||||
setIngredients(recipe.getIngredients());
|
||||
}
|
||||
|
||||
|
@ -21,10 +21,10 @@ void MainWindow::setRecipeName(string name){
|
|||
ui->recipeNameLabel->setText(QString::fromStdString(name));
|
||||
}
|
||||
|
||||
void MainWindow::setInstructions(vector<Instruction> instructions){
|
||||
void MainWindow::setInstruction(Instruction instruction){
|
||||
|
||||
}
|
||||
|
||||
void MainWindow::setIngredients(vector<Ingredient> ingredients){
|
||||
void MainWindow::setIngredients(vector<RecipeIngredient> ingredients){
|
||||
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include <QMainWindow>
|
||||
#include <string>
|
||||
#include <QAbstractListModel>
|
||||
|
||||
#include "model/recipe/recipe.h"
|
||||
|
||||
|
@ -24,11 +25,12 @@ public:
|
|||
void loadFromRecipe(Recipe recipe);
|
||||
private:
|
||||
Ui::MainWindow *ui;
|
||||
QAbstractListModel *ingredientsListModel;
|
||||
|
||||
//Hidden manipulation methods.
|
||||
void setRecipeName(string name);
|
||||
void setInstructions(vector<Instruction> instructions);
|
||||
void setIngredients(vector<Ingredient> ingredients);
|
||||
void setInstruction(Instruction instruction);
|
||||
void setIngredients(vector<RecipeIngredient> ingredients);
|
||||
};
|
||||
|
||||
#endif // MAINWINDOW_H
|
||||
|
|
Loading…
Reference in New Issue