summaryrefslogtreecommitdiffstats
path: root/src/datablocks/ingredientlist.h
diff options
context:
space:
mode:
authorMichele Calgaro <[email protected]>2024-10-13 11:56:14 +0900
committerMichele Calgaro <[email protected]>2024-10-29 21:58:42 +0900
commit2879ff70be9271550477982a1a6371714db38562 (patch)
treec2054149dba923ab080fe7093432c7663a990111 /src/datablocks/ingredientlist.h
parent3eb38d2556f676d1027746f20bf12a1dd74451ef (diff)
downloadkrecipes-2879ff70be9271550477982a1a6371714db38562.tar.gz
krecipes-2879ff70be9271550477982a1a6371714db38562.zip
Rearrange folders structure to remove unnecessary 'krecipes' second level subfolder
Signed-off-by: Michele Calgaro <[email protected]> (cherry picked from commit 0c8ed6c9a4000af8f48581a81c4b5c2f5b9fd502)
Diffstat (limited to 'src/datablocks/ingredientlist.h')
-rw-r--r--src/datablocks/ingredientlist.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/datablocks/ingredientlist.h b/src/datablocks/ingredientlist.h
new file mode 100644
index 0000000..bfd07db
--- /dev/null
+++ b/src/datablocks/ingredientlist.h
@@ -0,0 +1,61 @@
+/***************************************************************************
+* Copyright (C) 2003 by *
+* *
+* Unai Garro ([email protected]) *
+* Cyril Bosselut ([email protected]) *
+* 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. *
+***************************************************************************/
+#ifndef INGREDIENTLIST_H
+#define INGREDIENTLIST_H
+
+#include <tqvaluelist.h>
+#include <tqregexp.h>
+
+#include "datablocks/ingredient.h"
+
+class RecipeDB;
+
+/**
+@author Unai Garro
+*/
+class IngredientList: public TQValueList <Ingredient>
+{
+public:
+ IngredientList();
+ ~IngredientList();
+ bool contains( const Ingredient &ing, bool compareAmount = false, RecipeDB *database = 0 ) const;
+ bool containsSubSet( IngredientList &il, IngredientList &missing, bool compareAmount = false, RecipeDB *database = 0 );
+ bool containsSubSet( IngredientList &il ) const;
+ bool containsAny( const IngredientList &, bool compareAmount = false, RecipeDB *database = 0 );
+
+ IngredientList groupMembers( int id, IngredientList::const_iterator begin ) const;
+
+ void move( int index1, int index2 );
+ void move( int index1, int count, int index2 );
+ void empty( void );
+ int find( int id ) const;
+ Ingredient findByName( const TQString & ) const;
+ Ingredient findByName( const TQRegExp & ) const;
+ IngredientList::const_iterator find( IngredientList::const_iterator, int id ) const;
+ IngredientList::iterator find( IngredientList::iterator, int id );
+
+ /** Warning, returns an invalid reference if no ingredient is found. Must check prior
+ * to calling this function if the ingredient exists.
+ */
+ IngredientData& findSubstitute( const Ingredient & );
+ void removeSubstitute( const Ingredient & );
+
+ IngredientList firstGroup();
+ IngredientList nextGroup();
+
+private:
+ TQValueList<IngredientList::const_iterator> _groupMembers( int id, IngredientList::const_iterator begin ) const;
+ TQValueList<IngredientList::const_iterator> usedGroups;
+};
+
+#endif