diff options
Diffstat (limited to 'src/importers/kredbimporter.cpp')
-rw-r--r-- | src/importers/kredbimporter.cpp | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/importers/kredbimporter.cpp b/src/importers/kredbimporter.cpp new file mode 100644 index 0000000..ebb4d3c --- /dev/null +++ b/src/importers/kredbimporter.cpp @@ -0,0 +1,67 @@ +/*************************************************************************** +* Copyright (C) 2004 by * +* Jason Kivlighn ([email protected]) * +* * +* This program is free software; you can redistribute it and/or modify * +* it under the terms of the GNU General Public License as published by * +* the Free Software Foundation; either version 2 of the License, or * +* (at your option) any later version. * +***************************************************************************/ + +#include "kredbimporter.h" + +#include <tdeapplication.h> +#include <tdeconfig.h> +#include <kdebug.h> + +#include "datablocks/recipelist.h" +#include "datablocks/categorytree.h" +#include "backends/recipedb.h" + +KreDBImporter::KreDBImporter( const TQString &_dbType, const TQString &_host, const TQString &_user, const TQString &_pass, int _port ) : BaseImporter(), + dbType( _dbType ), + host( _host ), + user( _user ), + pass( _pass ), + port( _port ) +{} + +KreDBImporter::~KreDBImporter() +{} + +void KreDBImporter::parseFile( const TQString &file ) //this is either a database file or a database table +{ + RecipeDB * database = RecipeDB::createDatabase( dbType, host, user, pass, file, port, file ); //uses 'file' as either table or file name, depending on the database + + if ( database ) { + database->connect( false ); //don't create the database if it fails to connect + + if ( database->ok() ) { + //set the category structure + CategoryTree * tree = new CategoryTree; + database->loadCategories( tree ); + setCategoryStructure( tree ); + + #if 0 + //set unit ratios + UnitRatioList ratioList; + UnitList unitList; + database->loadUnitRatios( &ratioList ); + database->loadUnits( &unitList ); + + setUnitRatioInfo( ratioList, unitList ); + #endif + + //now load recipes + RecipeList recipes; + database->loadRecipes( &recipes, RecipeDB::All ^ RecipeDB::Properties ); + + //now add these recipes to the importer + add( recipes ); + } + else + setErrorMsg( database->err() ); + } + + delete database; +} |