diff options
author | Michele Calgaro <michele.calgaro@yahoo.it> | 2024-10-13 11:56:14 +0900 |
---|---|---|
committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2024-10-29 21:58:42 +0900 |
commit | 2879ff70be9271550477982a1a6371714db38562 (patch) | |
tree | c2054149dba923ab080fe7093432c7663a990111 /src/recipeactionshandler.h | |
parent | 3eb38d2556f676d1027746f20bf12a1dd74451ef (diff) | |
download | krecipes-2879ff70.tar.gz krecipes-2879ff70.zip |
Rearrange folders structure to remove unnecessary 'krecipes' second level subfolder
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
(cherry picked from commit 0c8ed6c9a4000af8f48581a81c4b5c2f5b9fd502)
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 (ugarro@users.sourceforge.net) * +* Cyril Bosselut (bosselut@b1project.com) * +* Jason Kivlighn (jkivlighn@gmail.com) * +* * +* 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 + |