From 54860b9c436f31cce71afd180e03b4bf93512b58 Mon Sep 17 00:00:00 2001 From: deva Date: Sun, 28 Dec 2008 11:46:24 +0000 Subject: Basic data model now in place. git-svn-id: file:///mnt/atuin/misc/bak/sync/data/svn/repos/qookie@10 385a8487-d0bc-44c8-a27f-f7cfc1192794 --- document.cc | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 document.cc (limited to 'document.cc') diff --git a/document.cc b/document.cc new file mode 100644 index 0000000..d46f089 --- /dev/null +++ b/document.cc @@ -0,0 +1,100 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/*************************************************************************** + * document.cc + * + * Fri Aug 22 19:35:32 CEST 2008 + * Copyright 2008 Bent Bisballe Nyeng + * deva@aasimon.org + ****************************************************************************/ + +/* + * This file is part of Qookie. + * + * Qookie 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. + * + * Qookie is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Qookie; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ +#include "document.h" + +Document::Document() +{ + setChanged(true); + maxuid = 0; +} + +bool Document::hasChanged() +{ + return changed; +} + +void Document::setChanged(bool changed) +{ + if(this->changed != changed) { + this->changed = changed; + emit documentStatusChanged(changed); + } +} + +uid_t Document::nextUid() +{ + return maxuid++; +} + +void Document::addIngredient(Ingredient *ingredient) +{ + ingredients[ingredient->uid] = ingredient; + if(ingredient->uid > maxuid) maxuid = ingredient->uid; + setChanged(true); +} + +void Document::addCourse(Course *course) +{ + courses[course->uid] = course; + if(course->uid > maxuid) maxuid = course->uid; + setChanged(true); +} + + +void Document::addDish(Dish *dish) +{ + dishes[dish->uid] = dish; + if(dish->uid > maxuid) maxuid = dish->uid; + setChanged(true); +} + +void Document::addMenu(Menu *menu) +{ + menus[menu->uid] = menu; + if(menu->uid > maxuid) maxuid = menu->uid; + setChanged(true); +} + +const Ingredient &Document::ingredient(uid_t uid) const +{ + return *ingredients[uid]; +} + +const Course &Document::course(uid_t uid) const +{ + return *courses[uid]; +} + +const Dish &Document::dish(uid_t uid) const +{ + return *dishes[uid]; +} + +const Menu &Document::menu(uid_t uid) const +{ + return *menus[uid]; +} -- cgit v1.2.3