Shift to master. Not done but database abstraction is nearly done. #3

Merged
andrewlalis merged 10 commits from development into master 2018-03-03 09:20:11 +00:00
4 changed files with 55 additions and 14 deletions
Showing only changes of commit cfd4179664 - Show all commits

View File

@ -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 \

View File

@ -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();
} }

View File

@ -1,5 +0,0 @@
#include "fileutils.h"
fileUtils::fileUtils(){
}

View File

@ -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: namespace FileUtils {
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 #endif // FILEUTILS_H