You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
2.9 KiB
113 lines
2.9 KiB
/* KMail broadcast status message and related classes |
|
|
|
Copyright (C) 2000 Don Sanders <sanders@kde.org> |
|
|
|
License GPL |
|
*/ |
|
|
|
#ifndef __km_broadcast_status_h |
|
#define __km_broadcast_status_h |
|
|
|
#include <qwidget.h> |
|
#include <qframe.h> |
|
|
|
class KProgress; |
|
class QLabel; |
|
class QPushButton; |
|
class QWidgetStack; |
|
class QBoxLayout; |
|
#undef None |
|
|
|
/** When KMail is running it is possible to have multiple KMMainWin open |
|
at the same time. We want certain messages/information to be displayed |
|
in all active KMMainWins. KMBroadcastStatus make this possible, it |
|
defines a singleton object that broadcasts status messages by emitting |
|
signals. All KMMainWins connect up these signals to appropriate slots |
|
for updating their status bar. */ |
|
|
|
class KMBroadcastStatus : public QObject |
|
{ |
|
|
|
Q_OBJECT |
|
|
|
public: |
|
|
|
/** Return the instance of the singleton object for this class */ |
|
static KMBroadcastStatus *instance(); |
|
/** Emit an update status bar signal */ |
|
void setStatusMsg( const QString& ); |
|
/** Emit an enable progress widget(s) in status bar(s) signal */ |
|
void setStatusProgressEnable( const QString&, bool ); |
|
/** Emit an update progress widget(s) percent completed signal */ |
|
void setStatusProgressPercent( const QString&, unsigned long ); |
|
|
|
/** Returns true IFF the user has requested the current operation |
|
(the one whose progress is being shown) should be aborted. |
|
Needs to be periodically polled in the implementation of the |
|
operation. */ |
|
bool abortRequested(); |
|
/** Set the state of the abort requested variable to false */ |
|
void reset(); |
|
|
|
signals: |
|
|
|
/** Emitted when setStatusMsg is called. */ |
|
void statusMsg( const QString& ); |
|
/** Emitted when setStatusProgressEnable is called. */ |
|
void statusProgressEnable( bool ); |
|
/** Emitted when setStatusProgressPercent is called. */ |
|
void statusProgressPercent( unsigned long ); |
|
/** Emitted when reset is called. */ |
|
void resetRequested(); |
|
/** Emitted when user wants to abort the connection. */ |
|
void signalAbortRequested(); |
|
|
|
public slots: |
|
|
|
/** Set the state of the abort requested variable to return */ |
|
void requestAbort(); |
|
|
|
protected: |
|
|
|
KMBroadcastStatus(); |
|
static KMBroadcastStatus* instance_; |
|
bool abortRequested_; |
|
QMap<QString,unsigned long> ids; |
|
}; |
|
|
|
|
|
/** A specialized progress widget class, heavily based on |
|
kio_littleprogress_dlg (it looks similar) */ |
|
class KMLittleProgressDlg : public QFrame { |
|
|
|
Q_OBJECT |
|
|
|
public: |
|
|
|
KMLittleProgressDlg( QWidget* parent, bool button = true ); |
|
|
|
public slots: |
|
|
|
virtual void slotEnable( bool ); |
|
virtual void slotJustPercent( unsigned long ); |
|
virtual void slotClean(); |
|
|
|
protected: |
|
KProgress* m_pProgressBar; |
|
QLabel* m_pLabel; |
|
QPushButton* m_pButton; |
|
|
|
enum Mode { None, Label, Progress }; |
|
|
|
uint mode; |
|
bool m_bShowButton; |
|
|
|
void setMode(); |
|
|
|
virtual bool eventFilter( QObject *, QEvent * ); |
|
QBoxLayout *box; |
|
QWidgetStack *stack; |
|
}; |
|
|
|
|
|
#endif
|
|
|