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 \
 | 
			
		||||
    SQLite/sqlite3.c \
 | 
			
		||||
    model/database/resulttable.cpp \
 | 
			
		||||
    model/database/recipedatabase.cpp \
 | 
			
		||||
    utils/fileutils.cpp
 | 
			
		||||
    model/database/recipedatabase.cpp
 | 
			
		||||
 | 
			
		||||
HEADERS  += model/recipe/instruction.h \
 | 
			
		||||
    model/recipe/recipe.h \
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										5
									
								
								main.cpp
								
								
								
								
							
							
						
						
									
										5
									
								
								main.cpp
								
								
								
								
							| 
						 | 
				
			
			@ -3,6 +3,7 @@
 | 
			
		|||
 | 
			
		||||
#include "model/database/database.h"
 | 
			
		||||
#include "model/database/recipedatabase.h"
 | 
			
		||||
#include "utils/fileutils.h"
 | 
			
		||||
 | 
			
		||||
int main(int argc, char *argv[])
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -20,7 +21,9 @@ int main(int argc, char *argv[])
 | 
			
		|||
	RecipeDatabase recipeDB("recipes");
 | 
			
		||||
	recipeDB.storeIngredient(Ingredient("Apple", "Fruit"));
 | 
			
		||||
	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();
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +0,0 @@
 | 
			
		|||
#include "fileutils.h"
 | 
			
		||||
 | 
			
		||||
fileUtils::fileUtils(){
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,11 +1,55 @@
 | 
			
		|||
#ifndef FILEUTILS_H
 | 
			
		||||
#define FILEUTILS_H
 | 
			
		||||
 | 
			
		||||
#include <QStandardPaths>
 | 
			
		||||
#include <QFile>
 | 
			
		||||
#include <QDir>
 | 
			
		||||
#include <QTextStream>
 | 
			
		||||
 | 
			
		||||
class fileUtils
 | 
			
		||||
{
 | 
			
		||||
	public:
 | 
			
		||||
		fileUtils();
 | 
			
		||||
};
 | 
			
		||||
#include "model/recipe/instruction.h"
 | 
			
		||||
 | 
			
		||||
#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