Shift to master. Not done but database abstraction is nearly done. #3
|
@ -24,8 +24,7 @@ SOURCES += model/recipe/instruction.cpp \
|
||||||
model/recipe/tags/recipetag.cpp \
|
model/recipe/tags/recipetag.cpp \
|
||||||
SQLite/sqlite3.c \
|
SQLite/sqlite3.c \
|
||||||
model/database/resulttable.cpp \
|
model/database/resulttable.cpp \
|
||||||
model/database/recipedatabase.cpp \
|
model/database/recipedatabase.cpp
|
||||||
utils/fileutils.cpp
|
|
||||||
|
|
||||||
HEADERS += model/recipe/instruction.h \
|
HEADERS += model/recipe/instruction.h \
|
||||||
model/recipe/recipe.h \
|
model/recipe/recipe.h \
|
||||||
|
|
5
main.cpp
5
main.cpp
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
#include "model/database/database.h"
|
#include "model/database/database.h"
|
||||||
#include "model/database/recipedatabase.h"
|
#include "model/database/recipedatabase.h"
|
||||||
|
#include "utils/fileutils.h"
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
@ -20,7 +21,9 @@ int main(int argc, char *argv[])
|
||||||
RecipeDatabase recipeDB("recipes");
|
RecipeDatabase recipeDB("recipes");
|
||||||
recipeDB.storeIngredient(Ingredient("Apple", "Fruit"));
|
recipeDB.storeIngredient(Ingredient("Apple", "Fruit"));
|
||||||
recipeDB.storeIngredient(Ingredient("Corn", "Vegetable"));
|
recipeDB.storeIngredient(Ingredient("Corn", "Vegetable"));
|
||||||
recipeDB.executeSQL("SELECT ingredientId FROM ingredient;").printData();
|
recipeDB.executeSQL("SELECT * FROM ingredient;").printData();
|
||||||
|
|
||||||
|
FileUtils::saveInstruction(1, Instruction("This is some plain text with no HTML markup."));
|
||||||
|
|
||||||
return a.exec();
|
return a.exec();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
#include "fileutils.h"
|
|
||||||
|
|
||||||
fileUtils::fileUtils(){
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,11 +1,55 @@
|
||||||
#ifndef FILEUTILS_H
|
#ifndef FILEUTILS_H
|
||||||
#define FILEUTILS_H
|
#define FILEUTILS_H
|
||||||
|
|
||||||
|
#include <QStandardPaths>
|
||||||
|
#include <QFile>
|
||||||
|
#include <QDir>
|
||||||
|
#include <QTextStream>
|
||||||
|
|
||||||
class fileUtils
|
#include "model/recipe/instruction.h"
|
||||||
{
|
|
||||||
public:
|
|
||||||
fileUtils();
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // FILEUTILS_H
|
namespace FileUtils {
|
||||||
|
|
||||||
|
QString appDataPath = QStandardPaths::writableLocation(QStandardPaths::HomeLocation)+"/.recipeDB/";
|
||||||
|
|
||||||
|
void ensureAppDataFolderExists(){
|
||||||
|
QDir folder(appDataPath);
|
||||||
|
if (!folder.exists()){
|
||||||
|
folder.mkpath(".");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void saveInstruction(int nr, Instruction instruction){
|
||||||
|
ensureAppDataFolderExists();
|
||||||
|
QString filename = appDataPath + QString::fromStdString(std::to_string(nr)) +".html";
|
||||||
|
QFile file(filename);
|
||||||
|
if (file.open(QIODevice::WriteOnly)){
|
||||||
|
QTextStream stream(&file);
|
||||||
|
stream<<instruction.getHTML().c_str()<<endl;
|
||||||
|
file.close();
|
||||||
|
} else {
|
||||||
|
fprintf(stderr, "Error opening file: %s to write instruction.\n", filename.toStdString().c_str());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Instruction loadInstruction(int nr){
|
||||||
|
QString filename = appDataPath + QString::fromStdString(std::to_string(nr)) + ".html";
|
||||||
|
QFile file(filename);
|
||||||
|
if (!file.exists()){
|
||||||
|
fprintf(stderr, "Instruction Nr: %d does not exist.\n", nr);
|
||||||
|
return Instruction();
|
||||||
|
}
|
||||||
|
if (file.open(QIODevice::ReadOnly)){
|
||||||
|
QTextStream stream(&file);
|
||||||
|
QString s = stream.readAll();
|
||||||
|
file.close();
|
||||||
|
return Instruction(s.toStdString());
|
||||||
|
} else {
|
||||||
|
fprintf(stderr, "Error opening file: %s to read instruction.\n", filename.toStdString().c_str());
|
||||||
|
return Instruction();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // FILEUTILS_H
|
||||||
|
|
Loading…
Reference in New Issue