#ifndef NEWRECIPEDIALOG_H #define NEWRECIPEDIALOG_H #include #include #include #include #include #include "model/database/recipedatabase.h" #include "model/recipe/ingredients/ingredientlistmodel.h" #include "model/recipe/tags/taglistmodel.h" #include "gui/newDialogs/newingredientdialog.h" #include "gui/newDialogs/newtagdialog.h" #include "gui/newDialogs/newunitdialog.h" namespace Ui { class NewRecipeDialog; } class NewRecipeDialog : public QDialog { Q_OBJECT public: explicit NewRecipeDialog(QWidget *parent = 0); NewRecipeDialog(RecipeDatabase *db, QWidget *parent = 0); NewRecipeDialog(RecipeDatabase *db, Recipe recipe, QWidget *parent = 0); ~NewRecipeDialog(); //Extracts a recipe from all the information entered in the ui. Recipe getRecipe(); bool isAccepted() const; private slots: void on_addIngredientButton_clicked(); void on_italicsButton_clicked(); void on_boldButton_clicked(); //Sets the dialog as accepted, as in, the user accepts that they want to create the recipe. void on_buttonBox_accepted(); //The user has rejected the creation of the recipe. void on_buttonBox_rejected(); void on_addTagButton_clicked(); void on_deleteTagButton_clicked(); void on_selectImageButton_clicked(); void on_removeIngredientButton_clicked(); void on_newTagButton_clicked(); void on_removeTagButton_clicked(); private: Ui::NewRecipeDialog *ui; RecipeDatabase *recipeDB; vector ingredients; vector tags; IngredientListModel ingredientListModel; TagListModel tagsListModel; bool accepted = false; //Helper functions to fill fields. void populateTagsBox(); }; #endif // NEWRECIPEDIALOG_H