00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include "jobclasses.h"
00020 #include "progressbase.h"
00021
00022 namespace TDEIO {
00023
00024 ProgressBase::ProgressBase( TQWidget *parent )
00025 : TQWidget( parent )
00026 {
00027 m_pJob = 0;
00028
00029
00030 m_bOnlyClean = false;
00031
00032
00033 m_bStopOnClose = true;
00034 }
00035
00036
00037 void ProgressBase::setJob( TDEIO::Job *job )
00038 {
00039
00040 connect( job, TQT_SIGNAL( percent( TDEIO::Job*, unsigned long ) ),
00041 TQT_SLOT( slotPercent( TDEIO::Job*, unsigned long ) ) );
00042
00043 connect( job, TQT_SIGNAL( result( TDEIO::Job* ) ),
00044 TQT_SLOT( slotFinished( TDEIO::Job* ) ) );
00045
00046 connect( job, TQT_SIGNAL( canceled( TDEIO::Job* ) ),
00047 TQT_SLOT( slotFinished( TDEIO::Job* ) ) );
00048
00049
00050 m_pJob = job;
00051 }
00052
00053
00054 void ProgressBase::setJob( TDEIO::CopyJob *job )
00055 {
00056
00057 connect( job, TQT_SIGNAL( totalSize( TDEIO::Job*, TDEIO::filesize_t ) ),
00058 TQT_SLOT( slotTotalSize( TDEIO::Job*, TDEIO::filesize_t ) ) );
00059 connect( job, TQT_SIGNAL( totalFiles( TDEIO::Job*, unsigned long ) ),
00060 TQT_SLOT( slotTotalFiles( TDEIO::Job*, unsigned long ) ) );
00061 connect( job, TQT_SIGNAL( totalDirs( TDEIO::Job*, unsigned long ) ),
00062 TQT_SLOT( slotTotalDirs( TDEIO::Job*, unsigned long ) ) );
00063
00064 connect( job, TQT_SIGNAL( processedSize( TDEIO::Job*, TDEIO::filesize_t ) ),
00065 TQT_SLOT( slotProcessedSize( TDEIO::Job*, TDEIO::filesize_t ) ) );
00066 connect( job, TQT_SIGNAL( processedFiles( TDEIO::Job*, unsigned long ) ),
00067 TQT_SLOT( slotProcessedFiles( TDEIO::Job*, unsigned long ) ) );
00068 connect( job, TQT_SIGNAL( processedDirs( TDEIO::Job*, unsigned long ) ),
00069 TQT_SLOT( slotProcessedDirs( TDEIO::Job*, unsigned long ) ) );
00070
00071 connect( job, TQT_SIGNAL( speed( TDEIO::Job*, unsigned long ) ),
00072 TQT_SLOT( slotSpeed( TDEIO::Job*, unsigned long ) ) );
00073 connect( job, TQT_SIGNAL( percent( TDEIO::Job*, unsigned long ) ),
00074 TQT_SLOT( slotPercent( TDEIO::Job*, unsigned long ) ) );
00075
00076 connect( job, TQT_SIGNAL( copying( TDEIO::Job*, const KURL& , const KURL& ) ),
00077 TQT_SLOT( slotCopying( TDEIO::Job*, const KURL&, const KURL& ) ) );
00078 connect( job, TQT_SIGNAL( moving( TDEIO::Job*, const KURL& , const KURL& ) ),
00079 TQT_SLOT( slotMoving( TDEIO::Job*, const KURL&, const KURL& ) ) );
00080 connect( job, TQT_SIGNAL( creatingDir( TDEIO::Job*, const KURL& ) ),
00081 TQT_SLOT( slotCreatingDir( TDEIO::Job*, const KURL& ) ) );
00082
00083 connect( job, TQT_SIGNAL( result( TDEIO::Job* ) ),
00084 TQT_SLOT( slotFinished( TDEIO::Job* ) ) );
00085
00086 connect( job, TQT_SIGNAL( canceled( TDEIO::Job* ) ),
00087 TQT_SLOT( slotFinished( TDEIO::Job* ) ) );
00088
00089
00090 m_pJob = job;
00091 }
00092
00093
00094 void ProgressBase::setJob( TDEIO::DeleteJob *job )
00095 {
00096
00097 connect( job, TQT_SIGNAL( totalSize( TDEIO::Job*, TDEIO::filesize_t ) ),
00098 TQT_SLOT( slotTotalSize( TDEIO::Job*, TDEIO::filesize_t ) ) );
00099 connect( job, TQT_SIGNAL( totalFiles( TDEIO::Job*, unsigned long ) ),
00100 TQT_SLOT( slotTotalFiles( TDEIO::Job*, unsigned long ) ) );
00101 connect( job, TQT_SIGNAL( totalDirs( TDEIO::Job*, unsigned long ) ),
00102 TQT_SLOT( slotTotalDirs( TDEIO::Job*, unsigned long ) ) );
00103
00104 connect( job, TQT_SIGNAL( processedSize( TDEIO::Job*, TDEIO::filesize_t ) ),
00105 TQT_SLOT( slotProcessedSize( TDEIO::Job*, TDEIO::filesize_t ) ) );
00106 connect( job, TQT_SIGNAL( processedFiles( TDEIO::Job*, unsigned long ) ),
00107 TQT_SLOT( slotProcessedFiles( TDEIO::Job*, unsigned long ) ) );
00108 connect( job, TQT_SIGNAL( processedDirs( TDEIO::Job*, unsigned long ) ),
00109 TQT_SLOT( slotProcessedDirs( TDEIO::Job*, unsigned long ) ) );
00110
00111 connect( job, TQT_SIGNAL( speed( TDEIO::Job*, unsigned long ) ),
00112 TQT_SLOT( slotSpeed( TDEIO::Job*, unsigned long ) ) );
00113 connect( job, TQT_SIGNAL( percent( TDEIO::Job*, unsigned long ) ),
00114 TQT_SLOT( slotPercent( TDEIO::Job*, unsigned long ) ) );
00115
00116 connect( job, TQT_SIGNAL( deleting( TDEIO::Job*, const KURL& ) ),
00117 TQT_SLOT( slotDeleting( TDEIO::Job*, const KURL& ) ) );
00118
00119 connect( job, TQT_SIGNAL( result( TDEIO::Job* ) ),
00120 TQT_SLOT( slotFinished( TDEIO::Job* ) ) );
00121
00122 connect( job, TQT_SIGNAL( canceled( TDEIO::Job* ) ),
00123 TQT_SLOT( slotFinished( TDEIO::Job* ) ) );
00124
00125
00126 m_pJob = job;
00127 }
00128
00129
00130 void ProgressBase::closeEvent( TQCloseEvent* ) {
00131
00132 if ( m_bStopOnClose ) {
00133 slotStop();
00134 } else {
00135
00136 if ( m_bOnlyClean ) {
00137 slotClean();
00138 } else {
00139 delete this;
00140 }
00141 }
00142 }
00143
00144 void ProgressBase::finished() {
00145
00146 if ( m_bOnlyClean ) {
00147 slotClean();
00148 } else {
00149 deleteLater();
00150 }
00151 }
00152
00153 void ProgressBase::slotFinished( TDEIO::Job* ) {
00154 finished();
00155 }
00156
00157
00158 void ProgressBase::slotStop() {
00159 if ( m_pJob ) {
00160 m_pJob->kill();
00161 m_pJob = 0L;
00162 } else {
00163 slotFinished( 0 );
00164 }
00165
00166 emit stopped();
00167 }
00168
00169
00170 void ProgressBase::slotClean() {
00171 hide();
00172 }
00173
00174 void ProgressBase::virtual_hook( int, void* )
00175 { }
00176
00177 }
00178
00179 #include "progressbase.moc"
00180