21#include <tqwidgetstack.h>
22#include <tqpushbutton.h>
25#include <tdeapplication.h>
30#include "jobclasses.h"
31#include "statusbarprogress.h"
38 m_bShowButton = button;
43 setStopOnClose(
false);
45 int w = fontMetrics().width(
" 999.9 kB/s 00:00:01 " ) + 8;
46 box =
new TQHBoxLayout(
this, 0, 0 );
48 m_pButton =
new TQPushButton(
"X",
this );
49 box->addWidget( m_pButton );
50 stack =
new TQWidgetStack(
this );
51 box->addWidget( stack );
52 connect( m_pButton, TQ_SIGNAL( clicked() ),
this, TQ_SLOT(
slotStop() ) );
54 m_pProgressBar =
new KProgress(
this );
55 m_pProgressBar->setFrameStyle( TQFrame::Box | TQFrame::Raised );
56 m_pProgressBar->setLineWidth( 1 );
57 m_pProgressBar->setBackgroundMode( TQWidget::PaletteBackground );
58 m_pProgressBar->installEventFilter(
this );
59 m_pProgressBar->setMinimumWidth( w );
60 stack->addWidget( m_pProgressBar, 1 );
62 m_pLabel =
new TQLabel(
"",
this );
63 m_pLabel->setAlignment( AlignHCenter | AlignVCenter );
64 m_pLabel->installEventFilter(
this );
65 m_pLabel->setMinimumWidth( w );
66 stack->addWidget( m_pLabel, 2 );
67 setMinimumSize( sizeHint() );
83void StatusbarProgress::setMode() {
86 if ( m_bShowButton ) {
93 if ( m_bShowButton ) {
97 stack->raiseWidget( m_pLabel );
101 if ( m_bShowButton ) {
105 stack->raiseWidget( m_pProgressBar );
111void StatusbarProgress::slotClean() {
113 m_pProgressBar->setValue( 0 );
125void StatusbarProgress::slotPercent(
TDEIO::Job*,
unsigned long percent ) {
126 m_pProgressBar->setValue( percent );
130void StatusbarProgress::slotSpeed(
TDEIO::Job*,
unsigned long speed ) {
132 m_pLabel->setText( i18n(
" Stalled ") );
139bool StatusbarProgress::eventFilter( TQObject *, TQEvent *ev ) {
144 if ( ev->type() == TQEvent::MouseButtonPress ) {
145 TQMouseEvent *e = (TQMouseEvent*)ev;
147 if ( e->button() == TQt::LeftButton ) {
148 if ( mode == Label ) {
150 }
else if ( mode == Progress ) {
162void StatusbarProgress::virtual_hook(
int id,
void* data )
163{ ProgressBase::virtual_hook(
id, data ); }
166#include "statusbarprogress.moc"
The base class for all jobs.
This class does all initialization stuff for progress, like connecting signals to slots.
void slotStop()
This method should be called for correct cancellation of IO operation Connect this to the progress wi...
void setOnlyClean(bool onlyClean)
This controls whether the dialog should be deleted or only cleaned when the TDEIO::Job is finished (o...
void setJob(TDEIO::Job *job)
Assign a TDEIO::Job to this progress dialog.
void setJob(TDEIO::Job *job)
Sets the job to monitor.
StatusbarProgress(TQWidget *parent, bool button=true)
Creates a new StatusbarProgress.
A namespace for TDEIO globals.
TDEIO_EXPORT TQString convertSize(TDEIO::filesize_t size)
Converts size from bytes to the string representation.
TQ_ULLONG filesize_t
64-bit file size