summaryrefslogtreecommitdiffstats
path: root/src/recipeactionshandler.h
diff options
context:
space:
mode:
authorMichele Calgaro <[email protected]>2024-10-13 11:56:14 +0900
committerMichele Calgaro <[email protected]>2024-10-21 09:29:11 +0900
commit0c8ed6c9a4000af8f48581a81c4b5c2f5b9fd502 (patch)
tree10f9d3223f0a0904a0748a28ca44da52ee1092b7 /src/recipeactionshandler.h
parent7d5ba3180a82a0827c1fbd6dc93a2abf4f882c37 (diff)
downloadkrecipes-0c8ed6c9a4000af8f48581a81c4b5c2f5b9fd502.tar.gz
krecipes-0c8ed6c9a4000af8f48581a81c4b5c2f5b9fd502.zip
Rearrange folders structure to remove unnecessary 'krecipes' second level subfolder
Signed-off-by: Michele Calgaro <[email protected]>
Diffstat (limited to 'src/recipeactionshandler.h')
-rw-r--r--src/recipeactionshandler.h119
1 files changed, 119 insertions, 0 deletions
diff --git a/src/recipeactionshandler.h b/src/recipeactionshandler.h
new file mode 100644
index 0000000..f46e8de
--- /dev/null
+++ b/src/recipeactionshandler.h
@@ -0,0 +1,119 @@
+/***************************************************************************
+* 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 RECIPEACTIONSHANDLER_H
+#define RECIPEACTIONSHANDLER_H
+
+#include <tqobject.h>
+#include <tqvaluelist.h>
+#include <tqptrlist.h>
+
+class TQListViewItem;
+class TDEListView;
+class TDEPopupMenu;
+class RecipeDB;
+
+/** @brief A class that centralizes common actions for recipes such as saving and editing.
+ *
+ * It acts upon a given TDEListView that is assumed to be a list of recipes. It
+ * automagically enables this list view with a popup menu for user access to
+ * the provided actions.
+ *
+ * @author Jason Kivlighn
+ */
+class RecipeActionsHandler : public TQObject
+{
+ TQ_OBJECT
+
+public:
+ enum ItemType { Category, Recipe };
+ enum RecipeActions {
+ AllActions = 0xffff,
+ Open = 0x0001,
+ Edit = 0x0002,
+ Export = 0x0004,
+ RemoveFromCategory = 0x0008,
+ Remove = 0x0010,
+ ExpandAll = 0x0020,
+ CollapseAll = 0x0040,
+ AddToShoppingList = 0x0080,
+ CopyToClipboard = 0x0100,
+ Categorize = 0x0200
+ };
+
+ RecipeActionsHandler( TDEListView *parentListView, RecipeDB *db, int actions = AllActions );
+ ~RecipeActionsHandler()
+ {}
+
+ static void exportRecipes( const TQValueList<int> &ids, const TQString & caption, const TQString &selection, RecipeDB *db );
+ static void exportRecipe( int id, const TQString & caption, const TQString &selection, RecipeDB *db );
+ static void recipesToClipboard( const TQValueList<int> &ids, RecipeDB *db );
+
+signals:
+ void recipeSelected( int id, int action );
+ void recipesSelected( const TQValueList<int> &ids, int action );
+
+public slots:
+ void exec( ItemType type, const TQPoint &p );
+ void showPopup( TDEListView *, TQListViewItem *, const TQPoint & );
+
+ void categorize();
+
+ /** Signals an open event (via the recipeSelected() signal) for the recipe(s) currently
+ * selected in the list view
+ */
+ void open();
+
+ /** Signals an edit event (via the recipeSelected() signal) for the recipe currently
+ * selected in the list view
+ */
+ void edit();
+
+ /** Saves the recipe(s) currently selected in the list view, prompting with a file
+ * dialog.
+ */
+ void recipeExport();
+
+ /** Removes the recipe(s) currently selected in the list view from its current category */
+ void removeFromCategory();
+
+ /** Removes the recipe(s) currently selected in the list view from the database */
+ void remove
+ ();
+
+ /** Add the recipe(s) currently selected in the list view to the shopping list dialog */
+ void addToShoppingList();
+
+ /** Expands all items in the list view */
+ void expandAll();
+
+ /** Collapses all items in the list view */
+ void collapseAll();
+
+ void recipesToClipboard();
+
+private:
+ TDEPopupMenu *kpop;
+ TDEPopupMenu *catPop;
+
+ TDEListView *parentListView;
+ RecipeDB *database;
+
+ int remove_from_cat_item;
+ int categorize_item;
+
+ TQValueList<int> getAllVisibleItems();
+ TQValueList<int> recipeIDs( const TQPtrList<TQListViewItem> &items ) const;
+};
+
+#endif //RECIPEACTIONSHANDLER_H
+