diff options
author | Michele Calgaro <[email protected]> | 2024-10-13 11:56:14 +0900 |
---|---|---|
committer | Michele Calgaro <[email protected]> | 2024-10-21 09:29:11 +0900 |
commit | 0c8ed6c9a4000af8f48581a81c4b5c2f5b9fd502 (patch) | |
tree | 10f9d3223f0a0904a0748a28ca44da52ee1092b7 /src/recipeactionshandler.h | |
parent | 7d5ba3180a82a0827c1fbd6dc93a2abf4f882c37 (diff) | |
download | krecipes-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.h | 119 |
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 + |