Source Code (Use browser search to find items of interest.)

Class Index

kdelibs'ProgressBase (./kdelibs/kio/progressbase.h:71)

class ProgressBase : public QWidget {

  Q_OBJECT

public:

  ProgressBase( QWidget *parent );
  ~ProgressBase() {}

  void setJob( KIO::Job *job, bool onlyClean = false, bool stopOnClose = true );
  void setJob( KIO::CopyJob *job, bool onlyClean = false, bool stopOnClose = true );
  void setJob( KIO::DeleteJob *job, bool onlyClean = false, bool stopOnClose = true );

  virtual void clean() {}

public slots:
  void stop();

signals:
  void stopped();

protected:

  void closeEvent( QCloseEvent * );

  // either we set m_pJob or two Id's
  KIO::Job* m_pJob;

  /**
   * This variable controls whether the dialog should be deleted or only cleaned when
   * the KIO::Job is finished ( or canceled ).
   *
   * If your dialog is embedded widget and not a separate window, you should set this
   * variable to true in the constructor of your custom dialog.
   *
   * If true - Dialog will only call method @ref clean.
   * If false - Dialog will be deleted.
   */
  bool m_bOnlyClean;

  bool m_bStopOnClose;


public slots:

  virtual void slotTotalSize( KIO::Job*, unsigned long ) {}
  virtual void slotTotalFiles( KIO::Job*, unsigned long ) {}
  virtual void slotTotalDirs( KIO::Job*, unsigned long ) {}

  virtual void slotProcessedSize( KIO::Job*, unsigned long ) {}
  virtual void slotProcessedFiles( KIO::Job*, unsigned long ) {}
  virtual void slotProcessedDirs( KIO::Job*, unsigned long ) {}

  virtual void slotSpeed( KIO::Job*, unsigned long ) {}
  virtual void slotPercent( KIO::Job*, unsigned long ) {}

  virtual void slotCopying( KIO::Job*, const KURL&, const KURL& ) {}
  virtual void slotMoving( KIO::Job*, const KURL&, const KURL& ) {}
  virtual void slotDeleting( KIO::Job*, const KURL& ) {}
  virtual void slotCreatingDir( KIO::Job*, const KURL& ) {}

  virtual void slotRenaming( KIO::Job*, const KURL&, const KURL& ) {}

  virtual void slotCanResume( KIO::Job*, bool ) {}
};


kdelibs'ProgressBase::ProgressBase() (./kdelibs/kio/progressbase.cpp:22)

ProgressBase::ProgressBase( QWidget *parent )
  : QWidget( parent )
{
  m_pJob = 0;
}



kdelibs'ProgressBase::setJob() (./kdelibs/kio/progressbase.cpp:29)

void ProgressBase::setJob( KIO::Job *job, bool onlyClean, bool stopOnClose )
{
  m_bOnlyClean = onlyClean;
  m_bStopOnClose = stopOnClose;

  // first connect all slots
  connect( job, SIGNAL( percent( KIO::Job*, unsigned long ) ),
	   SLOT( slotPercent( KIO::Job*, unsigned long ) ) );

  // then assign job
  m_pJob = job;
}



kdelibs'ProgressBase::setJob() (./kdelibs/kio/progressbase.cpp:43)

