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.
245 lines
5.4 KiB
245 lines
5.4 KiB
/***************************************************************************
|
|
* transfer.h
|
|
* -------------------
|
|
*
|
|
* Revision : $Id$
|
|
* begin : Tue Jan 29 2002
|
|
* copyright : (C) 2002 by Patrick Charbonnier
|
|
* : Based On Caitoo v.0.7.3 (c) 1998 - 2000, Matej Koss
|
|
* email : pch@freeshell.org
|
|
*
|
|
****************************************************************************/
|
|
|
|
/***************************************************************************
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
***************************************************************************/
|
|
|
|
|
|
#ifndef _Transfer_h
|
|
#define _Transfer_h
|
|
|
|
#include <tdelistview.h>
|
|
#include <tqdatetime.h>
|
|
#include <tqguardedptr.h>
|
|
#include <tqmap.h>
|
|
|
|
#include <kurl.h>
|
|
#include <tdeio/jobclasses.h>
|
|
|
|
#include "slave.h"
|
|
|
|
class TQTimer;
|
|
|
|
class KSimpleConfig;
|
|
class TDEAction;
|
|
class TDERadioAction;
|
|
|
|
|
|
|
|
class DlgIndividual;
|
|
class TransferList;
|
|
|
|
|
|
class Transfer:public TQObject, public TDEListViewItem
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
enum TransferMode { MD_QUEUED, MD_DELAYED, MD_SCHEDULED, MD_NONE, MD_NEW };
|
|
|
|
enum TransferStatus { ST_TRYING, ST_RUNNING, ST_STOPPED, ST_FINISHED };
|
|
|
|
enum TransferOperation {
|
|
OP_FINISHED, OP_RESUMED, OP_PAUSED, OP_REMOVED, OP_ABORTED,
|
|
OP_QUEUED, OP_SCHEDULED, OP_DELAYED, OP_CONNECTED
|
|
};
|
|
|
|
|
|
|
|
Transfer(TransferList * view, const KURL & _src, const KURL & _dest, const uint _id=0);
|
|
Transfer(TransferList * view, Transfer * after, const KURL & _src, const KURL & _dest, const uint _id=0);
|
|
~Transfer();
|
|
|
|
void synchronousAbort();
|
|
|
|
bool read(KSimpleConfig * config, int id);
|
|
void write(KSimpleConfig * config, int id);
|
|
void logMessage(const TQString & message);
|
|
|
|
bool keepDialogOpen() const;
|
|
|
|
|
|
TQDateTime getStartTime()const
|
|
{
|
|
return startTime;
|
|
}
|
|
unsigned int getRemainingTime()const
|
|
{
|
|
return remainingTimeSec;
|
|
}
|
|
|
|
TDEIO::filesize_t getTotalSize()const
|
|
{
|
|
return totalSize;
|
|
}
|
|
TDEIO::filesize_t getProcessedSize()const
|
|
{
|
|
return processedSize;
|
|
}
|
|
|
|
KURL getSrc()const
|
|
{
|
|
return src;
|
|
}
|
|
KURL getDest()const
|
|
{
|
|
return dest;
|
|
}
|
|
int getPercent()const
|
|
{
|
|
return percent;
|
|
}
|
|
|
|
int getSpeed()const
|
|
{
|
|
return speed;
|
|
}
|
|
TransferStatus getStatus()const
|
|
{
|
|
return status;
|
|
}
|
|
int getMode()const
|
|
{
|
|
return mode;
|
|
}
|
|
|
|
void setMode(TransferMode _mode)
|
|
{
|
|
mode = _mode;
|
|
}
|
|
void setStatus(TransferStatus _status)
|
|
{
|
|
status = _status;
|
|
};
|
|
void setStartTime(TQDateTime _startTime)
|
|
{
|
|
startTime = _startTime;
|
|
};
|
|
void setSpeed(unsigned long _speed);
|
|
|
|
// update methods
|
|
void updateAll();
|
|
bool updateStatus(int counter);
|
|
|
|
void showIndividual();
|
|
void UpdateRetry();
|
|
|
|
|
|
// actions
|
|
TDEAction *m_paResume, *m_paPause, *m_paDelete, *m_paRestart;
|
|
//TDEAction *m_paDock;
|
|
TDERadioAction *m_paQueue, *m_paTimer, *m_paDelay;
|
|
|
|
public:
|
|
void slotExecPause();
|
|
void slotExecResume();
|
|
void slotExecRemove();
|
|
void slotExecDelay();
|
|
void slotExecSchedule();
|
|
void slotExecConnected();
|
|
void slotExecError();
|
|
void slotExecBroken();
|
|
void slotCanResume(bool _bCanResume);
|
|
void slotSpeed(unsigned long);
|
|
void checkCache();
|
|
|
|
bool isVisible() const;
|
|
void maybeShow();
|
|
|
|
bool retryOnError();
|
|
bool retryOnBroken();
|
|
|
|
public slots:
|
|
// operation methods
|
|
void slotResume();
|
|
void slotRequestPause();
|
|
void slotRequestRemove();
|
|
void slotRequestSchedule();
|
|
void slotRequestDelay();
|
|
void NotInCache();
|
|
void slotRequestRestart();
|
|
void slotUpdateActions();
|
|
|
|
void slotQueue();
|
|
void slotFinished();
|
|
|
|
void slotTotalSize(TDEIO::filesize_t bytes);
|
|
void slotProcessedSize(TDEIO::filesize_t);
|
|
|
|
void slotStartTime(const TQDateTime &);
|
|
void slotStop(); // stop all transfers when going offline
|
|
|
|
signals:
|
|
void statusChanged(Transfer *, int _operation);
|
|
void log(uint, const TQString &, const TQString &);
|
|
|
|
private:
|
|
void init(const uint _id);
|
|
void destroyGetFileJob();
|
|
void createGetFileJob(KURL, KURL, bool);
|
|
|
|
Slave *m_pSlave;
|
|
|
|
KURL src;
|
|
KURL dest;
|
|
|
|
/* the tranfer id number */
|
|
uint id;
|
|
|
|
static uint idcount;
|
|
|
|
// log
|
|
TQString transferLog;
|
|
|
|
// schedule time
|
|
TQDateTime startTime;
|
|
|
|
TDEIO::filesize_t totalSize;
|
|
TDEIO::filesize_t processedSize;
|
|
int percent;
|
|
|
|
int speed;
|
|
unsigned int remainingTimeSec;
|
|
TQString remainingTime;
|
|
|
|
TransferStatus status;
|
|
TransferMode mode;
|
|
|
|
TransferStatus prevStatus;
|
|
TransferMode prevMode;
|
|
|
|
// how many times have we retried already
|
|
unsigned int retryCount;
|
|
|
|
bool canResume;
|
|
|
|
TransferList *view;
|
|
|
|
// individual download window
|
|
TQGuardedPtr<DlgIndividual> dlgIndividual;
|
|
|
|
};
|
|
|
|
|
|
#endif // _Transfer_h
|