diff --git a/RecipeDB.pro b/RecipeDB.pro
index c2c8a98..e573956 100644
--- a/RecipeDB.pro
+++ b/RecipeDB.pro
@@ -27,7 +27,9 @@ SOURCES += model/recipe/instruction.cpp \
model/database/recipedatabase.cpp \
utils/fileutils.cpp \
gui/newrecipedialog.cpp \
- model/recipe/tags/taglistmodel.cpp
+ model/recipe/tags/taglistmodel.cpp \
+ gui/newDialogs/newingredientdialog.cpp \
+ gui/newDialogs/newtagdialog.cpp
HEADERS += model/recipe/instruction.h \
model/recipe/recipe.h \
@@ -44,12 +46,16 @@ HEADERS += model/recipe/instruction.h \
model/database/recipedatabase.h \
utils/fileutils.h \
gui/newrecipedialog.h \
- model/recipe/tags/taglistmodel.h
+ model/recipe/tags/taglistmodel.h \
+ gui/newDialogs/newingredientdialog.h \
+ gui/newDialogs/newtagdialog.h
LIBS += -ldl \
FORMS += gui/mainwindow.ui \
- gui/newrecipedialog.ui
+ gui/newrecipedialog.ui \
+ gui/newDialogs/newingredientdialog.ui \
+ gui/newDialogs/newtagdialog.ui
DISTFILES += \
.gitignore
diff --git a/gui/mainwindow.ui b/gui/mainwindow.ui
index ae24fae..252d695 100644
--- a/gui/mainwindow.ui
+++ b/gui/mainwindow.ui
@@ -25,6 +25,10 @@
RecipeDB
+
+
+ :/images/images/icon.png:/images/images/icon.png
+
1.000000000000000
@@ -556,6 +560,8 @@ p, li { white-space: pre-wrap; }
-
+
+
+
diff --git a/gui/newDialogs/newingredientdialog.cpp b/gui/newDialogs/newingredientdialog.cpp
new file mode 100644
index 0000000..5b7597a
--- /dev/null
+++ b/gui/newDialogs/newingredientdialog.cpp
@@ -0,0 +1,18 @@
+#include "newingredientdialog.h"
+#include "ui_newingredientdialog.h"
+
+NewIngredientDialog::NewIngredientDialog(QWidget *parent) :
+ QDialog(parent),
+ ui(new Ui::NewIngredientDialog)
+{
+ ui->setupUi(this);
+}
+
+NewIngredientDialog::~NewIngredientDialog()
+{
+ delete ui;
+}
+
+Ingredient NewIngredientDialog::getIngredient(){
+ return Ingredient(ui->nameEdit->text().toLower().toStdString(), ui->foodGroupEdit->text().toLower().toStdString());
+}
diff --git a/gui/newDialogs/newingredientdialog.h b/gui/newDialogs/newingredientdialog.h
new file mode 100644
index 0000000..4c94275
--- /dev/null
+++ b/gui/newDialogs/newingredientdialog.h
@@ -0,0 +1,26 @@
+#ifndef NEWINGREDIENTDIALOG_H
+#define NEWINGREDIENTDIALOG_H
+
+#include
+#include "model/recipe/ingredients/ingredient.h"
+
+namespace Ui {
+class NewIngredientDialog;
+}
+
+class NewIngredientDialog : public QDialog
+{
+ Q_OBJECT
+
+ public:
+ explicit NewIngredientDialog(QWidget *parent = 0);
+ ~NewIngredientDialog();
+
+ //Access values.
+ Ingredient getIngredient();
+
+ private:
+ Ui::NewIngredientDialog *ui;
+};
+
+#endif // NEWINGREDIENTDIALOG_H
diff --git a/gui/newDialogs/newingredientdialog.ui b/gui/newDialogs/newingredientdialog.ui
new file mode 100644
index 0000000..8f4f268
--- /dev/null
+++ b/gui/newDialogs/newingredientdialog.ui
@@ -0,0 +1,120 @@
+
+
+ NewIngredientDialog
+
+
+
+ 0
+ 0
+ 240
+ 320
+
+
+
+ New Ingredient
+
+
+
+ :/images/images/icon.png:/images/images/icon.png
+
+
+ true
+
+
+ -
+
+
+ true
+
+
+
-
+
+
+
-
+
+
+ Name
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
-
+
+
+ Food Group
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QDialogButtonBox::Cancel|QDialogButtonBox::Ok
+
+
+
+
+
+
+
+
+
+
+ buttonBox
+ accepted()
+ NewIngredientDialog
+ accept()
+
+
+ 248
+ 254
+
+
+ 157
+ 274
+
+
+
+
+ buttonBox
+ rejected()
+ NewIngredientDialog
+ reject()
+
+
+ 316
+ 260
+
+
+ 286
+ 274
+
+
+
+
+
diff --git a/gui/newDialogs/newtagdialog.cpp b/gui/newDialogs/newtagdialog.cpp
new file mode 100644
index 0000000..dd26afc
--- /dev/null
+++ b/gui/newDialogs/newtagdialog.cpp
@@ -0,0 +1,18 @@
+#include "newtagdialog.h"
+#include "ui_newtagdialog.h"
+
+NewTagDialog::NewTagDialog(QWidget *parent) :
+ QDialog(parent),
+ ui(new Ui::newTagDialog)
+{
+ ui->setupUi(this);
+}
+
+NewTagDialog::~NewTagDialog()
+{
+ delete ui;
+}
+
+RecipeTag NewTagDialog::getTag(){
+ return RecipeTag(ui->tagEdit->text().toLower().toStdString());
+}
diff --git a/gui/newDialogs/newtagdialog.h b/gui/newDialogs/newtagdialog.h
new file mode 100644
index 0000000..e096f21
--- /dev/null
+++ b/gui/newDialogs/newtagdialog.h
@@ -0,0 +1,26 @@
+#ifndef NEWTAGDIALOG_H
+#define NEWTAGDIALOG_H
+
+#include
+
+#include "model/recipe/tags/recipetag.h"
+
+namespace Ui {
+class newTagDialog;
+}
+
+class NewTagDialog : public QDialog
+{
+ Q_OBJECT
+
+ public:
+ explicit NewTagDialog(QWidget *parent = 0);
+ ~NewTagDialog();
+
+ //Access values
+ RecipeTag getTag();
+ private:
+ Ui::newTagDialog *ui;
+};
+
+#endif // NEWTAGDIALOG_H
diff --git a/gui/newDialogs/newtagdialog.ui b/gui/newDialogs/newtagdialog.ui
new file mode 100644
index 0000000..fd77812
--- /dev/null
+++ b/gui/newDialogs/newtagdialog.ui
@@ -0,0 +1,92 @@
+
+
+ newTagDialog
+
+
+
+ 0
+ 0
+ 240
+ 320
+
+
+
+ Dialog
+
+
+
+ :/images/images/icon.png:/images/images/icon.png
+
+
+ true
+
+
+ -
+
+
+
-
+
+
+ New Tag
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+ QDialogButtonBox::Cancel|QDialogButtonBox::Ok
+
+
+
+
+
+
+
+
+
+
+ buttonBox
+ accepted()
+ newTagDialog
+ accept()
+
+
+ 248
+ 254
+
+
+ 157
+ 274
+
+
+
+
+ buttonBox
+ rejected()
+ newTagDialog
+ reject()
+
+
+ 316
+ 260
+
+
+ 286
+ 274
+
+
+
+
+
diff --git a/gui/newrecipedialog.cpp b/gui/newrecipedialog.cpp
index 058b0dd..4cfaeea 100644
--- a/gui/newrecipedialog.cpp
+++ b/gui/newrecipedialog.cpp
@@ -118,3 +118,27 @@ void NewRecipeDialog::on_selectImageButton_clicked(){
ui->imageDisplayLabel->setPixmap(QPixmap(filename));
}
}
+
+void NewRecipeDialog::on_deleteIngredientButton_clicked(){
+ QModelIndexList indexList = ui->ingredientsListView->selectionModel()->selectedIndexes();
+ for (QModelIndexList::iterator it = indexList.begin(); it != indexList.end(); ++it){
+ QModelIndex i = *it;
+ this->ingredientListModel.deleteIngredient(i.row());
+ }
+}
+
+void NewRecipeDialog::on_newIngredientButton_clicked(){
+ NewIngredientDialog d(this);
+ d.show();
+ if (d.exec() == QDialog::Accepted){
+ Ingredient i = d.getIngredient();
+ this->recipeDB->storeIngredient(i);
+ this->populateIngredientsBox();
+ }
+}
+
+void NewRecipeDialog::on_newTagButton_clicked(){
+ newTagDialog
+ d.show();
+
+}
diff --git a/gui/newrecipedialog.h b/gui/newrecipedialog.h
index 6e14097..43ff140 100644
--- a/gui/newrecipedialog.h
+++ b/gui/newrecipedialog.h
@@ -10,6 +10,9 @@
#include "model/recipe/ingredients/ingredientlistmodel.h"
#include "model/recipe/tags/taglistmodel.h"
+#include "gui/newDialogs/newingredientdialog.h"
+#include "gui/newDialogs/newtagdialog.h"
+
namespace Ui {
class NewRecipeDialog;
}
@@ -42,6 +45,12 @@ class NewRecipeDialog : public QDialog
void on_selectImageButton_clicked();
+ void on_deleteIngredientButton_clicked();
+
+ void on_newIngredientButton_clicked();
+
+ void on_newTagButton_clicked();
+
private:
Ui::NewRecipeDialog *ui;
RecipeDatabase *recipeDB;
diff --git a/gui/newrecipedialog.ui b/gui/newrecipedialog.ui
index 25ffbbc..9a72e5e 100644
--- a/gui/newrecipedialog.ui
+++ b/gui/newrecipedialog.ui
@@ -22,6 +22,13 @@
New Recipe
+
+
+ :/images/images/icon.png:/images/images/icon.png
+
+
+ true
+
0
@@ -327,6 +334,9 @@
QFrame::NoFrame
+
+ QAbstractItemView::MultiSelection
+
@@ -599,6 +609,9 @@
QFrame::NoFrame
+
+ QAbstractItemView::MultiSelection
+
100
@@ -610,7 +623,7 @@
- -
+
-
@@ -665,6 +678,9 @@
-
+
+ background-color: rgb(250, 250, 255);
+
-
@@ -728,6 +744,12 @@
-
+
+ background-color: rgb(255, 255, 255);
+
+
+ QFrame::NoFrame
+
Enter instructions here.
@@ -741,9 +763,15 @@
Qt::LeftToRight
+
+ false
+
QDialogButtonBox::Cancel|QDialogButtonBox::Ok
+
+ true
+
diff --git a/images.qrc b/images.qrc
index 6634926..5f9348c 100644
--- a/images.qrc
+++ b/images.qrc
@@ -1,5 +1,6 @@
images/no_image.png
+ images/icon.png
diff --git a/images/icon.png b/images/icon.png
new file mode 100644
index 0000000..9a2db3c
Binary files /dev/null and b/images/icon.png differ
diff --git a/model/recipe/ingredients/ingredientlistmodel.cpp b/model/recipe/ingredients/ingredientlistmodel.cpp
index 360d48c..7763671 100644
--- a/model/recipe/ingredients/ingredientlistmodel.cpp
+++ b/model/recipe/ingredients/ingredientlistmodel.cpp
@@ -55,6 +55,7 @@ bool IngredientListModel::addIngredient(RecipeIngredient ri){
void IngredientListModel::deleteIngredient(int index){
this->ingredients.erase(this->ingredients.begin() + index);
+ emit dataChanged(createIndex(0, 0), createIndex(this->ingredients.size()-1, 0));
}
vector IngredientListModel::getIngredients(){
diff --git a/model/recipe/tags/taglistmodel.cpp b/model/recipe/tags/taglistmodel.cpp
index 4555cd7..149ad3e 100644
--- a/model/recipe/tags/taglistmodel.cpp
+++ b/model/recipe/tags/taglistmodel.cpp
@@ -41,6 +41,7 @@ bool TagListModel::addTag(RecipeTag tag){
void TagListModel::deleteTag(int index){
this->tags.erase(this->tags.begin() + index);
+ emit dataChanged(createIndex(0, 0), createIndex(this->tags.size()-1, 0));
}
vector TagListModel::getTags(){