00001
00033
#ifndef __KPIM_PROGRESSDIALOG_H__
00034
#define __KPIM_PROGRESSDIALOG_H__
00035
00036
#include <qdialog.h>
00037
#include <qlistview.h>
00038
#include <qlabel.h>
00039
#include <qvbox.h>
00040
#include "overlaywidget.h"
00041
00042
class QProgressBar;
00043
class QScrollView;
00044
class QFrame;
00045
00046
namespace KPIM {
00047
class ProgressItem;
00048
class TransactionItemListView;
00049
class TransactionItem;
00050
class SSLLabel;
00051
00052
class TransactionItemView :
public QScrollView {
00053 Q_OBJECT
00054
public:
00055 TransactionItemView(
QWidget * parent = 0,
00056
const char * name = 0,
00057 WFlags f = 0 );
00058
00059
virtual ~TransactionItemView()
00060 {}
00061 TransactionItem* addTransactionItem( ProgressItem *item,
bool first );
00062
00063
00064
QSize sizeHint() const;
00065
QSize minimumSizeHint() const;
00066 public slots:
00067
void slotLayoutFirstItem();
00068
00069 protected:
00070 virtual
void resizeContents (
int w,
int h );
00071
00072 private:
00073
QVBox * mBigBox;
00074 };
00075
00076 class TransactionItem : public
QVBox {
00077
00078 Q_OBJECT;
00079
00080
public:
00081 TransactionItem(
QWidget * parent,
00082 ProgressItem* item,
bool first );
00083
00084 ~TransactionItem();
00085
00086
void hideHLine();
00087
00088
void setProgress(
int progress );
00089
void setLabel(
const QString& );
00090
void setStatus(
const QString& );
00091
void setCrypto(
bool );
00092
00093 ProgressItem* item()
const {
return mItem; }
00094
00095
void addSubTransaction( ProgressItem *item);
00096
00097
00098
00099
void setItemComplete() { mItem = 0; }
00100
00101
public slots:
00102
void slotItemCanceled();
00103
00104
protected:
00105
QProgressBar* mProgress;
00106
QPushButton* mCancelButton;
00107
QLabel* mItemLabel;
00108
QLabel* mItemStatus;
00109
QFrame* mFrame;
00110 SSLLabel* mSSLLabel;
00111 ProgressItem* mItem;
00112 };
00113
00114
class ProgressDialog :
public OverlayWidget
00115 {
00116 Q_OBJECT
00117
00118
public:
00119 ProgressDialog(
QWidget* alignWidget,
QWidget* parent,
const char* name = 0 );
00120 ~ProgressDialog();
00121
void setVisible(
bool b );
00122
00123
public slots:
00124
void slotToggleVisibility();
00125
00126
protected slots:
00127
void slotTransactionAdded( ProgressItem *item );
00128
void slotTransactionCompleted( ProgressItem *item );
00129
void slotTransactionCanceled( ProgressItem *item );
00130
void slotTransactionProgress( ProgressItem *item,
unsigned int progress );
00131
void slotTransactionStatus( ProgressItem *item,
const QString& );
00132
void slotTransactionLabel( ProgressItem *item,
const QString& );
00133
void slotTransactionUsesCrypto( ProgressItem *item,
bool );
00134
00135
void slotClose();
00136
void slotShow();
00137
void slotHide();
00138
00139 signals:
00140
void visibilityChanged(
bool );
00141
00142
protected:
00143
virtual void closeEvent(
QCloseEvent* );
00144
00145 TransactionItemView* mScrollView;
00146 TransactionItem* mPreviousItem;
00147
QMap< const ProgressItem*, TransactionItem* > mTransactionsToListviewItems;
00148 };
00149
00150
00151 }
00152
00153
#endif // __KPIM_PROGRESSDIALOG_H__