diff options
Diffstat (limited to 'src/backends/progressinterface.h')
-rw-r--r-- | src/backends/progressinterface.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/src/backends/progressinterface.h b/src/backends/progressinterface.h new file mode 100644 index 0000000..de9fd28 --- /dev/null +++ b/src/backends/progressinterface.h @@ -0,0 +1,70 @@ +/*************************************************************************** +* Copyright (C) 2005 by * +* 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 PROGRESSINTERFACE_H +#define PROGRESSINTERFACE_H + +#include <tqobject.h> +#include <tqwidget.h> + +class KProgressDialog; + +class RecipeDB; +class ProgressSlotObject; + +/** This class is used to monitor events from the database that may take + * awhile. Before a potentially long operation, the database will + * call progressBegin(), progress() a number of times, and then progressDone(). + * + * This class may be subclassed to perform certain operations during long + * operations by implementing the three virtual functions. The default + * implementation displays a progress bar dialog. + */ +class ProgressInterface +{ +public: + ProgressInterface( TQWidget *parent ); + ~ProgressInterface(); + + void listenOn( RecipeDB* ); + +protected: + friend class ProgressSlotObject; + + virtual void progressBegin(int,const TQString &caption,const TQString &text,int rate); + virtual void progressDone(); + virtual void progress(); + +private: + ProgressSlotObject *slot_obj; + KProgressDialog *progress_dlg; + RecipeDB *database; + + int m_rate; + int m_rate_at; +}; + +class ProgressSlotObject : public TQObject +{ +TQ_OBJECT + +public: + ProgressSlotObject( TQWidget*parent, ProgressInterface *p ) : TQObject(parent), pInterface(p){} + +public slots: + void progressBegin(int i,const TQString &caption=TQString::null,const TQString &text=TQString::null,int rate=1){ pInterface->progressBegin(i,caption,text,rate); } + void progressDone(){ pInterface->progressDone(); } + void progress(){ pInterface->progress(); } + +private: + ProgressInterface *pInterface; +}; + +#endif |