First ability to create recipe in gui #5
|
@ -138,7 +138,31 @@ void NewRecipeDialog::on_newIngredientButton_clicked(){
|
|||
}
|
||||
|
||||
void NewRecipeDialog::on_newTagButton_clicked(){
|
||||
newTagDialog
|
||||
NewTagDialog d(this);
|
||||
d.show();
|
||||
if (d.exec() == QDialog::Accepted){
|
||||
RecipeTag tag = d.getTag();
|
||||
//Temporarily add this to the tags list, and it will be saved if the recipe is saved.
|
||||
this->tags.push_back(tag);
|
||||
ui->tagsComboBox->clear();
|
||||
for (unsigned int i = 0; i < this->tags.size(); i++){
|
||||
QString s = QString::fromStdString(this->tags[i].getValue());
|
||||
ui->tagsComboBox->insertItem(i, s);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void NewRecipeDialog::on_removeTagButton_clicked(){
|
||||
int index = ui->tagsComboBox->currentIndex();
|
||||
if (index < 0 || index >= this->tags.size()){
|
||||
return;
|
||||
}
|
||||
RecipeTag tag = this->tags[ui->tagsComboBox->currentIndex()];
|
||||
string content = "Are you sure you wish to delete the following tag:\n"+tag.getValue();
|
||||
QMessageBox::StandardButton reply = QMessageBox::question(this, QString("Delete Tag"), QString(content.c_str()));
|
||||
if (reply == QMessageBox::Yes){
|
||||
this->recipeDB->deleteTag(tag);
|
||||
this->populateTagsBox();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#include <QTextCharFormat>
|
||||
#include <QFileDialog>
|
||||
#include <QPixmap>
|
||||
#include <QMessageBox>
|
||||
|
||||
#include "model/database/recipedatabase.h"
|
||||
#include "model/recipe/ingredients/ingredientlistmodel.h"
|
||||
|
@ -51,6 +52,8 @@ class NewRecipeDialog : public QDialog
|
|||
|
||||
void on_newTagButton_clicked();
|
||||
|
||||
void on_removeTagButton_clicked();
|
||||
|
||||
private:
|
||||
Ui::NewRecipeDialog *ui;
|
||||
RecipeDatabase *recipeDB;
|
||||
|
|
|
@ -279,12 +279,34 @@
|
|||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QComboBox" name="tagsComboBox"/>
|
||||
<widget class="QComboBox" name="tagsComboBox">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<item alignment="Qt::AlignRight">
|
||||
<widget class="QPushButton" name="newTagButton">
|
||||
<property name="text">
|
||||
<string>New</string>
|
||||
<property name="toolTip">
|
||||
<string>Create a new tag</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../images.qrc">
|
||||
<normaloff>:/images/images/plus_icon.png</normaloff>:/images/images/plus_icon.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item alignment="Qt::AlignRight">
|
||||
<widget class="QPushButton" name="removeTagButton">
|
||||
<property name="toolTip">
|
||||
<string>Permanently delete this tag</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../images.qrc">
|
||||
<normaloff>:/images/images/minus_icon.png</normaloff>:/images/images/minus_icon.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -460,6 +482,9 @@
|
|||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="editable">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="currentText">
|
||||
<string/>
|
||||
</property>
|
||||
|
@ -467,8 +492,12 @@
|
|||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="newIngredientButton">
|
||||
<property name="text">
|
||||
<string>New</string>
|
||||
<property name="toolTip">
|
||||
<string>Create a new ingredient</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="../images.qrc">
|
||||
<normaloff>:/images/images/plus_icon.png</normaloff>:/images/images/plus_icon.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -532,12 +561,20 @@
|
|||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="unitComboBox"/>
|
||||
<widget class="QComboBox" name="unitComboBox">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<item alignment="Qt::AlignRight">
|
||||
<widget class="QPushButton" name="newUnitButton">
|
||||
<property name="text">
|
||||
<string>New</string>
|
||||
<property name="icon">
|
||||
<iconset resource="../images.qrc">
|
||||
<normaloff>:/images/images/plus_icon.png</normaloff>:/images/images/plus_icon.png</iconset>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
|
@ -2,5 +2,7 @@
|
|||
<qresource prefix="/images">
|
||||
<file>images/no_image.png</file>
|
||||
<file>images/icon.png</file>
|
||||
<file>images/plus_icon.png</file>
|
||||
<file>images/minus_icon.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 480 B |
Binary file not shown.
After Width: | Height: | Size: 912 B |
|
@ -223,6 +223,10 @@ vector<RecipeTag> RecipeDatabase::retrieveAllTags(){
|
|||
return tags;
|
||||
}
|
||||
|
||||
void RecipeDatabase::deleteTag(RecipeTag tag){
|
||||
ResultTable t = this->executeSQL("DELETE FROM recipeTag WHERE tagName="+surroundString(tag.getValue(), "'"));
|
||||
}
|
||||
|
||||
void RecipeDatabase::ensureTablesExist(){
|
||||
//Make sure that foreign keys are enabled.
|
||||
this->executeSQL("PRAGMA foreign_keys = ON;");
|
||||
|
|
|
@ -37,6 +37,9 @@ class RecipeDatabase : public Database
|
|||
vector<UnitOfMeasure> retrieveAllUnitsOfMeasure();
|
||||
vector<RecipeTag> retrieveTags(int recipeId);
|
||||
vector<RecipeTag> retrieveAllTags();
|
||||
|
||||
//Deletion.
|
||||
void deleteTag(RecipeTag tag);
|
||||
private:
|
||||
|
||||
//Utility methods.
|
||||
|
|
Loading…
Reference in New Issue