kio Library API Documentation

progressbase.cpp

00001 /* This file is part of the KDE libraries
00002    Copyright (C) 2000 Matej Koss <koss@miesto.sk>
00003 
00004    This library is free software; you can redistribute it and/or
00005    modify it under the terms of the GNU Library General Public
00006    License version 2 as published by the Free Software Foundation.
00007 
00008    This library is distributed in the hope that it will be useful,
00009    but WITHOUT ANY WARRANTY; without even the implied warranty of
00010    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011    Library General Public License for more details.
00012 
00013    You should have received a copy of the GNU Library General Public License
00014    along with this library; see the file COPYING.LIB.  If not, write to
00015    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00016    Boston, MA 02111-1307, USA.
00017 */
00018 
00019 #include "jobclasses.h"
00020 #include "progressbase.h"
00021 
00022 namespace KIO {
00023 
00024 ProgressBase::ProgressBase( QWidget *parent )
00025   : QWidget( parent )
00026 {
00027   m_pJob = 0;
00028 
00029   // delete dialog after the job is finished / canceled
00030   m_bOnlyClean = false;
00031 
00032   // stop job on close
00033   m_bStopOnClose = true;
00034 }
00035 
00036 
00037 void ProgressBase::setJob( KIO::Job *job )
00038 {
00039   // first connect all slots
00040   connect( job, SIGNAL( percent( KIO::Job*, unsigned long ) ),
00041            SLOT( slotPercent( KIO::Job*, unsigned long ) ) );
00042 
00043   connect( job, SIGNAL( result( KIO::Job* ) ),
00044            SLOT( slotFinished( KIO::Job* ) ) );
00045 
00046   connect( job, SIGNAL( canceled( KIO::Job* ) ),
00047            SLOT( slotFinished( KIO::Job* ) ) );
00048 
00049   // then assign job
00050   m_pJob = job;
00051 }
00052 
00053 
00054 void ProgressBase::setJob( KIO::CopyJob *job )
00055 {
00056   // first connect all slots
00057   connect( job, SIGNAL( totalSize( KIO::Job*, KIO::filesize_t ) ),
00058            SLOT( slotTotalSize( KIO::Job*, KIO::filesize_t ) ) );
00059   connect( job, SIGNAL( totalFiles( KIO::Job*, unsigned long ) ),
00060            SLOT( slotTotalFiles( KIO::Job*, unsigned long ) ) );
00061   connect( job, SIGNAL( totalDirs( KIO::Job*, unsigned long ) ),
00062            SLOT( slotTotalDirs( KIO::Job*, unsigned long ) ) );
00063 
00064   connect( job, SIGNAL( processedSize( KIO::Job*, KIO::filesize_t ) ),
00065            SLOT( slotProcessedSize( KIO::Job*, KIO::filesize_t ) ) );
00066   connect( job, SIGNAL( processedFiles( KIO::Job*, unsigned long ) ),
00067            SLOT( slotProcessedFiles( KIO::Job*, unsigned long ) ) );
00068   connect( job, SIGNAL( processedDirs( KIO::Job*, unsigned long ) ),
00069            SLOT( slotProcessedDirs( KIO::Job*, unsigned long ) ) );
00070 
00071   connect( job, SIGNAL( speed( KIO::Job*, unsigned long ) ),
00072            SLOT( slotSpeed( KIO::Job*, unsigned long ) ) );
00073   connect( job, SIGNAL( percent( KIO::Job*, unsigned long ) ),
00074            SLOT( slotPercent( KIO::Job*, unsigned long ) ) );
00075 
00076   connect( job, SIGNAL( copying( KIO::Job*, const KURL& , const KURL& ) ),
00077            SLOT( slotCopying( KIO::Job*, const KURL&, const KURL& ) ) );
00078   connect( job, SIGNAL( moving( KIO::Job*, const KURL& , const KURL& ) ),
00079            SLOT( slotMoving( KIO::Job*, const KURL&, const KURL& ) ) );
00080   connect( job, SIGNAL( creatingDir( KIO::Job*, const KURL& ) ),
00081            SLOT( slotCreatingDir( KIO::Job*, const KURL& ) ) );
00082 
00083   connect( job, SIGNAL( result( KIO::Job* ) ),
00084            SLOT( slotFinished( KIO::Job* ) ) );
00085 
00086   connect( job, SIGNAL( canceled( KIO::Job* ) ),
00087            SLOT( slotFinished( KIO::Job* ) ) );
00088 
00089   // then assign job
00090   m_pJob = job;
00091 }
00092 
00093 
00094 void ProgressBase::setJob( KIO::DeleteJob *job )
00095 {
00096   // first connect all slots
00097   connect( job, SIGNAL( totalSize( KIO::Job*, KIO::filesize_t ) ),
00098            SLOT( slotTotalSize( KIO::Job*, KIO::filesize_t ) ) );
00099   connect( job, SIGNAL( totalFiles( KIO::Job*, unsigned long ) ),
00100            SLOT( slotTotalFiles( KIO::Job*, unsigned long ) ) );
00101   connect( job, SIGNAL( totalDirs( KIO::Job*, unsigned long ) ),
00102            SLOT( slotTotalDirs( KIO::Job*, unsigned long ) ) );
00103 
00104   connect( job, SIGNAL( processedSize( KIO::Job*, KIO::filesize_t ) ),
00105            SLOT( slotProcessedSize( KIO::Job*, KIO::filesize_t ) ) );
00106   connect( job, SIGNAL( processedFiles( KIO::Job*, unsigned long ) ),
00107            SLOT( slotProcessedFiles( KIO::Job*, unsigned long ) ) );
00108   connect( job, SIGNAL( processedDirs( KIO::Job*, unsigned long ) ),
00109            SLOT( slotProcessedDirs( KIO::Job*, unsigned long ) ) );
00110 
00111   connect( job, SIGNAL( speed( KIO::Job*, unsigned long ) ),
00112            SLOT( slotSpeed( KIO::Job*, unsigned long ) ) );
00113   connect( job, SIGNAL( percent( KIO::Job*, unsigned long ) ),
00114            SLOT( slotPercent( KIO::Job*, unsigned long ) ) );
00115 
00116   connect( job, SIGNAL( deleting( KIO::Job*, const KURL& ) ),
00117            SLOT( slotDeleting( KIO::Job*, const KURL& ) ) );
00118 
00119   connect( job, SIGNAL( result( KIO::Job* ) ),
00120            SLOT( slotFinished( KIO::Job* ) ) );
00121 
00122   connect( job, SIGNAL( canceled( KIO::Job* ) ),
00123            SLOT( slotFinished( KIO::Job* ) ) );
00124 
00125   // then assign job
00126   m_pJob = job;
00127 }
00128 
00129 
00130 void ProgressBase::closeEvent( QCloseEvent* ) {
00131   // kill job when desired
00132   if ( m_bStopOnClose ) {
00133     slotStop();
00134   } else {
00135     // clean or delete dialog
00136     if ( m_bOnlyClean ) {
00137       slotClean();
00138     } else {
00139       delete this;
00140     }
00141   }
00142 }
00143 
00144 void ProgressBase::finished() {
00145   // clean or delete dialog
00146   if ( m_bOnlyClean ) {
00147     slotClean();
00148   } else {
00149     deleteLater();
00150   }
00151 }
00152 
00153 void ProgressBase::slotFinished( KIO::Job* ) {
00154   finished();
00155 }
00156 
00157 
00158 void ProgressBase::slotStop() {
00159   if ( m_pJob ) {
00160     m_pJob->kill(); // this will call slotFinished
00161     m_pJob = 0L;
00162   } else {
00163     slotFinished( 0 ); // here we call it ourselves
00164   }
00165 
00166   emit stopped();
00167 }
00168 
00169 
00170 void ProgressBase::slotClean() {
00171   hide();
00172 }
00173 
00174 void ProgressBase::virtual_hook( int, void* )
00175 { /*BASE::virtual_hook( id, data );*/ }
00176 
00177 } /* namespace */
00178 
00179 #include "progressbase.moc"
00180 
KDE Logo
This file is part of the documentation for kdelibs Version 3.1.5.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed Jan 28 13:14:36 2004 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2001