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/widgets/dblistviewbase.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/widgets/dblistviewbase.h')
-rw-r--r-- | src/widgets/dblistviewbase.h | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/src/widgets/dblistviewbase.h b/src/widgets/dblistviewbase.h new file mode 100644 index 0000000..d1514fe --- /dev/null +++ b/src/widgets/dblistviewbase.h @@ -0,0 +1,89 @@ +/*************************************************************************** +* Copyright (C) 2005 by * +* 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 LISTVIEWHANDLER_H +#define LISTVIEWHANDLER_H + +#include <tqobject.h> +#include <tqmap.h> + +#include <tdelistview.h> + +#define PREVLISTITEM_RTTI 1002 +#define NEXTLISTITEM_RTTI 1003 + +class KProgressDialog; + +class RecipeDB; + +enum ReloadFlags { + Load, /** Only performs the reload if the list hasn't already been loaded */ + ReloadIfPopulated, /** Only performs the reload if the list has been loaded */ + ForceReload /** Load/reload the list regardless of whether or not it's been loaded */ +}; + +class DBListViewBase : public TDEListView +{ +TQ_OBJECT + +public: + DBListViewBase( TQWidget *, RecipeDB *, int total ); + ~DBListViewBase(); + + void reload( ReloadFlags flag = Load ); + +signals: + void nextGroupLoaded(); + void prevGroupLoaded(); + +protected: + /** + * Called when the list view is ready to be used, i.e., it has been loaded with data. + * Until the list view has been loaded, we can ignore all database signals regarding changes + * of data. Therefore, subclasses should connect to these signals during this call. + */ + virtual void init(){} + virtual void load(int limit, int offset) = 0; + virtual void keyPressEvent( TQKeyEvent *e ); + bool handleElement( const TQString & ); + virtual void createElement( TQListViewItem * ); + void removeElement( TQListViewItem *, bool delete_item = true ); + + bool reloading(){ return bulk_load; } + void setSorting(int c){TDEListView::setSorting(c);} //don't do sorting, the database comes sorted from the database anyways + void setTotalItems(int); + + RecipeDB *database; + int curr_limit; + int curr_offset; + +protected slots: + void rename( TQListViewItem *, int c ); + void slotDoubleClicked( TQListViewItem * ); + +private: + void activatePrev(); + void activateNext(); + + //make this private because the data should always be synced with the database + void clear(){TDEListView::clear();} + + int total; + + bool bulk_load; + + TQMap<TQListViewItem*,TQListViewItem*> lastElementMap; + TQListViewItem *delete_me_later; + + KProgressDialog *m_progress; + int m_totalSteps; +}; + +#endif //LISTVIEWHANDLER_H |