aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/modules/dcc/broker.cpp38
-rw-r--r--src/modules/dcc/descriptor.cpp22
-rw-r--r--src/modules/dcc/descriptor.h7
-rw-r--r--src/modules/dcc/send.cpp9
4 files changed, 41 insertions, 35 deletions
diff --git a/src/modules/dcc/broker.cpp b/src/modules/dcc/broker.cpp
index c1322fee7..ab120d2f1 100644
--- a/src/modules/dcc/broker.cpp
+++ b/src/modules/dcc/broker.cpp
@@ -160,7 +160,6 @@ void KviDccBroker::rsendAskForFileName(KviDccDescriptor * dcc)
if(filenames.count() > 0)
{
KviDccDescriptor * d;
- KviDccDescriptor * templ = dcc;
QStringList::Iterator it=filenames.begin();
while(it != filenames.end())
{
@@ -773,28 +772,25 @@ void KviDccBroker::recvFileExecute(KviDccBox *box,KviDccDescriptor * dcc)
void KviDccBroker::sendFileManage(KviDccDescriptor * dcc)
{
QStringList filenames;
- if(
- KviFileDialog::askForOpenFileNames(filenames,
- __tr2qs_ctx("Choose Files to Send - KVIrc","dcc"),"")
- ) {
- if(filenames.count() > 0)
+ if(KviFileDialog::askForOpenFileNames(filenames,__tr2qs_ctx("Choose Files to Send - KVIrc","dcc"),""))
+ {
+ if(filenames.count() > 0)
+ {
+ KviDccDescriptor * d;
+ QStringList::Iterator it=filenames.begin();
+ while(it != filenames.end())
{
- KviDccDescriptor * d;
- KviDccDescriptor * templ = dcc;
- QStringList::Iterator it=filenames.begin();
- while(it != filenames.end())
- {
- d = new KviDccDescriptor(*dcc);
- d->szLocalFileName = *(it);
- d->szLocalFileName.trimmed();
- ++it;
- if(d->szLocalFileName.isEmpty())
- cancelDcc(d);
- else
- sendFileExecute(0,d);
- }
- delete dcc;
+ d = new KviDccDescriptor(*dcc);
+ d->szLocalFileName = *(it);
+ d->szLocalFileName.trimmed();
+ ++it;
+ if(d->szLocalFileName.isEmpty())
+ cancelDcc(d);
+ else
+ sendFileExecute(0,d);
}
+ delete dcc;
+ }
} else {
cancelDcc(dcc);
}
diff --git a/src/modules/dcc/descriptor.cpp b/src/modules/dcc/descriptor.cpp
index 859e7d33c..640791d0c 100644
--- a/src/modules/dcc/descriptor.cpp
+++ b/src/modules/dcc/descriptor.cpp
@@ -39,12 +39,10 @@ KviPointerHashTable<int,KviDccDescriptor> * KviDccDescriptor::descriptorDict()
return g_pDescriptorDict;
}
-/*
KviDccDescriptor::KviDccDescriptor(const KviDccDescriptor & src)
{
copyFrom(src);
}
-*/
KviDccDescriptor::KviDccDescriptor(KviConsole * pConsole)
{
@@ -149,12 +147,22 @@ KviDccDescriptor * KviDccDescriptor::find(unsigned int uId)
return g_pDescriptorDict->find((long)uId);
}
-/*
void KviDccDescriptor::copyFrom(const KviDccDescriptor &src)
{
+ m_uId = g_uNextDescriptorId;
+ g_uNextDescriptorId++;
+ m_szId.setNum(m_uId);
+
+ if(!g_pDescriptorDict)
+ {
+ g_pDescriptorDict = new KviPointerHashTable<int,KviDccDescriptor>;
+ g_pDescriptorDict->setAutoDelete(false);
+ }
+ g_pDescriptorDict->replace((long)m_uId,this);
+ m_bCreationEventTriggered=false;
+
m_pDccWindow = src.m_pDccWindow;
m_pDccTransfer = src.m_pDccTransfer;
- m_uId = src.m_uId;
szType = src.szType;
szNick = src.szNick;
szUser = src.szUser;
@@ -183,11 +191,15 @@ void KviDccDescriptor::copyFrom(const KviDccDescriptor &src)
bShowMinimized = src.bShowMinimized;
bAutoAccept = src.bAutoAccept;
bIsIncomingAvatar = src.bIsIncomingAvatar;
+ szLocalFileName = src.szLocalFileName;
+ szLocalFileSize = src.szLocalFileSize;
#ifdef COMPILE_SSL_SUPPORT
bIsSSL = src.bIsSSL;
#endif
+ // dcc voice only
+ szCodec = src.szCodec;
+ iSampleRate = src.iSampleRate;
}
-*/
bool KviDccDescriptor::isFileUpload()
{
diff --git a/src/modules/dcc/descriptor.h b/src/modules/dcc/descriptor.h
index 1cb1add97..fed8004e8 100644
--- a/src/modules/dcc/descriptor.h
+++ b/src/modules/dcc/descriptor.h
@@ -34,7 +34,8 @@ class KviDccDescriptor
{
public:
KviDccDescriptor(KviConsole * pConsole);
- //KviDccDescriptor(const KviDccDescriptor & src);
+ KviDccDescriptor(const KviDccDescriptor & src);
+
~KviDccDescriptor();
protected:
KviConsole * m_pConsole;
@@ -71,8 +72,8 @@ public:
static KviPointerHashTable<int,KviDccDescriptor> * descriptorDict();
void triggerCreationEvent(); // this MUST be called by the creator of the descriptor!
-//private:
-// void copyFrom(const KviDccDescriptor &src);
+private:
+ void copyFrom(const KviDccDescriptor &src);
public:
// Generic parameters
QString szType; // DCC protocol : CHAT , SCHAT , SEND , TSSEND....
diff --git a/src/modules/dcc/send.cpp b/src/modules/dcc/send.cpp
index 180b62999..e5b6eaa3c 100644
--- a/src/modules/dcc/send.cpp
+++ b/src/modules/dcc/send.cpp
@@ -955,8 +955,7 @@ void KviDccFileTransfer::retryDCC()
abort();
QString szRemoteNick = m_pDescriptor->remoteNick();
QString szFileName = m_pDescriptor->localFileName();
- QString szId;
- szId.setNum(m_pDescriptor->id());
+ QString szId = m_pDescriptor->idString();
QString szCommand = "dcc.send -r=$console($dcc.irccontext(" + szId + ")) " + szRemoteNick + " " + "\"" + szFileName + "\"";
KviKvsScript::run(szCommand,g_pActiveWindow);
}
@@ -966,8 +965,7 @@ void KviDccFileTransfer::retryTDCC()
abort();
QString szRemoteNick = m_pDescriptor->remoteNick();
QString szFileName = m_pDescriptor->localFileName();
- QString szId;
- szId.setNum(m_pDescriptor->id());
+ QString szId = m_pDescriptor->idString();
QString szCommand = "dcc.send -r=$console($dcc.irccontext(" + szId + ")) -t " + szRemoteNick + " " + "\"" + szFileName + "\"";
KviKvsScript::run(szCommand,g_pActiveWindow);
}
@@ -977,8 +975,7 @@ void KviDccFileTransfer::retryRevDCC()
abort();
QString szRemoteNick = m_pDescriptor->remoteNick();
QString szFileName = m_pDescriptor->localFileName();
- QString szId;
- szId.setNum(m_pDescriptor->id());
+ QString szId = m_pDescriptor->idString();
QString szCommand = "dcc.rsend -z -r=$console($dcc.irccontext(" + szId + ")) " + szRemoteNick + " " + "\"" + szFileName + "\"";
KviKvsScript::run(szCommand,g_pActiveWindow);
}