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

/* 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