void ProgressBase::setJob( KIO::CopyJob *job, bool onlyClean, bool stopOnClose )
{
  m_bOnlyClean = onlyClean;
  m_bStopOnClose = stopOnClose;

  // first connect all slots
  connect( job, SIGNAL( totalSize( KIO::Job*, unsigned long ) ),
	   SLOT( slotTotalSize( KIO::Job*, unsigned long ) ) );
  connect( job, SIGNAL( totalFiles( KIO::Job*, unsigned long ) ),
	   SLOT( slotTotalFiles( KIO::Job*, unsigned long ) ) );
  connect( job, SIGNAL( totalDirs( KIO::Job*, unsigned long ) ),
	   SLOT( slotTotalDirs( KIO::Job*, unsigned long ) ) );

  connect( job, SIGNAL( processedSize( KIO::Job*, unsigned long ) ),
	   SLOT( slotProcessedSize( KIO::Job*, unsigned long ) ) );
  connect( job, SIGNAL( processedFiles( KIO::Job*, unsigned long ) ),
	   SLOT( slotProcessedFiles( KIO::Job*, unsigned long ) ) );
  connect( job, SIGNAL( processedDirs( KIO::Job*, unsigned long ) ),
	   SLOT( slotProcessedDirs( KIO::Job*, unsigned long ) ) );

  connect( job, SIGNAL( speed( KIO::Job*, unsigned long ) ),
	   SLOT( slotSpeed( KIO::Job*, unsigned long ) ) );
  connect( job, SIGNAL( percent( KIO::Job*, unsigned long ) ),
	   SLOT( slotPercent( KIO::Job*, unsigned long ) ) );

  connect( job, SIGNAL( copying( KIO::Job*, const KURL& , const KURL& ) ),
	   SLOT( slotCopying( KIO::Job*, const KURL&, const KURL& ) ) );
  connect( job, SIGNAL( moving( KIO::Job*, const KURL& , const KURL& ) ),
	   SLOT( slotMoving( KIO::Job*, const KURL&, const KURL& ) ) );
  connect( job, SIGNAL( creatingDir( KIO::Job*, const KURL& ) ),
 	   SLOT( slotCreatingDir( KIO::Job*, const KURL& ) ) );

  connect( job, SIGNAL( renaming( KIO::Job*, const KURL&, const KURL& ) ),
 	   SLOT( slotRenaming( KIO::Job*, const KURL&, const KURL& ) ) );

  connect( job, SIGNAL( canResume( KIO::Job*, bool ) ),
 	   SLOT( slotCanResume( KIO::Job*, bool ) ) );

  // then assign job
  m_pJob = job;
}



kdelibs'ProgressBase::setJob() (./kdelibs/kio/progressbase.cpp:86)

void ProgressBase::setJob( KIO::DeleteJob *job, bool onlyClean, bool stopOnClose )
{
  m_bOnlyClean = onlyClean;
  m_bStopOnClose = stopOnClose;

  // first connect all slots
  connect( job, SIGNAL( totalSize( KIO::Job*, unsigned long ) ),
	   SLOT( slotTotalSize( KIO::Job*, unsigned long ) ) );
  connect( job, SIGNAL( totalFiles( KIO::Job*, unsigned long ) ),
	   SLOT( slotTotalFiles( KIO::Job*, unsigned long ) ) );
  connect( job, SIGNAL( totalDirs( KIO::Job*, unsigned long ) ),
	   SLOT( slotTotalDirs( KIO::Job*, unsigned long ) ) );

  connect( job, SIGNAL( processedSize( KIO::Job*, unsigned long ) ),
	   SLOT( slotProcessedSize( KIO::Job*, unsigned long ) ) );
  connect( job, SIGNAL( processedFiles( KIO::Job*, unsigned long ) ),
	   SLOT( slotProcessedFiles( KIO::Job*, unsigned long ) ) );
  connect( job, SIGNAL( processedDirs( KIO::Job*, unsigned long ) ),
	   SLOT( slotProcessedDirs( KIO::Job*, unsigned long ) ) );

  connect( job, SIGNAL( speed( KIO::Job*, unsigned long ) ),
	   SLOT( slotSpeed( KIO::Job*, unsigned long ) ) );
  connect( job, SIGNAL( percent( KIO::Job*, unsigned long ) ),
	   SLOT( slotPercent( KIO::Job*, unsigned long ) ) );

  connect( job, SIGNAL( deleting( KIO::Job*, const KURL& ) ),
	   SLOT( slotDeleting( KIO::Job*, const KURL& ) ) );

  // then assign job
  m_pJob = job;
}



kdelibs'ProgressBase::closeEvent() (./kdelibs/kio/progressbase.cpp:119)

void ProgressBase::closeEvent( QCloseEvent* ) {
  // kill job when desired
  if ( m_bStopOnClose ) {
    stop();
  }

  // clean or delete dialog
  if ( m_bOnlyClean ) {
    clean();
  } else {
    delete this;
  }
}

// this will kill job and subsequently also delete or clean this dialog

kdelibs'ProgressBase::stop() (./kdelibs/kio/progressbase.cpp:134)

void ProgressBase::stop() {
  if ( m_pJob ) {
    m_pJob->kill();
  } else {
    emit stopped();
  }
}

kdelibs'ProgressBase::slotCanResume() (./kdelibs/kio/progressbase.h:134)

  virtual void slotCanResume( KIO::Job*, bool ) {}
};