aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/dcc
diff options
context:
space:
mode:
authorGravatar Alexey Sokolov2016-04-29 23:57:30 +0100
committerGravatar Alexey Sokolov2016-04-29 23:57:48 +0100
commit690dd7a33ddc90678367d73adf313533536e10f2 (patch)
tree2276fe7c384ebbc222b40a19c536d5c3c5606ce8 /src/modules/dcc
parentAdd config for clang-format. (diff)
downloadKVIrc-690dd7a33ddc90678367d73adf313533536e10f2.tar.gz
KVIrc-690dd7a33ddc90678367d73adf313533536e10f2.tar.bz2
KVIrc-690dd7a33ddc90678367d73adf313533536e10f2.zip
Apply clang-format
Diffstat (limited to 'src/modules/dcc')
-rw-r--r--src/modules/dcc/DccBroker.cpp698
-rw-r--r--src/modules/dcc/DccBroker.h53
-rw-r--r--src/modules/dcc/DccCanvasWindow.cpp291
-rw-r--r--src/modules/dcc/DccCanvasWindow.h66
-rw-r--r--src/modules/dcc/DccChatWindow.cpp417
-rw-r--r--src/modules/dcc/DccChatWindow.h41
-rw-r--r--src/modules/dcc/DccDescriptor.cpp157
-rw-r--r--src/modules/dcc/DccDescriptor.h96
-rw-r--r--src/modules/dcc/DccDialog.cpp83
-rw-r--r--src/modules/dcc/DccDialog.h31
-rw-r--r--src/modules/dcc/DccFileTransfer.cpp1090
-rw-r--r--src/modules/dcc/DccFileTransfer.h174
-rw-r--r--src/modules/dcc/DccMarshal.cpp219
-rw-r--r--src/modules/dcc/DccMarshal.h47
-rw-r--r--src/modules/dcc/DccThread.cpp35
-rw-r--r--src/modules/dcc/DccThread.h18
-rw-r--r--src/modules/dcc/DccUtils.cpp38
-rw-r--r--src/modules/dcc/DccUtils.h2
-rw-r--r--src/modules/dcc/DccVideoWindow.cpp450
-rw-r--r--src/modules/dcc/DccVideoWindow.h83
-rw-r--r--src/modules/dcc/DccVoiceAdpcmCodec.cpp131
-rw-r--r--src/modules/dcc/DccVoiceAdpcmCodec.h10
-rw-r--r--src/modules/dcc/DccVoiceCodec.cpp138
-rw-r--r--src/modules/dcc/DccVoiceCodec.h26
-rw-r--r--src/modules/dcc/DccVoiceGsmCodec.cpp181
-rw-r--r--src/modules/dcc/DccVoiceGsmCodec.h41
-rw-r--r--src/modules/dcc/DccVoiceWindow.cpp493
-rw-r--r--src/modules/dcc/DccVoiceWindow.h85
-rw-r--r--src/modules/dcc/DccWindow.cpp12
-rw-r--r--src/modules/dcc/DccWindow.h18
-rw-r--r--src/modules/dcc/canvaswidget.cpp2373
-rw-r--r--src/modules/dcc/canvaswidget.h489
-rw-r--r--src/modules/dcc/libkvidcc.cpp854
-rw-r--r--src/modules/dcc/requests.cpp727
34 files changed, 5140 insertions, 4527 deletions
diff --git a/src/modules/dcc/DccBroker.cpp b/src/modules/dcc/DccBroker.cpp
index 53df4ffeb..08e9373d8 100644
--- a/src/modules/dcc/DccBroker.cpp
+++ b/src/modules/dcc/DccBroker.cpp
@@ -31,11 +31,11 @@
#include "DccVoiceWindow.h"
#ifndef COMPILE_DISABLE_DCC_VIDEO
- #include "DccVideoWindow.h"
+#include "DccVideoWindow.h"
#endif
#ifdef COMPILE_DCC_CANVAS
- #include "DccCanvasWindow.h"
+#include "DccCanvasWindow.h"
#endif
#include "KviApplication.h"
@@ -60,7 +60,7 @@ extern KVIRC_API KviSharedFilesManager * g_pSharedFilesManager;
//#warning "The broker might lookup the remote host name"
DccBroker::DccBroker()
-: QObject(0)
+ : QObject(0)
{
setObjectName("dcc_broker");
DccFileTransfer::init();
@@ -71,22 +71,23 @@ DccBroker::DccBroker()
m_pDccWindowList = new KviPointerList<KviWindow>;
m_pDccWindowList->setAutoDelete(false);
- m_pZeroPortTags = new KviPointerHashTable<QString,KviDccZeroPortTag>(17);
+ m_pZeroPortTags = new KviPointerHashTable<QString, KviDccZeroPortTag>(17);
m_pZeroPortTags->setAutoDelete(true);
}
DccBroker::~DccBroker()
{
delete m_pZeroPortTags;
- while(m_pBoxList->first())delete m_pBoxList->first();
+ while(m_pBoxList->first())
+ delete m_pBoxList->first();
delete m_pBoxList;
m_pBoxList = 0;
- while(m_pDccWindowList->first())delete m_pDccWindowList->first();
+ while(m_pDccWindowList->first())
+ delete m_pDccWindowList->first();
delete m_pDccWindowList;
DccFileTransfer::done();
}
-
KviDccZeroPortTag * DccBroker::addZeroPortTag()
{
static unsigned int g_uNextZeroPortTag = 0;
@@ -97,14 +98,15 @@ KviDccZeroPortTag * DccBroker::addZeroPortTag()
//t->m_szTag.prepend("mIrc-zero-port-");
t->m_uResumePosition = 0;
// FIXME: we should clear this dict if it grows too high....
- m_pZeroPortTags->insert(t->m_szTag,t);
+ m_pZeroPortTags->insert(t->m_szTag, t);
return t;
}
-KviDccZeroPortTag * DccBroker::findZeroPortTag(const QString &szTag)
+KviDccZeroPortTag * DccBroker::findZeroPortTag(const QString & szTag)
{
KviDccZeroPortTag * t = m_pZeroPortTags->find(szTag);
- if(!t)return 0;
+ if(!t)
+ return 0;
if(t->m_tTimestamp.secsTo(QDateTime::currentDateTime()) > 180)
{
// too late man...
@@ -114,7 +116,7 @@ KviDccZeroPortTag * DccBroker::findZeroPortTag(const QString &szTag)
return t;
}
-void DccBroker::removeZeroPortTag(const QString &szTag)
+void DccBroker::removeZeroPortTag(const QString & szTag)
{
m_pZeroPortTags->remove(szTag);
}
@@ -124,7 +126,7 @@ unsigned int DccBroker::dccBoxCount()
return m_pBoxList->count();
}
-void DccBroker::unregisterDccWindow(KviWindow *wnd)
+void DccBroker::unregisterDccWindow(KviWindow * wnd)
{
m_pDccWindowList->removeRef(wnd);
}
@@ -141,9 +143,10 @@ void DccBroker::cancelDcc(DccDescriptor * dcc)
dcc = 0;
}
-void DccBroker::cancelDcc(DccDialog *box,DccDescriptor * dcc)
+void DccBroker::cancelDcc(DccDialog * box, DccDescriptor * dcc)
{
- if(box)box->forgetDescriptor();
+ if(box)
+ box->forgetDescriptor();
delete dcc;
dcc = 0;
}
@@ -156,42 +159,45 @@ void DccBroker::rsendManage(DccDescriptor * dcc)
{
// We need the filename...
QFileInfo fi(dcc->szLocalFileName);
- if(fi.exists())rsendExecute(0,dcc);
- else rsendAskForFileName(dcc);
+ if(fi.exists())
+ rsendExecute(0, dcc);
+ else
+ rsendAskForFileName(dcc);
}
void DccBroker::rsendAskForFileName(DccDescriptor * dcc)
{
QStringList filenames;
if(
- KviFileDialog::askForOpenFileNames(
- filenames,
- __tr2qs_ctx("Choose Files to Send - KVIrc","dcc"),
- QString(),
- QString(),
- false,
- true,
- g_pMainWindow
- )
- ) {
- if(filenames.count() > 0)
+ KviFileDialog::askForOpenFileNames(
+ filenames,
+ __tr2qs_ctx("Choose Files to Send - KVIrc", "dcc"),
+ QString(),
+ QString(),
+ false,
+ true,
+ g_pMainWindow))
+ {
+ if(filenames.count() > 0)
+ {
+ DccDescriptor * d;
+ QStringList::Iterator it = filenames.begin();
+ while(it != filenames.end())
{
- DccDescriptor * d;
- QStringList::Iterator it=filenames.begin();
- while(it != filenames.end())
- {
- d = new DccDescriptor(*dcc);
- d->szLocalFileName = *(it);
- d->szLocalFileName = d->szLocalFileName.trimmed();
- ++it;
- if(d->szLocalFileName.isEmpty())
- cancelDcc(d);
- else
- rsendExecute(d);
- }
- delete dcc;
+ d = new DccDescriptor(*dcc);
+ d->szLocalFileName = *(it);
+ d->szLocalFileName = d->szLocalFileName.trimmed();
+ ++it;
+ if(d->szLocalFileName.isEmpty())
+ cancelDcc(d);
+ else
+ rsendExecute(d);
}
- } else {
+ delete dcc;
+ }
+ }
+ else
+ {
cancelDcc(dcc);
}
}
@@ -202,8 +208,8 @@ void DccBroker::rsendExecute(DccDescriptor * dcc)
{
// No way...we NEED the right IRC context...
g_pApp->activeConsole()->output(KVI_OUT_DCCERROR,
- __tr2qs_ctx("Can't send DCC %Q request to %Q: IRC connection has been terminated","dcc"),
- &(dcc->szType),&(dcc->szNick));
+ __tr2qs_ctx("Can't send DCC %Q request to %Q: IRC connection has been terminated", "dcc"),
+ &(dcc->szType), &(dcc->szNick));
delete dcc;
return;
}
@@ -212,8 +218,8 @@ void DccBroker::rsendExecute(DccDescriptor * dcc)
QFileInfo fi(dcc->szLocalFileName);
if(!(fi.exists() && fi.isReadable() && (fi.isFile()) && (fi.size() > 0)))
{
- dcc->console()->output(KVI_OUT_DCCERROR,__tr2qs_ctx("Can't open file %Q for reading","dcc"),
- &(dcc->szLocalFileName));
+ dcc->console()->output(KVI_OUT_DCCERROR, __tr2qs_ctx("Can't open file %Q for reading", "dcc"),
+ &(dcc->szLocalFileName));
delete dcc;
return;
}
@@ -222,7 +228,7 @@ void DccBroker::rsendExecute(DccDescriptor * dcc)
dcc->szFileName = QFileInfo(dcc->szFileName).fileName();
QString fName = dcc->szFileName;
- fName.replace(' ',"\\040"); // be cool :)
+ fName.replace(' ', "\\040"); // be cool :)
QString szTag;
if(dcc->isZeroPortRequest())
@@ -236,21 +242,23 @@ void DccBroker::rsendExecute(DccDescriptor * dcc)
// DCC [ST]SEND <filename> <fakeipaddress> <zero-port> <filesize> <sessionid>
dcc->console()->connection()->sendFmtData("PRIVMSG %s :%cDCC %s %s 127.0.0.1 0 %s %s%c",
- dcc->console()->connection()->encodeText(dcc->szNick).data(),
- 0x01,
- dcc->console()->connection()->encodeText(dcc->szType).data(),
- dcc->console()->connection()->encodeText(fName).data(),
- dcc->console()->connection()->encodeText(QString::number(fi.size())).data(),
- dcc->console()->connection()->encodeText(szTag).data(),
- 0x01);
- } else {
+ dcc->console()->connection()->encodeText(dcc->szNick).data(),
+ 0x01,
+ dcc->console()->connection()->encodeText(dcc->szType).data(),
+ dcc->console()->connection()->encodeText(fName).data(),
+ dcc->console()->connection()->encodeText(QString::number(fi.size())).data(),
+ dcc->console()->connection()->encodeText(szTag).data(),
+ 0x01);
+ }
+ else
+ {
dcc->console()->connection()->sendFmtData("PRIVMSG %s :%cDCC %s %s %s%c",
- dcc->console()->connection()->encodeText(dcc->szNick).data(),
- 0x01,
- dcc->console()->connection()->encodeText(dcc->szType).data(),
- dcc->console()->connection()->encodeText(fName).data(),
- dcc->console()->connection()->encodeText(QString::number(fi.size())).data(),
- 0x01);
+ dcc->console()->connection()->encodeText(dcc->szNick).data(),
+ 0x01,
+ dcc->console()->connection()->encodeText(dcc->szType).data(),
+ dcc->console()->connection()->encodeText(fName).data(),
+ dcc->console()->connection()->encodeText(QString::number(fi.size())).data(),
+ 0x01);
szTag = dcc->szFileName;
}
@@ -259,18 +267,18 @@ void DccBroker::rsendExecute(DccDescriptor * dcc)
QString szMask = dcc->szNick;
szMask += "!*@*";
- g_pSharedFilesManager->addSharedFile(szTag,dcc->szLocalFileName,szMask,120);
+ g_pSharedFilesManager->addSharedFile(szTag, dcc->szLocalFileName, szMask, 120);
delete dcc;
}
-void DccBroker::rsendExecute(DccDialog * box,DccDescriptor * dcc)
+void DccBroker::rsendExecute(DccDialog * box, DccDescriptor * dcc)
{
- if(box)box->forgetDescriptor();
+ if(box)
+ box->forgetDescriptor();
rsendExecute(dcc);
}
-
///////////////////////////////////////////////////////////////////////////////
// DCC CHAT
///////////////////////////////////////////////////////////////////////////////
@@ -281,46 +289,51 @@ void DccBroker::handleChatRequest(DccDescriptor * dcc)
{
// FIXME: better message ? Secure Direct Client Connection...eventually
// need confirmation
- QString tmp = __tr2qs_ctx( \
- "<b>%1 [%2@%3]</b> requests a " \
- "<b>Direct Client Connection</b> in <b>%4</b> mode.<br>", \
- "dcc").arg(dcc->szNick, dcc->szUser, dcc->szHost, dcc->szType);
+ QString tmp = __tr2qs_ctx(
+ "<b>%1 [%2@%3]</b> requests a "
+ "<b>Direct Client Connection</b> in <b>%4</b> mode.<br>",
+ "dcc")
+ .arg(dcc->szNick, dcc->szUser, dcc->szHost, dcc->szType);
#ifdef COMPILE_SSL_SUPPORT
- if(dcc->bIsSSL)tmp += __tr2qs_ctx("The connection will be secured using SSL.<br>","dcc");
+ if(dcc->bIsSSL)
+ tmp += __tr2qs_ctx("The connection will be secured using SSL.<br>", "dcc");
#endif
if(dcc->isZeroPortRequest())
{
- tmp += __tr2qs_ctx( \
- "You will be the passive side of the connection.<br>" \
- ,"dcc");
- } else {
- tmp += __tr2qs_ctx( \
- "The connection target will be host <b>%1</b> on port <b>%2</b><br>" \
- ,"dcc").arg(dcc->szIp, dcc->szPort);
+ tmp += __tr2qs_ctx(
+ "You will be the passive side of the connection.<br>", "dcc");
+ }
+ else
+ {
+ tmp += __tr2qs_ctx(
+ "The connection target will be host <b>%1</b> on port <b>%2</b><br>", "dcc")
+ .arg(dcc->szIp, dcc->szPort);
}
+ QString caption = __tr2qs_ctx("DCC %1 Request - KVIrc", "dcc").arg(dcc->szType);
- QString caption = __tr2qs_ctx("DCC %1 Request - KVIrc","dcc").arg(dcc->szType);
-
- DccAcceptDialog * box = new DccAcceptDialog(this,dcc,tmp,caption);
+ DccAcceptDialog * box = new DccAcceptDialog(this, dcc, tmp, caption);
m_pBoxList->append(box);
- connect(box,SIGNAL(accepted(DccDialog *,DccDescriptor *)),
- this,SLOT(executeChat(DccDialog *,DccDescriptor *)));
- connect(box,SIGNAL(rejected(DccDialog *,DccDescriptor *)),
- this,SLOT(cancelDcc(DccDialog *,DccDescriptor *)));
+ connect(box, SIGNAL(accepted(DccDialog *, DccDescriptor *)),
+ this, SLOT(executeChat(DccDialog *, DccDescriptor *)));
+ connect(box, SIGNAL(rejected(DccDialog *, DccDescriptor *)),
+ this, SLOT(cancelDcc(DccDialog *, DccDescriptor *)));
box->show();
- } else {
+ }
+ else
+ {
// auto accept
- executeChat(0,dcc);
+ executeChat(0, dcc);
}
}
-void DccBroker::executeChat(DccDialog *box,DccDescriptor * dcc)
+void DccBroker::executeChat(DccDialog * box, DccDescriptor * dcc)
{
- if(box)box->forgetDescriptor();
+ if(box)
+ box->forgetDescriptor();
if(!g_pApp->windowExists(dcc->console()))
{
@@ -332,13 +345,11 @@ void DccBroker::executeChat(DccDialog *box,DccDescriptor * dcc)
szSubProto.toLower();
QString tmp = QString("dcc: %1 %2@%3:%4").arg(szSubProto.ptr(), dcc->szNick, dcc->szIp, dcc->szPort);
- DccChatWindow * chat = new DccChatWindow(dcc,tmp.toUtf8().data());
+ DccChatWindow * chat = new DccChatWindow(dcc, tmp.toUtf8().data());
- bool bMinimized = dcc->bOverrideMinimize ? dcc->bShowMinimized : \
- (KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccChat) || \
- (dcc->bAutoAccept && KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccChatWhenAutoAccepted)));
+ bool bMinimized = dcc->bOverrideMinimize ? dcc->bShowMinimized : (KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccChat) || (dcc->bAutoAccept && KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccChatWhenAutoAccepted)));
- g_pMainWindow->addWindow(chat,!bMinimized);
+ g_pMainWindow->addWindow(chat, !bMinimized);
m_pDccWindowList->append(chat);
}
@@ -352,28 +363,31 @@ void DccBroker::activeVoiceManage(DccDescriptor * dcc)
{
// need confirmation
QString tmp = __tr2qs_ctx(
- "<b>%1 [%2@%3]</b> requests a<br>" \
- "<b>Direct Client Connection</b> in <b>VOICE</b> mode.<br>" \
- "The connection target will be host <b>%4</b> on port <b>%5</b><br>" \
- ,"dcc" \
- ).arg(dcc->szNick, dcc->szUser, dcc->szHost, dcc->szIp, dcc->szPort);
+ "<b>%1 [%2@%3]</b> requests a<br>"
+ "<b>Direct Client Connection</b> in <b>VOICE</b> mode.<br>"
+ "The connection target will be host <b>%4</b> on port <b>%5</b><br>",
+ "dcc")
+ .arg(dcc->szNick, dcc->szUser, dcc->szHost, dcc->szIp, dcc->szPort);
- DccAcceptDialog * box = new DccAcceptDialog(this,dcc,tmp,__tr2qs_ctx("DCC VOICE request","dcc"));
+ DccAcceptDialog * box = new DccAcceptDialog(this, dcc, tmp, __tr2qs_ctx("DCC VOICE request", "dcc"));
m_pBoxList->append(box);
- connect(box,SIGNAL(accepted(DccDialog *,DccDescriptor *)),
- this,SLOT(activeVoiceExecute(DccDialog *,DccDescriptor *)));
- connect(box,SIGNAL(rejected(DccDialog *,DccDescriptor *)),
- this,SLOT(cancelDcc(DccDialog *,DccDescriptor *)));
+ connect(box, SIGNAL(accepted(DccDialog *, DccDescriptor *)),
+ this, SLOT(activeVoiceExecute(DccDialog *, DccDescriptor *)));
+ connect(box, SIGNAL(rejected(DccDialog *, DccDescriptor *)),
+ this, SLOT(cancelDcc(DccDialog *, DccDescriptor *)));
box->show();
- } else {
+ }
+ else
+ {
// auto accept
- activeVoiceExecute(0,dcc);
+ activeVoiceExecute(0, dcc);
}
}
-void DccBroker::activeVoiceExecute(DccDialog *box,DccDescriptor * dcc)
+void DccBroker::activeVoiceExecute(DccDialog * box, DccDescriptor * dcc)
{
- if(box)box->forgetDescriptor();
+ if(box)
+ box->forgetDescriptor();
if(!g_pApp->windowExists(dcc->console()))
{
@@ -381,34 +395,30 @@ void DccBroker::activeVoiceExecute(DccDialog *box,DccDescriptor * dcc)
dcc->setConsole(g_pApp->activeConsole());
}
- KviCString tmp(KviCString::Format,"dcc: voice %s@%s:%s",dcc->szNick.toUtf8().data(),dcc->szIp.toUtf8().data(),dcc->szPort.toUtf8().data());
- DccVoiceWindow * v = new DccVoiceWindow(dcc,tmp.ptr());
+ KviCString tmp(KviCString::Format, "dcc: voice %s@%s:%s", dcc->szNick.toUtf8().data(), dcc->szIp.toUtf8().data(), dcc->szPort.toUtf8().data());
+ DccVoiceWindow * v = new DccVoiceWindow(dcc, tmp.ptr());
- bool bMinimized = dcc->bOverrideMinimize ? dcc->bShowMinimized : \
- (KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccVoice) || \
- (dcc->bAutoAccept && KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccVoiceWhenAutoAccepted)));
+ bool bMinimized = dcc->bOverrideMinimize ? dcc->bShowMinimized : (KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccVoice) || (dcc->bAutoAccept && KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccVoiceWhenAutoAccepted)));
- g_pMainWindow->addWindow(v,!bMinimized);
+ g_pMainWindow->addWindow(v, !bMinimized);
m_pDccWindowList->append(v);
}
-
///////////////////////////////////////////////////////////////////////////////
// PASSIVE VOICE
///////////////////////////////////////////////////////////////////////////////
void DccBroker::passiveVoiceExecute(DccDescriptor * dcc)
{
- KviCString tmp(KviCString::Format,"dcc: voice %s@%s:%s",dcc->szNick.toUtf8().data(),dcc->szIp.toUtf8().data(),dcc->szPort.toUtf8().data());
- DccVoiceWindow * v = new DccVoiceWindow(dcc,tmp.ptr());
+ KviCString tmp(KviCString::Format, "dcc: voice %s@%s:%s", dcc->szNick.toUtf8().data(), dcc->szIp.toUtf8().data(), dcc->szPort.toUtf8().data());
+ DccVoiceWindow * v = new DccVoiceWindow(dcc, tmp.ptr());
//#warning "Create minimized dcc voice ?... or maybe it's too much ? :)"
bool bMinimized = dcc->bOverrideMinimize ? dcc->bShowMinimized : KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccChat);
- g_pMainWindow->addWindow(v,!bMinimized);
+ g_pMainWindow->addWindow(v, !bMinimized);
m_pDccWindowList->append(v);
}
-
///////////////////////////////////////////////////////////////////////////////
// ACTIVE VIDEO
///////////////////////////////////////////////////////////////////////////////
@@ -420,28 +430,31 @@ void DccBroker::activeVideoManage(DccDescriptor * dcc)
{
// need confirmation
QString tmp = __tr2qs_ctx(
- "<b>%1 [%2@%3]</b> requests a<br>" \
- "<b>Direct Client Connection</b> in <b>VIDEO</b> mode.<br>" \
- "The connection target will be host <b>%4</b> on port <b>%5</b><br>" \
- ,"dcc" \
- ).arg(dcc->szNick, dcc->szUser, dcc->szHost, dcc->szIp, dcc->szPort);
+ "<b>%1 [%2@%3]</b> requests a<br>"
+ "<b>Direct Client Connection</b> in <b>VIDEO</b> mode.<br>"
+ "The connection target will be host <b>%4</b> on port <b>%5</b><br>",
+ "dcc")
+ .arg(dcc->szNick, dcc->szUser, dcc->szHost, dcc->szIp, dcc->szPort);
- DccAcceptDialog * box = new DccAcceptDialog(this,dcc,tmp,__tr2qs_ctx("DCC VIDEO request","dcc"));
+ DccAcceptDialog * box = new DccAcceptDialog(this, dcc, tmp, __tr2qs_ctx("DCC VIDEO request", "dcc"));
m_pBoxList->append(box);
- connect(box,SIGNAL(accepted(DccDialog *,DccDescriptor *)),
- this,SLOT(activeVideoExecute(DccDialog *,DccDescriptor *)));
- connect(box,SIGNAL(rejected(DccDialog *,DccDescriptor *)),
- this,SLOT(cancelDcc(DccDialog *,DccDescriptor *)));
+ connect(box, SIGNAL(accepted(DccDialog *, DccDescriptor *)),
+ this, SLOT(activeVideoExecute(DccDialog *, DccDescriptor *)));
+ connect(box, SIGNAL(rejected(DccDialog *, DccDescriptor *)),
+ this, SLOT(cancelDcc(DccDialog *, DccDescriptor *)));
box->show();
- } else {
+ }
+ else
+ {
// auto accept
- activeVideoExecute(0,dcc);
+ activeVideoExecute(0, dcc);
}
}
-void DccBroker::activeVideoExecute(DccDialog *box,DccDescriptor * dcc)
+void DccBroker::activeVideoExecute(DccDialog * box, DccDescriptor * dcc)
{
- if(box)box->forgetDescriptor();
+ if(box)
+ box->forgetDescriptor();
if(!g_pApp->windowExists(dcc->console()))
{
@@ -449,23 +462,20 @@ void DccBroker::activeVideoExecute(DccDialog *box,DccDescriptor * dcc)
dcc->setConsole(g_pApp->activeConsole());
}
- KviCString tmp(KviCString::Format,"dcc: video %s@%s:%s",dcc->szNick.toUtf8().data(),dcc->szIp.toUtf8().data(),dcc->szPort.toUtf8().data());
- DccVideoWindow * v = new DccVideoWindow(dcc,tmp.ptr());
+ KviCString tmp(KviCString::Format, "dcc: video %s@%s:%s", dcc->szNick.toUtf8().data(), dcc->szIp.toUtf8().data(), dcc->szPort.toUtf8().data());
+ DccVideoWindow * v = new DccVideoWindow(dcc, tmp.ptr());
- bool bMinimized = dcc->bOverrideMinimize ? dcc->bShowMinimized : \
- (KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccVideo) || \
- (dcc->bAutoAccept && KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccVideoWhenAutoAccepted)));
+ bool bMinimized = dcc->bOverrideMinimize ? dcc->bShowMinimized : (KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccVideo) || (dcc->bAutoAccept && KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccVideoWhenAutoAccepted)));
- g_pMainWindow->addWindow(v,!bMinimized);
+ g_pMainWindow->addWindow(v, !bMinimized);
m_pDccWindowList->append(v);
#else
-void DccBroker::activeVideoExecute(DccDialog *,DccDescriptor *)
+void DccBroker::activeVideoExecute(DccDialog *, DccDescriptor *)
{
#endif
}
-
///////////////////////////////////////////////////////////////////////////////
// PASSIVE VIDEO
///////////////////////////////////////////////////////////////////////////////
@@ -473,11 +483,11 @@ void DccBroker::activeVideoExecute(DccDialog *,DccDescriptor *)
#ifndef COMPILE_DISABLE_DCC_VIDEO
void DccBroker::passiveVideoExecute(DccDescriptor * dcc)
{
- KviCString tmp(KviCString::Format,"dcc: video %s@%s:%s",dcc->szNick.toUtf8().data(),dcc->szIp.toUtf8().data(),dcc->szPort.toUtf8().data());
- DccVideoWindow * v = new DccVideoWindow(dcc,tmp.ptr());
+ KviCString tmp(KviCString::Format, "dcc: video %s@%s:%s", dcc->szNick.toUtf8().data(), dcc->szIp.toUtf8().data(), dcc->szPort.toUtf8().data());
+ DccVideoWindow * v = new DccVideoWindow(dcc, tmp.ptr());
//#warning "Create minimized dcc video ?... or maybe it's too much ? :)"
bool bMinimized = dcc->bOverrideMinimize ? dcc->bShowMinimized : KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccChat);
- g_pMainWindow->addWindow(v,!bMinimized);
+ g_pMainWindow->addWindow(v, !bMinimized);
m_pDccWindowList->append(v);
#else
void DccBroker::passiveVideoExecute(DccDescriptor *)
@@ -485,7 +495,6 @@ void DccBroker::passiveVideoExecute(DccDescriptor *)
#endif
}
-
///////////////////////////////////////////////////////////////////////////////
// ACTIVE CANVAS
///////////////////////////////////////////////////////////////////////////////
@@ -496,31 +505,34 @@ void DccBroker::activeCanvasManage(DccDescriptor * dcc)
if(!dcc->bAutoAccept)
{
// need confirmation
- QString tmp = __tr2qs_ctx( \
- "<b>%1 [%2@%3]</b> requests a<br>" \
- "<b>Direct Client Connection</b> in <b>CANVAS</b> mode.<br>" \
- "The connection target will be host <b>%4</b> on port <b>%5</b><br>" \
- ,"dcc" \
- ).arg(dcc->szNick, dcc->szUser, dcc->szHost, dcc->szIp, dcc->szPort);
+ QString tmp = __tr2qs_ctx(
+ "<b>%1 [%2@%3]</b> requests a<br>"
+ "<b>Direct Client Connection</b> in <b>CANVAS</b> mode.<br>"
+ "The connection target will be host <b>%4</b> on port <b>%5</b><br>",
+ "dcc")
+ .arg(dcc->szNick, dcc->szUser, dcc->szHost, dcc->szIp, dcc->szPort);
- DccAcceptDialog * box = new DccAcceptDialog(this,dcc,tmp,__tr2qs_ctx("DCC CANVAS request","dcc"));
+ DccAcceptDialog * box = new DccAcceptDialog(this, dcc, tmp, __tr2qs_ctx("DCC CANVAS request", "dcc"));
m_pBoxList->append(box);
- connect(box,SIGNAL(accepted(DccDialog *,DccDescriptor *)),
- this,SLOT(activeCanvasExecute(DccDialog *,DccDescriptor *)));
- connect(box,SIGNAL(rejected(DccDialog *,DccDescriptor *)),
- this,SLOT(cancelDcc(DccDialog *,DccDescriptor *)));
+ connect(box, SIGNAL(accepted(DccDialog *, DccDescriptor *)),
+ this, SLOT(activeCanvasExecute(DccDialog *, DccDescriptor *)));
+ connect(box, SIGNAL(rejected(DccDialog *, DccDescriptor *)),
+ this, SLOT(cancelDcc(DccDialog *, DccDescriptor *)));
box->show();
- } else {
+ }
+ else
+ {
// auto accept
- activeCanvasExecute(0,dcc);
+ activeCanvasExecute(0, dcc);
}
}
#endif
#ifdef COMPILE_DCC_CANVAS
-void DccBroker::activeCanvasExecute(DccDialog *box,DccDescriptor * dcc)
+void DccBroker::activeCanvasExecute(DccDialog * box, DccDescriptor * dcc)
{
- if(box)box->forgetDescriptor();
+ if(box)
+ box->forgetDescriptor();
if(!g_pApp->windowExists(dcc->console()))
{
@@ -528,19 +540,17 @@ void DccBroker::activeCanvasExecute(DccDialog *box,DccDescriptor * dcc)
dcc->setConsole(g_pApp->activeConsole());
}
- KviCString tmp(KviCString::Format,"dcc: canvas %s@%s:%s",dcc->szNick.toUtf8().data(),dcc->szIp.toUtf8().data(),dcc->szPort.toUtf8().data());
- DccCanvasWindow * cnv = new DccCanvasWindow(dcc,tmp.ptr());
+ KviCString tmp(KviCString::Format, "dcc: canvas %s@%s:%s", dcc->szNick.toUtf8().data(), dcc->szIp.toUtf8().data(), dcc->szPort.toUtf8().data());
+ DccCanvasWindow * cnv = new DccCanvasWindow(dcc, tmp.ptr());
//#warning "This option should be dedicated to Dcc Canvas!....for now we are using the DccChat options"
- bool bMinimized = dcc->bOverrideMinimize ? dcc->bShowMinimized : \
- (KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccChat) || \
- (dcc->bAutoAccept && KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccChatWhenAutoAccepted)));
+ bool bMinimized = dcc->bOverrideMinimize ? dcc->bShowMinimized : (KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccChat) || (dcc->bAutoAccept && KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccChatWhenAutoAccepted)));
- g_pMainWindow->addWindow(cnv,!bMinimized);
+ g_pMainWindow->addWindow(cnv, !bMinimized);
m_pDccWindowList->append(cnv);
#else
-void DccBroker::activeCanvasExecute(DccDialog *,DccDescriptor *)
+void DccBroker::activeCanvasExecute(DccDialog *, DccDescriptor *)
{
#endif
}
@@ -551,11 +561,11 @@ void DccBroker::activeCanvasExecute(DccDialog *,DccDescriptor *)
#ifdef COMPILE_DCC_CANVAS
void DccBroker::passiveCanvasExecute(DccDescriptor * dcc)
{
- KviCString tmp(KviCString::Format,"dcc: canvas %s@%s:%s",dcc->szNick.toUtf8().data(),dcc->szIp.toUtf8().data(),dcc->szPort.toUtf8().data());
- DccCanvasWindow * cnv = new DccCanvasWindow(dcc,tmp.ptr());
+ KviCString tmp(KviCString::Format, "dcc: canvas %s@%s:%s", dcc->szNick.toUtf8().data(), dcc->szIp.toUtf8().data(), dcc->szPort.toUtf8().data());
+ DccCanvasWindow * cnv = new DccCanvasWindow(dcc, tmp.ptr());
//#warning "This option should be dedicated to Dcc Canvas!....for now we are using the DccChat options"
bool bMinimized = dcc->bOverrideMinimize ? dcc->bShowMinimized : KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccChat);
- g_pMainWindow->addWindow(cnv,!bMinimized);
+ g_pMainWindow->addWindow(cnv, !bMinimized);
m_pDccWindowList->append(cnv);
}
#endif
@@ -570,9 +580,11 @@ void DccBroker::recvFileManage(DccDescriptor * dcc)
{
bool bOk;
quint64 size = dcc->szFileSize.toULongLong(&bOk);
- if(bOk) {
- if(size>=KVI_OPTION_UINT(KviOption_uintMaximumRequestedAvatarSize)) {
- cancelDcc(0,dcc);
+ if(bOk)
+ {
+ if(size >= KVI_OPTION_UINT(KviOption_uintMaximumRequestedAvatarSize))
+ {
+ cancelDcc(0, dcc);
return;
}
}
@@ -586,94 +598,102 @@ void DccBroker::recvFileManage(DccDescriptor * dcc)
if(dcc->bActive)
{
// Normal active send: we will be connecting
- tmp = __tr2qs_ctx( \
- "<b>%1 [%2@%3]</b> " \
- "wants to send you the file " \
- "'<b>%4</b>', " \
- "<b>%5</b> large.<br>" \
- "The connection target will be host <b>%6</b> on port <b>%7</b><br>" \
- ,"dcc" \
- ).arg(dcc->szNick, dcc->szUser, dcc->szHost, dcc->szFileName)
- .arg(KviQString::makeSizeReadable(dcc->szFileSize.toULongLong()))
- .arg(dcc->szIp, dcc->szPort);
-
- } else {
+ tmp = __tr2qs_ctx(
+ "<b>%1 [%2@%3]</b> "
+ "wants to send you the file "
+ "'<b>%4</b>', "
+ "<b>%5</b> large.<br>"
+ "The connection target will be host <b>%6</b> on port <b>%7</b><br>",
+ "dcc")
+ .arg(dcc->szNick, dcc->szUser, dcc->szHost, dcc->szFileName)
+ .arg(KviQString::makeSizeReadable(dcc->szFileSize.toULongLong()))
+ .arg(dcc->szIp, dcc->szPort);
+ }
+ else
+ {
// passive: we will be listening!
- tmp = __tr2qs_ctx( \
- "<b>%1 [%2@%3]</b> "
- "wants to send you the file " \
- "'<b>%4</b>', " \
- "<b>%5</b> large.<br>" \
- "You will be the passive side of the connection.<br>" \
- ,"dcc" \
- ).arg(dcc->szNick, dcc->szUser, dcc->szHost, dcc->szFileName)
- .arg(KviQString::makeSizeReadable(dcc->szFileSize.toULongLong()));
+ tmp = __tr2qs_ctx(
+ "<b>%1 [%2@%3]</b> "
+ "wants to send you the file "
+ "'<b>%4</b>', "
+ "<b>%5</b> large.<br>"
+ "You will be the passive side of the connection.<br>",
+ "dcc")
+ .arg(dcc->szNick, dcc->szUser, dcc->szHost, dcc->szFileName)
+ .arg(KviQString::makeSizeReadable(dcc->szFileSize.toULongLong()));
}
if(dcc->bIsIncomingAvatar)
{
- tmp += __tr2qs_ctx( \
- "<b>Note:</b>" \
- "The file appears to be an avatar that you have requested. " \
- "You should not change its filename. " \
- "Save it in a location where KVIrc can find it, such as " \
- "the 'avatars', 'incoming', or 'pics' directories, " \
- "your home directory, or the save directory for the incoming file type. " \
- "The default save path will probably work. " \
- "You can instruct KVIrc to accept incoming avatars automatically " \
- "by setting the option <tt>boolAutoAcceptIncomingAvatars</tt> to true.<br>" \
- ,"dcc" \
- );
+ tmp += __tr2qs_ctx(
+ "<b>Note:</b>"
+ "The file appears to be an avatar that you have requested. "
+ "You should not change its filename. "
+ "Save it in a location where KVIrc can find it, such as "
+ "the 'avatars', 'incoming', or 'pics' directories, "
+ "your home directory, or the save directory for the incoming file type. "
+ "The default save path will probably work. "
+ "You can instruct KVIrc to accept incoming avatars automatically "
+ "by setting the option <tt>boolAutoAcceptIncomingAvatars</tt> to true.<br>",
+ "dcc");
}
//#warning "Maybe remove the pending avatar if rejected ?"
- QString title = __tr2qs_ctx("DCC %1 Request - KVIrc","dcc").arg(dcc->szType);
+ QString title = __tr2qs_ctx("DCC %1 Request - KVIrc", "dcc").arg(dcc->szType);
- DccAcceptDialog * box = new DccAcceptDialog(this,dcc,tmp,title);
+ DccAcceptDialog * box = new DccAcceptDialog(this, dcc, tmp, title);
m_pBoxList->append(box);
- connect(box,SIGNAL(accepted(DccDialog *,DccDescriptor *)),
- this,SLOT(chooseSaveFileName(DccDialog *,DccDescriptor *)));
- connect(box,SIGNAL(rejected(DccDialog *,DccDescriptor *)),
- this,SLOT(cancelDcc(DccDialog *,DccDescriptor *)));
+ connect(box, SIGNAL(accepted(DccDialog *, DccDescriptor *)),
+ this, SLOT(chooseSaveFileName(DccDialog *, DccDescriptor *)));
+ connect(box, SIGNAL(rejected(DccDialog *, DccDescriptor *)),
+ this, SLOT(cancelDcc(DccDialog *, DccDescriptor *)));
box->show();
- } else {
+ }
+ else
+ {
// auto accept
if(_OUTPUT_VERBOSE)
{
- dcc->console()->output(KVI_OUT_DCCMSG,__tr2qs_ctx("Auto-accepting DCC %Q request from %Q!%Q@%Q for file %Q","dcc"),
- &(dcc->szType),&(dcc->szNick),&(dcc->szUser),
- &(dcc->szHost),&(dcc->szFileName));
+ dcc->console()->output(KVI_OUT_DCCMSG, __tr2qs_ctx("Auto-accepting DCC %Q request from %Q!%Q@%Q for file %Q", "dcc"),
+ &(dcc->szType), &(dcc->szNick), &(dcc->szUser),
+ &(dcc->szHost), &(dcc->szFileName));
}
- chooseSaveFileName(0,dcc);
+ chooseSaveFileName(0, dcc);
}
}
-void DccBroker::chooseSaveFileName(DccDialog *box,DccDescriptor *dcc)
+void DccBroker::chooseSaveFileName(DccDialog * box, DccDescriptor * dcc)
{
- if(box)box->forgetDescriptor();
+ if(box)
+ box->forgetDescriptor();
// Lookup the suggested save directory
dcc->szLocalFileName = "";
- if(dcc->bIsIncomingAvatar)g_pApp->getLocalKvircDirectory(dcc->szLocalFileName,KviApplication::Avatars);
- else {
+ if(dcc->bIsIncomingAvatar)
+ g_pApp->getLocalKvircDirectory(dcc->szLocalFileName, KviApplication::Avatars);
+ else
+ {
if(KVI_OPTION_BOOL(KviOption_boolUseIncomingDccMediaTypeSavePath))
{
g_pMediaManager->lock();
- if(KviMediaType * mt = g_pMediaManager->findMediaType(dcc->szFileName.toUtf8().data(),false))
+ if(KviMediaType * mt = g_pMediaManager->findMediaType(dcc->szFileName.toUtf8().data(), false))
{
if(mt->szSavePath.hasData())
{
- if(KviFileUtils::directoryExists(mt->szSavePath.ptr()))dcc->szLocalFileName = mt->szSavePath;
- else {
- if(KviFileUtils::makeDir(mt->szSavePath.ptr()))dcc->szLocalFileName = mt->szSavePath;
+ if(KviFileUtils::directoryExists(mt->szSavePath.ptr()))
+ dcc->szLocalFileName = mt->szSavePath;
+ else
+ {
+ if(KviFileUtils::makeDir(mt->szSavePath.ptr()))
+ dcc->szLocalFileName = mt->szSavePath;
}
if(KVI_OPTION_BOOL(KviOption_boolSortReceivedByDccFilesByNicks))
{
- KviQString::ensureLastCharIs(dcc->szLocalFileName,KVI_PATH_SEPARATOR_CHAR);
+ KviQString::ensureLastCharIs(dcc->szLocalFileName, KVI_PATH_SEPARATOR_CHAR);
QString cleanNick = dcc->szNick;
KviFileUtils::cleanFileName(cleanNick);
dcc->szLocalFileName.append(cleanNick);
@@ -687,10 +707,10 @@ void DccBroker::chooseSaveFileName(DccDialog *box,DccDescriptor *dcc)
if(dcc->szLocalFileName.isEmpty())
{
- g_pApp->getLocalKvircDirectory(dcc->szLocalFileName,KviApplication::Incoming);
+ g_pApp->getLocalKvircDirectory(dcc->szLocalFileName, KviApplication::Incoming);
if(KVI_OPTION_BOOL(KviOption_boolSortReceivedByDccFilesByNicks))
{
- KviQString::ensureLastCharIs(dcc->szLocalFileName,KVI_PATH_SEPARATOR_CHAR);
+ KviQString::ensureLastCharIs(dcc->szLocalFileName, KVI_PATH_SEPARATOR_CHAR);
QString cleanNick = dcc->szNick;
KviFileUtils::cleanFileName(cleanNick);
dcc->szLocalFileName.append(cleanNick);
@@ -700,7 +720,7 @@ void DccBroker::chooseSaveFileName(DccDialog *box,DccDescriptor *dcc)
}
}
KviFileUtils::adjustFilePath(dcc->szLocalFileName);
- KviQString::ensureLastCharIs(dcc->szLocalFileName,KVI_PATH_SEPARATOR_CHAR);
+ KviQString::ensureLastCharIs(dcc->szLocalFileName, KVI_PATH_SEPARATOR_CHAR);
if(!(dcc->bAutoAccept))
{
@@ -708,21 +728,24 @@ void DccBroker::chooseSaveFileName(DccDialog *box,DccDescriptor *dcc)
KviFileUtils::cleanFileName(cleanFilename);
dcc->szLocalFileName.append(cleanFilename);
if(KviFileDialog::askForSaveFileName(
- dcc->szLocalFileName,
- __tr2qs_ctx("Choose Files to Save - KVIrc","dcc"),
- dcc->szLocalFileName,
- QString(),
- false,
- false,
- true,
- g_pMainWindow
- ))
+ dcc->szLocalFileName,
+ __tr2qs_ctx("Choose Files to Save - KVIrc", "dcc"),
+ dcc->szLocalFileName,
+ QString(),
+ false,
+ false,
+ true,
+ g_pMainWindow))
+ {
+ renameOverwriteResume(0, dcc);
+ }
+ else
{
- renameOverwriteResume(0,dcc);
- } else {
cancelDcc(dcc);
}
- } else {
+ }
+ else
+ {
// auto accept
// WE choose the filename
QString cleanFilename = dcc->szFileName;
@@ -731,17 +754,18 @@ void DccBroker::chooseSaveFileName(DccDialog *box,DccDescriptor *dcc)
if(_OUTPUT_VERBOSE)
{
- dcc->console()->output(KVI_OUT_DCCMSG,__tr2qs_ctx("Auto-saving DCC %Q file %Q as \r![!dbl]play $0\r%Q\r","dcc"),
- &(dcc->szType),&(dcc->szFileName),&(dcc->szLocalFileName));
+ dcc->console()->output(KVI_OUT_DCCMSG, __tr2qs_ctx("Auto-saving DCC %Q file %Q as \r![!dbl]play $0\r%Q\r", "dcc"),
+ &(dcc->szType), &(dcc->szFileName), &(dcc->szLocalFileName));
}
- renameOverwriteResume(0,dcc);
+ renameOverwriteResume(0, dcc);
}
}
-void DccBroker::renameOverwriteResume(DccDialog *box,DccDescriptor * dcc)
+void DccBroker::renameOverwriteResume(DccDialog * box, DccDescriptor * dcc)
{
- if(box)box->forgetDescriptor();
+ if(box)
+ box->forgetDescriptor();
// Check if file exists
QFileInfo fi(dcc->szLocalFileName);
@@ -760,62 +784,67 @@ void DccBroker::renameOverwriteResume(DccDialog *box,DccDescriptor * dcc)
bool bDisableResume = false;
if(
- (!bOk) || // remote size is unknown
- (iRemoteSize > (quint64)fi.size()) // or it is larger than the actual size on disk
- )
+ (!bOk) || // remote size is unknown
+ (iRemoteSize > (quint64)fi.size()) // or it is larger than the actual size on disk
+ )
+ {
+ tmp = __tr2qs_ctx(
+ "The file '<b>%1</b>' already exists "
+ "and is <b>%2</b> large.<br>"
+ "Do you wish to<br>"
+ "<b>auto-rename</b> the new file,<br>"
+ "<b>overwrite</b> the existing file, or<br> "
+ "<b>resume</b> an incomplete download?",
+ "dcc")
+ .arg(dcc->szLocalFileName)
+ .arg(KviQString::makeSizeReadable(fi.size()));
+ }
+ else
{
- tmp = __tr2qs_ctx( \
- "The file '<b>%1</b>' already exists " \
- "and is <b>%2</b> large.<br>" \
- "Do you wish to<br>" \
- "<b>auto-rename</b> the new file,<br>" \
- "<b>overwrite</b> the existing file, or<br> " \
- "<b>resume</b> an incomplete download?" \
- ,"dcc" \
- ).arg(dcc->szLocalFileName).arg(KviQString::makeSizeReadable(fi.size()));
- } else {
bDisableResume = true;
// the file on disk is larger or equal to the remote one
- tmp = __tr2qs_ctx( \
- "The file '<b>%1</b>' already exists " \
- "and is larger than the offered one.<br>" \
- "Do you wish to<br>" \
- "<b>auto-rename</b> the new file, or<br>" \
- "<b>overwrite</b> the existing file?" \
- ,"dcc" \
- ).arg(dcc->szLocalFileName);
+ tmp = __tr2qs_ctx(
+ "The file '<b>%1</b>' already exists "
+ "and is larger than the offered one.<br>"
+ "Do you wish to<br>"
+ "<b>auto-rename</b> the new file, or<br>"
+ "<b>overwrite</b> the existing file?",
+ "dcc")
+ .arg(dcc->szLocalFileName);
}
- DccRenameDialog * box = new DccRenameDialog(this,dcc,tmp,bDisableResume);
+ DccRenameDialog * box = new DccRenameDialog(this, dcc, tmp, bDisableResume);
m_pBoxList->append(box);
- connect(box,SIGNAL(renameSelected(DccDialog *,DccDescriptor *)),
- this,SLOT(renameDccSendFile(DccDialog *,DccDescriptor *)));
- connect(box,SIGNAL(overwriteSelected(DccDialog *,DccDescriptor *)),
- this,SLOT(recvFileExecute(DccDialog *,DccDescriptor *)));
- connect(box,SIGNAL(cancelSelected(DccDialog *,DccDescriptor *)),
- this,SLOT(cancelDcc(DccDialog *,DccDescriptor *)));
+ connect(box, SIGNAL(renameSelected(DccDialog *, DccDescriptor *)),
+ this, SLOT(renameDccSendFile(DccDialog *, DccDescriptor *)));
+ connect(box, SIGNAL(overwriteSelected(DccDialog *, DccDescriptor *)),
+ this, SLOT(recvFileExecute(DccDialog *, DccDescriptor *)));
+ connect(box, SIGNAL(cancelSelected(DccDialog *, DccDescriptor *)),
+ this, SLOT(cancelDcc(DccDialog *, DccDescriptor *)));
box->show();
return;
}
// auto resume ?
if(
- KVI_OPTION_BOOL(KviOption_boolAutoResumeDccSendWhenAutoAccepted) &&
- (bOk) && // only if the remote size is really known
- (iRemoteSize > (quint64)fi.size()) && // only if the remote size is larger than the local size
- (!DccFileTransfer::nonFailedTransferWithLocalFileName(dcc->szLocalFileName)) // only if there is no transfer with this local file name yet
- )
+ KVI_OPTION_BOOL(KviOption_boolAutoResumeDccSendWhenAutoAccepted) && (bOk) && // only if the remote size is really known
+ (iRemoteSize > (quint64)fi.size()) && // only if the remote size is larger than the local size
+ (!DccFileTransfer::nonFailedTransferWithLocalFileName(dcc->szLocalFileName)) // only if there is no transfer with this local file name yet
+ )
{
// yep, auto resume...
dcc->bResume = true;
- recvFileExecute(0,dcc);
- } else if(iRemoteSize == (quint64)fi.size())
+ recvFileExecute(0, dcc);
+ }
+ else if(iRemoteSize == (quint64)fi.size())
+ {
+ dcc->console()->output(KVI_OUT_DCCMSG, "Transfer aborted: file %Q already completed", &(dcc->szLocalFileName));
+ cancelDcc(0, dcc);
+ }
+ else
{
- dcc->console()->output(KVI_OUT_DCCMSG,"Transfer aborted: file %Q already completed",&(dcc->szLocalFileName));
- cancelDcc(0,dcc);
- } else {
// otherwise auto rename
- renameDccSendFile(0,dcc);
+ renameDccSendFile(0, dcc);
}
return;
}
@@ -823,19 +852,20 @@ void DccBroker::renameOverwriteResume(DccDialog *box,DccDescriptor * dcc)
dcc->szLocalFileSize = "0";
// everything OK
- recvFileExecute(0,dcc);
+ recvFileExecute(0, dcc);
}
-void DccBroker::renameDccSendFile(DccDialog *box,DccDescriptor * dcc)
+void DccBroker::renameDccSendFile(DccDialog * box, DccDescriptor * dcc)
{
- if(box)box->forgetDescriptor();
-
+ if(box)
+ box->forgetDescriptor();
if(QFileInfo(dcc->szLocalFileName).exists())
{
KviCString szOrig = dcc->szLocalFileName;
int i = 1;
- do {
+ do
+ {
KviCString szNum;
szNum.setNum(i);
int idx = szOrig.findLastIdx('.');
@@ -845,7 +875,9 @@ void DccBroker::renameDccSendFile(DccDialog *box,DccDescriptor * dcc)
dcc->szLocalFileName += ".";
dcc->szLocalFileName += szNum;
dcc->szLocalFileName += szOrig.right(szOrig.len() - idx);
- } else {
+ }
+ else
+ {
dcc->szLocalFileName = szOrig;
dcc->szLocalFileName += ".";
dcc->szLocalFileName += szNum;
@@ -855,19 +887,20 @@ void DccBroker::renameDccSendFile(DccDialog *box,DccDescriptor * dcc)
if(_OUTPUT_VERBOSE)
{
- dcc->console()->output(KVI_OUT_DCCMSG,__tr2qs_ctx("File %s exists, auto-renaming to %Q","dcc"),
- szOrig.ptr(),&(dcc->szLocalFileName));
+ dcc->console()->output(KVI_OUT_DCCMSG, __tr2qs_ctx("File %s exists, auto-renaming to %Q", "dcc"),
+ szOrig.ptr(), &(dcc->szLocalFileName));
}
}
dcc->szLocalFileSize = "0"; // 0 for sure
- recvFileExecute(0,dcc);
+ recvFileExecute(0, dcc);
}
-void DccBroker::recvFileExecute(DccDialog *box,DccDescriptor * dcc)
+void DccBroker::recvFileExecute(DccDialog * box, DccDescriptor * dcc)
{
- if(box)box->forgetDescriptor();
+ if(box)
+ box->forgetDescriptor();
if(!g_pApp->windowExists(dcc->console()))
{
@@ -877,31 +910,27 @@ void DccBroker::recvFileExecute(DccDialog *box,DccDescriptor * dcc)
DccFileTransfer * send = new DccFileTransfer(dcc);
- bool bMinimized = dcc->bOverrideMinimize ? dcc->bShowMinimized : \
- (KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccSend) || \
- (dcc->bAutoAccept && KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccSendWhenAutoAccepted)));
+ bool bMinimized = dcc->bOverrideMinimize ? dcc->bShowMinimized : (KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccSend) || (dcc->bAutoAccept && KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccSendWhenAutoAccepted)));
- send->invokeTransferWindow(bMinimized,bMinimized);
+ send->invokeTransferWindow(bMinimized, bMinimized);
}
-
void DccBroker::sendFileManage(DccDescriptor * dcc)
{
QStringList filenames;
if(KviFileDialog::askForOpenFileNames(
- filenames,
- __tr2qs_ctx("Choose Files to Send - KVIrc","dcc"),
- QString(),
- QString(),
- false,
- true,
- g_pMainWindow
- ))
+ filenames,
+ __tr2qs_ctx("Choose Files to Send - KVIrc", "dcc"),
+ QString(),
+ QString(),
+ false,
+ true,
+ g_pMainWindow))
{
if(filenames.count() > 0)
{
DccDescriptor * d;
- QStringList::Iterator it=filenames.begin();
+ QStringList::Iterator it = filenames.begin();
while(it != filenames.end())
{
d = new DccDescriptor(*dcc);
@@ -911,18 +940,21 @@ void DccBroker::sendFileManage(DccDescriptor * dcc)
if(d->szLocalFileName.isEmpty())
cancelDcc(d);
else
- sendFileExecute(0,d);
+ sendFileExecute(0, d);
}
delete dcc;
}
- } else {
+ }
+ else
+ {
cancelDcc(dcc);
}
}
-void DccBroker::sendFileExecute(DccDialog * box,DccDescriptor *dcc)
+void DccBroker::sendFileExecute(DccDialog * box, DccDescriptor * dcc)
{
- if(box)box->forgetDescriptor();
+ if(box)
+ box->forgetDescriptor();
if(!g_pApp->windowExists(dcc->console()))
{
@@ -933,8 +965,8 @@ void DccBroker::sendFileExecute(DccDialog * box,DccDescriptor *dcc)
QFileInfo fi(dcc->szLocalFileName);
if(!(fi.exists() && fi.isReadable() && (fi.isFile()) && (fi.size() > 0)))
{
- dcc->console()->output(KVI_OUT_DCCERROR,__tr2qs_ctx("Can't open file %Q for reading","dcc"),
- &(dcc->szLocalFileName));
+ dcc->console()->output(KVI_OUT_DCCERROR, __tr2qs_ctx("Can't open file %Q for reading", "dcc"),
+ &(dcc->szLocalFileName));
delete dcc;
return;
}
@@ -948,30 +980,29 @@ void DccBroker::sendFileExecute(DccDialog * box,DccDescriptor *dcc)
bool bMinimized = dcc->bOverrideMinimize ? dcc->bShowMinimized : KVI_OPTION_BOOL(KviOption_boolCreateMinimizedDccSend);
- send->invokeTransferWindow(bMinimized,bMinimized);
+ send->invokeTransferWindow(bMinimized, bMinimized);
}
bool DccBroker::canUnload()
{
if(m_pBoxList)
{
- if((m_pBoxList->count() != 0) ||
- (m_pDccWindowList->count() != 0) ||
- (DccFileTransfer::transferCount() != 0))return false;
+ if((m_pBoxList->count() != 0) || (m_pDccWindowList->count() != 0) || (DccFileTransfer::transferCount() != 0))
+ return false;
} // else in the destructor anyway (going to die)
return true;
}
-bool DccBroker::handleResumeAccepted(const char * filename,const char * port,const char * szZeroPortTag)
+bool DccBroker::handleResumeAccepted(const char * filename, const char * port, const char * szZeroPortTag)
{
- return DccFileTransfer::handleResumeAccepted(filename,port,szZeroPortTag);
+ return DccFileTransfer::handleResumeAccepted(filename, port, szZeroPortTag);
}
-bool DccBroker::handleResumeRequest(KviDccRequest * dcc,const char * filename,const char * port,unsigned long filePos,const char * szZeroPortTag)
+bool DccBroker::handleResumeRequest(KviDccRequest * dcc, const char * filename, const char * port, unsigned long filePos, const char * szZeroPortTag)
{
//qDebug("HANDLE %s %s %u %s",filename,port,filePos,szZeroPortTag);
// the zeroPOrtTag is nonempty here only if port == 0
- if(kvi_strEqualCI("0",port) && szZeroPortTag)
+ if(kvi_strEqualCI("0", port) && szZeroPortTag)
{
// zero port resume request (we have sent out a DCC SEND <filename> <fakeip> 0 <tag>
KviDccZeroPortTag * t = findZeroPortTag(QString(szZeroPortTag));
@@ -985,23 +1016,22 @@ bool DccBroker::handleResumeRequest(KviDccRequest * dcc,const char * filename,co
t->m_uResumePosition = filePos;
KviCString szBuffy;
- KviIrcServerParser::encodeCtcpParameter(filename,szBuffy);
+ KviIrcServerParser::encodeCtcpParameter(filename, szBuffy);
dcc->ctcpMsg->msg->console()->connection()->sendFmtData(
- "PRIVMSG %s :%cDCC ACCEPT %s %s %s %s%c",
- dcc->ctcpMsg->msg->console()->connection()->encodeText(dcc->ctcpMsg->pSource->nick()).data(),
- 0x01,
- szBuffy.ptr(),
- port,
- dcc->ctcpMsg->msg->console()->connection()->encodeText(QString::number(filePos)).data(),
- szZeroPortTag,
- 0x01
- );
+ "PRIVMSG %s :%cDCC ACCEPT %s %s %s %s%c",
+ dcc->ctcpMsg->msg->console()->connection()->encodeText(dcc->ctcpMsg->pSource->nick()).data(),
+ 0x01,
+ szBuffy.ptr(),
+ port,
+ dcc->ctcpMsg->msg->console()->connection()->encodeText(QString::number(filePos)).data(),
+ szZeroPortTag,
+ 0x01);
return true;
}
}
//qDebug("NOT A ZeRO PORT");
- return DccFileTransfer::handleResumeRequest(filename,port,filePos);
+ return DccFileTransfer::handleResumeRequest(filename, port, filePos);
}
diff --git a/src/modules/dcc/DccBroker.h b/src/modules/dcc/DccBroker.h
index 92421d428..651f3d8c4 100644
--- a/src/modules/dcc/DccBroker.h
+++ b/src/modules/dcc/DccBroker.h
@@ -42,14 +42,13 @@ class DccDialog;
// #define COMPILE_DCC_CANVAS
-
class KviDccZeroPortTag
{
public:
- QDateTime m_tTimestamp;
- QString m_szTag;
- unsigned long m_uFileSize; // outgoing file size, valid only for file transfers obviously
- unsigned long m_uResumePosition; // if 0 = no resume, valid only for file transfers obviously
+ QDateTime m_tTimestamp;
+ QString m_szTag;
+ unsigned long m_uFileSize; // outgoing file size, valid only for file transfers obviously
+ unsigned long m_uResumePosition; // if 0 = no resume, valid only for file transfers obviously
};
class DccBroker : public QObject
@@ -58,20 +57,22 @@ class DccBroker : public QObject
public:
DccBroker();
~DccBroker();
+
protected:
- KviPointerList<DccDialog> * m_pBoxList;
- KviPointerList<KviWindow> * m_pDccWindowList;
- KviPointerHashTable<QString,KviDccZeroPortTag> * m_pZeroPortTags;
+ KviPointerList<DccDialog> * m_pBoxList;
+ KviPointerList<KviWindow> * m_pDccWindowList;
+ KviPointerHashTable<QString, KviDccZeroPortTag> * m_pZeroPortTags;
+
public:
KviDccZeroPortTag * addZeroPortTag();
- KviDccZeroPortTag * findZeroPortTag(const QString &szTag);
- void removeZeroPortTag(const QString &szTag);
+ KviDccZeroPortTag * findZeroPortTag(const QString & szTag);
+ void removeZeroPortTag(const QString & szTag);
- unsigned int dccWindowsCount(){ return m_pDccWindowList->count(); };
+ unsigned int dccWindowsCount() { return m_pDccWindowList->count(); };
unsigned int dccBoxCount();
void unregisterDccBox(DccDialog * box);
- void unregisterDccWindow(KviWindow *dcc);
+ void unregisterDccWindow(KviWindow * dcc);
void rsendManage(DccDescriptor * dcc);
void rsendAskForFileName(DccDescriptor * dcc);
@@ -92,28 +93,28 @@ public:
void recvFileManage(DccDescriptor * dcc);
void sendFileManage(DccDescriptor * dcc);
- bool handleResumeAccepted(const char * filename,const char * port,const char * szZeroPortTag);
- bool handleResumeRequest(KviDccRequest * dcc,const char * filename,const char * port,unsigned long filePos,const char * szZeroPortTag);
+ bool handleResumeAccepted(const char * filename, const char * port, const char * szZeroPortTag);
+ bool handleResumeRequest(KviDccRequest * dcc, const char * filename, const char * port, unsigned long filePos, const char * szZeroPortTag);
public slots:
- void rsendExecute(DccDialog * box,DccDescriptor * dcc);
+ void rsendExecute(DccDialog * box, DccDescriptor * dcc);
void rsendExecute(DccDescriptor * dcc);
-// void activeChatExecute(DccDialog * box,DccDescriptor * dcc);
- void executeChat(DccDialog * box,DccDescriptor * dcc);
+ // void activeChatExecute(DccDialog * box,DccDescriptor * dcc);
+ void executeChat(DccDialog * box, DccDescriptor * dcc);
- void activeCanvasExecute(DccDialog * box,DccDescriptor * dcc);
- void activeVoiceExecute(DccDialog * box,DccDescriptor * dcc);
- void activeVideoExecute(DccDialog * box,DccDescriptor * dcc);
+ void activeCanvasExecute(DccDialog * box, DccDescriptor * dcc);
+ void activeVoiceExecute(DccDialog * box, DccDescriptor * dcc);
+ void activeVideoExecute(DccDialog * box, DccDescriptor * dcc);
- void sendFileExecute(DccDialog * box,DccDescriptor * dcc);
- void recvFileExecute(DccDialog * box,DccDescriptor * dcc);
+ void sendFileExecute(DccDialog * box, DccDescriptor * dcc);
+ void recvFileExecute(DccDialog * box, DccDescriptor * dcc);
- void chooseSaveFileName(DccDialog *box,DccDescriptor * dcc);
- void renameOverwriteResume(DccDialog *box,DccDescriptor * dcc);
- void renameDccSendFile(DccDialog *box,DccDescriptor * dcc);
+ void chooseSaveFileName(DccDialog * box, DccDescriptor * dcc);
+ void renameOverwriteResume(DccDialog * box, DccDescriptor * dcc);
+ void renameDccSendFile(DccDialog * box, DccDescriptor * dcc);
- void cancelDcc(DccDialog *box,DccDescriptor * dcc);
+ void cancelDcc(DccDialog * box, DccDescriptor * dcc);
void cancelDcc(DccDescriptor * dcc);
public:
diff --git a/src/modules/dcc/DccCanvasWindow.cpp b/src/modules/dcc/DccCanvasWindow.cpp
index 4f1129303..7701c0ce1 100644
--- a/src/modules/dcc/DccCanvasWindow.cpp
+++ b/src/modules/dcc/DccCanvasWindow.cpp
@@ -28,153 +28,160 @@
#ifdef COMPILE_DCC_CANVAS
- #include "DccDialog.h"
- #include "DccMarshal.h"
- #include "canvaswidget.h"
+#include "DccDialog.h"
+#include "DccMarshal.h"
+#include "canvaswidget.h"
- #define _KVI_DEBUG_CHECK_RANGE_
- #include "kvi_debug.h"
- #include "KviOptions.h"
- #include "KviInput.h"
- #include "KviIrcView.h"
- #include "KviIconManager.h"
- #include "KviLocale.h"
- #include "KviError.h"
- #include "kvi_out.h"
- #include "KviNetUtils.h"
- #include "KviConsoleWindow.h"
- #include "KviMainWindow.h"
- #include "KviMemory.h"
- #include "KviThread.h"
- #include "KviIrcSocket.h"
- #include "kvi_settings.h"
- #include "KviIrcConnection.h"
+#define _KVI_DEBUG_CHECK_RANGE_
+#include "kvi_debug.h"
+#include "KviOptions.h"
+#include "KviInput.h"
+#include "KviIrcView.h"
+#include "KviIconManager.h"
+#include "KviLocale.h"
+#include "KviError.h"
+#include "kvi_out.h"
+#include "KviNetUtils.h"
+#include "KviConsoleWindow.h"
+#include "KviMainWindow.h"
+#include "KviMemory.h"
+#include "KviThread.h"
+#include "KviIrcSocket.h"
+#include "kvi_settings.h"
+#include "KviIrcConnection.h"
- #include <QSplitter>
+#include <QSplitter>
- extern DccBroker * g_pDccBroker;
+extern DccBroker * g_pDccBroker;
+DccCanvasWindow::DccCanvasWindow(DccDescriptor * dcc, const char * name)
+ : DccWindow(KVI_WINDOW_TYPE_DCCCANVAS, name, dcc)
+{
+ m_pSplitter = new QSplitter(QSplitter::Vertical, this, "splitter");
- DccCanvasWindow::DccCanvasWindow(DccDescriptor * dcc,const char * name)
- : DccWindow(KVI_WINDOW_TYPE_DCCCANVAS,name,dcc)
- {
- m_pSplitter = new QSplitter(QSplitter::Vertical,this,"splitter");
-
- m_pCanvas = new DccCanvasWidget(m_pSplitter);
+ m_pCanvas = new DccCanvasWidget(m_pSplitter);
- m_pIrcView = new KviIrcView(m_pSplitter,this);
- m_pInput = new KviInput(this);
+ m_pIrcView = new KviIrcView(m_pSplitter, this);
+ m_pInput = new KviInput(this);
// setFocusHandler(m_pInput,this);
- m_pMarshal = new DccMarshal(this);
- connect(m_pMarshal,SIGNAL(error(int)),this,SLOT(handleMarshalError(int)));
- connect(m_pMarshal,SIGNAL(connected()),this,SLOT(connected()));
-
+ m_pMarshal = new DccMarshal(this);
+ connect(m_pMarshal, SIGNAL(error(int)), this, SLOT(handleMarshalError(int)));
+ connect(m_pMarshal, SIGNAL(connected()), this, SLOT(connected()));
- if(!(m_pDescriptor->bActive))
+ if(!(m_pDescriptor->bActive))
+ {
+ // PASSIVE CONNECTION
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Attempting a passive DCC CANVAS connection", "dcc"));
+ int ret = m_pMarshal->dccListen(dcc->szListenIp, dcc->szListenPort, m_pDescriptor->bDoTimeout);
+ if(ret != KviError_success)
+ handleMarshalError(ret);
+ else
{
- // PASSIVE CONNECTION
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Attempting a passive DCC CANVAS connection","dcc"));
- int ret = m_pMarshal->dccListen(dcc->szListenIp,dcc->szListenPort,m_pDescriptor->bDoTimeout);
- if(ret != KviError_success)handleMarshalError(ret);
- else {
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Listening on interface %Q port %Q","dcc"),
- &(m_pMarshal->localIp()),&(m_pMarshal->localPort()));
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Listening on interface %Q port %Q", "dcc"),
+ &(m_pMarshal->localIp()), &(m_pMarshal->localPort()));
- if(dcc->bSendRequest)
- {
- QString ip = !dcc->szFakeIp.isEmpty() ? dcc->szFakeIp : dcc->szListenIp;
- QString port = !dcc->szFakePort.isEmpty() ? dcc->szFakePort.toUtf8().data() : m_pMarshal->localPort();
- //#warning "OPTION FOR SENDING 127.0.0.1 and so on (not an unsigned number)"
- struct in_addr a;
- if(kvi_stringIpToBinaryIp(ip.toUtf8().data(),&a))ip.setNum(htonl(a.s_addr));
- dcc->console()->connection()->sendFmtData("PRIVMSG %s :%cDCC CANVAS chat %Q %Q%c",
- dcc->console()->connection()->encodeText( dcc->szNick.toUtf8().data() ).data(),
- 0x01,&ip,
- &port,
- 0x01);
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Sent DCC CANVAS request to %Q, waiting for the remote client to connect...","dcc"),
- &(dcc->szNick));
- } else outputNoFmt(KVI_OUT_DCCMSG,__tr2qs_ctx("DCC CANVAS request not sent: awaiting manual connections","dcc"));
+ if(dcc->bSendRequest)
+ {
+ QString ip = !dcc->szFakeIp.isEmpty() ? dcc->szFakeIp : dcc->szListenIp;
+ QString port = !dcc->szFakePort.isEmpty() ? dcc->szFakePort.toUtf8().data() : m_pMarshal->localPort();
+ //#warning "OPTION FOR SENDING 127.0.0.1 and so on (not an unsigned number)"
+ struct in_addr a;
+ if(kvi_stringIpToBinaryIp(ip.toUtf8().data(), &a))
+ ip.setNum(htonl(a.s_addr));
+ dcc->console()->connection()->sendFmtData("PRIVMSG %s :%cDCC CANVAS chat %Q %Q%c",
+ dcc->console()->connection()->encodeText(dcc->szNick.toUtf8().data()).data(),
+ 0x01, &ip,
+ &port,
+ 0x01);
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Sent DCC CANVAS request to %Q, waiting for the remote client to connect...", "dcc"),
+ &(dcc->szNick));
}
- } else {
- // ACTIVE CONNECTION
- outputNoFmt(KVI_OUT_DCCMSG,__tr2qs_ctx("Attempting an active DCC CANVAS connection","dcc"));
- int ret = m_pMarshal->dccConnect(dcc->szIp.toUtf8().data(),dcc->szPort.toUtf8().data(),m_pDescriptor->bDoTimeout);
- if(ret != KviError_success)handleMarshalError(ret);
- else output(KVI_OUT_DCCMSG,__tr2qs_ctx("Contacting host %Q on port %Q","dcc"),&(dcc->szIp),&(dcc->szPort));
+ else
+ outputNoFmt(KVI_OUT_DCCMSG, __tr2qs_ctx("DCC CANVAS request not sent: awaiting manual connections", "dcc"));
}
+ }
+ else
+ {
+ // ACTIVE CONNECTION
+ outputNoFmt(KVI_OUT_DCCMSG, __tr2qs_ctx("Attempting an active DCC CANVAS connection", "dcc"));
+ int ret = m_pMarshal->dccConnect(dcc->szIp.toUtf8().data(), dcc->szPort.toUtf8().data(), m_pDescriptor->bDoTimeout);
+ if(ret != KviError_success)
+ handleMarshalError(ret);
+ else
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Contacting host %Q on port %Q", "dcc"), &(dcc->szIp), &(dcc->szPort));
+ }
// m_pSlaveThread = 0;
- }
+}
- DccCanvasWindow::~DccCanvasWindow()
- {
- g_pDccBroker->unregisterDccWindow(this);
+DccCanvasWindow::~DccCanvasWindow()
+{
+ g_pDccBroker->unregisterDccWindow(this);
// if(m_pSlaveThread)
// {
// m_pSlaveThread->terminate();
// delete m_pSlaveThread;
// m_pSlaveThread = 0;
// }
- KviThreadManager::killPendingEvents(this);
+ KviThreadManager::killPendingEvents(this);
// delete m_pDescriptor;
// delete m_pMarshal;
- }
+}
- const QString & DccCanvasWindow::target()
- {
- // This may change on the fly...
- m_szTarget.sprintf("%s@%s:%s",
- m_pDescriptor->szNick.toUtf8().data(),m_pDescriptor->szIp.toUtf8().data(),m_pDescriptor->szPort.toUtf8().data());
- return m_szTarget;
- }
+const QString & DccCanvasWindow::target()
+{
+ // This may change on the fly...
+ m_szTarget.sprintf("%s@%s:%s",
+ m_pDescriptor->szNick.toUtf8().data(), m_pDescriptor->szIp.toUtf8().data(), m_pDescriptor->szPort.toUtf8().data());
+ return m_szTarget;
+}
- void DccCanvasWindow::fillCaptionBuffers()
- {
- KviCString tmp(KviCString::Format,"DCC Canvas %s@%s:%s",
- m_pDescriptor->szNick.toUtf8().data(),m_pDescriptor->szIp.toUtf8().data(),m_pDescriptor->szPort.toUtf8().data());
+void DccCanvasWindow::fillCaptionBuffers()
+{
+ KviCString tmp(KviCString::Format, "DCC Canvas %s@%s:%s",
+ m_pDescriptor->szNick.toUtf8().data(), m_pDescriptor->szIp.toUtf8().data(), m_pDescriptor->szPort.toUtf8().data());
- m_szPlainTextCaption = tmp;
+ m_szPlainTextCaption = tmp;
- m_szHtmlActiveCaption.sprintf("<nobr><font color=\"%s\"><b>%s</b></font></nobr>",
- KVI_OPTION_COLOR(KviOption_colorCaptionTextActive).name().ascii(),tmp.ptr());
- m_szHtmlInactiveCaption.sprintf("<nobr><font color=\"%s\"><b>%s</b></font></nobr>",
- KVI_OPTION_COLOR(KviOption_colorCaptionTextInactive).name().ascii(),tmp.ptr());
- }
+ m_szHtmlActiveCaption.sprintf("<nobr><font color=\"%s\"><b>%s</b></font></nobr>",
+ KVI_OPTION_COLOR(KviOption_colorCaptionTextActive).name().ascii(), tmp.ptr());
+ m_szHtmlInactiveCaption.sprintf("<nobr><font color=\"%s\"><b>%s</b></font></nobr>",
+ KVI_OPTION_COLOR(KviOption_colorCaptionTextInactive).name().ascii(), tmp.ptr());
+}
- QPixmap * DccCanvasWindow::myIconPtr()
- {
- return g_pIconManager->getSmallIcon(KVI_SMALLICON_CANVAS);
- }
+QPixmap * DccCanvasWindow::myIconPtr()
+{
+ return g_pIconManager->getSmallIcon(KVI_SMALLICON_CANVAS);
+}
- void DccCanvasWindow::getBaseLogFileName(KviCString &buffer)
- {
- buffer.sprintf("%s_%s_%s",m_pDescriptor->szNick.toUtf8().data(),m_pDescriptor->szIp.toUtf8().data(),m_pDescriptor->szPort.toUtf8().data());
- }
+void DccCanvasWindow::getBaseLogFileName(KviCString & buffer)
+{
+ buffer.sprintf("%s_%s_%s", m_pDescriptor->szNick.toUtf8().data(), m_pDescriptor->szIp.toUtf8().data(), m_pDescriptor->szPort.toUtf8().data());
+}
- void DccCanvasWindow::ownMessage(const char * text, bool bUserFeedback)
- {
- KviCString buf(KviCString::Format,"%s\r\n",text);
+void DccCanvasWindow::ownMessage(const char * text, bool bUserFeedback)
+{
+ KviCString buf(KviCString::Format, "%s\r\n", text);
// m_pSlaveThread->sendRawData(buf.ptr(),buf.len());
- if(bUserFeedback)
- m_pFrm->firstConsole()->outputPrivmsg(this,KVI_OUT_OWNPRIVMSG,
- m_pDescriptor->szLocalNick.toUtf8().data(),m_pDescriptor->szLocalUser.toUtf8().data(),
- m_pDescriptor->szLocalHost.toUtf8().data(),text);
- }
+ if(bUserFeedback)
+ m_pFrm->firstConsole()->outputPrivmsg(this, KVI_OUT_OWNPRIVMSG,
+ m_pDescriptor->szLocalNick.toUtf8().data(), m_pDescriptor->szLocalUser.toUtf8().data(),
+ m_pDescriptor->szLocalHost.toUtf8().data(), text);
+}
- void DccCanvasWindow::ownAction(const char * text)
- {
- KviCString buf(KviCString::Format,"%cACTION %s%c\r\n",text);
+void DccCanvasWindow::ownAction(const char * text)
+{
+ KviCString buf(KviCString::Format, "%cACTION %s%c\r\n", text);
// m_pSlaveThread->sendRawData(buf.ptr(),buf.len());
- output(KVI_OUT_ACTION,"%Q %s",&(m_pDescriptor->szLocalNick),text);
- }
+ output(KVI_OUT_ACTION, "%Q %s", &(m_pDescriptor->szLocalNick), text);
+}
- bool DccCanvasWindow::event(QEvent *e)
- {
+bool DccCanvasWindow::event(QEvent * e)
+{
// if(e->type() == KVI_THREAD_EVENT)
// {
// switch(((KviThreadEvent *)e)->id())
@@ -253,47 +260,47 @@
// break;
// }
// }
- return KviWindow::event(e);
- }
+ return KviWindow::event(e);
+}
- void DccCanvasWindow::resizeEvent(QResizeEvent *e)
- {
- int hght = m_pInput->heightHint();
+void DccCanvasWindow::resizeEvent(QResizeEvent * e)
+{
+ int hght = m_pInput->heightHint();
// int hght2 = m_pTopSplitter->sizeHint().height();
// m_pTopSplitter->setGeometry(0,0,width(),hght2);
- m_pSplitter->setGeometry(0,0,width(),height() - hght);
- m_pInput->setGeometry(0,height() - hght,width(),hght);
- }
+ m_pSplitter->setGeometry(0, 0, width(), height() - hght);
+ m_pInput->setGeometry(0, height() - hght, width(), hght);
+}
- QSize DccCanvasWindow::sizeHint() const
- {
- QSize ret(m_pIrcView->sizeHint().width(),
- m_pIrcView->sizeHint().height() + m_pInput->heightHint());
- return ret;
- }
+QSize DccCanvasWindow::sizeHint() const
+{
+ QSize ret(m_pIrcView->sizeHint().width(),
+ m_pIrcView->sizeHint().height() + m_pInput->heightHint());
+ return ret;
+}
- void DccCanvasWindow::handleMarshalError(int err)
- {
- QString sss = KviError::getDescription(err);
- output(KVI_OUT_DCCERROR,__tr2qs_ctx("DCC failed: %Q","dcc"),&sss);
- }
+void DccCanvasWindow::handleMarshalError(int err)
+{
+ QString sss = KviError::getDescription(err);
+ output(KVI_OUT_DCCERROR, __tr2qs_ctx("DCC failed: %Q", "dcc"), &sss);
+}
- void DccCanvasWindow::connected()
+void DccCanvasWindow::connected()
+{
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Connected to %Q:%Q", "dcc"),
+ &(m_pMarshal->remoteIp()), &(m_pMarshal->remotePort()));
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Local end is %Q:%Q", "dcc"),
+ &(m_pMarshal->localIp()), &(m_pMarshal->localPort()));
+ if(!(m_pDescriptor->bActive))
{
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Connected to %Q:%Q","dcc"),
- &(m_pMarshal->remoteIp()),&(m_pMarshal->remotePort()));
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Local end is %Q:%Q","dcc"),
- &(m_pMarshal->localIp()),&(m_pMarshal->localPort()));
- if(!(m_pDescriptor->bActive))
- {
- // PASSIVE CONNECTION...Find out the remote end
- m_pDescriptor->szIp = m_pMarshal->remoteIp();
- m_pDescriptor->szPort = m_pMarshal->remotePort();
- m_pDescriptor->szHost = m_pMarshal->remoteIp();
- }
- updateCaption();
+ // PASSIVE CONNECTION...Find out the remote end
+ m_pDescriptor->szIp = m_pMarshal->remoteIp();
+ m_pDescriptor->szPort = m_pMarshal->remotePort();
+ m_pDescriptor->szHost = m_pMarshal->remoteIp();
+ }
+ updateCaption();
// m_pSlaveThread = new KviDccCanvasThread(this,m_pMarshal->releaseSocket());
// m_pSlaveThread->start();
- }
+}
#endif
diff --git a/src/modules/dcc/DccCanvasWindow.h b/src/modules/dcc/DccCanvasWindow.h
index f34a5717f..6b89bc735 100644
--- a/src/modules/dcc/DccCanvasWindow.h
+++ b/src/modules/dcc/DccCanvasWindow.h
@@ -27,43 +27,45 @@
#include "DccBroker.h"
#ifdef COMPILE_DCC_CANVAS
- #include "DccDescriptor.h"
- #include "DccWindow.h"
- #include "DccThread.h"
+#include "DccDescriptor.h"
+#include "DccWindow.h"
+#include "DccThread.h"
- #include "KviWindow.h"
- #include "KviCString.h"
- #include "KviPointerList.h"
+#include "KviWindow.h"
+#include "KviCString.h"
+#include "KviPointerList.h"
- class DccMarshal;
- class DccCanvasWidget;
- class QSplitter;
+class DccMarshal;
+class DccCanvasWidget;
+class QSplitter;
- class DccCanvasWindow : public DccWindow
- {
- Q_OBJECT
- public:
- DccCanvasWindow(DccDescriptor * dcc,const char * name);
- ~DccCanvasWindow();
- protected:
+class DccCanvasWindow : public DccWindow
+{
+ Q_OBJECT
+public:
+ DccCanvasWindow(DccDescriptor * dcc, const char * name);
+ ~DccCanvasWindow();
+
+protected:
// KviDccCanvasThread * m_pSlaveThread;
- DccCanvasWidget * m_pCanvas;
+ DccCanvasWidget * m_pCanvas;
// QSplitter * m_pTopSplitter;
- QString m_szTarget;
- protected:
- virtual const QString &target();
- virtual void fillCaptionBuffers();
- virtual void getBaseLogFileName(KviCString &buffer);
- virtual QPixmap * myIconPtr();
- virtual void resizeEvent(QResizeEvent *e);
- virtual QSize sizeHint() const;
- virtual bool event(QEvent *e);
- virtual void ownMessage(const char *text, bool bUserFeedback = true);
- virtual void ownAction(const char *text);
- protected slots:
- void handleMarshalError(int err);
- void connected();
- };
+ QString m_szTarget;
+
+protected:
+ virtual const QString & target();
+ virtual void fillCaptionBuffers();
+ virtual void getBaseLogFileName(KviCString & buffer);
+ virtual QPixmap * myIconPtr();
+ virtual void resizeEvent(QResizeEvent * e);
+ virtual QSize sizeHint() const;
+ virtual bool event(QEvent * e);
+ virtual void ownMessage(const char * text, bool bUserFeedback = true);
+ virtual void ownAction(const char * text);
+protected slots:
+ void handleMarshalError(int err);
+ void connected();
+};
#endif
#endif // _CANVAS_H_
diff --git a/src/modules/dcc/DccChatWindow.cpp b/src/modules/dcc/DccChatWindow.cpp
index 9a65e9994..4e9a3c50e 100644
--- a/src/modules/dcc/DccChatWindow.cpp
+++ b/src/modules/dcc/DccChatWindow.cpp
@@ -27,8 +27,8 @@
#include "DccBroker.h"
#ifdef COMPILE_ON_WINDOWS
- // Ugly Windoze compiler...
- #include "DccDialog.h"
+// Ugly Windoze compiler...
+#include "DccDialog.h"
#endif
#include "kvi_debug.h"
@@ -59,12 +59,12 @@
#include <QByteArray>
#ifdef COMPILE_CRYPT_SUPPORT
- #include "KviCryptEngine.h"
- #include "KviCryptController.h"
+#include "KviCryptEngine.h"
+#include "KviCryptController.h"
#endif
#ifdef COMPILE_SSL_SUPPORT
- #include "KviSSLMaster.h"
+#include "KviSSLMaster.h"
#endif
extern DccBroker * g_pDccBroker;
@@ -79,43 +79,44 @@ extern DccBroker * g_pDccBroker;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-DccChatWindow::DccChatWindow(DccDescriptor * dcc,const char * name)
-: DccWindow(KviWindow::DccChat,name,dcc)
+DccChatWindow::DccChatWindow(DccDescriptor * dcc, const char * name)
+ : DccWindow(KviWindow::DccChat, name, dcc)
{
m_pButtonBox = new KviTalHBox(this);
m_pLabel = new KviThemedLabel(m_pButtonBox, this, "dcc_chat_label");
m_pLabel->setText(name);
- m_pButtonBox->setStretchFactor(m_pLabel,1);
+ m_pButtonBox->setStretchFactor(m_pLabel, 1);
- m_pButtonContainer= new KviTalHBox(m_pButtonBox);
+ m_pButtonContainer = new KviTalHBox(m_pButtonBox);
createTextEncodingButton(m_pButtonContainer);
#ifdef COMPILE_CRYPT_SUPPORT
createCryptControllerButton(m_pButtonContainer);
#endif
- m_pSplitter = new KviTalSplitter(Qt::Horizontal,this);
+ m_pSplitter = new KviTalSplitter(Qt::Horizontal, this);
m_pSplitter->setObjectName("dcc_chat_splitter");
m_pSplitter->setChildrenCollapsible(false);
- m_pIrcView = new KviIrcView(m_pSplitter,this);
- connect(m_pIrcView,SIGNAL(rightClicked()),this,SLOT(textViewRightClicked()));
- m_pInput = new KviInput(this);
+ m_pIrcView = new KviIrcView(m_pSplitter, this);
+ connect(m_pIrcView, SIGNAL(rightClicked()), this, SLOT(textViewRightClicked()));
+ m_pInput = new KviInput(this);
//setFocusHandler(m_pInput,this);
m_pSlaveThread = 0;
- if(KVI_OPTION_BOOL(KviOption_boolAutoLogDccChat))m_pIrcView->startLogging();
+ if(KVI_OPTION_BOOL(KviOption_boolAutoLogDccChat))
+ m_pIrcView->startLogging();
m_pMarshal = new DccMarshal(this);
- connect(m_pMarshal,SIGNAL(error(KviError::Code)),this,SLOT(handleMarshalError(KviError::Code)));
- connect(m_pMarshal,SIGNAL(connected()),this,SLOT(connected()));
- connect(m_pMarshal,SIGNAL(inProgress()),this,SLOT(connectionInProgress()));
+ connect(m_pMarshal, SIGNAL(error(KviError::Code)), this, SLOT(handleMarshalError(KviError::Code)));
+ connect(m_pMarshal, SIGNAL(connected()), this, SLOT(connected()));
+ connect(m_pMarshal, SIGNAL(inProgress()), this, SLOT(connectionInProgress()));
#ifdef COMPILE_SSL_SUPPORT
- connect(m_pMarshal,SIGNAL(startingSSLHandshake()),this,SLOT(startingSSLHandshake()));
- connect(m_pMarshal,SIGNAL(sslError(const char *)),this,SLOT(sslError(const char *)));
+ connect(m_pMarshal, SIGNAL(startingSSLHandshake()), this, SLOT(startingSSLHandshake()));
+ connect(m_pMarshal, SIGNAL(sslError(const char *)), this, SLOT(sslError(const char *)));
#endif
m_pSlaveThread = 0;
@@ -137,17 +138,17 @@ DccChatWindow::~DccChatWindow()
void DccChatWindow::textViewRightClicked()
{
- KVS_TRIGGER_EVENT_1(KviEvent_OnDCCChatPopupRequest,this,m_pDescriptor->idString());
+ KVS_TRIGGER_EVENT_1(KviEvent_OnDCCChatPopupRequest, this, m_pDescriptor->idString());
}
void DccChatWindow::triggerCreationEvents()
{
- KVS_TRIGGER_EVENT_1(KviEvent_OnDCCChatWindowCreated,this,m_pDescriptor->idString());
+ KVS_TRIGGER_EVENT_1(KviEvent_OnDCCChatWindowCreated, this, m_pDescriptor->idString());
}
void DccChatWindow::triggerDestructionEvents()
{
- KVS_TRIGGER_EVENT_1(KviEvent_OnDCCChatWindowClosing,this,m_pDescriptor->idString());
+ KVS_TRIGGER_EVENT_1(KviEvent_OnDCCChatWindowClosing, this, m_pDescriptor->idString());
}
void DccChatWindow::startConnection()
@@ -155,21 +156,23 @@ void DccChatWindow::startConnection()
if(!(m_pDescriptor->bActive))
{
// PASSIVE CONNECTION
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Attempting a passive DCC %s connection","dcc"),m_pDescriptor->szType.toUtf8().data());
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Attempting a passive DCC %s connection", "dcc"), m_pDescriptor->szType.toUtf8().data());
#ifdef COMPILE_SSL_SUPPORT
- KviError::Code eError = m_pMarshal->dccListen(m_pDescriptor->szListenIp,m_pDescriptor->szListenPort,m_pDescriptor->bDoTimeout,m_pDescriptor->bIsSSL);
+ KviError::Code eError = m_pMarshal->dccListen(m_pDescriptor->szListenIp, m_pDescriptor->szListenPort, m_pDescriptor->bDoTimeout, m_pDescriptor->bIsSSL);
#else
- KviError::Code eError = m_pMarshal->dccListen(m_pDescriptor->szListenIp,m_pDescriptor->szListenPort,m_pDescriptor->bDoTimeout);
+ KviError::Code eError = m_pMarshal->dccListen(m_pDescriptor->szListenIp, m_pDescriptor->szListenPort, m_pDescriptor->bDoTimeout);
#endif
if(eError != KviError::Success)
handleMarshalError(eError);
- } else {
+ }
+ else
+ {
// ACTIVE CONNECTION
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Attempting an active DCC %s connection","dcc"),m_pDescriptor->szType.toUtf8().data());
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Attempting an active DCC %s connection", "dcc"), m_pDescriptor->szType.toUtf8().data());
#ifdef COMPILE_SSL_SUPPORT
- KviError::Code eError = m_pMarshal->dccConnect(m_pDescriptor->szIp.toUtf8().data(),m_pDescriptor->szPort.toUtf8().data(),m_pDescriptor->bDoTimeout,m_pDescriptor->bIsSSL);
+ KviError::Code eError = m_pMarshal->dccConnect(m_pDescriptor->szIp.toUtf8().data(), m_pDescriptor->szPort.toUtf8().data(), m_pDescriptor->bDoTimeout, m_pDescriptor->bIsSSL);
#else
- KviError::Code eError = m_pMarshal->dccConnect(m_pDescriptor->szIp.toUtf8().data(),m_pDescriptor->szPort.toUtf8().data(),m_pDescriptor->bDoTimeout);
+ KviError::Code eError = m_pMarshal->dccConnect(m_pDescriptor->szIp.toUtf8().data(), m_pDescriptor->szPort.toUtf8().data(), m_pDescriptor->bDoTimeout);
#endif
if(eError != KviError::Success)
handleMarshalError(eError);
@@ -180,9 +183,11 @@ void DccChatWindow::connectionInProgress()
{
if(m_pDescriptor->bActive)
{
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Contacting host %Q on port %Q","dcc"),&(m_pDescriptor->szIp),&(m_pDescriptor->szPort));
- } else {
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Listening on interface %Q port %Q","dcc"),&(m_pMarshal->localIp()),&(m_pMarshal->localPort()));
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Contacting host %Q on port %Q", "dcc"), &(m_pDescriptor->szIp), &(m_pDescriptor->szPort));
+ }
+ else
+ {
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Listening on interface %Q port %Q", "dcc"), &(m_pMarshal->localIp()), &(m_pMarshal->localPort()));
if(m_pDescriptor->bSendRequest)
{
@@ -190,7 +195,9 @@ void DccChatWindow::connectionInProgress()
if(!m_pDescriptor->szFakeIp.isEmpty())
{
ip = m_pDescriptor->szFakeIp;
- } else {
+ }
+ else
+ {
ip = m_pDescriptor->szListenIp;
if(KVI_OPTION_BOOL(KviOption_boolDccGuessIpFromServerWhenLocalIsUnroutable))
@@ -204,54 +211,61 @@ void DccChatWindow::connectionInProgress()
if(tmp.hasData())
{
ip = tmp;
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("The local IP address is private, determining from IRC server: %s","dcc"),ip.ptr());
- } else {
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("The local IP address is private, but unable to determine it from the IRC server","dcc"));
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("The local IP address is private, determining from IRC server: %s", "dcc"), ip.ptr());
+ }
+ else
+ {
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("The local IP address is private, but unable to determine it from the IRC server", "dcc"));
}
- } else {
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("The local IP address is private, but have no IRC server to determine it from","dcc"));
+ }
+ else
+ {
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("The local IP address is private, but have no IRC server to determine it from", "dcc"));
}
}
}
}
- QString port = !m_pDescriptor->szFakePort.isEmpty() ? m_pDescriptor->szFakePort : QString(m_pMarshal->localPort());
+ QString port = !m_pDescriptor->szFakePort.isEmpty() ? m_pDescriptor->szFakePort : QString(m_pMarshal->localPort());
//FIXME: #warning "OPTION FOR SENDING 127.0.0.1 and so on (not an unsigned number)"
struct in_addr a;
- if(KviNetUtils::stringIpToBinaryIp(ip.ptr(),&a))ip.setNum(htonl(a.s_addr));
+ if(KviNetUtils::stringIpToBinaryIp(ip.ptr(), &a))
+ ip.setNum(htonl(a.s_addr));
QString szReq = QString("PRIVMSG %1 :%2DCC %3 chat %4 %5").arg(m_pDescriptor->szNick, QChar(0x01), m_pDescriptor->szType, ip.ptr(), port);
if(m_pDescriptor->isZeroPortRequest())
{
szReq.append(" ");
- szReq+=m_pDescriptor->zeroPortRequestTag();
+ szReq += m_pDescriptor->zeroPortRequestTag();
}
szReq.append((char)(0x01));
m_pDescriptor->console()->connection()->sendData(m_pDescriptor->console()->connection()->encodeText(szReq).data());
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Sent DCC %Q request to %Q, waiting for the remote client to connect...","dcc"),
- &(m_pDescriptor->szType),&(m_pDescriptor->szNick));
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Sent DCC %Q request to %Q, waiting for the remote client to connect...", "dcc"),
+ &(m_pDescriptor->szType), &(m_pDescriptor->szNick));
//qDebug(m_pDescriptor->szNick);
- } else output(KVI_OUT_DCCMSG,__tr2qs_ctx("DCC %Q request not sent, awaiting manual connection","dcc"),&(m_pDescriptor->szType));
+ }
+ else
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("DCC %Q request not sent, awaiting manual connection", "dcc"), &(m_pDescriptor->szType));
}
- KVS_TRIGGER_EVENT_1(KviEvent_OnDCCChatConnectionInProgress,this,m_pDescriptor->idString());
+ KVS_TRIGGER_EVENT_1(KviEvent_OnDCCChatConnectionInProgress, this, m_pDescriptor->idString());
}
void DccChatWindow::startingSSLHandshake()
{
#ifdef COMPILE_SSL_SUPPORT
- outputNoFmt(KVI_OUT_SSL,__tr2qs_ctx("Low-level transport connection established","dcc"));
- outputNoFmt(KVI_OUT_SSL,__tr2qs_ctx("Starting Secure Socket Layer handshake","dcc"));
+ outputNoFmt(KVI_OUT_SSL, __tr2qs_ctx("Low-level transport connection established", "dcc"));
+ outputNoFmt(KVI_OUT_SSL, __tr2qs_ctx("Starting Secure Socket Layer handshake", "dcc"));
#endif
}
void DccChatWindow::sslError(const char * msg)
{
#ifdef COMPILE_SSL_SUPPORT
- if(!KVS_TRIGGER_EVENT_2_HALTED(KviEvent_OnDCCChatError,this,QString(msg),m_pDescriptor->idString()))
- output(KVI_OUT_DCCERROR,__tr2qs_ctx("[SSL ERROR]: %s","dcc"),msg);
+ if(!KVS_TRIGGER_EVENT_2_HALTED(KviEvent_OnDCCChatError, this, QString(msg), m_pDescriptor->idString()))
+ output(KVI_OUT_DCCERROR, __tr2qs_ctx("[SSL ERROR]: %s", "dcc"), msg);
#endif
}
@@ -270,11 +284,11 @@ void DccChatWindow::fillCaptionBuffers()
{
QString tmp = QString("DCC %1 %2@%3:%4").arg(
#ifdef COMPILE_SSL_SUPPORT
- m_pDescriptor->bIsSSL ? "SChat" : "Chat",
+ m_pDescriptor->bIsSSL ? "SChat" : "Chat",
#else
- "Chat",
+ "Chat",
#endif
- m_pDescriptor->szNick, m_pDescriptor->szIp, m_pDescriptor->szPort);
+ m_pDescriptor->szNick, m_pDescriptor->szIp, m_pDescriptor->szPort);
m_szPlainTextCaption = tmp;
}
@@ -284,22 +298,23 @@ QPixmap * DccChatWindow::myIconPtr()
return g_pIconManager->getSmallIcon(KviIconManager::DccMsg);
}
-void DccChatWindow::getBaseLogFileName(QString &buffer)
+void DccChatWindow::getBaseLogFileName(QString & buffer)
{
- buffer.sprintf("%s_%s_%s",m_pDescriptor->szNick.toUtf8().data(),m_pDescriptor->szIp.toUtf8().data(),m_pDescriptor->szPort.toUtf8().data());
+ buffer.sprintf("%s_%s_%s", m_pDescriptor->szNick.toUtf8().data(), m_pDescriptor->szIp.toUtf8().data(), m_pDescriptor->szPort.toUtf8().data());
}
-void DccChatWindow::ownMessage(const QString &text, bool bUserFeedback)
+void DccChatWindow::ownMessage(const QString & text, bool bUserFeedback)
{
if(!m_pSlaveThread)
{
- output(KVI_OUT_SYSTEMWARNING,__tr2qs_ctx("Can't send data: no active connection","dcc"));
+ output(KVI_OUT_SYSTEMWARNING, __tr2qs_ctx("Can't send data: no active connection", "dcc"));
return;
}
QByteArray szData = encodeText(text);
const char * d = szData.data();
- if(!d)return;
+ if(!d)
+ return;
#ifdef COMPILE_CRYPT_SUPPORT
if(cryptSessionInfo())
@@ -310,28 +325,28 @@ void DccChatWindow::ownMessage(const QString &text, bool bUserFeedback)
{
KviCString encrypted;
cryptSessionInfo()->m_pEngine->setMaxEncryptLen(-1);
- switch(cryptSessionInfo()->m_pEngine->encrypt(d,encrypted))
+ switch(cryptSessionInfo()->m_pEngine->encrypt(d, encrypted))
{
case KviCryptEngine::Encrypted:
{
- KviCString buf(KviCString::Format,"%s\r\n",encrypted.ptr());
- m_pSlaveThread->sendRawData(buf.ptr(),buf.len());
+ KviCString buf(KviCString::Format, "%s\r\n", encrypted.ptr());
+ m_pSlaveThread->sendRawData(buf.ptr(), buf.len());
if(bUserFeedback)
- g_pMainWindow->firstConsole()->outputPrivmsg(this,KVI_OUT_OWNPRIVMSGCRYPTED,
- m_pDescriptor->szLocalNick.toUtf8().data(),m_pDescriptor->szLocalUser.toUtf8().data(),
- m_pDescriptor->szLocalHost.toUtf8().data(),text,KviConsoleWindow::NoNotifications);
+ g_pMainWindow->firstConsole()->outputPrivmsg(this, KVI_OUT_OWNPRIVMSGCRYPTED,
+ m_pDescriptor->szLocalNick.toUtf8().data(), m_pDescriptor->szLocalUser.toUtf8().data(),
+ m_pDescriptor->szLocalHost.toUtf8().data(), text, KviConsoleWindow::NoNotifications);
}
break;
case KviCryptEngine::Encoded:
{
- KviCString buf(KviCString::Format,"%s\r\n",encrypted.ptr());
- m_pSlaveThread->sendRawData(buf.ptr(),buf.len());
+ KviCString buf(KviCString::Format, "%s\r\n", encrypted.ptr());
+ m_pSlaveThread->sendRawData(buf.ptr(), buf.len());
if(bUserFeedback)
{
QString encr = decodeText(encrypted.ptr());
- g_pMainWindow->firstConsole()->outputPrivmsg(this,KVI_OUT_OWNPRIVMSG,
- m_pDescriptor->szLocalNick.toUtf8().data(),m_pDescriptor->szLocalUser.toUtf8().data(),
- m_pDescriptor->szLocalHost.toUtf8().data(),encr,KviConsoleWindow::NoNotifications);
+ g_pMainWindow->firstConsole()->outputPrivmsg(this, KVI_OUT_OWNPRIVMSG,
+ m_pDescriptor->szLocalNick.toUtf8().data(), m_pDescriptor->szLocalUser.toUtf8().data(),
+ m_pDescriptor->szLocalHost.toUtf8().data(), encr, KviConsoleWindow::NoNotifications);
}
}
break;
@@ -339,34 +354,36 @@ void DccChatWindow::ownMessage(const QString &text, bool bUserFeedback)
{
QString szErr = cryptSessionInfo()->m_pEngine->lastError();
output(KVI_OUT_SYSTEMERROR,
- __tr2qs_ctx("The encryption engine was not able to encrypt the current message (%Q): %Q, no data was sent to the remote end","dcc"),
- &text,&szErr);
+ __tr2qs_ctx("The encryption engine was not able to encrypt the current message (%Q): %Q, no data was sent to the remote end", "dcc"),
+ &text, &szErr);
}
break;
}
return;
- } else {
+ }
+ else
+ {
d++; //eat the escape code
- KviCString buf(KviCString::Format,"%s\r\n",d);
+ KviCString buf(KviCString::Format, "%s\r\n", d);
QString tmp = text.right(text.length() - 1);
- m_pSlaveThread->sendRawData(buf.ptr(),buf.len());
+ m_pSlaveThread->sendRawData(buf.ptr(), buf.len());
if(bUserFeedback)
- g_pMainWindow->firstConsole()->outputPrivmsg(this,KVI_OUT_OWNPRIVMSG,
- m_pDescriptor->szLocalNick.toUtf8().data(),m_pDescriptor->szLocalUser.toUtf8().data(),
- m_pDescriptor->szLocalHost.toUtf8().data(),tmp,KviConsoleWindow::NoNotifications);
+ g_pMainWindow->firstConsole()->outputPrivmsg(this, KVI_OUT_OWNPRIVMSG,
+ m_pDescriptor->szLocalNick.toUtf8().data(), m_pDescriptor->szLocalUser.toUtf8().data(),
+ m_pDescriptor->szLocalHost.toUtf8().data(), tmp, KviConsoleWindow::NoNotifications);
return;
}
}
}
#endif
- KviCString buf(KviCString::Format,"%s\r\n",d);
- m_pSlaveThread->sendRawData(buf.ptr(),buf.len());
+ KviCString buf(KviCString::Format, "%s\r\n", d);
+ m_pSlaveThread->sendRawData(buf.ptr(), buf.len());
if(bUserFeedback)
- g_pMainWindow->firstConsole()->outputPrivmsg(this,KVI_OUT_OWNPRIVMSG,
- m_pDescriptor->szLocalNick.toUtf8().data(),m_pDescriptor->szLocalUser.toUtf8().data(),
- m_pDescriptor->szLocalHost.toUtf8().data(),text,KviConsoleWindow::NoNotifications);
+ g_pMainWindow->firstConsole()->outputPrivmsg(this, KVI_OUT_OWNPRIVMSG,
+ m_pDescriptor->szLocalNick.toUtf8().data(), m_pDescriptor->szLocalUser.toUtf8().data(),
+ m_pDescriptor->szLocalHost.toUtf8().data(), text, KviConsoleWindow::NoNotifications);
}
const QString & DccChatWindow::localNick()
@@ -376,7 +393,7 @@ const QString & DccChatWindow::localNick()
return m_szLocalNick;
}
-void DccChatWindow::ownAction(const QString &text)
+void DccChatWindow::ownAction(const QString & text)
{
if(m_pSlaveThread)
{
@@ -385,7 +402,9 @@ void DccChatWindow::ownAction(const QString &text)
if(KVI_OPTION_BOOL(KviOption_boolStripMircColorsInUserMessages))
{
szTmpBuffer = KviControlCodes::stripControlBytes(text);
- } else {
+ }
+ else
+ {
szTmpBuffer = text;
}
@@ -393,15 +412,17 @@ void DccChatWindow::ownAction(const QString &text)
const char * d = szData.data();
if(!d)
return;
- KviCString buf(KviCString::Format,"%cACTION %s%c\r\n",0x01,d,0x01);
- m_pSlaveThread->sendRawData(buf.ptr(),buf.len());
- output(KVI_OUT_ACTION,"%Q %Q",&(m_pDescriptor->szLocalNick),&szTmpBuffer);
- } else {
- output(KVI_OUT_SYSTEMWARNING,__tr2qs_ctx("Can't send data: no active connection","dcc"));
+ KviCString buf(KviCString::Format, "%cACTION %s%c\r\n", 0x01, d, 0x01);
+ m_pSlaveThread->sendRawData(buf.ptr(), buf.len());
+ output(KVI_OUT_ACTION, "%Q %Q", &(m_pDescriptor->szLocalNick), &szTmpBuffer);
+ }
+ else
+ {
+ output(KVI_OUT_SYSTEMWARNING, __tr2qs_ctx("Can't send data: no active connection", "dcc"));
}
}
-bool DccChatWindow::event(QEvent *e)
+bool DccChatWindow::event(QEvent * e)
{
if(e->type() == KVI_THREAD_EVENT)
{
@@ -411,9 +432,9 @@ bool DccChatWindow::event(QEvent *e)
{
KviError::Code * pError = ((KviThreadDataEvent<KviError::Code> *)e)->getData();
QString szErr = KviError::getDescription(*pError);
- if(!KVS_TRIGGER_EVENT_2_HALTED(KviEvent_OnDCCChatError,this,szErr,m_pDescriptor->idString()))
- output(KVI_OUT_DCCERROR,__tr2qs_ctx("ERROR: %Q","dcc"),&szErr);
- KVS_TRIGGER_EVENT_1(KviEvent_OnDCCChatDisconnected,this,m_pDescriptor->idString());
+ if(!KVS_TRIGGER_EVENT_2_HALTED(KviEvent_OnDCCChatError, this, szErr, m_pDescriptor->idString()))
+ output(KVI_OUT_DCCERROR, __tr2qs_ctx("ERROR: %Q", "dcc"), &szErr);
+ KVS_TRIGGER_EVENT_1(KviEvent_OnDCCChatDisconnected, this, m_pDescriptor->idString());
delete pError;
return true;
}
@@ -421,14 +442,16 @@ bool DccChatWindow::event(QEvent *e)
case KVI_DCC_THREAD_EVENT_DATA:
{
KviCString * encoded = ((KviThreadDataEvent<KviCString> *)e)->getData();
- KviCString d=KviCString(decodeText(encoded->ptr()));
+ KviCString d = KviCString(decodeText(encoded->ptr()));
if(d.firstCharIs(0x01))
{
d.cutLeft(1);
- if(d.lastCharIs(0x01))d.cutRight(1);
- if(kvi_strEqualCIN("ACTION",d.ptr(),6))d.cutLeft(6);
+ if(d.lastCharIs(0x01))
+ d.cutRight(1);
+ if(kvi_strEqualCIN("ACTION", d.ptr(), 6))
+ d.cutLeft(6);
d.stripLeftWhiteSpace();
- output(KVI_OUT_ACTION,"%Q %s",&(m_pDescriptor->szNick),d.ptr());
+ output(KVI_OUT_ACTION, "%Q %s", &(m_pDescriptor->szNick), d.ptr());
if(!hasAttention(KviWindow::MainWindowIsVisible))
{
if(KVI_OPTION_BOOL(KviOption_boolFlashDccChatWindowOnNewMessages))
@@ -442,10 +465,12 @@ bool DccChatWindow::event(QEvent *e)
szMsg += "</b> ";
szMsg += KviQString::toHtmlEscaped(QString(d.ptr()));
//qDebug("KviIrcServerParser_ctcp.cpp:975 debug: %s",szMsg.data());
- g_pApp->notifierMessage(this,KVI_OPTION_MSGTYPE(KVI_OUT_ACTION).pixId(),szMsg,KVI_OPTION_UINT(KviOption_uintNotifierAutoHideTime));
+ g_pApp->notifierMessage(this, KVI_OPTION_MSGTYPE(KVI_OUT_ACTION).pixId(), szMsg, KVI_OPTION_UINT(KviOption_uintNotifierAutoHideTime));
}
}
- } else {
+ }
+ else
+ {
#ifdef COMPILE_CRYPT_SUPPORT
if(KviCryptSessionInfo * cinf = cryptSessionInfo())
@@ -453,39 +478,41 @@ bool DccChatWindow::event(QEvent *e)
if(cinf->m_bDoDecrypt)
{
KviCString decryptedStuff;
- switch(cinf->m_pEngine->decrypt(d.ptr(),decryptedStuff))
+ switch(cinf->m_pEngine->decrypt(d.ptr(), decryptedStuff))
{
case KviCryptEngine::DecryptOkWasEncrypted:
case KviCryptEngine::DecryptOkWasEncoded:
case KviCryptEngine::DecryptOkWasPlainText:
- if(!KVS_TRIGGER_EVENT_2_HALTED(KviEvent_OnDCCChatMessage,this,QString(decryptedStuff.ptr()),m_pDescriptor->idString()))
+ if(!KVS_TRIGGER_EVENT_2_HALTED(KviEvent_OnDCCChatMessage, this, QString(decryptedStuff.ptr()), m_pDescriptor->idString()))
{
- g_pMainWindow->firstConsole()->outputPrivmsg(this,KVI_OUT_DCCCHATMSG,
- m_pDescriptor->szNick.toUtf8().data(),m_pDescriptor->szUser.toUtf8().data(),
- m_pDescriptor->szHost.toUtf8().data(),decryptedStuff.ptr());
+ g_pMainWindow->firstConsole()->outputPrivmsg(this, KVI_OUT_DCCCHATMSG,
+ m_pDescriptor->szNick.toUtf8().data(), m_pDescriptor->szUser.toUtf8().data(),
+ m_pDescriptor->szHost.toUtf8().data(), decryptedStuff.ptr());
}
delete encoded;
return true;
- break;
+ break;
default: // also case KviCryptEngine::DecryptError
{
QString szErr = cinf->m_pEngine->lastError();
output(KVI_OUT_SYSTEMERROR,
- __tr2qs_ctx("The following message appears to be encrypted, but the encryption engine failed to decode it: %Q","dcc"),
- &szErr);
+ __tr2qs_ctx("The following message appears to be encrypted, but the encryption engine failed to decode it: %Q", "dcc"),
+ &szErr);
}
break;
}
}
- } else {
+ }
+ else
+ {
#endif
// FIXME!
- if(!KVS_TRIGGER_EVENT_2_HALTED(KviEvent_OnDCCChatMessage,this,QString(d.ptr()),m_pDescriptor->idString()))
+ if(!KVS_TRIGGER_EVENT_2_HALTED(KviEvent_OnDCCChatMessage, this, QString(d.ptr()), m_pDescriptor->idString()))
{
- g_pMainWindow->firstConsole()->outputPrivmsg(this,KVI_OUT_DCCCHATMSG,
- m_pDescriptor->szNick.toUtf8().data(),m_pDescriptor->szUser.toUtf8().data(),
- m_pDescriptor->szHost.toUtf8().data(),d.ptr());
+ g_pMainWindow->firstConsole()->outputPrivmsg(this, KVI_OUT_DCCCHATMSG,
+ m_pDescriptor->szNick.toUtf8().data(), m_pDescriptor->szUser.toUtf8().data(),
+ m_pDescriptor->szHost.toUtf8().data(), d.ptr());
if(!hasAttention(KviWindow::MainWindowIsVisible))
{
if(KVI_OPTION_BOOL(KviOption_boolFlashDccChatWindowOnNewMessages))
@@ -495,7 +522,7 @@ bool DccChatWindow::event(QEvent *e)
if(KVI_OPTION_BOOL(KviOption_boolPopupNotifierOnNewDccChatMessages))
{
QString szMsg = KviQString::toHtmlEscaped(QString(d.ptr()));
- g_pApp->notifierMessage(this,KviIconManager::DccChatMsg,szMsg,KVI_OPTION_UINT(KviOption_uintNotifierAutoHideTime));
+ g_pApp->notifierMessage(this, KviIconManager::DccChatMsg, szMsg, KVI_OPTION_UINT(KviOption_uintNotifierAutoHideTime));
}
}
}
@@ -516,23 +543,23 @@ void DccChatWindow::resizeEvent(QResizeEvent *)
{
int hght = m_pInput->heightHint();
int hght2 = m_pButtonBox->sizeHint().height();
- m_pButtonBox->setGeometry(0,0,width(),hght2);
- m_pSplitter->setGeometry(0,hght2,width(),height() - (hght + hght2));
- m_pInput->setGeometry(0,height() - hght,width(),hght);
+ m_pButtonBox->setGeometry(0, 0, width(), hght2);
+ m_pSplitter->setGeometry(0, hght2, width(), height() - (hght + hght2));
+ m_pInput->setGeometry(0, height() - hght, width(), hght);
}
QSize DccChatWindow::sizeHint() const
{
QSize ret(m_pIrcView->sizeHint().width(),
- m_pIrcView->sizeHint().height() + m_pInput->heightHint());
+ m_pIrcView->sizeHint().height() + m_pInput->heightHint());
return ret;
}
void DccChatWindow::handleMarshalError(KviError::Code eError)
{
QString szErr = KviError::getDescription(eError);
- if(!KVS_TRIGGER_EVENT_2_HALTED(KviEvent_OnDCCChatError,this,szErr,m_pDescriptor->idString()))
- output(KVI_OUT_DCCERROR,__tr2qs_ctx("DCC %Q failed: %Q","dcc"),&(m_pDescriptor->szType),&szErr);
+ if(!KVS_TRIGGER_EVENT_2_HALTED(KviEvent_OnDCCChatError, this, szErr, m_pDescriptor->idString()))
+ output(KVI_OUT_DCCERROR, __tr2qs_ctx("DCC %Q failed: %Q", "dcc"), &(m_pDescriptor->szType), &szErr);
}
void DccChatWindow::connected()
@@ -540,31 +567,31 @@ void DccChatWindow::connected()
if(!(m_pDescriptor->bActive))
{
// PASSIVE CONNECTION...Find out the remote end
- m_pDescriptor->szIp = m_pMarshal->remoteIp();
+ m_pDescriptor->szIp = m_pMarshal->remoteIp();
m_pDescriptor->szPort = m_pMarshal->remotePort();
m_pDescriptor->szHost = m_pMarshal->remoteIp();
}
updateCaption();
- m_pSlaveThread = new DccChatThread(this,m_pMarshal->releaseSocket());
+ m_pSlaveThread = new DccChatThread(this, m_pMarshal->releaseSocket());
#ifdef COMPILE_SSL_SUPPORT
KviSSL * s = m_pMarshal->releaseSSL();
if(s)
{
- KviSSLMaster::printSSLConnectionInfo(this,s);
+ KviSSLMaster::printSSLConnectionInfo(this, s);
m_pSlaveThread->setSSL(s);
}
#endif
m_pSlaveThread->start();
- if(!KVS_TRIGGER_EVENT_1_HALTED(KviEvent_OnDCCChatConnected,this,m_pDescriptor->idString()))
+ if(!KVS_TRIGGER_EVENT_1_HALTED(KviEvent_OnDCCChatConnected, this, m_pDescriptor->idString()))
{
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Connected to %Q:%Q","dcc"),
- &(m_pMarshal->remoteIp()),&(m_pMarshal->remotePort()));
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Local end is %Q:%Q","dcc"),
- &(m_pMarshal->localIp()),&(m_pMarshal->localPort()));
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Connected to %Q:%Q", "dcc"),
+ &(m_pMarshal->remoteIp()), &(m_pMarshal->remotePort()));
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Local end is %Q:%Q", "dcc"),
+ &(m_pMarshal->localIp()), &(m_pMarshal->localPort()));
#ifdef COMPILE_SSL_SUPPORT
QString tmp = QString("dcc: %1 %2@%3:%4").arg(m_pDescriptor->bIsSSL ? "SChat" : "Chat", m_pDescriptor->szNick, m_pDescriptor->szIp, m_pDescriptor->szPort);
#else
@@ -584,9 +611,8 @@ void DccChatWindow::connected()
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-DccChatThread::DccChatThread(KviWindow *wnd,kvi_socket_t fd)
-: DccThread(wnd,fd)
+DccChatThread::DccChatThread(KviWindow * wnd, kvi_socket_t fd)
+ : DccThread(wnd, fd)
{
m_pOutBuffers = new KviPointerList<KviDataBuffer>;
m_pOutBuffers->setAutoDelete(true);
@@ -594,13 +620,14 @@ DccChatThread::DccChatThread(KviWindow *wnd,kvi_socket_t fd)
DccChatThread::~DccChatThread()
{
- if(m_pOutBuffers)delete m_pOutBuffers;
+ if(m_pOutBuffers)
+ delete m_pOutBuffers;
}
void DccChatThread::run()
{
KviDccThreadIncomingData data;
- data.iLen = 0;
+ data.iLen = 0;
data.buffer = 0;
for(;;)
@@ -612,7 +639,9 @@ void DccChatThread::run()
{
delete e;
goto out_of_the_loop;
- } else {
+ }
+ else
+ {
// Other events are senseless to us
delete e;
}
@@ -620,32 +649,38 @@ void DccChatThread::run()
bool bCanRead;
bool bCanWrite;
- if(kvi_select(m_fd,&bCanRead,&bCanWrite))
+ if(kvi_select(m_fd, &bCanRead, &bCanWrite))
{
if(bCanWrite)
{
- if(!tryFlushOutBuffers())goto out_of_the_loop;
+ if(!tryFlushOutBuffers())
+ goto out_of_the_loop;
}
if(bCanRead)
{
- data.buffer = (char *) KviMemory::reallocate(data.buffer,(data.iLen + 512) * sizeof(char));
+ data.buffer = (char *)KviMemory::reallocate(data.buffer, (data.iLen + 512) * sizeof(char));
int readLen;
#ifdef COMPILE_SSL_SUPPORT
if(m_pSSL)
{
- readLen = m_pSSL->read(data.buffer + data.iLen,512);
- } else {
+ readLen = m_pSSL->read(data.buffer + data.iLen, 512);
+ }
+ else
+ {
#endif
- readLen = kvi_socket_recv(m_fd,data.buffer + data.iLen,512);
+ readLen = kvi_socket_recv(m_fd, data.buffer + data.iLen, 512);
#ifdef COMPILE_SSL_SUPPORT
}
#endif
if(readLen > 0)
{
data.iLen += readLen;
- data.buffer = (char *)KviMemory::reallocate(data.buffer,data.iLen * sizeof(char));
- if(!handleIncomingData(&data,false))break; // non critical...
- } else {
+ data.buffer = (char *)KviMemory::reallocate(data.buffer, data.iLen * sizeof(char));
+ if(!handleIncomingData(&data, false))
+ break; // non critical...
+ }
+ else
+ {
#ifdef COMPILE_SSL_SUPPORT
if(m_pSSL)
@@ -655,11 +690,11 @@ void DccChatThread::run()
{
case KviSSL::ZeroReturn:
readLen = 0;
- break;
+ break;
case KviSSL::WantRead:
case KviSSL::WantWrite:
// hmmm...
- break;
+ break;
case KviSSL::SyscallError:
{
int iE = m_pSSL->getLastError(true);
@@ -682,21 +717,24 @@ void DccChatThread::run()
// Raise unknown SSL ERROR
postErrorEvent(KviError::SSLError);
goto out_of_the_loop;
- break;
+ break;
}
}
#endif
if(data.iLen > 0)
{
- data.buffer = (char *)KviMemory::reallocate(data.buffer,data.iLen * sizeof(char));
- } else {
+ data.buffer = (char *)KviMemory::reallocate(data.buffer, data.iLen * sizeof(char));
+ }
+ else
+ {
KviMemory::free(data.buffer);
data.buffer = 0;
}
if(!handleInvalidSocketRead(readLen))
{
- if(data.iLen)handleIncomingData(&data,true); // critical
+ if(data.iLen)
+ handleIncomingData(&data, true); // critical
KVI_ASSERT(!data.iLen);
break; // error
}
@@ -708,8 +746,8 @@ void DccChatThread::run()
out_of_the_loop:
-
- if(data.iLen)KviMemory::free(data.buffer);
+ if(data.iLen)
+ KviMemory::free(data.buffer);
#ifdef COMPILE_SSL_SUPPORT
if(m_pSSL)
@@ -719,11 +757,12 @@ out_of_the_loop:
}
#endif
- if(m_fd != KVI_INVALID_SOCKET)::kvi_socket_close(m_fd);
+ if(m_fd != KVI_INVALID_SOCKET)
+ ::kvi_socket_close(m_fd);
m_fd = KVI_INVALID_SOCKET;
}
-bool DccChatThread::handleIncomingData(KviDccThreadIncomingData * data,bool bCritical)
+bool DccChatThread::handleIncomingData(KviDccThreadIncomingData * data, bool bCritical)
{
KVI_ASSERT(data->iLen);
KVI_ASSERT(data->buffer);
@@ -736,34 +775,39 @@ bool DccChatThread::handleIncomingData(KviDccThreadIncomingData * data,bool bCri
KviThreadDataEvent<KviCString> * e = new KviThreadDataEvent<KviCString>(KVI_DCC_THREAD_EVENT_DATA);
// The left part is len chars long
int len = aux - data->buffer;
-// qDebug("LEN = %d, iLen = %d",len,data->iLen);
-//#warning "DO IT BETTER (the \r cutting)"
- KviCString * s = new KviCString(data->buffer,len);
- if(s->lastCharIs('\r'))s->cutRight(1);
+ // qDebug("LEN = %d, iLen = %d",len,data->iLen);
+ //#warning "DO IT BETTER (the \r cutting)"
+ KviCString * s = new KviCString(data->buffer, len);
+ if(s->lastCharIs('\r'))
+ s->cutRight(1);
e->setData(s);
// but we cut also \n (or \0)
++aux;
// so len += 1; --> new data->iLen -= len;
data->iLen -= (len + 1);
-// qDebug("iLen now = %d",data->iLen);
+ // qDebug("iLen now = %d",data->iLen);
KVI_ASSERT(data->iLen >= 0);
if(data->iLen > 0)
{
// memmove the remaining part to the beginning
// aux points after \n or \0
- KviMemory::move(data->buffer,aux,data->iLen);
- data->buffer = (char *)KviMemory::reallocate(data->buffer,data->iLen);
+ KviMemory::move(data->buffer, aux, data->iLen);
+ data->buffer = (char *)KviMemory::reallocate(data->buffer, data->iLen);
end = data->buffer + data->iLen;
aux = data->buffer;
- } else {
+ }
+ else
+ {
// no more data in the buffer
KVI_ASSERT(data->iLen == 0);
KviMemory::free(data->buffer);
data->buffer = end = aux = 0;
}
- postEvent(parent(),e);
- } else aux++;
-// qDebug("PASSING CHAR %c",*aux);
+ postEvent(parent(), e);
+ }
+ else
+ aux++;
+ // qDebug("PASSING CHAR %c",*aux);
}
// now aux == end
if(bCritical)
@@ -773,22 +817,23 @@ bool DccChatThread::handleIncomingData(KviDccThreadIncomingData * data,bool bCri
{
// in the last part there are no NULL and \n chars
KviThreadDataEvent<KviCString> * e = new KviThreadDataEvent<KviCString>(KVI_DCC_THREAD_EVENT_DATA);
- KviCString * s = new KviCString(data->buffer,data->iLen);
- if(s->lastCharIs('\r'))s->cutRight(1);
+ KviCString * s = new KviCString(data->buffer, data->iLen);
+ if(s->lastCharIs('\r'))
+ s->cutRight(1);
e->setData(s);
data->iLen = 0;
KviMemory::free(data->buffer);
data->buffer = 0;
- postEvent(parent(),e);
+ postEvent(parent(), e);
}
}
return true;
}
-void DccChatThread::sendRawData(const void * buffer,int len)
+void DccChatThread::sendRawData(const void * buffer, int len)
{
m_pMutex->lock();
- m_pOutBuffers->append(new KviDataBuffer((unsigned int)len,(const unsigned char *)buffer));
+ m_pOutBuffers->append(new KviDataBuffer((unsigned int)len, (const unsigned char *)buffer));
m_pMutex->unlock();
}
@@ -802,22 +847,28 @@ bool DccChatThread::tryFlushOutBuffers()
#ifdef COMPILE_SSL_SUPPORT
if(m_pSSL)
{
- sentLen = m_pSSL->write((const char *)b->data(),b->size());
- } else {
+ sentLen = m_pSSL->write((const char *)b->data(), b->size());
+ }
+ else
+ {
#endif
- sentLen = kvi_socket_send(m_fd,b->data(),b->size());
+ sentLen = kvi_socket_send(m_fd, b->data(), b->size());
#ifdef COMPILE_SSL_SUPPORT
}
#endif
if(sentLen > 0)
{
- if(sentLen == b->size())m_pOutBuffers->removeFirst();
- else {
+ if(sentLen == b->size())
+ m_pOutBuffers->removeFirst();
+ else
+ {
// just a part
b->remove((unsigned int)sentLen);
break;
}
- } else {
+ }
+ else
+ {
#ifdef COMPILE_SSL_SUPPORT
if(m_pSSL)
{
@@ -828,7 +879,7 @@ bool DccChatThread::tryFlushOutBuffers()
case KviSSL::WantRead:
// Async continue...
goto handle_system_error;
- break;
+ break;
case KviSSL::SyscallError:
if(sentLen == 0)
{
@@ -836,7 +887,9 @@ bool DccChatThread::tryFlushOutBuffers()
postErrorEvent(KviError::RemoteEndClosedConnection);
bRet = false;
goto out_of_the_loop;
- } else {
+ }
+ else
+ {
int iSSLErr = m_pSSL->getLastError(true);
if(iSSLErr != 0)
{
@@ -844,33 +897,35 @@ bool DccChatThread::tryFlushOutBuffers()
postErrorEvent(KviError::SSLError);
bRet = false;
goto out_of_the_loop;
- } else {
+ }
+ else
+ {
goto handle_system_error;
}
}
- break;
+ break;
case KviSSL::SSLError:
raiseSSLError();
postErrorEvent(KviError::SSLError);
bRet = false;
goto out_of_the_loop;
- break;
+ break;
default:
postErrorEvent(KviError::SSLError);
bRet = false;
goto out_of_the_loop;
- break;
+ break;
}
}
#endif
-handle_system_error:
+ handle_system_error:
if(sentLen < 0)
{
int err = kvi_socket_error();
#if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW)
if((err != EAGAIN) || (err != EINTR) || (err != WSAEWOULDBLOCK))
#else
- if((err != EAGAIN)||(err != EINTR))
+ if((err != EAGAIN) || (err != EINTR))
#endif
{
postErrorEvent(KviError::translateSystemError(err));
diff --git a/src/modules/dcc/DccChatWindow.h b/src/modules/dcc/DccChatWindow.h
index bb03c0840..54fb6556a 100644
--- a/src/modules/dcc/DccChatWindow.h
+++ b/src/modules/dcc/DccChatWindow.h
@@ -36,7 +36,7 @@
#include "KviError.h"
#ifdef COMPILE_SSL_SUPPORT
- class KviSSL;
+class KviSSL;
#endif
class DccMarshal;
@@ -45,10 +45,12 @@ class QSplitter;
class DccChatThread : public DccThread
{
public:
- DccChatThread(KviWindow * wnd,kvi_socket_t fd);
+ DccChatThread(KviWindow * wnd, kvi_socket_t fd);
~DccChatThread();
+
protected:
- KviPointerList<KviDataBuffer> * m_pOutBuffers;
+ KviPointerList<KviDataBuffer> * m_pOutBuffers;
+
protected:
virtual void run();
bool tryFlushOutBuffers();
@@ -59,37 +61,38 @@ protected:
// since the thread is going to die
// It should return true if the handing was succesfull
// or false if the thread should be stopped
- virtual bool handleIncomingData(KviDccThreadIncomingData *data,bool bCritical);
+ virtual bool handleIncomingData(KviDccThreadIncomingData * data, bool bCritical);
+
public:
- virtual void sendRawData(const void * buffer,int len); // mutex (m_pOutBuffers usage)
+ virtual void sendRawData(const void * buffer, int len); // mutex (m_pOutBuffers usage)
};
-
class DccChatWindow : public DccWindow
{
Q_OBJECT
public:
- DccChatWindow(DccDescriptor * dcc,const char * name);
+ DccChatWindow(DccDescriptor * dcc, const char * name);
~DccChatWindow();
- QFrame * buttonContainer() { return (QFrame*)m_pButtonContainer; };
+ QFrame * buttonContainer() { return (QFrame *)m_pButtonContainer; };
protected:
- DccChatThread * m_pSlaveThread;
- QString m_szTarget;
- QString m_szLocalNick;
- KviThemedLabel * m_pLabel;
- KviTalHBox * m_pButtonBox;
- KviTalHBox * m_pButtonContainer;
+ DccChatThread * m_pSlaveThread;
+ QString m_szTarget;
+ QString m_szLocalNick;
+ KviThemedLabel * m_pLabel;
+ KviTalHBox * m_pButtonBox;
+ KviTalHBox * m_pButtonContainer;
+
protected:
virtual const QString & target();
virtual void fillCaptionBuffers();
- virtual void getBaseLogFileName(QString &buffer);
+ virtual void getBaseLogFileName(QString & buffer);
virtual QPixmap * myIconPtr();
- virtual void resizeEvent(QResizeEvent *e);
+ virtual void resizeEvent(QResizeEvent * e);
virtual QSize sizeHint() const;
virtual const QString & localNick();
- virtual bool event(QEvent *e);
- virtual void ownMessage(const QString &text, bool bUserFeedback = true);
- virtual void ownAction(const QString &text);
+ virtual bool event(QEvent * e);
+ virtual void ownMessage(const QString & text, bool bUserFeedback = true);
+ virtual void ownAction(const QString & text);
virtual void triggerCreationEvents();
virtual void triggerDestructionEvents();
void startConnection();
diff --git a/src/modules/dcc/DccDescriptor.cpp b/src/modules/dcc/DccDescriptor.cpp
index 036b032e2..a1db30716 100644
--- a/src/modules/dcc/DccDescriptor.cpp
+++ b/src/modules/dcc/DccDescriptor.cpp
@@ -32,9 +32,9 @@
#include "KviApplication.h"
static unsigned int g_uNextDescriptorId = 1; // we use 0 as an invalid descriptor id
-static KviPointerHashTable<int,DccDescriptor> * g_pDescriptorDict = 0;
+static KviPointerHashTable<int, DccDescriptor> * g_pDescriptorDict = 0;
-KviPointerHashTable<int,DccDescriptor> * DccDescriptor::descriptorDict()
+KviPointerHashTable<int, DccDescriptor> * DccDescriptor::descriptorDict()
{
return g_pDescriptorDict;
}
@@ -46,7 +46,7 @@ DccDescriptor::DccDescriptor(const DccDescriptor & src)
DccDescriptor::DccDescriptor(KviConsoleWindow * pConsole)
{
- m_pConsole = pConsole;
+ m_pConsole = pConsole;
m_pDccWindow = 0;
m_pDccTransfer = 0;
@@ -57,38 +57,37 @@ DccDescriptor::DccDescriptor(KviConsoleWindow * pConsole)
if(!g_pDescriptorDict)
{
- g_pDescriptorDict = new KviPointerHashTable<int,DccDescriptor>;
+ g_pDescriptorDict = new KviPointerHashTable<int, DccDescriptor>;
g_pDescriptorDict->setAutoDelete(false);
}
- g_pDescriptorDict->replace((long)m_uId,this);
+ g_pDescriptorDict->replace((long)m_uId, this);
- szNick = __tr_ctx("unknown","dcc");
- szUser = szNick;
- szHost = szNick;
+ szNick = __tr_ctx("unknown", "dcc");
+ szUser = szNick;
+ szHost = szNick;
- szLocalNick = szNick;
- szLocalUser = szNick;
- szLocalHost = szNick;
+ szLocalNick = szNick;
+ szLocalUser = szNick;
+ szLocalHost = szNick;
- szIp = szNick;
- szPort = szNick;
+ szIp = szNick;
+ szPort = szNick;
-
- bSendRequest = true;
- bDoTimeout = true;
- bIsTdcc = false;
+ bSendRequest = true;
+ bDoTimeout = true;
+ bIsTdcc = false;
bOverrideMinimize = false;
- bShowMinimized = false;
- bAutoAccept = false;
+ bShowMinimized = false;
+ bAutoAccept = false;
#ifdef COMPILE_SSL_SUPPORT
- bIsSSL = false;
+ bIsSSL = false;
#endif
- bRecvFile = false;
- bResume = false;
- bNoAcks = false;
+ bRecvFile = false;
+ bResume = false;
+ bNoAcks = false;
bIsIncomingAvatar = false;
- iSampleRate = 0;
+ iSampleRate = 0;
m_bCreationEventTriggered = false;
}
@@ -103,7 +102,7 @@ DccDescriptor::~DccDescriptor()
if(pEventWindow && g_pApp->windowExists(pEventWindow))
{
- KVS_TRIGGER_EVENT_1(KviEvent_OnDCCSessionDestroyed,pEventWindow,m_szId);
+ KVS_TRIGGER_EVENT_1(KviEvent_OnDCCSessionDestroyed, pEventWindow, m_szId);
}
}
@@ -116,7 +115,6 @@ DccDescriptor::~DccDescriptor()
g_pDescriptorDict = 0;
}
}
-
}
void DccDescriptor::triggerCreationEvent()
@@ -134,17 +132,18 @@ void DccDescriptor::triggerCreationEvent()
if(pEventWindow && g_pApp->windowExists(pEventWindow))
{
- KVS_TRIGGER_EVENT_1(KviEvent_OnDCCSessionCreated,pEventWindow,m_szId);
+ KVS_TRIGGER_EVENT_1(KviEvent_OnDCCSessionCreated, pEventWindow, m_szId);
}
}
DccDescriptor * DccDescriptor::find(unsigned int uId)
{
- if(!g_pDescriptorDict)return 0;
+ if(!g_pDescriptorDict)
+ return 0;
return g_pDescriptorDict->find((long)uId);
}
-void DccDescriptor::copyFrom(const DccDescriptor &src)
+void DccDescriptor::copyFrom(const DccDescriptor & src)
{
m_uId = g_uNextDescriptorId;
g_uNextDescriptorId++;
@@ -152,77 +151,85 @@ void DccDescriptor::copyFrom(const DccDescriptor &src)
if(!g_pDescriptorDict)
{
- g_pDescriptorDict = new KviPointerHashTable<int,DccDescriptor>;
+ g_pDescriptorDict = new KviPointerHashTable<int, DccDescriptor>;
g_pDescriptorDict->setAutoDelete(false);
}
- g_pDescriptorDict->replace((long)m_uId,this);
- m_bCreationEventTriggered=false;
+ g_pDescriptorDict->replace((long)m_uId, this);
+ m_bCreationEventTriggered = false;
- m_pDccWindow = src.m_pDccWindow;
- m_pDccTransfer = src.m_pDccTransfer;
- szType = src.szType;
- szNick = src.szNick;
- szUser = src.szUser;
- szHost = src.szHost;
- szLocalNick = src.szLocalNick;
- szLocalUser = src.szLocalUser;
- szLocalHost = src.szLocalHost;
- szIp = src.szIp;
- szPort = src.szPort;
- m_pConsole = src.console();
- m_szZeroPortRequestTag= src.zeroPortRequestTag();
- bActive = src.bActive;
- szListenIp = src.szListenIp;
- szListenPort = src.szListenPort;
- szFakeIp = src.szFakeIp;
- szFakePort = src.szFakePort;
- bSendRequest = src.bSendRequest;
- bDoTimeout = src.bDoTimeout;
- szFileName = src.szFileName;
- szFileSize = src.szFileSize;
- bResume = src.bResume;
- bRecvFile = src.bRecvFile;
- bNoAcks = src.bNoAcks;
- bIsTdcc = src.bIsTdcc;
- bOverrideMinimize = src.bOverrideMinimize;
- bShowMinimized = src.bShowMinimized;
- bAutoAccept = src.bAutoAccept;
- bIsIncomingAvatar = src.bIsIncomingAvatar;
- szLocalFileName = src.szLocalFileName;
- szLocalFileSize = src.szLocalFileSize;
+ m_pDccWindow = src.m_pDccWindow;
+ m_pDccTransfer = src.m_pDccTransfer;
+ szType = src.szType;
+ szNick = src.szNick;
+ szUser = src.szUser;
+ szHost = src.szHost;
+ szLocalNick = src.szLocalNick;
+ szLocalUser = src.szLocalUser;
+ szLocalHost = src.szLocalHost;
+ szIp = src.szIp;
+ szPort = src.szPort;
+ m_pConsole = src.console();
+ m_szZeroPortRequestTag = src.zeroPortRequestTag();
+ bActive = src.bActive;
+ szListenIp = src.szListenIp;
+ szListenPort = src.szListenPort;
+ szFakeIp = src.szFakeIp;
+ szFakePort = src.szFakePort;
+ bSendRequest = src.bSendRequest;
+ bDoTimeout = src.bDoTimeout;
+ szFileName = src.szFileName;
+ szFileSize = src.szFileSize;
+ bResume = src.bResume;
+ bRecvFile = src.bRecvFile;
+ bNoAcks = src.bNoAcks;
+ bIsTdcc = src.bIsTdcc;
+ bOverrideMinimize = src.bOverrideMinimize;
+ bShowMinimized = src.bShowMinimized;
+ bAutoAccept = src.bAutoAccept;
+ bIsIncomingAvatar = src.bIsIncomingAvatar;
+ szLocalFileName = src.szLocalFileName;
+ szLocalFileSize = src.szLocalFileSize;
#ifdef COMPILE_SSL_SUPPORT
- bIsSSL = src.bIsSSL;
+ bIsSSL = src.bIsSSL;
#endif
// dcc voice only
- szCodec = src.szCodec;
- iSampleRate = src.iSampleRate;
+ szCodec = src.szCodec;
+ iSampleRate = src.iSampleRate;
}
bool DccDescriptor::isFileUpload()
{
- if(szType.toUpper()=="SEND")return true;
- if(szType.toUpper()=="TSEND")return true;
+ if(szType.toUpper() == "SEND")
+ return true;
+ if(szType.toUpper() == "TSEND")
+ return true;
#ifdef COMPILE_SSL_SUPPORT
- if(szType.toUpper()=="SSEND")return true;
+ if(szType.toUpper() == "SSEND")
+ return true;
#endif
return false;
}
bool DccDescriptor::isFileDownload()
{
- if(szType.toUpper()=="RECV")return true;
- if(szType.toUpper()=="TRECV")return true;
+ if(szType.toUpper() == "RECV")
+ return true;
+ if(szType.toUpper() == "TRECV")
+ return true;
#ifdef COMPILE_SSL_SUPPORT
- if(szType.toUpper()=="SRECV")return true;
+ if(szType.toUpper() == "SRECV")
+ return true;
#endif
return false;
}
bool DccDescriptor::isDccChat()
{
- if(szType.toUpper()=="CHAT")return true;
+ if(szType.toUpper() == "CHAT")
+ return true;
#ifdef COMPILE_SSL_SUPPORT
- if(szType.toUpper()=="SCHAT")return true;
+ if(szType.toUpper() == "SCHAT")
+ return true;
#endif
return false;
}
diff --git a/src/modules/dcc/DccDescriptor.h b/src/modules/dcc/DccDescriptor.h
index 58d9d94e5..67718ccea 100644
--- a/src/modules/dcc/DccDescriptor.h
+++ b/src/modules/dcc/DccDescriptor.h
@@ -37,98 +37,101 @@ public:
DccDescriptor(const DccDescriptor & src);
~DccDescriptor();
+
protected:
- KviConsoleWindow * m_pConsole;
+ KviConsoleWindow * m_pConsole;
// mIrc zero port reverse send/chat extension
- KviCString m_szZeroPortRequestTag;
+ KviCString m_szZeroPortRequestTag;
- unsigned int m_uId; // this dcc session ID
- QString m_szId;
+ unsigned int m_uId; // this dcc session ID
+ QString m_szId;
- DccWindow * m_pDccWindow; // 0 if it has no window
+ DccWindow * m_pDccWindow; // 0 if it has no window
DccFileTransfer * m_pDccTransfer; // 0 if it is not a transfer
- bool m_bCreationEventTriggered;
+ bool m_bCreationEventTriggered;
+
public:
// A console that this DCC is bound to (might be replaced while we wait for user acknowledge in dialogs)
KviConsoleWindow * console() const { return m_pConsole; };
- void setConsole(KviConsoleWindow * c){ m_pConsole = c; };
+ void setConsole(KviConsoleWindow * c) { m_pConsole = c; };
DccWindow * window() const { return m_pDccWindow; };
- void setWindow(DccWindow * w){ m_pDccWindow = w; };
+ void setWindow(DccWindow * w) { m_pDccWindow = w; };
DccFileTransfer * transfer() const { return m_pDccTransfer; };
- void setTransfer(DccFileTransfer * t){ m_pDccTransfer = t; };
+ void setTransfer(DccFileTransfer * t) { m_pDccTransfer = t; };
// mIrc zero port reverse send/chat extension
bool isZeroPortRequest() const { return m_szZeroPortRequestTag.hasData(); };
const char * zeroPortRequestTag() const { return m_szZeroPortRequestTag.ptr(); };
- void setZeroPortRequestTag(const KviCString &szTag){ m_szZeroPortRequestTag = szTag; };
+ void setZeroPortRequestTag(const KviCString & szTag) { m_szZeroPortRequestTag = szTag; };
unsigned int id() const { return m_uId; };
const QString & idString() const { return m_szId; };
static DccDescriptor * find(unsigned int uId);
- static KviPointerHashTable<int,DccDescriptor> * descriptorDict();
+ static KviPointerHashTable<int, DccDescriptor> * descriptorDict();
void triggerCreationEvent(); // this MUST be called by the creator of the descriptor!
private:
- void copyFrom(const DccDescriptor &src);
+ void copyFrom(const DccDescriptor & src);
+
public:
// Generic parameters
- QString szType; // DCC protocol : CHAT, SCHAT, SEND, TSSEND....
+ QString szType; // DCC protocol : CHAT, SCHAT, SEND, TSSEND....
- bool bActive; // active or passive connection ?
+ bool bActive; // active or passive connection ?
- QString szNick; // remote user nickname
- QString szUser; // remote user name (unknown for passive dcc)
- QString szHost; // remote user host (unknown for passive dcc)
+ QString szNick; // remote user nickname
+ QString szUser; // remote user name (unknown for passive dcc)
+ QString szHost; // remote user host (unknown for passive dcc)
- QString szLocalNick; // local user nickname (always from irc)
- QString szLocalUser; // local user username (always from irc)
- QString szLocalHost; // local user hostname (always from irc)
+ QString szLocalNick; // local user nickname (always from irc)
+ QString szLocalUser; // local user username (always from irc)
+ QString szLocalHost; // local user hostname (always from irc)
- QString szIp; // remote user ip (active dcc only)
- QString szPort; // remote user port (active dcc only)
+ QString szIp; // remote user ip (active dcc only)
+ QString szPort; // remote user port (active dcc only)
- QString szListenIp; // passive only : ip to listen on
- QString szListenPort; // passive only : port to listen on
+ QString szListenIp; // passive only : ip to listen on
+ QString szListenPort; // passive only : port to listen on
- bool bSendRequest; // passive only : true if we have to send the CTCP request
+ bool bSendRequest; // passive only : true if we have to send the CTCP request
- QString szFakeIp; // passive only : fake ip to send in the CTCP
- QString szFakePort; // passive only : fake port to send in the CTCP
+ QString szFakeIp; // passive only : fake ip to send in the CTCP
+ QString szFakePort; // passive only : fake port to send in the CTCP
- bool bDoTimeout; // the marshall has to setup a timeout ?
+ bool bDoTimeout; // the marshall has to setup a timeout ?
- bool bIsTdcc; // is this a TDCC ?
+ bool bIsTdcc; // is this a TDCC ?
- bool bOverrideMinimize; // Override the default minimize option ?
- bool bShowMinimized; // Show minimized ? (valid if bOverrideMinimize is true)
+ bool bOverrideMinimize; // Override the default minimize option ?
+ bool bShowMinimized; // Show minimized ? (valid if bOverrideMinimize is true)
- bool bAutoAccept; // Auto accepted dcc send/chat ?
+ bool bAutoAccept; // Auto accepted dcc send/chat ?
#ifdef COMPILE_SSL_SUPPORT
- bool bIsSSL; // do we have to use SSL ?
+ bool bIsSSL; // do we have to use SSL ?
#endif
// Specific parameters
// DCC SEND/RECV
- QString szFileName; // RECVFILE: incoming file name, SENDFILE: filename sent to the remote end
- QString szFileSize; // RECVFILE: incoming file size, SENDFILE: remote resume size
+ QString szFileName; // RECVFILE: incoming file name, SENDFILE: filename sent to the remote end
+ QString szFileSize; // RECVFILE: incoming file size, SENDFILE: remote resume size
- QString szLocalFileName; // RECVFILE: save file name selected, SENDFILE: file to send
- QString szLocalFileSize; // RECVFILE: local file size (to resume), SENDFILE: file to send size
+ QString szLocalFileName; // RECVFILE: save file name selected, SENDFILE: file to send
+ QString szLocalFileSize; // RECVFILE: local file size (to resume), SENDFILE: file to send size
- bool bRecvFile; // do we have to RECEIVE the file or SEND it ?
- bool bResume; // do we want to resume ?
- bool bNoAcks; // blind dcc send ? (do not receive nor send acknowledges)
+ bool bRecvFile; // do we have to RECEIVE the file or SEND it ?
+ bool bResume; // do we want to resume ?
+ bool bNoAcks; // blind dcc send ? (do not receive nor send acknowledges)
- bool bIsIncomingAvatar; // It is an Incoming Avatar DCC SEND ?
+ bool bIsIncomingAvatar; // It is an Incoming Avatar DCC SEND ?
// DCC VOICE
- KviCString szCodec; // codec name
- int iSampleRate; // Sample rate
+ KviCString szCodec; // codec name
+ int iSampleRate; // Sample rate
public:
QString protocol() const { return szType; };
bool isActive() const { return bActive; };
@@ -149,9 +152,12 @@ public:
bool isFileUpload();
bool isFileDownload();
bool isDccChat();
- bool isFileTransfer(){ return (isFileUpload() || isFileDownload()); };
+ bool isFileTransfer() { return (isFileUpload() || isFileDownload()); };
#ifdef COMPILE_SSL_SUPPORT
- bool isSSL() const { return bIsSSL; };
+ bool isSSL() const
+ {
+ return bIsSSL;
+ };
#endif
};
diff --git a/src/modules/dcc/DccDialog.cpp b/src/modules/dcc/DccDialog.cpp
index 01704e529..151422d87 100644
--- a/src/modules/dcc/DccDialog.cpp
+++ b/src/modules/dcc/DccDialog.cpp
@@ -38,7 +38,7 @@
#include <QShowEvent>
#include <QIcon>
-DccDialog::DccDialog(DccBroker * br,DccDescriptor * dcc)
+DccDialog::DccDialog(DccBroker * br, DccDescriptor * dcc)
{
m_pDescriptor = dcc;
m_pBroker = br;
@@ -46,7 +46,8 @@ DccDialog::DccDialog(DccBroker * br,DccDescriptor * dcc)
DccDialog::~DccDialog()
{
- if(m_pDescriptor)delete m_pDescriptor;
+ if(m_pDescriptor)
+ delete m_pDescriptor;
m_pDescriptor = 0;
m_pBroker->unregisterDccBox(this);
}
@@ -56,29 +57,29 @@ void DccDialog::forgetDescriptor()
m_pDescriptor = 0;
}
-DccAcceptDialog::DccAcceptDialog(DccBroker * br,DccDescriptor * dcc,const QString &text,const QString &capt)
-: QWidget(0), DccDialog(br,dcc)
+DccAcceptDialog::DccAcceptDialog(DccBroker * br, DccDescriptor * dcc, const QString & text, const QString & capt)
+ : QWidget(0), DccDialog(br, dcc)
{
setObjectName("dcc_accept_box");
//QVBoxLayout * vb = new QVBoxLayout(this,4,4);
QVBoxLayout * vb = new QVBoxLayout(this);
vb->setMargin(4);
vb->setSpacing(4);
- QLabel * l = new QLabel(text,this);
+ QLabel * l = new QLabel(text, this);
l->setWordWrap(true);
vb->addWidget(l);
//QHBoxLayout *hb = new QHBoxLayout(4);
- QHBoxLayout *hb = new QHBoxLayout();
+ QHBoxLayout * hb = new QHBoxLayout();
hb->setSpacing(4);
- vb->addLayout(hb,Qt::AlignCenter);
- QPushButton * btn = new QPushButton(__tr2qs_ctx("&Accept","dcc"),this);
+ vb->addLayout(hb, Qt::AlignCenter);
+ QPushButton * btn = new QPushButton(__tr2qs_ctx("&Accept", "dcc"), this);
btn->setDefault(true);
//btn->setFocus();
hb->addWidget(btn);
- connect(btn,SIGNAL(clicked()),this,SLOT(acceptClicked()));
- btn = new QPushButton(__tr2qs_ctx("&Reject","dcc"),this);
- connect(btn,SIGNAL(clicked()),this,SLOT(rejectClicked()));
+ connect(btn, SIGNAL(clicked()), this, SLOT(acceptClicked()));
+ btn = new QPushButton(__tr2qs_ctx("&Reject", "dcc"), this);
+ connect(btn, SIGNAL(clicked()), this, SLOT(rejectClicked()));
hb->addWidget(btn);
setWindowIcon(QIcon(*(g_pIconManager->getSmallIcon(KviIconManager::DccMsg))));
@@ -95,7 +96,7 @@ DccAcceptDialog::~DccAcceptDialog()
void DccAcceptDialog::acceptClicked()
{
hide();
- emit accepted(this,m_pDescriptor);
+ emit accepted(this, m_pDescriptor);
this->deleteLater();
//g_pApp->collectGarbage(this);
}
@@ -103,95 +104,95 @@ void DccAcceptDialog::acceptClicked()
void DccAcceptDialog::rejectClicked()
{
hide();
- emit rejected(this,m_pDescriptor);
+ emit rejected(this, m_pDescriptor);
this->deleteLater();
//g_pApp->collectGarbage(this);
}
-void DccAcceptDialog::closeEvent(QCloseEvent *e)
+void DccAcceptDialog::closeEvent(QCloseEvent * e)
{
hide();
e->ignore();
- emit rejected(this,m_pDescriptor);
+ emit rejected(this, m_pDescriptor);
this->deleteLater();
//g_pApp->collectGarbage(this);
}
-void DccAcceptDialog::showEvent(QShowEvent *e)
+void DccAcceptDialog::showEvent(QShowEvent * e)
{
QRect rect = g_pApp->desktop()->screenGeometry(g_pApp->desktop()->primaryScreen());
- move((rect.width() - width())/2,(rect.height() - height())/2);
+ move((rect.width() - width()) / 2, (rect.height() - height()) / 2);
QWidget::showEvent(e);
}
-
-DccRenameDialog::DccRenameDialog(DccBroker * br,DccDescriptor * dcc,const QString &text,bool bDisableResume)
-: QWidget(0), DccDialog(br,dcc)
+DccRenameDialog::DccRenameDialog(DccBroker * br, DccDescriptor * dcc, const QString & text, bool bDisableResume)
+ : QWidget(0), DccDialog(br, dcc)
{
setObjectName("dcc_rename_box");
//QVBoxLayout * vb = new QVBoxLayout(this,4,4);
QVBoxLayout * vb = new QVBoxLayout(this);
vb->setMargin(4);
vb->setSpacing(4);
- QLabel * l = new QLabel(text,this);
+ QLabel * l = new QLabel(text, this);
l->setWordWrap(true);
vb->addWidget(l);
//QHBoxLayout *hb = new QHBoxLayout(4);
- QHBoxLayout *hb = new QHBoxLayout();
+ QHBoxLayout * hb = new QHBoxLayout();
hb->setSpacing(4);
- vb->addLayout(hb,Qt::AlignCenter);
+ vb->addLayout(hb, Qt::AlignCenter);
- QPushButton * btn = new QPushButton(__tr2qs_ctx("&Rename","dcc"),this);
+ QPushButton * btn = new QPushButton(__tr2qs_ctx("&Rename", "dcc"), this);
hb->addWidget(btn);
- connect(btn,SIGNAL(clicked()),this,SLOT(renameClicked()));
+ connect(btn, SIGNAL(clicked()), this, SLOT(renameClicked()));
- btn = new QPushButton(__tr2qs_ctx("Over&write","dcc"),this);
+ btn = new QPushButton(__tr2qs_ctx("Over&write", "dcc"), this);
hb->addWidget(btn);
- connect(btn,SIGNAL(clicked()),this,SLOT(overwriteClicked()));
+ connect(btn, SIGNAL(clicked()), this, SLOT(overwriteClicked()));
- btn = new QPushButton(__tr2qs_ctx("Re&sume","dcc"),this);
+ btn = new QPushButton(__tr2qs_ctx("Re&sume", "dcc"), this);
hb->addWidget(btn);
- connect(btn,SIGNAL(clicked()),this,SLOT(resumeClicked()));
- if(bDisableResume)btn->setEnabled(false);
+ connect(btn, SIGNAL(clicked()), this, SLOT(resumeClicked()));
+ if(bDisableResume)
+ btn->setEnabled(false);
- btn = new QPushButton(__tr2qs_ctx("Cancel","dcc"),this);
+ btn = new QPushButton(__tr2qs_ctx("Cancel", "dcc"), this);
hb->addWidget(btn);
- connect(btn,SIGNAL(clicked()),this,SLOT(cancelClicked()));
+ connect(btn, SIGNAL(clicked()), this, SLOT(cancelClicked()));
btn->setDefault(true);
//btn->setFocus();
setWindowIcon(QIcon(*(g_pIconManager->getSmallIcon(KviIconManager::DccMsg))));
- setWindowTitle(__tr2qs_ctx("File Already Exists - KVIrc","dcc"));
+ setWindowTitle(__tr2qs_ctx("File Already Exists - KVIrc", "dcc"));
}
DccRenameDialog::~DccRenameDialog()
{
}
-void DccRenameDialog::closeEvent(QCloseEvent *e)
+void DccRenameDialog::closeEvent(QCloseEvent * e)
{
hide();
e->ignore();
if(m_pDescriptor)
{
- emit cancelSelected(this,m_pDescriptor);
+ emit cancelSelected(this, m_pDescriptor);
//g_pApp->collectGarbage(this);
this->deleteLater();
}
}
-void DccRenameDialog::showEvent(QShowEvent *e)
+void DccRenameDialog::showEvent(QShowEvent * e)
{
QRect rect = g_pApp->desktop()->screenGeometry(g_pApp->desktop()->primaryScreen());
- move((rect.width() - width())/2,(rect.height() - height())/2);
+ move((rect.width() - width()) / 2, (rect.height() - height()) / 2);
QWidget::showEvent(e);
}
void DccRenameDialog::renameClicked()
{
hide();
- emit renameSelected(this,m_pDescriptor);
+ emit renameSelected(this, m_pDescriptor);
//g_pApp->collectGarbage(this);
this->deleteLater();
}
@@ -199,7 +200,7 @@ void DccRenameDialog::renameClicked()
void DccRenameDialog::overwriteClicked()
{
hide();
- emit overwriteSelected(this,m_pDescriptor);
+ emit overwriteSelected(this, m_pDescriptor);
//g_pApp->collectGarbage(this);
this->deleteLater();
}
@@ -208,7 +209,7 @@ void DccRenameDialog::resumeClicked()
{
hide();
m_pDescriptor->bResume = true;
- emit overwriteSelected(this,m_pDescriptor);
+ emit overwriteSelected(this, m_pDescriptor);
this->deleteLater();
//g_pApp->collectGarbage(this);
}
@@ -216,7 +217,7 @@ void DccRenameDialog::resumeClicked()
void DccRenameDialog::cancelClicked()
{
hide();
- emit cancelSelected(this,m_pDescriptor);
+ emit cancelSelected(this, m_pDescriptor);
this->deleteLater();
//g_pApp->collectGarbage(this);
}
diff --git a/src/modules/dcc/DccDialog.h b/src/modules/dcc/DccDialog.h
index 3c57e2d22..ded6dc942 100644
--- a/src/modules/dcc/DccDialog.h
+++ b/src/modules/dcc/DccDialog.h
@@ -32,50 +32,53 @@ class DccDialog
{
protected:
DccDescriptor * m_pDescriptor;
- DccBroker * m_pBroker;
+ DccBroker * m_pBroker;
+
public:
- DccDialog(DccBroker * br,DccDescriptor * dcc);
+ DccDialog(DccBroker * br, DccDescriptor * dcc);
virtual ~DccDialog();
+
public:
virtual void forgetDescriptor();
};
-
class DccAcceptDialog : public QWidget, public DccDialog
{
Q_OBJECT
public:
- DccAcceptDialog(DccBroker * br,DccDescriptor * dcc,const QString &text,const QString &capt);
+ DccAcceptDialog(DccBroker * br, DccDescriptor * dcc, const QString & text, const QString & capt);
~DccAcceptDialog();
+
protected:
- virtual void closeEvent(QCloseEvent *e);
- virtual void showEvent(QShowEvent *e);
+ virtual void closeEvent(QCloseEvent * e);
+ virtual void showEvent(QShowEvent * e);
private slots:
void acceptClicked();
void rejectClicked();
signals:
- void accepted(DccDialog *,DccDescriptor *);
- void rejected(DccDialog *,DccDescriptor *);
+ void accepted(DccDialog *, DccDescriptor *);
+ void rejected(DccDialog *, DccDescriptor *);
};
class DccRenameDialog : public QWidget, public DccDialog
{
Q_OBJECT
public:
- DccRenameDialog(DccBroker * br,DccDescriptor * dcc,const QString &text,bool bDisableResume);
+ DccRenameDialog(DccBroker * br, DccDescriptor * dcc, const QString & text, bool bDisableResume);
~DccRenameDialog();
+
protected:
- virtual void closeEvent(QCloseEvent *e);
- virtual void showEvent(QShowEvent *e);
+ virtual void closeEvent(QCloseEvent * e);
+ virtual void showEvent(QShowEvent * e);
private slots:
void renameClicked();
void overwriteClicked();
void resumeClicked();
void cancelClicked();
signals:
- void overwriteSelected(DccDialog *,DccDescriptor *);
- void renameSelected(DccDialog *,DccDescriptor *);
- void cancelSelected(DccDialog *,DccDescriptor *);
+ void overwriteSelected(DccDialog *, DccDescriptor *);
+ void renameSelected(DccDialog *, DccDescriptor *);
+ void cancelSelected(DccDialog *, DccDescriptor *);
};
#endif
diff --git a/src/modules/dcc/DccFileTransfer.cpp b/src/modules/dcc/DccFileTransfer.cpp
index d74b1cef0..e1dca6012 100644
--- a/src/modules/dcc/DccFileTransfer.cpp
+++ b/src/modules/dcc/DccFileTransfer.cpp
@@ -54,8 +54,8 @@
#include "KviKvsScript.h"
#ifdef COMPILE_ON_WINDOWS
- // Ugly Windoze compiler...
- #include "DccDialog.h"
+// Ugly Windoze compiler...
+#include "DccDialog.h"
#endif
#include <QFile>
@@ -83,33 +83,34 @@ extern DccBroker * g_pDccBroker;
extern KVIRC_API KviMediaManager * g_pMediaManager; // KviApplication.cpp
-
static KviPointerList<DccFileTransfer> * g_pDccFileTransfers = 0;
static QPixmap * g_pDccFileTransferIcon = 0;
//#warning "The events that have a KviCString data pointer should become real classes, that take care of deleting the data pointer!"
//#warning "Otherwise, when left undispatched we will be leaking memory (event class destroyed but not the data ptr)"
-DccRecvThread::DccRecvThread(QObject * par,kvi_socket_t fd,KviDccRecvThreadOptions * opt)
-: DccThread(par,fd)
+DccRecvThread::DccRecvThread(QObject * par, kvi_socket_t fd, KviDccRecvThreadOptions * opt)
+ : DccThread(par, fd)
{
- m_pOpt = opt;
- m_uAverageSpeed = 0;
- m_uInstantSpeed = 0;
- m_uFilePosition = 0;
+ m_pOpt = opt;
+ m_uAverageSpeed = 0;
+ m_uInstantSpeed = 0;
+ m_uFilePosition = 0;
- m_uTotalReceivedBytes = 0;
+ m_uTotalReceivedBytes = 0;
m_uInstantReceivedBytes = 0;
- m_pFile = 0;
- m_pTimeInterval = new KviMSecTimeInterval();
- m_uStartTime = 0;
+ m_pFile = 0;
+ m_pTimeInterval = new KviMSecTimeInterval();
+ m_uStartTime = 0;
m_uInstantSpeedInterval = 0;
}
DccRecvThread::~DccRecvThread()
{
- if(m_pOpt)delete m_pOpt;
- if(m_pFile)delete m_pFile;
+ if(m_pOpt)
+ delete m_pOpt;
+ if(m_pFile)
+ delete m_pFile;
delete m_pTimeInterval;
}
@@ -118,22 +119,22 @@ bool DccRecvThread::sendAck(qint64 filePos, bool bUse64BitAck)
quint32 ack32 = htonl(filePos & 0xffffffff);
quint64 ack64 = qToBigEndian(filePos);
- char * ack = (char*) &ack32;
+ char * ack = (char *)&ack32;
int ackSize = 4;
if(bUse64BitAck)
{
ackSize = 8;
- ack = (char*) &ack64;
+ ack = (char *)&ack64;
}
- int iRet=0;
+ int iRet = 0;
#ifdef COMPILE_SSL_SUPPORT
if(m_pSSL)
- iRet = m_pSSL->write(ack,ackSize);
+ iRet = m_pSSL->write(ack, ackSize);
else
#endif //COMPILE_SSL_SUPPORT
- iRet = kvi_socket_send(m_fd,(void *)(ack),ackSize);
+ iRet = kvi_socket_send(m_fd, (void *)(ack), ackSize);
if(iRet == ackSize)
return true; // everything sent
@@ -155,7 +156,7 @@ bool DccRecvThread::sendAck(qint64 filePos, bool bUse64BitAck)
if(iRet < 0)
{
- // Reported error. If it's EAGAIN or EINTR then no data has been sent.
+// Reported error. If it's EAGAIN or EINTR then no data has been sent.
#ifdef COMPILE_SSL_SUPPORT
if(m_pSSL)
{
@@ -163,7 +164,7 @@ bool DccRecvThread::sendAck(qint64 filePos, bool bUse64BitAck)
switch(m_pSSL->getProtocolError(iRet))
{
case KviSSL::ZeroReturn:
- //return false; check eagain
+ //return false; check eagain
case KviSSL::Success:
case KviSSL::WantRead:
case KviSSL::WantWrite:
@@ -183,7 +184,7 @@ bool DccRecvThread::sendAck(qint64 filePos, bool bUse64BitAck)
int err = kvi_socket_error();
#if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW)
if((err != EAGAIN) && (err != EINTR) && (err != WSAEWOULDBLOCK))
-#else //!(defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW))
+#else //!(defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW))
if((err != EAGAIN) && (err != EINTR))
#endif //!(defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW))
{
@@ -205,10 +206,10 @@ bool DccRecvThread::sendAck(qint64 filePos, bool bUse64BitAck)
#ifdef COMPILE_SSL_SUPPORT
if(m_pSSL)
- iRet = m_pSSL->write(ack + iRet,iMissingPart);
+ iRet = m_pSSL->write(ack + iRet, iMissingPart);
else
#endif //COMPILE_SSL_SUPPORT
- iRet = kvi_socket_send(m_fd,(void *)(ack + iRet),iMissingPart);
+ iRet = kvi_socket_send(m_fd, (void *)(ack + iRet), iMissingPart);
if(iRet != iMissingPart)
{
@@ -226,7 +227,8 @@ void DccRecvThread::updateStats()
m_pMutex->lock();
unsigned long uElapsedTime = uCurTime - m_uStartTime;
- if(uElapsedTime < 1)uElapsedTime = 1;
+ if(uElapsedTime < 1)
+ uElapsedTime = 1;
m_uFilePosition = m_pFile->pos();
m_uAverageSpeed = m_uTotalReceivedBytes / uElapsedTime;
@@ -239,7 +241,9 @@ void DccRecvThread::updateStats()
m_uInstantSpeed = (m_uInstantReceivedBytes * 1000) / m_uInstantSpeedInterval;
m_uInstantReceivedBytes = 0;
m_uInstantSpeedInterval = uMSecsOfTheNextInterval;
- } else {
+ }
+ else
+ {
if(uElapsedTime <= INSTANT_BANDWIDTH_CHECK_INTERVAL_IN_SECS)
m_uInstantSpeed = m_uAverageSpeed;
}
@@ -250,7 +254,7 @@ void DccRecvThread::postMessageEvent(const char * m)
{
KviThreadDataEvent<KviCString> * e = new KviThreadDataEvent<KviCString>(KVI_DCC_THREAD_EVENT_MESSAGE);
e->setData(new KviCString(m));
- postEvent(parent(),e);
+ postEvent(parent(), e);
}
// FIXME: This stuff should be somewhat related to the 1448 bytes TCP basic packet size
@@ -259,7 +263,6 @@ void DccRecvThread::postMessageEvent(const char * m)
#define KVI_DCC_RECV_BLOCK_SIZE 16384
#define KVI_DCC_RECV_75PERCENTOF_BLOCK_SIZE 12280
-
void DccRecvThread::run()
{
// take care of sleeping a bit if we can't read stuff
@@ -297,7 +300,9 @@ void DccRecvThread::run()
postErrorEvent(KviError::CantOpenFileForAppending);
goto exit_dcc;
} // else pFile is already at end
- } else {
+ }
+ else
+ {
if(!m_pFile->open(QIODevice::WriteOnly))
{
postErrorEvent(KviError::CantOpenFileForWriting);
@@ -307,7 +312,7 @@ void DccRecvThread::run()
if(m_pOpt->bSendZeroAck && (!m_pOpt->bNoAcks))
{
- if(!sendAck(m_pFile->pos(),bSend64BitAck))
+ if(!sendAck(m_pFile->pos(), bSend64BitAck))
goto exit_dcc;
}
@@ -320,7 +325,9 @@ void DccRecvThread::run()
{
delete e;
goto exit_dcc;
- } else {
+ }
+ else
+ {
// Other events are senseless to us
delete e;
}
@@ -329,7 +336,7 @@ void DccRecvThread::run()
bool bCanRead;
bool bDummy;
- if(kvi_select(m_fd,&bCanRead,&bDummy,15000))
+ if(kvi_select(m_fd, &bCanRead, &bDummy, 15000))
{
// reset sleep time
@@ -344,7 +351,8 @@ void DccRecvThread::run()
unsigned int uMaxPossible = (m_pOpt->uMaxBandwidth < MAX_DCC_BANDWIDTH_LIMIT) ? m_pOpt->uMaxBandwidth * INSTANT_BANDWIDTH_CHECK_INTERVAL_IN_SECS : MAX_DCC_BANDWIDTH_LIMIT * INSTANT_BANDWIDTH_CHECK_INTERVAL_IN_SECS;
m_pMutex->unlock();
unsigned int uToRead = uMaxPossible > m_uInstantReceivedBytes ? uMaxPossible - m_uInstantReceivedBytes : 0;
- if(uToRead > KVI_DCC_RECV_BLOCK_SIZE)uToRead = KVI_DCC_RECV_BLOCK_SIZE;
+ if(uToRead > KVI_DCC_RECV_BLOCK_SIZE)
+ uToRead = KVI_DCC_RECV_BLOCK_SIZE;
if(uToRead > 0)
{
@@ -352,10 +360,12 @@ void DccRecvThread::run()
#ifdef COMPILE_SSL_SUPPORT
if(m_pSSL)
{
- readLen = m_pSSL->read(buffer,uToRead);
- } else {
+ readLen = m_pSSL->read(buffer, uToRead);
+ }
+ else
+ {
#endif
- readLen = kvi_socket_recv(m_fd,buffer,uToRead);
+ readLen = kvi_socket_recv(m_fd, buffer, uToRead);
#ifdef COMPILE_SSL_SUPPORT
}
#endif
@@ -365,19 +375,20 @@ void DccRecvThread::run()
// Readed something useful...write back
if(((uint)(readLen + m_pFile->pos())) > m_pOpt->uTotalFileSize)
{
- postMessageEvent(__tr_no_lookup_ctx("WARNING: the peer is sending garbage data past the end of the file","dcc"));
- postMessageEvent(__tr_no_lookup_ctx("WARNING: ignoring data past the declared end of file and closing the connection","dcc"));
+ postMessageEvent(__tr_no_lookup_ctx("WARNING: the peer is sending garbage data past the end of the file", "dcc"));
+ postMessageEvent(__tr_no_lookup_ctx("WARNING: ignoring data past the declared end of file and closing the connection", "dcc"));
readLen = m_pOpt->uTotalFileSize - m_pFile->pos();
if(readLen > 0)
{
- if(m_pFile->write(buffer,readLen) != readLen)
+ if(m_pFile->write(buffer, readLen) != readLen)
postErrorEvent(KviError::FileIOError);
}
break;
-
- } else {
- if(m_pFile->write(buffer,readLen) != readLen)
+ }
+ else
+ {
+ if(m_pFile->write(buffer, readLen) != readLen)
{
postErrorEvent(KviError::FileIOError);
break;
@@ -400,14 +411,16 @@ void DccRecvThread::run()
{
// Received the whole file...die
KviThreadEvent * e = new KviThreadEvent(KVI_DCC_THREAD_EVENT_SUCCESS);
- postEvent(parent(),e);
+ postEvent(parent(), e);
break;
}
}
- } else {
+ }
+ else
+ {
// Must send the ack... the peer must close the connection
- if(!sendAck(m_pFile->pos(),bSend64BitAck))
+ if(!sendAck(m_pFile->pos(), bSend64BitAck))
break;
}
@@ -420,15 +433,18 @@ void DccRecvThread::run()
if(iShortReadQuantifier > 500)
iShortReadQuantifier = 500;
msleep(iShortReadQuantifier);
- } else {
+ }
+ else
+ {
// don't allow it to go too low
if(iShortReadQuantifier < -500)
iShortReadQuantifier = -500;
}
-
- } else {
+ }
+ else
+ {
updateStats();
- // Read problem...
+// Read problem...
#ifdef COMPILE_SSL_SUPPORT
if(m_pSSL)
@@ -469,7 +485,7 @@ void DccRecvThread::run()
// Raise unknown SSL ERROR
postErrorEvent(KviError::SSLError);
goto exit_dcc;
- break;
+ break;
}
}
#endif
@@ -481,19 +497,21 @@ void DccRecvThread::run()
{
// success if we got the whole file or if we don't know the file size (we trust the peer)
KviThreadEvent * e = new KviThreadEvent(KVI_DCC_THREAD_EVENT_SUCCESS);
- postEvent(parent(),e);
+ postEvent(parent(), e);
break;
}
}
#ifdef COMPILE_SSL_SUPPORT
- if (!m_pSSL && !handleInvalidSocketRead(readLen))
+ if(!m_pSSL && !handleInvalidSocketRead(readLen))
break;
#else
- if (!handleInvalidSocketRead(readLen))
+ if(!handleInvalidSocketRead(readLen))
break;
#endif
}
- } else {
+ }
+ else
+ {
updateStats();
// reached the bandwidth limit: slow down a bit
@@ -502,12 +520,15 @@ void DccRecvThread::run()
else if(m_uInstantSpeedInterval < (INSTANT_BANDWIDTH_CHECK_INTERVAL_IN_MSECS - 20))
msleep(20);
}
- } else {
+ }
+ else
+ {
// Can't read stuff (can just write)
updateStats();
// sleep up to 300 msecs (if data arrives...we want low exit latency here)
- if(iFailedSelects < 100)iFailedSelects++;
+ if(iFailedSelects < 100)
+ iFailedSelects++;
updateStats();
if(iFailedSelects > 3)
msleep(3 * iFailedSelects);
@@ -519,16 +540,18 @@ void DccRecvThread::run()
{
iProbableTerminationTime = (int)kvi_unixTime();
m_pFile->flush();
- postMessageEvent(__tr_no_lookup_ctx("Data transfer terminated, waiting 30 seconds for the peer to close the connection...","dcc"));
+ postMessageEvent(__tr_no_lookup_ctx("Data transfer terminated, waiting 30 seconds for the peer to close the connection...", "dcc"));
// FIXME: Close the file ?
- } else {
+ }
+ else
+ {
int iDiff = (((int)kvi_unixTime()) - iProbableTerminationTime);
if(iDiff > 30)
{
// success if we got the whole file or if we don't know the file size (we trust the peer)
- postMessageEvent(__tr_no_lookup_ctx("Data transfer was terminated 30 seconds ago, closing the connection","dcc"));
+ postMessageEvent(__tr_no_lookup_ctx("Data transfer was terminated 30 seconds ago, closing the connection", "dcc"));
KviThreadEvent * e = new KviThreadEvent(KVI_DCC_THREAD_EVENT_SUCCESS);
- postEvent(parent(),e);
+ postEvent(parent(), e);
break;
}
}
@@ -537,9 +560,12 @@ void DccRecvThread::run()
// include the artificial delay if needed
if(m_pOpt->iIdleStepLengthInMSec > 0)
msleep(m_pOpt->iIdleStepLengthInMSec);
- } else {
+ }
+ else
+ {
// sleep up to 200 msecs (if data arrives...we want low exit latency here)
- if(iFailedSelects < 100)iFailedSelects++;
+ if(iFailedSelects < 100)
+ iFailedSelects++;
updateStats();
if(iFailedSelects > 3)
msleep(2 * iFailedSelects);
@@ -576,23 +602,24 @@ void DccRecvThread::doneGetInfo()
m_pMutex->unlock();
}
-DccSendThread::DccSendThread(QObject * par,kvi_socket_t fd,KviDccSendThreadOptions * opt)
-: DccThread(par,fd)
+DccSendThread::DccSendThread(QObject * par, kvi_socket_t fd, KviDccSendThreadOptions * opt)
+ : DccThread(par, fd)
{
m_pOpt = opt;
// stats
- m_uAverageSpeed = 0;
- m_uInstantSpeed = 0;
- m_uFilePosition = 0;
+ m_uAverageSpeed = 0;
+ m_uInstantSpeed = 0;
+ m_uFilePosition = 0;
m_uTotalSentBytes = 0;
- m_pTimeInterval = new KviMSecTimeInterval();
- m_uStartTime = 0;
+ m_pTimeInterval = new KviMSecTimeInterval();
+ m_uStartTime = 0;
m_uInstantSpeedInterval = 0;
}
DccSendThread::~DccSendThread()
{
- if(m_pOpt)delete m_pOpt;
+ if(m_pOpt)
+ delete m_pOpt;
delete m_pTimeInterval;
}
@@ -602,13 +629,16 @@ void DccSendThread::updateStats()
m_pMutex->lock();
unsigned long uElapsedTime = m_pTimeInterval->secondsCounter() - m_uStartTime;
- if(uElapsedTime < 1)uElapsedTime = 1;
+ if(uElapsedTime < 1)
+ uElapsedTime = 1;
if(m_pOpt->bNoAcks)
{
// There are no acks : the avg bandwidth is based on the sent bytes
m_uAverageSpeed = m_uTotalSentBytes / uElapsedTime;
- } else {
+ }
+ else
+ {
// acknowledges : we compute the avg bandwidth based on the acks we receive
m_uAverageSpeed = (m_uAckedBytes - m_pOpt->uStartPosition) / uElapsedTime;
}
@@ -633,14 +663,17 @@ void DccSendThread::updateStats()
m_uInstantSpeed = (m_uInstantSentBytes * 1000) / m_uInstantSpeedInterval;
m_uInstantSpeedInterval = uMSecsOfNextPeriodUsed;
m_uInstantSentBytes = 0;
- } else {
+ }
+ else
+ {
if(uElapsedTime <= INSTANT_BANDWIDTH_CHECK_INTERVAL_IN_SECS)
m_uInstantSpeed = m_uAverageSpeed;
}
m_pMutex->unlock();
}
-union _ack_buffer {
+union _ack_buffer
+{
char cAckBuffer[4];
quint32 i32AckBuffer;
};
@@ -652,17 +685,18 @@ void DccSendThread::run()
m_uStartTime = m_pTimeInterval->secondsCounter();
m_pMutex->unlock();
- m_uTotalSentBytes = 0;
- m_uInstantSentBytes = 0;
- int iFailedSelects = 0;
+ m_uTotalSentBytes = 0;
+ m_uInstantSentBytes = 0;
+ int iFailedSelects = 0;
_ack_buffer ackbuffer;
- int iBytesInAckBuffer = 0;
- quint32 uLastAck = 0;
- quint64 uTotLastAck = 0;
- bool bAckHack = false;
- quint64 iAckHackRounds = 0;
+ int iBytesInAckBuffer = 0;
+ quint32 uLastAck = 0;
+ quint64 uTotLastAck = 0;
+ bool bAckHack = false;
+ quint64 iAckHackRounds = 0;
- if(m_pOpt->iPacketSize < 32)m_pOpt->iPacketSize = 32;
+ if(m_pOpt->iPacketSize < 32)
+ m_pOpt->iPacketSize = 32;
char * buffer = (char *)KviMemory::allocate(m_pOpt->iPacketSize * sizeof(char));
QFile * pFile = new QFile(QString::fromUtf8(m_pOpt->szFileName.ptr()));
@@ -682,7 +716,7 @@ void DccSendThread::run()
if(pFile->size() >= 0xffffffff)
{
//dcc acks support only files up to 4GiB
- bAckHack=true;
+ bAckHack = true;
}
if(m_pOpt->uStartPosition > 0)
@@ -706,7 +740,9 @@ void DccSendThread::run()
{
delete e;
goto exit_dcc;
- } else {
+ }
+ else
+ {
// Other events are senseless to us
delete e;
}
@@ -715,7 +751,7 @@ void DccSendThread::run()
bool bCanRead;
bool bCanWrite;
- if(kvi_select(m_fd,&bCanRead,&bCanWrite,15000))
+ if(kvi_select(m_fd, &bCanRead, &bCanWrite, 15000))
{
// reset the sleep time
iFailedSelects = 0;
@@ -729,10 +765,12 @@ void DccSendThread::run()
#ifdef COMPILE_SSL_SUPPORT
if(m_pSSL)
{
- readLen = m_pSSL->read((ackbuffer.cAckBuffer + iBytesInAckBuffer),iAckBytesToRead);
- } else {
+ readLen = m_pSSL->read((ackbuffer.cAckBuffer + iBytesInAckBuffer), iAckBytesToRead);
+ }
+ else
+ {
#endif
- readLen = kvi_socket_recv(m_fd,(ackbuffer.cAckBuffer + iBytesInAckBuffer),iAckBytesToRead);
+ readLen = kvi_socket_recv(m_fd, (ackbuffer.cAckBuffer + iBytesInAckBuffer), iAckBytesToRead);
#ifdef COMPILE_SSL_SUPPORT
}
#endif
@@ -755,7 +793,9 @@ void DccSendThread::run()
{
//we reached the 4gb ack limit
iAckHackRounds++;
- } else {
+ }
+ else
+ {
// the peer is drunk or is trying to fool us
postErrorEvent(KviError::AcknowledgeError);
break;
@@ -765,13 +805,17 @@ void DccSendThread::run()
if(bAckHack)
{
uTotLastAck = (iAckHackRounds << 32) + iNewAck;
- } else {
+ }
+ else
+ {
uTotLastAck = iNewAck;
}
iBytesInAckBuffer = 0;
}
- } else {
+ }
+ else
+ {
#ifdef COMPILE_SSL_SUPPORT
if(m_pSSL)
{
@@ -783,12 +827,12 @@ void DccSendThread::run()
//if (!handleInvalidSocketRead(readLen)
// break;
readLen = 0;
- break;
+ break;
case KviSSL::Success:
case KviSSL::WantRead:
case KviSSL::WantWrite:
// hmmm...
- break;
+ break;
case KviSSL::SyscallError:
{
int iE = m_pSSL->getLastError(true);
@@ -811,18 +855,16 @@ void DccSendThread::run()
// Raise unknown SSL ERROR
postErrorEvent(KviError::SSLError);
goto exit_dcc;
- break;
+ break;
}
}
- if (!m_pSSL && !handleInvalidSocketRead(readLen))
+ if(!m_pSSL && !handleInvalidSocketRead(readLen))
break;
#else
- if (!handleInvalidSocketRead(readLen))
+ if(!handleInvalidSocketRead(readLen))
break;
#endif
-
-
}
// update stats
@@ -833,10 +875,12 @@ void DccSendThread::run()
if(uLastAck >= (quint64)pFile->size())
{
KviThreadEvent * e = new KviThreadEvent(KVI_DCC_THREAD_EVENT_SUCCESS);
- postEvent(parent(),e);
+ postEvent(parent(), e);
break;
}
- } else {
+ }
+ else
+ {
// No acknowledges
if(m_pOpt->bIsTdcc)
{
@@ -848,10 +892,12 @@ void DccSendThread::run()
#ifdef COMPILE_SSL_SUPPORT
if(m_pSSL)
{
- readLen = m_pSSL->read((char*)&iAck,4);
- } else {
+ readLen = m_pSSL->read((char *)&iAck, 4);
+ }
+ else
+ {
#endif
- readLen = kvi_socket_recv(m_fd,(char*)&iAck,4);
+ readLen = kvi_socket_recv(m_fd, (char *)&iAck, 4);
#ifdef COMPILE_SSL_SUPPORT
}
#endif
@@ -860,9 +906,11 @@ void DccSendThread::run()
// done...success
updateStats();
KviThreadEvent * e = new KviThreadEvent(KVI_DCC_THREAD_EVENT_SUCCESS);
- postEvent(parent(),e);
+ postEvent(parent(), e);
break;
- } else {
+ }
+ else
+ {
if(readLen < 0)
{
#ifdef COMPILE_SSL_SUPPORT
@@ -874,12 +922,12 @@ void DccSendThread::run()
case KviSSL::ZeroReturn:
readLen = 0;
- break;
+ break;
case KviSSL::Success:
case KviSSL::WantRead:
case KviSSL::WantWrite:
// hmmm...
- break;
+ break;
case KviSSL::SyscallError:
{
int iE = m_pSSL->getLastError(true);
@@ -902,21 +950,22 @@ void DccSendThread::run()
// Raise unknown SSL ERROR
postErrorEvent(KviError::SSLError);
goto exit_dcc;
- break;
+ break;
}
}
- if (!m_pSSL && !handleInvalidSocketRead(readLen))
+ if(!m_pSSL && !handleInvalidSocketRead(readLen))
break;
#else
- if (!handleInvalidSocketRead(readLen))
+ if(!handleInvalidSocketRead(readLen))
break;
#endif
-
- } else {
+ }
+ else
+ {
KviThreadDataEvent<KviCString> * e = new KviThreadDataEvent<KviCString>(KVI_DCC_THREAD_EVENT_MESSAGE);
- e->setData(new KviCString(__tr2qs_ctx("WARNING: received data in a DCC TSEND, there should be no acknowledges","dcc")));
- postEvent(parent(),e);
+ e->setData(new KviCString(__tr2qs_ctx("WARNING: received data in a DCC TSEND, there should be no acknowledges", "dcc")));
+ postEvent(parent(), e);
}
}
}
@@ -935,33 +984,39 @@ void DccSendThread::run()
m_pMutex->lock(); // FIXME: how to remove this lock ?
uint uMaxPossible = m_pOpt->uMaxBandwidth < MAX_DCC_BANDWIDTH_LIMIT ? m_pOpt->uMaxBandwidth * INSTANT_BANDWIDTH_CHECK_INTERVAL_IN_SECS : MAX_DCC_BANDWIDTH_LIMIT * INSTANT_BANDWIDTH_CHECK_INTERVAL_IN_SECS;
m_pMutex->unlock();
- if(uMaxPossible < m_uInstantSentBytes)toRead = 0; // already sent too much!
- else {
+ if(uMaxPossible < m_uInstantSentBytes)
+ toRead = 0; // already sent too much!
+ else
+ {
uMaxPossible -= m_uInstantSentBytes;
- if(toRead > uMaxPossible)toRead = uMaxPossible;
+ if(toRead > uMaxPossible)
+ toRead = uMaxPossible;
}
// limit to packet size
- if(toRead > m_pOpt->iPacketSize)toRead = m_pOpt->iPacketSize;
+ if(toRead > m_pOpt->iPacketSize)
+ toRead = m_pOpt->iPacketSize;
int written = 0;
if(toRead > 0)
{
// read data
- int readed = pFile->read(buffer,toRead);
+ int readed = pFile->read(buffer, toRead);
if(readed < toRead)
{
postErrorEvent(KviError::FileIOError);
break;
}
- // send it out
+// send it out
#ifdef COMPILE_SSL_SUPPORT
if(m_pSSL)
{
- written = m_pSSL->write(buffer,toRead);
- } else {
+ written = m_pSSL->write(buffer, toRead);
+ }
+ else
+ {
#endif
- written = kvi_socket_send(m_fd,buffer,toRead);
+ written = kvi_socket_send(m_fd, buffer, toRead);
#ifdef COMPILE_SSL_SUPPORT
}
#endif
@@ -981,47 +1036,50 @@ void DccSendThread::run()
case KviSSL::WantRead:
// Async continue...
goto handle_system_error;
- break;
+ break;
case KviSSL::SyscallError:
if(written == 0)
{
raiseSSLError();
postErrorEvent(KviError::RemoteEndClosedConnection);
goto exit_dcc;
- } else {
+ }
+ else
+ {
int iSSLErr = m_pSSL->getLastError(true);
if(iSSLErr != 0)
{
raiseSSLError();
postErrorEvent(KviError::SSLError);
goto exit_dcc;
- } else {
+ }
+ else
+ {
goto handle_system_error;
}
}
- break;
+ break;
case KviSSL::SSLError:
raiseSSLError();
postErrorEvent(KviError::SSLError);
goto exit_dcc;
- break;
+ break;
default:
postErrorEvent(KviError::SSLError);
goto exit_dcc;
- break;
+ break;
}
}
- if (!m_pSSL && !handleInvalidSocketRead(written))
+ if(!m_pSSL && !handleInvalidSocketRead(written))
break;
#else
- if (!handleInvalidSocketRead(written))
+ if(!handleInvalidSocketRead(written))
break;
#endif
-
-handle_system_error:
+ handle_system_error:
int err = kvi_socket_error();
#if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW)
if((err != EAGAIN) && (err != EINTR) && (err != WSAEWOULDBLOCK))
@@ -1032,19 +1090,23 @@ handle_system_error:
postErrorEvent(KviError::translateSystemError(err));
goto exit_dcc;
}
-
- } else {
+ }
+ else
+ {
// seek back to the right position
pFile->seek(pFile->pos() - (toRead - written));
}
}
- } else {
+ }
+ else
+ {
// just nothing to send out in this interval
// sleep a while
if(m_uInstantSpeedInterval < (INSTANT_BANDWIDTH_CHECK_INTERVAL_IN_MSECS - 100))
{
msleep(100);
- } else if(m_uInstantSpeedInterval < (INSTANT_BANDWIDTH_CHECK_INTERVAL_IN_MSECS - 20))
+ }
+ else if(m_uInstantSpeedInterval < (INSTANT_BANDWIDTH_CHECK_INTERVAL_IN_MSECS - 20))
{
msleep(20);
}
@@ -1055,30 +1117,39 @@ handle_system_error:
m_uFilePosition = pFile->pos();
updateStats();
}
- } else {
+ }
+ else
+ {
if(m_pOpt->bNoAcks && !m_pOpt->bIsTdcc)
{
// at end of the file in a blind dcc send...
// not in a tdcc: we can close the file...
updateStats();
KviThreadEvent * e = new KviThreadEvent(KVI_DCC_THREAD_EVENT_SUCCESS);
- postEvent(parent(),e);
+ postEvent(parent(), e);
break;
- } else {
+ }
+ else
+ {
// upload finished but we're waiting for the last ack
// sleep a bit: don't lag the kernie too much while waiting
msleep(100);
}
}
}
- } else {
+ }
+ else
+ {
// after 2 failed selects start to sleep
if(iFailedSelects > 3)
{
// sleep up to 200 msecs
- if(iFailedSelects < 100)iFailedSelects++;
+ if(iFailedSelects < 100)
+ iFailedSelects++;
msleep(3 * iFailedSelects);
- } else {
+ }
+ else
+ {
iFailedSelects++;
}
}
@@ -1117,9 +1188,8 @@ void DccSendThread::doneGetInfo()
m_pMutex->unlock();
}
-
DccFileTransfer::DccFileTransfer(DccDescriptor * dcc)
-: KviFileTransfer()
+ : KviFileTransfer()
{
init(); // ensure we're initialized
g_pDccFileTransfers->append(this);
@@ -1127,25 +1197,27 @@ DccFileTransfer::DccFileTransfer(DccDescriptor * dcc)
m_pResumeTimer = 0;
m_pBandwidthDialog = 0;
- m_szTransferIdString = QString(__tr2qs_ctx("TRANSFER %1","dcc")).arg(id());
+ m_szTransferIdString = QString(__tr2qs_ctx("TRANSFER %1", "dcc")).arg(id());
m_pDescriptor = dcc;
m_pDescriptor->setTransfer(this);
m_pMarshal = new DccMarshal(this);
- connect(m_pMarshal,SIGNAL(error(KviError::Code)),this,SLOT(handleMarshalError(KviError::Code)));
- connect(m_pMarshal,SIGNAL(connected()),this,SLOT(connected()));
- connect(m_pMarshal,SIGNAL(inProgress()),this,SLOT(connectionInProgress()));
+ connect(m_pMarshal, SIGNAL(error(KviError::Code)), this, SLOT(handleMarshalError(KviError::Code)));
+ connect(m_pMarshal, SIGNAL(connected()), this, SLOT(connected()));
+ connect(m_pMarshal, SIGNAL(inProgress()), this, SLOT(connectionInProgress()));
#ifdef COMPILE_SSL_SUPPORT
- connect(m_pMarshal,SIGNAL(startingSSLHandshake()),this,SLOT(startingSSLHandshake()));
- connect(m_pMarshal,SIGNAL(sslError(const char *)),this,SLOT(sslError(const char *)));
+ connect(m_pMarshal, SIGNAL(startingSSLHandshake()), this, SLOT(startingSSLHandshake()));
+ connect(m_pMarshal, SIGNAL(sslError(const char *)), this, SLOT(sslError(const char *)));
#endif
m_szDccType = dcc->bRecvFile ? "RECV" : "SEND";
- if(dcc->bIsTdcc) m_szDccType.prepend("T");
+ if(dcc->bIsTdcc)
+ m_szDccType.prepend("T");
#ifdef COMPILE_SSL_SUPPORT
- if(dcc->bIsSSL) m_szDccType.prepend("S");
+ if(dcc->bIsSSL)
+ m_szDccType.prepend("S");
#endif
m_pSlaveRecvThread = 0;
m_pSlaveSendThread = 0;
@@ -1153,17 +1225,18 @@ DccFileTransfer::DccFileTransfer(DccDescriptor * dcc)
m_tTransferStartTime = 0;
m_tTransferEndTime = 0;
- m_szStatusString = __tr2qs_ctx("Setting up the connection","dcc");
+ m_szStatusString = __tr2qs_ctx("Setting up the connection", "dcc");
m_eGeneralStatus = Connecting;
bool bOk;
- m_uTotalFileSize = dcc->bRecvFile ? dcc->szFileSize.toULongLong(&bOk) : dcc->szLocalFileSize.toULongLong(&bOk);
- if(!bOk)m_uTotalFileSize = 0;
+ m_uTotalFileSize = dcc->bRecvFile ? dcc->szFileSize.toULongLong(&bOk) : dcc->szLocalFileSize.toULongLong(&bOk);
+ if(!bOk)
+ m_uTotalFileSize = 0;
if(m_pDescriptor->bRecvFile)
- m_uMaxBandwidth = KVI_OPTION_BOOL(KviOption_boolLimitDccRecvSpeed) ? KVI_OPTION_UINT(KviOption_uintMaxDccRecvSpeed) : MAX_DCC_BANDWIDTH_LIMIT;
+ m_uMaxBandwidth = KVI_OPTION_BOOL(KviOption_boolLimitDccRecvSpeed) ? KVI_OPTION_UINT(KviOption_uintMaxDccRecvSpeed) : MAX_DCC_BANDWIDTH_LIMIT;
else
- m_uMaxBandwidth = KVI_OPTION_BOOL(KviOption_boolLimitDccSendSpeed) ? KVI_OPTION_UINT(KviOption_uintMaxDccSendSpeed) : MAX_DCC_BANDWIDTH_LIMIT;
+ m_uMaxBandwidth = KVI_OPTION_BOOL(KviOption_boolLimitDccSendSpeed) ? KVI_OPTION_UINT(KviOption_uintMaxDccSendSpeed) : MAX_DCC_BANDWIDTH_LIMIT;
startConnection();
}
@@ -1172,8 +1245,10 @@ DccFileTransfer::~DccFileTransfer()
{
g_pDccFileTransfers->removeRef(this);
- if(m_pResumeTimer)delete m_pResumeTimer;
- if(m_pBandwidthDialog)delete m_pBandwidthDialog;
+ if(m_pResumeTimer)
+ delete m_pResumeTimer;
+ if(m_pBandwidthDialog)
+ delete m_pBandwidthDialog;
if(m_pSlaveRecvThread)
{
@@ -1202,8 +1277,9 @@ void DccFileTransfer::bandwidthDialogDestroyed()
KviWindow * DccFileTransfer::eventWindow()
{
- KviWindow *w = transferWindow();
- if(w)return w;
+ KviWindow * w = transferWindow();
+ if(w)
+ return w;
return m_pDescriptor->console();
}
@@ -1212,37 +1288,40 @@ void DccFileTransfer::startConnection()
if(!(m_pDescriptor->bActive))
{
// PASSIVE CONNECTION
- m_szStatusString = __tr2qs_ctx("Attempting a passive DCC %1 connection","dcc").arg(m_szDccType.ptr());
+ m_szStatusString = __tr2qs_ctx("Attempting a passive DCC %1 connection", "dcc").arg(m_szDccType.ptr());
outputAndLog(m_szStatusString);
- } else {
+ }
+ else
+ {
// ACTIVE CONNECTION
- m_szStatusString = __tr2qs_ctx("Attempting an active DCC %1 connection","dcc").arg(m_szDccType.ptr());
+ m_szStatusString = __tr2qs_ctx("Attempting an active DCC %1 connection", "dcc").arg(m_szDccType.ptr());
outputAndLog(m_szStatusString);
}
-
if(m_pDescriptor->bResume && m_pDescriptor->bRecvFile)
{
QString fName;
- KviIrcServerParser::encodeCtcpParameter(m_pDescriptor->szFileName.toUtf8().data(),fName);
+ KviIrcServerParser::encodeCtcpParameter(m_pDescriptor->szFileName.toUtf8().data(), fName);
if(m_pDescriptor->isZeroPortRequest())
{
- m_pDescriptor->console()->connection()->sendFmtData("PRIVMSG %s :%cDCC RESUME %s %s %s %s%c",
- m_pDescriptor->console()->connection()->encodeText(m_pDescriptor->szNick).data(),
- 0x01,
- m_pDescriptor->console()->connection()->encodeText(fName).data(),
- m_pDescriptor->szPort.toUtf8().data(),
- m_pDescriptor->szLocalFileSize.toUtf8().data(),
- m_pDescriptor->zeroPortRequestTag(),0x01);
- } else {
+ m_pDescriptor->console()->connection()->sendFmtData("PRIVMSG %s :%cDCC RESUME %s %s %s %s%c",
+ m_pDescriptor->console()->connection()->encodeText(m_pDescriptor->szNick).data(),
+ 0x01,
+ m_pDescriptor->console()->connection()->encodeText(fName).data(),
+ m_pDescriptor->szPort.toUtf8().data(),
+ m_pDescriptor->szLocalFileSize.toUtf8().data(),
+ m_pDescriptor->zeroPortRequestTag(), 0x01);
+ }
+ else
+ {
m_pDescriptor->console()->connection()->sendFmtData("PRIVMSG %s :%cDCC RESUME %s %s %s%c",
- m_pDescriptor->console()->connection()->encodeText(m_pDescriptor->szNick).data(),
- 0x01,
- m_pDescriptor->console()->connection()->encodeText(fName).data(),
- m_pDescriptor->szPort.toUtf8().data(),
- m_pDescriptor->szLocalFileSize.toUtf8().data(),0x01);
+ m_pDescriptor->console()->connection()->encodeText(m_pDescriptor->szNick).data(),
+ 0x01,
+ m_pDescriptor->console()->connection()->encodeText(fName).data(),
+ m_pDescriptor->szPort.toUtf8().data(),
+ m_pDescriptor->szLocalFileSize.toUtf8().data(), 0x01);
}
- m_szStatusString = __tr2qs_ctx("Sent DCC RESUME request to %1, waiting for ACCEPT","dcc").arg(m_pDescriptor->szNick);
+ m_szStatusString = __tr2qs_ctx("Sent DCC RESUME request to %1, waiting for ACCEPT", "dcc").arg(m_pDescriptor->szNick);
outputAndLog(m_szStatusString);
// setup the resume timer: we don't want to wait forever
@@ -1250,13 +1329,16 @@ void DccFileTransfer::startConnection()
if(KVI_OPTION_UINT(KviOption_uintDccSocketTimeout) < 5)
KVI_OPTION_UINT(KviOption_uintDccSocketTimeout) = 5;
- if(m_pResumeTimer)delete m_pResumeTimer;
+ if(m_pResumeTimer)
+ delete m_pResumeTimer;
m_pResumeTimer = new QTimer(this);
- connect(m_pResumeTimer,SIGNAL(timeout()),this,SLOT(resumeTimedOut()));
+ connect(m_pResumeTimer, SIGNAL(timeout()), this, SLOT(resumeTimedOut()));
m_pResumeTimer->setInterval(KVI_OPTION_UINT(KviOption_uintDccSocketTimeout) * 1000);
m_pResumeTimer->setSingleShot(true);
m_pResumeTimer->start();
- } else {
+ }
+ else
+ {
listenOrConnect();
}
@@ -1268,17 +1350,19 @@ void DccFileTransfer::listenOrConnect()
if(!(m_pDescriptor->bActive))
{
#ifdef COMPILE_SSL_SUPPORT
- KviError::Code eError = m_pMarshal->dccListen(m_pDescriptor->szListenIp,m_pDescriptor->szListenPort,m_pDescriptor->bDoTimeout,m_pDescriptor->bIsSSL);
+ KviError::Code eError = m_pMarshal->dccListen(m_pDescriptor->szListenIp, m_pDescriptor->szListenPort, m_pDescriptor->bDoTimeout, m_pDescriptor->bIsSSL);
#else
- KviError::Code eError = m_pMarshal->dccListen(m_pDescriptor->szListenIp,m_pDescriptor->szListenPort,m_pDescriptor->bDoTimeout);
+ KviError::Code eError = m_pMarshal->dccListen(m_pDescriptor->szListenIp, m_pDescriptor->szListenPort, m_pDescriptor->bDoTimeout);
#endif
if(eError != KviError::Success)
handleMarshalError(eError);
- } else {
+ }
+ else
+ {
#ifdef COMPILE_SSL_SUPPORT
- KviError::Code eError = m_pMarshal->dccConnect(m_pDescriptor->szIp.toUtf8().data(),m_pDescriptor->szPort.toUtf8().data(),m_pDescriptor->bDoTimeout,m_pDescriptor->bIsSSL);
+ KviError::Code eError = m_pMarshal->dccConnect(m_pDescriptor->szIp.toUtf8().data(), m_pDescriptor->szPort.toUtf8().data(), m_pDescriptor->bDoTimeout, m_pDescriptor->bIsSSL);
#else
- KviError::Code eError = m_pMarshal->dccConnect(m_pDescriptor->szIp.toUtf8().data(),m_pDescriptor->szPort.toUtf8().data(),m_pDescriptor->bDoTimeout);
+ KviError::Code eError = m_pMarshal->dccConnect(m_pDescriptor->szIp.toUtf8().data(), m_pDescriptor->szPort.toUtf8().data(), m_pDescriptor->bDoTimeout);
#endif
if(eError != KviError::Success)
handleMarshalError(eError);
@@ -1314,47 +1398,54 @@ QString DccFileTransfer::localFileName()
void DccFileTransfer::abort()
{
- if(m_pSlaveRecvThread)m_pSlaveRecvThread->terminate();
- if(m_pSlaveSendThread)m_pSlaveSendThread->terminate();
- if(m_pMarshal)m_pMarshal->abort();
+ if(m_pSlaveRecvThread)
+ m_pSlaveRecvThread->terminate();
+ if(m_pSlaveSendThread)
+ m_pSlaveSendThread->terminate();
+ if(m_pMarshal)
+ m_pMarshal->abort();
if(m_pDescriptor->bRecvFile)
- g_pApp->fileDownloadTerminated(false,m_pDescriptor->szFileName.toUtf8().data(),m_pDescriptor->szLocalFileName.toUtf8().data(),m_pDescriptor->szNick.toUtf8().data(),__tr_ctx("Aborted","dcc"));
+ g_pApp->fileDownloadTerminated(false, m_pDescriptor->szFileName.toUtf8().data(), m_pDescriptor->szLocalFileName.toUtf8().data(), m_pDescriptor->szNick.toUtf8().data(), __tr_ctx("Aborted", "dcc"));
QString tmp;
- if(m_pSlaveRecvThread)tmp.setNum(m_pSlaveRecvThread->receivedBytes());
- else if(m_pSlaveSendThread)tmp.setNum(m_pSlaveSendThread->sentBytes());
- else tmp = '0';
+ if(m_pSlaveRecvThread)
+ tmp.setNum(m_pSlaveRecvThread->receivedBytes());
+ else if(m_pSlaveSendThread)
+ tmp.setNum(m_pSlaveSendThread->sentBytes());
+ else
+ tmp = '0';
m_eGeneralStatus = Failure;
m_tTransferEndTime = kvi_unixTime();
- m_szStatusString = __tr2qs_ctx("Transfer failed: ","dcc");
- m_szStatusString += __tr2qs_ctx("Aborted","dcc");
+ m_szStatusString = __tr2qs_ctx("Transfer failed: ", "dcc");
+ m_szStatusString += __tr2qs_ctx("Aborted", "dcc");
- KVS_TRIGGER_EVENT_3(KviEvent_OnDCCFileTransferFailed,eventWindow(),QString("Aborted by user"),tmp,m_pDescriptor->idString());
+ KVS_TRIGGER_EVENT_3(KviEvent_OnDCCFileTransferFailed, eventWindow(), QString("Aborted by user"), tmp, m_pDescriptor->idString());
- outputAndLog(KVI_OUT_DCCERROR,m_szStatusString);
+ outputAndLog(KVI_OUT_DCCERROR, m_szStatusString);
displayUpdate();
}
void DccFileTransfer::fillContextPopup(QMenu * m)
{
- m->addAction(__tr2qs_ctx("Configure Bandwidth...","dcc"),this,SLOT(configureBandwidth()));
- m->addSeparator();
- m->addAction(__tr2qs_ctx("Resend DCC","dcc"),this,SLOT(retryDCC()));
- m->addAction(__tr2qs_ctx("Resend TDCC","dcc"),this,SLOT(retryTDCC()));
- m->addAction(__tr2qs_ctx("Resend RevDCC","dcc"),this,SLOT(retryRevDCC()));
- QAction *pAction = m->addAction(__tr2qs_ctx("Abort","dcc"),this,SLOT(abort()));
- if(!active())
- pAction->setEnabled(false);
+ m->addAction(__tr2qs_ctx("Configure Bandwidth...", "dcc"), this, SLOT(configureBandwidth()));
+ m->addSeparator();
+ m->addAction(__tr2qs_ctx("Resend DCC", "dcc"), this, SLOT(retryDCC()));
+ m->addAction(__tr2qs_ctx("Resend TDCC", "dcc"), this, SLOT(retryTDCC()));
+ m->addAction(__tr2qs_ctx("Resend RevDCC", "dcc"), this, SLOT(retryRevDCC()));
+ QAction * pAction = m->addAction(__tr2qs_ctx("Abort", "dcc"), this, SLOT(abort()));
+ if(!active())
+ pAction->setEnabled(false);
}
void DccFileTransfer::configureBandwidth()
{
- if(m_pBandwidthDialog)return;
- m_pBandwidthDialog = new DccFileTransferBandwidthDialog(g_pMainWindow,this);
- connect(m_pBandwidthDialog,SIGNAL(destroyed()),this,SLOT(bandwidthDialogDestroyed()));
+ if(m_pBandwidthDialog)
+ return;
+ m_pBandwidthDialog = new DccFileTransferBandwidthDialog(g_pMainWindow, this);
+ connect(m_pBandwidthDialog, SIGNAL(destroyed()), this, SLOT(bandwidthDialogDestroyed()));
m_pBandwidthDialog->setModal(true);
m_pBandwidthDialog->show();
}
@@ -1369,7 +1460,7 @@ void DccFileTransfer::retryDCC()
KviQString::escapeKvs(&szFileName, KviQString::EscapeSpace);
QString szCommand = "dcc.send -r=$console($dcc.irccontext(" + szId + ")) " + szRemoteNick + " " + szFileName;
- KviKvsScript::run(szCommand,g_pActiveWindow);
+ KviKvsScript::run(szCommand, g_pActiveWindow);
}
void DccFileTransfer::retryTDCC()
@@ -1382,7 +1473,7 @@ void DccFileTransfer::retryTDCC()
KviQString::escapeKvs(&szFileName, KviQString::EscapeSpace);
QString szCommand = "dcc.send -r=$console($dcc.irccontext(" + szId + ")) -t " + szRemoteNick + " " + szFileName;
- KviKvsScript::run(szCommand,g_pActiveWindow);
+ KviKvsScript::run(szCommand, g_pActiveWindow);
}
void DccFileTransfer::retryRevDCC()
@@ -1395,10 +1486,10 @@ void DccFileTransfer::retryRevDCC()
KviQString::escapeKvs(&szFileName, KviQString::EscapeSpace);
QString szCommand = "dcc.rsend -z -r=$console($dcc.irccontext(" + szId + ")) " + szRemoteNick + " " + szFileName;
- KviKvsScript::run(szCommand,g_pActiveWindow);
+ KviKvsScript::run(szCommand, g_pActiveWindow);
}
-void DccFileTransfer::fillStatusString(QString &szBuffer)
+void DccFileTransfer::fillStatusString(QString & szBuffer)
{
switch(m_eGeneralStatus)
{
@@ -1435,15 +1526,19 @@ int DccFileTransfer::bandwidthLimit()
m_pSlaveRecvThread->initGetInfo();
iLimit = (int)m_pSlaveRecvThread->bandwidthLimit();
m_pSlaveRecvThread->doneGetInfo();
- if(iLimit < 0)iLimit = MAX_DCC_BANDWIDTH_LIMIT;
+ if(iLimit < 0)
+ iLimit = MAX_DCC_BANDWIDTH_LIMIT;
}
- } else {
+ }
+ else
+ {
if(m_pSlaveSendThread)
{
m_pSlaveSendThread->initGetInfo();
iLimit = (int)m_pSlaveSendThread->bandwidthLimit();
m_pSlaveSendThread->doneGetInfo();
- if(iLimit < 0)iLimit = MAX_DCC_BANDWIDTH_LIMIT;
+ if(iLimit < 0)
+ iLimit = MAX_DCC_BANDWIDTH_LIMIT;
}
}
return iLimit;
@@ -1451,8 +1546,10 @@ int DccFileTransfer::bandwidthLimit()
void DccFileTransfer::setBandwidthLimit(int iVal)
{
- if(iVal < 0)iVal = MAX_DCC_BANDWIDTH_LIMIT;
- if(iVal > MAX_DCC_BANDWIDTH_LIMIT)iVal = MAX_DCC_BANDWIDTH_LIMIT;
+ if(iVal < 0)
+ iVal = MAX_DCC_BANDWIDTH_LIMIT;
+ if(iVal > MAX_DCC_BANDWIDTH_LIMIT)
+ iVal = MAX_DCC_BANDWIDTH_LIMIT;
m_uMaxBandwidth = iVal;
if(m_pDescriptor->bRecvFile)
{
@@ -1462,7 +1559,9 @@ void DccFileTransfer::setBandwidthLimit(int iVal)
m_pSlaveRecvThread->setBandwidthLimit(iVal);
m_pSlaveRecvThread->doneGetInfo();
}
- } else {
+ }
+ else
+ {
if(m_pSlaveSendThread)
{
m_pSlaveSendThread->initGetInfo();
@@ -1483,7 +1582,9 @@ unsigned int DccFileTransfer::averageSpeed()
uAvgBandwidth = m_pSlaveRecvThread->averageSpeed();
m_pSlaveRecvThread->doneGetInfo();
}
- } else {
+ }
+ else
+ {
if(m_pSlaveSendThread)
{
m_pSlaveSendThread->initGetInfo();
@@ -1505,7 +1606,9 @@ unsigned int DccFileTransfer::instantSpeed()
uInstBandwidth = m_pSlaveRecvThread->instantSpeed();
m_pSlaveRecvThread->doneGetInfo();
}
- } else {
+ }
+ else
+ {
if(m_pSlaveSendThread)
{
m_pSlaveSendThread->initGetInfo();
@@ -1527,7 +1630,9 @@ unsigned int DccFileTransfer::transferredBytes()
uTransferred = m_pSlaveRecvThread->filePosition();
m_pSlaveRecvThread->doneGetInfo();
}
- } else {
+ }
+ else
+ {
if(m_pSlaveSendThread)
{
m_pSlaveSendThread->initGetInfo();
@@ -1538,7 +1643,7 @@ unsigned int DccFileTransfer::transferredBytes()
return uTransferred;
}
-void DccFileTransfer::displayPaint(QPainter * p,int column, QRect rect)
+void DccFileTransfer::displayPaint(QPainter * p, int column, QRect rect)
{
int width = rect.width(), height = rect.height();
QString txt;
@@ -1548,19 +1653,29 @@ void DccFileTransfer::displayPaint(QPainter * p,int column, QRect rect)
{
case COLUMN_TRANSFERTYPE:
{
- if(!g_pDccFileTransferIcon)break;
+ if(!g_pDccFileTransferIcon)
+ break;
int xoffset = 0;
int yoffset = 0;
- if(m_pDescriptor->bRecvFile)yoffset = 64;
+ if(m_pDescriptor->bRecvFile)
+ yoffset = 64;
switch(m_eGeneralStatus)
{
- case Connecting: xoffset = 0; break;
- case Transferring: xoffset = 48; break;
- case Success: xoffset = 96; break;
- case Failure: xoffset = 144; break;
+ case Connecting:
+ xoffset = 0;
+ break;
+ case Transferring:
+ xoffset = 48;
+ break;
+ case Success:
+ xoffset = 96;
+ break;
+ case Failure:
+ xoffset = 144;
+ break;
}
// 48 is width, 64 is height
- p->drawPixmap(width / 2 - 48 / 2,rect.top() + height / 2 - 64 / 2,*g_pDccFileTransferIcon,xoffset,yoffset,48,64);
+ p->drawPixmap(width / 2 - 48 / 2, rect.top() + height / 2 - 64 / 2, *g_pDccFileTransferIcon, xoffset, yoffset, 48, 64);
}
break;
case COLUMN_FILEINFO:
@@ -1568,47 +1683,45 @@ void DccFileTransfer::displayPaint(QPainter * p,int column, QRect rect)
QFontMetrics fm(p->font());
- QString szFrom = __tr2qs_ctx("From: ","dcc");
- QString szTo = __tr2qs_ctx("To: ","dcc");
+ QString szFrom = __tr2qs_ctx("From: ", "dcc");
+ QString szTo = __tr2qs_ctx("To: ", "dcc");
int daW1 = fm.width(szFrom);
int daW2 = fm.width(szTo);
- if(daW1 < daW2)daW1 = daW2;
+ if(daW1 < daW2)
+ daW1 = daW2;
int iLineSpacing = fm.lineSpacing();
int iY = rect.top() + 4;
p->setPen(Qt::black);
- KviCString szRemote(KviCString::Format,"dcc://%s@%s:%s/%s",m_pDescriptor->szNick.toUtf8().data(),m_pDescriptor->szIp.toUtf8().data(),m_pDescriptor->szPort.toUtf8().data(),
- m_pDescriptor->szFileName.toUtf8().data());
+ KviCString szRemote(KviCString::Format, "dcc://%s@%s:%s/%s", m_pDescriptor->szNick.toUtf8().data(), m_pDescriptor->szIp.toUtf8().data(), m_pDescriptor->szPort.toUtf8().data(),
+ m_pDescriptor->szFileName.toUtf8().data());
- p->drawText(rect.left() + 4 + daW1,iY,width - (8 + daW1),height - 8,Qt::AlignTop | Qt::AlignLeft,
- m_pDescriptor->bRecvFile ? szRemote.ptr() : m_pDescriptor->szLocalFileName.toUtf8().data());
+ p->drawText(rect.left() + 4 + daW1, iY, width - (8 + daW1), height - 8, Qt::AlignTop | Qt::AlignLeft,
+ m_pDescriptor->bRecvFile ? szRemote.ptr() : m_pDescriptor->szLocalFileName.toUtf8().data());
iY += iLineSpacing;
- p->drawText(rect.left() + 4 + daW1,iY,width - (8 + daW1),height - 8,Qt::AlignTop | Qt::AlignLeft,
- m_pDescriptor->bRecvFile ? m_pDescriptor->szLocalFileName.toUtf8().data() : szRemote.ptr());
+ p->drawText(rect.left() + 4 + daW1, iY, width - (8 + daW1), height - 8, Qt::AlignTop | Qt::AlignLeft,
+ m_pDescriptor->bRecvFile ? m_pDescriptor->szLocalFileName.toUtf8().data() : szRemote.ptr());
iY += iLineSpacing;
-
p->setPen(Qt::darkGray);
- p->drawText(rect.left() + 4, rect.top() + 4,width - 8,height - 8,Qt::AlignTop | Qt::AlignLeft,szFrom);
- p->drawText(rect.left() + 4, rect.top() + 4 + iLineSpacing,width - 8,height - 8,Qt::AlignTop | Qt::AlignLeft,szTo);
+ p->drawText(rect.left() + 4, rect.top() + 4, width - 8, height - 8, Qt::AlignTop | Qt::AlignLeft, szFrom);
+ p->drawText(rect.left() + 4, rect.top() + 4 + iLineSpacing, width - 8, height - 8, Qt::AlignTop | Qt::AlignLeft, szTo);
-
- p->setPen(QColor(180,180,200));
+ p->setPen(QColor(180, 180, 200));
iLineSpacing += 2;
- p->drawRect(rect.left() + 4, rect.top() + height - (iLineSpacing + 4),width - 8,iLineSpacing);
- p->fillRect(rect.left() + 5, rect.top() + height - (iLineSpacing + 3),width - 10,iLineSpacing - 2,bIsTerminated ? QColor(210,210,210) : QColor(190,190,240));
+ p->drawRect(rect.left() + 4, rect.top() + height - (iLineSpacing + 4), width - 8, iLineSpacing);
+ p->fillRect(rect.left() + 5, rect.top() + height - (iLineSpacing + 3), width - 10, iLineSpacing - 2, bIsTerminated ? QColor(210, 210, 210) : QColor(190, 190, 240));
p->setPen(Qt::black);
- p->drawText(rect.left() + 7, rect.top() + height - (iLineSpacing + 4),width - 14,iLineSpacing,Qt::AlignVCenter | Qt::AlignLeft,m_szStatusString);
-
+ p->drawText(rect.left() + 7, rect.top() + height - (iLineSpacing + 4), width - 14, iLineSpacing, Qt::AlignVCenter | Qt::AlignLeft, m_szStatusString);
}
break;
case COLUMN_PROGRESS:
@@ -1633,7 +1746,9 @@ void DccFileTransfer::displayPaint(QPainter * p,int column, QRect rect)
uTransferred = m_pSlaveRecvThread->filePosition();
m_pSlaveRecvThread->doneGetInfo();
}
- } else {
+ }
+ else
+ {
if(m_pSlaveSendThread)
{
m_pSlaveSendThread->initGetInfo();
@@ -1645,8 +1760,8 @@ void DccFileTransfer::displayPaint(QPainter * p,int column, QRect rect)
}
}
- p->setPen(bIsTerminated ? Qt::lightGray : QColor(210,210,240));
- p->drawRect(rect.left() + 4, rect.top() + 4,iW,12);
+ p->setPen(bIsTerminated ? Qt::lightGray : QColor(210, 210, 240));
+ p->drawRect(rect.left() + 4, rect.top() + 4, iW, 12);
iW -= 2;
@@ -1663,30 +1778,34 @@ void DccFileTransfer::displayPaint(QPainter * p,int column, QRect rect)
// we are sending a file and are getting acks
double dPerc1 = (double)(((double)uTransferred) * 100.0) / (double)m_uTotalFileSize;
- int iL1 = (int) ((((double)iW) * dPerc1) / 100.0);
+ int iL1 = (int)((((double)iW) * dPerc1) / 100.0);
double dPerc2 = (double)(((double)uAckedBytes) * 100.0) / (double)m_uTotalFileSize;
- int iL2 = (int) ((((double)iW) * dPerc2) / 100.0);
+ int iL2 = (int)((((double)iW) * dPerc2) / 100.0);
int iW2 = iL1 - iL2;
- if(iW2 > 0)p->fillRect(rect.left() + 5 + iL2,rect.top() + 5,iW2,10,bIsTerminated ? QColor(150,130,110) : QColor(220,170,100));
- p->fillRect(rect.left() + 5,rect.top() + 5,iL2,10,bIsTerminated ? QColor(140,110,110) : QColor(200,100,100));
+ if(iW2 > 0)
+ p->fillRect(rect.left() + 5 + iL2, rect.top() + 5, iW2, 10, bIsTerminated ? QColor(150, 130, 110) : QColor(220, 170, 100));
+ p->fillRect(rect.left() + 5, rect.top() + 5, iL2, 10, bIsTerminated ? QColor(140, 110, 110) : QColor(200, 100, 100));
- txt = QString(__tr2qs_ctx("%1 of %2 (%3%)","dcc")).arg(KviQString::makeSizeReadable(uAckedBytes)).arg(KviQString::makeSizeReadable(m_uTotalFileSize)).arg(dPerc2,0,'f',2);
- } else {
+ txt = QString(__tr2qs_ctx("%1 of %2 (%3%)", "dcc")).arg(KviQString::makeSizeReadable(uAckedBytes)).arg(KviQString::makeSizeReadable(m_uTotalFileSize)).arg(dPerc2, 0, 'f', 2);
+ }
+ else
+ {
// we are receiving a file or not sending acks
double dPerc = (double)(((double)uTransferred) * 100.0) / (double)m_uTotalFileSize;
- int iL = (int) ((((double)iW) * dPerc) / 100.0);
- p->fillRect(rect.left() + 5,rect.top() + 5,iL,10,bIsTerminated ? QColor(140,110,110) : QColor(200,100,100));
+ int iL = (int)((((double)iW) * dPerc) / 100.0);
+ p->fillRect(rect.left() + 5, rect.top() + 5, iL, 10, bIsTerminated ? QColor(140, 110, 110) : QColor(200, 100, 100));
- txt = QString(__tr2qs_ctx("%1 of %2 (%3%)","dcc")).arg(KviQString::makeSizeReadable(uTransferred)).arg(KviQString::makeSizeReadable(m_uTotalFileSize)).arg(dPerc,0,'f',2);
+ txt = QString(__tr2qs_ctx("%1 of %2 (%3%)", "dcc")).arg(KviQString::makeSizeReadable(uTransferred)).arg(KviQString::makeSizeReadable(m_uTotalFileSize)).arg(dPerc, 0, 'f', 2);
}
-
- } else {
- txt = QString(__tr2qs_ctx("%1","dcc")).arg(KviQString::makeSizeReadable(uTransferred));
+ }
+ else
+ {
+ txt = QString(__tr2qs_ctx("%1", "dcc")).arg(KviQString::makeSizeReadable(uTransferred));
}
p->setPen(Qt::black);
- p->drawText(rect.left() + 4,rect.top() + 19,width - 8,height - 8,Qt::AlignTop | Qt::AlignLeft,txt);
+ p->drawText(rect.left() + 4, rect.top() + 19, width - 8, height - 8, Qt::AlignTop | Qt::AlignLeft, txt);
int iLeftHalf = (iW - 2) / 2;
int iRightHalf = iW - (iLeftHalf + 1);
@@ -1694,21 +1813,23 @@ void DccFileTransfer::displayPaint(QPainter * p,int column, QRect rect)
if(!bIsTerminated)
{
- txt = __tr2qs_ctx("Spd:","dcc");
+ txt = __tr2qs_ctx("Spd:", "dcc");
txt += " ";
QString tmpisp;
- KviNetUtils::formatNetworkBandwidthString(tmpisp,uInstantSpeed);
+ KviNetUtils::formatNetworkBandwidthString(tmpisp, uInstantSpeed);
txt += tmpisp;
txt += " [";
- } else {
+ }
+ else
+ {
txt = "";
}
- txt += __tr2qs_ctx("Avg:","dcc");
+ txt += __tr2qs_ctx("Avg:", "dcc");
txt += " ";
QString tmpspd;
- KviNetUtils::formatNetworkBandwidthString(tmpspd,uAvgBandwidth);
+ KviNetUtils::formatNetworkBandwidthString(tmpspd, uAvgBandwidth);
txt += tmpspd;
if(!bIsTerminated)
@@ -1718,43 +1839,47 @@ void DccFileTransfer::displayPaint(QPainter * p,int column, QRect rect)
int iDaH = height - (iLineSpacing + 4);
- p->setPen(QColor(180,180,200));
- p->drawRect(rect.left() + 4,rect.top() + iDaH,iLeftHalf,iLineSpacing);
- p->fillRect(rect.left() + 5,rect.top() + iDaH + 1,iLeftHalf - 2,iLineSpacing - 2,bIsTerminated ? QColor(210,210,210) : QColor(190,190,240));
+ p->setPen(QColor(180, 180, 200));
+ p->drawRect(rect.left() + 4, rect.top() + iDaH, iLeftHalf, iLineSpacing);
+ p->fillRect(rect.left() + 5, rect.top() + iDaH + 1, iLeftHalf - 2, iLineSpacing - 2, bIsTerminated ? QColor(210, 210, 210) : QColor(190, 190, 240));
p->setPen(bIsTerminated ? Qt::darkGray : Qt::black);
- p->drawText(rect.left() + 6,rect.top() + iDaH,iLeftHalf - 4,iLineSpacing,Qt::AlignLeft | Qt::AlignVCenter,txt);
+ p->drawText(rect.left() + 6, rect.top() + iDaH, iLeftHalf - 4, iLineSpacing, Qt::AlignLeft | Qt::AlignVCenter, txt);
if(bIsTerminated)
{
if((m_tTransferStartTime != 0) && (m_tTransferEndTime != 0))
{
- QString tot = KviTimeUtils::formatTimeInterval(kvi_timeSpan(m_tTransferEndTime,m_tTransferStartTime),KviTimeUtils::NoLeadingEmptyIntervals | KviTimeUtils::NoLeadingZeroes);
+ QString tot = KviTimeUtils::formatTimeInterval(kvi_timeSpan(m_tTransferEndTime, m_tTransferStartTime), KviTimeUtils::NoLeadingEmptyIntervals | KviTimeUtils::NoLeadingZeroes);
txt = "TOT: ";
txt += tot;
- } else {
+ }
+ else
+ {
txt = "";
}
- } else {
+ }
+ else
+ {
if(iEta >= 0)
{
- QString eta = KviTimeUtils::formatTimeInterval(iEta,KviTimeUtils::NoLeadingEmptyIntervals | KviTimeUtils::NoLeadingZeroes);
+ QString eta = KviTimeUtils::formatTimeInterval(iEta, KviTimeUtils::NoLeadingEmptyIntervals | KviTimeUtils::NoLeadingZeroes);
txt = "ETA: ";
txt += eta;
- } else {
+ }
+ else
+ {
txt = "ETA: ?";
}
}
- p->setPen(QColor(180,180,200));
- p->drawRect(rect.left() + width - (4 + iRightHalf),rect.top() + iDaH,iRightHalf,iLineSpacing);
- p->fillRect(rect.left() + width - (3 + iRightHalf),rect.top() + iDaH + 1,iRightHalf - 2,iLineSpacing - 2,bIsTerminated ? QColor(210,210,210) : QColor(190,190,240));
+ p->setPen(QColor(180, 180, 200));
+ p->drawRect(rect.left() + width - (4 + iRightHalf), rect.top() + iDaH, iRightHalf, iLineSpacing);
+ p->fillRect(rect.left() + width - (3 + iRightHalf), rect.top() + iDaH + 1, iRightHalf - 2, iLineSpacing - 2, bIsTerminated ? QColor(210, 210, 210) : QColor(190, 190, 240));
p->setPen(bIsTerminated ? Qt::darkGray : Qt::black);
- p->drawText(rect.left() + width - (2 + iRightHalf),rect.top() + iDaH,iRightHalf - 4,iLineSpacing,Qt::AlignLeft | Qt::AlignVCenter,txt);
-
+ p->drawText(rect.left() + width - (2 + iRightHalf), rect.top() + iDaH, iRightHalf - 4, iLineSpacing, Qt::AlignLeft | Qt::AlignVCenter, txt);
}
break;
}
-
}
int DccFileTransfer::displayHeight(int iLineSpacing)
@@ -1770,7 +1895,7 @@ QString DccFileTransfer::tipText()
s = QString("<table><tr><td bgcolor=\"#000000\"><font color=\"#FFFFFF\"><b>DCC %1 (ID %2)</b></font></td></tr>").arg(m_szDccType.ptr()).arg(id());
s += "<tr><td bgcolor=\"#404040\"><font color=\"#FFFFFF\">";
- s += __tr2qs_ctx("Transfer Log","dcc");
+ s += __tr2qs_ctx("Transfer Log", "dcc");
s += "</font></td></tr>";
s += "<tr><td bgcolor=\"#C0C0C0\">";
s += m_szTransferLog;
@@ -1782,36 +1907,43 @@ QString DccFileTransfer::tipText()
void DccFileTransfer::init()
{
- if(g_pDccFileTransfers)return;
+ if(g_pDccFileTransfers)
+ return;
g_pDccFileTransfers = new KviPointerList<DccFileTransfer>;
g_pDccFileTransfers->setAutoDelete(false);
QPixmap * pix = g_pIconManager->getImage("kvi_dccfiletransfericons.png", false);
- if(pix)g_pDccFileTransferIcon = new QPixmap(*pix);
- else g_pDccFileTransferIcon = 0;
+ if(pix)
+ g_pDccFileTransferIcon = new QPixmap(*pix);
+ else
+ g_pDccFileTransferIcon = 0;
}
void DccFileTransfer::done()
{
- if(!g_pDccFileTransfers)return;
+ if(!g_pDccFileTransfers)
+ return;
while(DccFileTransfer * t = g_pDccFileTransfers->first())
delete t;
delete g_pDccFileTransfers;
g_pDccFileTransfers = 0;
- if(g_pDccFileTransferIcon)delete g_pDccFileTransferIcon;
+ if(g_pDccFileTransferIcon)
+ delete g_pDccFileTransferIcon;
g_pDccFileTransferIcon = 0;
}
unsigned int DccFileTransfer::transferCount()
{
- if(!g_pDccFileTransfers)return 0;
+ if(!g_pDccFileTransfers)
+ return 0;
return g_pDccFileTransfers->count();
}
-DccFileTransfer * DccFileTransfer::nonFailedTransferWithLocalFileName(const QString &szLocalFileName)
+DccFileTransfer * DccFileTransfer::nonFailedTransferWithLocalFileName(const QString & szLocalFileName)
{
- if(!g_pDccFileTransfers)return 0;
- for(DccFileTransfer * t = g_pDccFileTransfers->first();t;t = g_pDccFileTransfers->next())
+ if(!g_pDccFileTransfers)
+ return 0;
+ for(DccFileTransfer * t = g_pDccFileTransfers->first(); t; t = g_pDccFileTransfers->next())
{
#if defined(COMPILE_ON_WINDOWS) || defined(COMPILE_ON_MINGW)
// on windows the file names are case insensitive
@@ -1829,62 +1961,67 @@ DccFileTransfer * DccFileTransfer::nonFailedTransferWithLocalFileName(const QStr
unsigned int DccFileTransfer::runningTransfersCount()
{
- if(!g_pDccFileTransfers)return 0;
+ if(!g_pDccFileTransfers)
+ return 0;
unsigned int cnt = 0;
- for(DccFileTransfer * t = g_pDccFileTransfers->first();t;t = g_pDccFileTransfers->next())
+ for(DccFileTransfer * t = g_pDccFileTransfers->first(); t; t = g_pDccFileTransfers->next())
{
- if(t->active())cnt++;
+ if(t->active())
+ cnt++;
}
return cnt;
}
-bool DccFileTransfer::handleResumeAccepted(const char * filename,const char * port,const char * szZeroPortTag)
+bool DccFileTransfer::handleResumeAccepted(const char * filename, const char * port, const char * szZeroPortTag)
{
- if(!g_pDccFileTransfers)return false;
+ if(!g_pDccFileTransfers)
+ return false;
- for(DccFileTransfer * t = g_pDccFileTransfers->first();t;t = g_pDccFileTransfers->next())
+ for(DccFileTransfer * t = g_pDccFileTransfers->first(); t; t = g_pDccFileTransfers->next())
{
- if(t->resumeAccepted(filename,port,szZeroPortTag))return true;
+ if(t->resumeAccepted(filename, port, szZeroPortTag))
+ return true;
}
return false;
}
-bool DccFileTransfer::handleResumeRequest(const char * filename,const char * port,quint64 filePos)
+bool DccFileTransfer::handleResumeRequest(const char * filename, const char * port, quint64 filePos)
{
if(!g_pDccFileTransfers)
return false;
- for(DccFileTransfer * t = g_pDccFileTransfers->first();t;t = g_pDccFileTransfers->next())
+ for(DccFileTransfer * t = g_pDccFileTransfers->first(); t; t = g_pDccFileTransfers->next())
{
- if(t->doResume(filename,port,filePos))
+ if(t->doResume(filename, port, filePos))
return true;
}
return false;
}
-void DccFileTransfer::outputAndLog(const QString &s)
+void DccFileTransfer::outputAndLog(const QString & s)
{
KviWindow * out = transferWindow();
addToTransferLog(s);
- if(out)out->output(KVI_OUT_DCCMSG,"[%Q]: %Q",&m_szTransferIdString,&s);
+ if(out)
+ out->output(KVI_OUT_DCCMSG, "[%Q]: %Q", &m_szTransferIdString, &s);
}
-void DccFileTransfer::outputAndLog(int msgtype,const QString &s)
+void DccFileTransfer::outputAndLog(int msgtype, const QString & s)
{
KviWindow * out = transferWindow();
addToTransferLog(s);
- if(out)out->output(msgtype,"[%Q]: %Q",&m_szTransferIdString,&s);
+ if(out)
+ out->output(msgtype, "[%Q]: %Q", &m_szTransferIdString, &s);
}
-
-void DccFileTransfer::addToTransferLog(const QString &s)
+void DccFileTransfer::addToTransferLog(const QString & s)
{
QDateTime dt = QDateTime::currentDateTime();
QString ts;
- ts.sprintf("[%4d.%2d.%2d %2d:%2d:%2d] ",dt.date().year(),dt.date().month(),dt.date().day(),dt.time().hour(),dt.time().minute(),dt.time().second());
- m_szTransferLog += ts+s;
+ ts.sprintf("[%4d.%2d.%2d %2d:%2d:%2d] ", dt.date().year(), dt.date().month(), dt.date().day(), dt.time().hour(), dt.time().minute(), dt.time().second());
+ m_szTransferLog += ts + s;
m_szTransferLog += "<br>";
}
@@ -1893,22 +2030,22 @@ void DccFileTransfer::connectionInProgress()
if(m_pDescriptor->bActive)
{
// ACTIVE CONNECTION
-// if((kvi_strEqualCS(m_szDccType.ptr(), "RECV")) || (kvi_strEqualCS(m_szDccType.ptr(),"TRECV")))
-// {
-// // FIXME: that's not true!... we're NOT connected here
-// if(TRIGGER_EVENT_5PARAM_RETVALUE(KviEvent_OnDCCGetConnected,this,m_pDescriptor->szPort.ptr(),m_pDescriptor->szFileName.ptr(),m_pDescriptor->szNick.ptr(),m_pDescriptor->szUser.ptr(),m_pDescriptor->szHost.ptr()));
-// } else {
-// if(TRIGGER_EVENT_5PARAM_RETVALUE(KviEvent_OnDCCSendConnected,this,m_pDescriptor->szPort.ptr(),m_pDescriptor->szFileName.ptr(),m_pDescriptor->szNick.ptr(),m_pDescriptor->szUser.ptr(),m_pDescriptor->szHost.ptr()));
-// }
-//
- m_szStatusString = __tr2qs_ctx("Contacting host %1 on port %2","dcc").arg(m_pDescriptor->szIp, m_pDescriptor->szPort);
+ // if((kvi_strEqualCS(m_szDccType.ptr(), "RECV")) || (kvi_strEqualCS(m_szDccType.ptr(),"TRECV")))
+ // {
+ // // FIXME: that's not true!... we're NOT connected here
+ // if(TRIGGER_EVENT_5PARAM_RETVALUE(KviEvent_OnDCCGetConnected,this,m_pDescriptor->szPort.ptr(),m_pDescriptor->szFileName.ptr(),m_pDescriptor->szNick.ptr(),m_pDescriptor->szUser.ptr(),m_pDescriptor->szHost.ptr()));
+ // } else {
+ // if(TRIGGER_EVENT_5PARAM_RETVALUE(KviEvent_OnDCCSendConnected,this,m_pDescriptor->szPort.ptr(),m_pDescriptor->szFileName.ptr(),m_pDescriptor->szNick.ptr(),m_pDescriptor->szUser.ptr(),m_pDescriptor->szHost.ptr()));
+ // }
+ //
+ m_szStatusString = __tr2qs_ctx("Contacting host %1 on port %2", "dcc").arg(m_pDescriptor->szIp, m_pDescriptor->szPort);
outputAndLog(m_szStatusString);
displayUpdate();
return;
}
// PASSIVE CONNECTION
- m_szStatusString = __tr2qs_ctx("Listening on interface %1 port %2","dcc").arg(m_pMarshal->localIp(), m_pMarshal->localPort());
+ m_szStatusString = __tr2qs_ctx("Listening on interface %1 port %2", "dcc").arg(m_pMarshal->localIp(), m_pMarshal->localPort());
outputAndLog(m_szStatusString);
if(m_pDescriptor->bSendRequest)
@@ -1917,7 +2054,9 @@ void DccFileTransfer::connectionInProgress()
if(!m_pDescriptor->szFakeIp.isEmpty())
{
ip = m_pDescriptor->szFakeIp;
- } else {
+ }
+ else
+ {
ip = m_pDescriptor->szListenIp;
if(KVI_OPTION_BOOL(KviOption_boolDccGuessIpFromServerWhenLocalIsUnroutable))
@@ -1931,67 +2070,78 @@ void DccFileTransfer::connectionInProgress()
if(!tmp.isEmpty())
{
ip = tmp;
- outputAndLog(__tr2qs_ctx("The local IP address is private, determining from IRC server: %1","dcc").arg(ip));
- } else {
- outputAndLog(__tr2qs_ctx("The local IP address is private, but unable to determine it from the IRC server","dcc"));
+ outputAndLog(__tr2qs_ctx("The local IP address is private, determining from IRC server: %1", "dcc").arg(ip));
}
- } else {
- outputAndLog(__tr2qs_ctx("The local IP address is private, but have no IRC server to determine it from","dcc"));
+ else
+ {
+ outputAndLog(__tr2qs_ctx("The local IP address is private, but unable to determine it from the IRC server", "dcc"));
+ }
+ }
+ else
+ {
+ outputAndLog(__tr2qs_ctx("The local IP address is private, but have no IRC server to determine it from", "dcc"));
}
}
}
}
- KviCString port = !m_pDescriptor->szFakePort.isEmpty() ? m_pDescriptor->szFakePort : m_pMarshal->localPort();
+ KviCString port = !m_pDescriptor->szFakePort.isEmpty() ? m_pDescriptor->szFakePort : m_pMarshal->localPort();
//#warning "OPTION FOR SENDING 127.0.0.1 and so on (not an unsigned nuumber)"
struct in_addr a;
- if(KviNetUtils::stringIpToBinaryIp(ip,&a))ip.setNum(htonl(a.s_addr));
+ if(KviNetUtils::stringIpToBinaryIp(ip, &a))
+ ip.setNum(htonl(a.s_addr));
QString tmp = m_pDescriptor->szFileName;
// just to be sure
- KviQString::cutToLast(tmp,'/');
- KviQString::cutToLast(tmp,'\\');
+ KviQString::cutToLast(tmp, '/');
+ KviQString::cutToLast(tmp, '\\');
QString fName;
// BUG-TO-BUG mIrc compatibility
if(KVI_OPTION_BOOL(KviOption_boolDCCFileTransferReplaceOutgoingSpacesWithUnderscores))
- tmp.replace(" ","_");
+ tmp.replace(" ", "_");
- KviIrcServerParser::encodeCtcpParameter(tmp.toUtf8().data(),fName);
+ KviIrcServerParser::encodeCtcpParameter(tmp.toUtf8().data(), fName);
// Zero port requests want DCC SEND as back-request
KviCString szReq;
if(m_pDescriptor->isZeroPortRequest())
{
szReq = "SEND";
- if(m_pDescriptor->bIsTdcc) szReq.prepend("T");
+ if(m_pDescriptor->bIsTdcc)
+ szReq.prepend("T");
#ifdef COMPILE_SSL_SUPPORT
- if(m_pDescriptor->bIsSSL) szReq.prepend("S");
+ if(m_pDescriptor->bIsSSL)
+ szReq.prepend("S");
#endif
m_pDescriptor->console()->connection()->sendFmtData("PRIVMSG %s :%cDCC %s %s %s %s %s %s%c",
- m_pDescriptor->console()->connection()->encodeText(m_pDescriptor->szNick).data(),
- 0x01,
- m_pDescriptor->console()->connection()->encodeText(szReq.ptr()).data(),
- m_pDescriptor->console()->connection()->encodeText(fName).data(),
- ip.toUtf8().data(),port.ptr(),
- m_pDescriptor->szFileSize.toUtf8().data(),m_pDescriptor->zeroPortRequestTag(),0x01);
- } else {
+ m_pDescriptor->console()->connection()->encodeText(m_pDescriptor->szNick).data(),
+ 0x01,
+ m_pDescriptor->console()->connection()->encodeText(szReq.ptr()).data(),
+ m_pDescriptor->console()->connection()->encodeText(fName).data(),
+ ip.toUtf8().data(), port.ptr(),
+ m_pDescriptor->szFileSize.toUtf8().data(), m_pDescriptor->zeroPortRequestTag(), 0x01);
+ }
+ else
+ {
szReq = m_szDccType;
m_pDescriptor->console()->connection()->sendFmtData("PRIVMSG %s :%cDCC %s %s %s %s %Q%c",
- m_pDescriptor->console()->connection()->encodeText(m_pDescriptor->szNick).data(),
- 0x01,
- m_pDescriptor->console()->connection()->encodeText(szReq.ptr()).data(),
- m_pDescriptor->console()->connection()->encodeText(fName).data(),
- ip.toUtf8().data(),port.ptr(),
- &(m_pDescriptor->szLocalFileSize),0x01);
+ m_pDescriptor->console()->connection()->encodeText(m_pDescriptor->szNick).data(),
+ 0x01,
+ m_pDescriptor->console()->connection()->encodeText(szReq.ptr()).data(),
+ m_pDescriptor->console()->connection()->encodeText(fName).data(),
+ ip.toUtf8().data(), port.ptr(),
+ &(m_pDescriptor->szLocalFileSize), 0x01);
}
- outputAndLog(__tr2qs_ctx("Sent DCC %1 request to %2, waiting for remote client to connect...","dcc").arg(szReq.ptr(), m_pDescriptor->szNick));
- } else {
- outputAndLog(__tr2qs_ctx("DCC %1 request not sent, awaiting manual connection","dcc").arg(m_szDccType.ptr()));
+ outputAndLog(__tr2qs_ctx("Sent DCC %1 request to %2, waiting for remote client to connect...", "dcc").arg(szReq.ptr(), m_pDescriptor->szNick));
+ }
+ else
+ {
+ outputAndLog(__tr2qs_ctx("DCC %1 request not sent, awaiting manual connection", "dcc").arg(m_szDccType.ptr()));
}
- KVS_TRIGGER_EVENT_1(KviEvent_OnDCCFileTransferConnectionInProgress,eventWindow(),m_pDescriptor->idString());
+ KVS_TRIGGER_EVENT_1(KviEvent_OnDCCFileTransferConnectionInProgress, eventWindow(), m_pDescriptor->idString());
displayUpdate();
}
@@ -1999,19 +2149,19 @@ void DccFileTransfer::connectionInProgress()
void DccFileTransfer::startingSSLHandshake()
{
#ifdef COMPILE_SSL_SUPPORT
- outputAndLog(KVI_OUT_SSL,__tr2qs_ctx("Low-level transport connection established","dcc"));
- outputAndLog(KVI_OUT_SSL,__tr2qs_ctx("Starting Secure Socket Layer handshake","dcc"));
+ outputAndLog(KVI_OUT_SSL, __tr2qs_ctx("Low-level transport connection established", "dcc"));
+ outputAndLog(KVI_OUT_SSL, __tr2qs_ctx("Starting Secure Socket Layer handshake", "dcc"));
#endif
}
void DccFileTransfer::sslError(const char * msg)
{
#ifdef COMPILE_SSL_SUPPORT
- outputAndLog(KVI_OUT_DCCERROR,__tr2qs_ctx("[SSL ERROR]: %1","dcc").arg(msg));
+ outputAndLog(KVI_OUT_DCCERROR, __tr2qs_ctx("[SSL ERROR]: %1", "dcc").arg(msg));
#endif
}
-bool DccFileTransfer::event(QEvent *e)
+bool DccFileTransfer::event(QEvent * e)
{
if(e->type() == KVI_THREAD_EVENT)
{
@@ -2023,20 +2173,20 @@ bool DccFileTransfer::event(QEvent *e)
QString szErrorString = KviError::getDescription(*pError);
delete pError;
if(m_pDescriptor->bRecvFile)
- g_pApp->fileDownloadTerminated(false,m_pDescriptor->szFileName.toUtf8().data(),m_pDescriptor->szLocalFileName.toUtf8().data(),m_pDescriptor->szNick.toUtf8().data(),szErrorString.toUtf8().data());
+ g_pApp->fileDownloadTerminated(false, m_pDescriptor->szFileName.toUtf8().data(), m_pDescriptor->szLocalFileName.toUtf8().data(), m_pDescriptor->szNick.toUtf8().data(), szErrorString.toUtf8().data());
- m_szStatusString = __tr2qs_ctx("Transfer failed: ","dcc");
+ m_szStatusString = __tr2qs_ctx("Transfer failed: ", "dcc");
m_szStatusString += szErrorString;
m_eGeneralStatus = Failure;
m_tTransferEndTime = kvi_unixTime();
KVS_TRIGGER_EVENT_3(KviEvent_OnDCCFileTransferFailed,
- eventWindow(),
- szErrorString,
- (kvs_int_t)(m_pSlaveRecvThread ? m_pSlaveRecvThread->receivedBytes() : m_pSlaveSendThread->sentBytes()),
- m_pDescriptor->idString());
+ eventWindow(),
+ szErrorString,
+ (kvs_int_t)(m_pSlaveRecvThread ? m_pSlaveRecvThread->receivedBytes() : m_pSlaveSendThread->sentBytes()),
+ m_pDescriptor->idString());
- outputAndLog(KVI_OUT_DCCERROR,m_szStatusString);
+ outputAndLog(KVI_OUT_DCCERROR, m_szStatusString);
displayUpdate();
return true;
}
@@ -2047,13 +2197,15 @@ bool DccFileTransfer::event(QEvent *e)
// File Upload/Download terminated, or something like this
if(KVI_OPTION_BOOL(KviOption_boolNotifyDccSendSuccessInConsole))
{
- KviConsoleWindow *c;
- if(!g_pApp->windowExists(m_pDescriptor->console())) c=g_pApp->activeConsole();
- else c=m_pDescriptor->console();
- c->output(KVI_OUT_DCCMSG,__tr2qs_ctx("DCC %s transfer with %Q@%Q:%Q completed: \r![!dbl]play $0\r%s\r","dcc"),
- m_pDescriptor->bIsTdcc ? (m_pDescriptor->bRecvFile ? "TRECV" : "TSEND") : (m_pDescriptor->bRecvFile ? "RECV" : "SEND"),
- &(m_pDescriptor->szNick),&(m_pDescriptor->szIp),&(m_pDescriptor->szPort),
- &(m_pDescriptor->szLocalFileName));
+ KviConsoleWindow * c;
+ if(!g_pApp->windowExists(m_pDescriptor->console()))
+ c = g_pApp->activeConsole();
+ else
+ c = m_pDescriptor->console();
+ c->output(KVI_OUT_DCCMSG, __tr2qs_ctx("DCC %s transfer with %Q@%Q:%Q completed: \r![!dbl]play $0\r%s\r", "dcc"),
+ m_pDescriptor->bIsTdcc ? (m_pDescriptor->bRecvFile ? "TRECV" : "TSEND") : (m_pDescriptor->bRecvFile ? "RECV" : "SEND"),
+ &(m_pDescriptor->szNick), &(m_pDescriptor->szIp), &(m_pDescriptor->szPort),
+ &(m_pDescriptor->szLocalFileName));
}
/*
// Also add an optional message to the notifier, unless it is an AVATAR download!
@@ -2063,39 +2215,42 @@ bool DccFileTransfer::event(QEvent *e)
g_pApp->notifierMessage(0,KVI_SMALLICON_DCCMSG,szMsg,KVI_OPTION_UINT(KviOption_uintNotifierAutoHideTime));
}
*/
- if(m_pDescriptor->bRecvFile)g_pApp->fileDownloadTerminated(true,m_pDescriptor->szFileName.toUtf8().data(),m_pDescriptor->szLocalFileName.toUtf8().data(),m_pDescriptor->szNick.toUtf8().data());
- m_szStatusString = __tr2qs_ctx("Transfer completed","dcc");
+ if(m_pDescriptor->bRecvFile)
+ g_pApp->fileDownloadTerminated(true, m_pDescriptor->szFileName.toUtf8().data(), m_pDescriptor->szLocalFileName.toUtf8().data(), m_pDescriptor->szNick.toUtf8().data());
+ m_szStatusString = __tr2qs_ctx("Transfer completed", "dcc");
outputAndLog(m_szStatusString);
m_eGeneralStatus = Success;
m_tTransferEndTime = kvi_unixTime();
- if (m_pResumeTimer) delete m_pResumeTimer;
+ if(m_pResumeTimer)
+ delete m_pResumeTimer;
KVS_TRIGGER_EVENT_2(KviEvent_OnDCCFileTransferSuccess,
- eventWindow(),
- (kvs_int_t)(m_pSlaveRecvThread ? m_pSlaveRecvThread->receivedBytes() : m_pSlaveSendThread->sentBytes()),
- m_pDescriptor->idString());
+ eventWindow(),
+ (kvs_int_t)(m_pSlaveRecvThread ? m_pSlaveRecvThread->receivedBytes() : m_pSlaveSendThread->sentBytes()),
+ m_pDescriptor->idString());
displayUpdate();
- if(KVI_OPTION_BOOL(KviOption_boolAutoCloseDccSendOnSuccess))die();
+ if(KVI_OPTION_BOOL(KviOption_boolAutoCloseDccSendOnSuccess))
+ die();
return true;
}
break;
case KVI_DCC_THREAD_EVENT_MESSAGE:
{
KviCString * str = ((KviThreadDataEvent<KviCString> *)e)->getData();
- outputAndLog(QString(__tr_no_xgettext_ctx(str->ptr(),"dcc")));
+ outputAndLog(QString(__tr_no_xgettext_ctx(str->ptr(), "dcc")));
delete str;
return true;
}
break;
default:
- qDebug("Invalid event type %d received",((KviThreadEvent *)e)->id());
- break;
+ qDebug("Invalid event type %d received", ((KviThreadEvent *)e)->id());
+ break;
}
}
-//#warning "Remove this!"
-// if(e->type() == QEvent::Close)qDebug("Close event received");
+ //#warning "Remove this!"
+ // if(e->type() == QEvent::Close)qDebug("Close event received");
return KviFileTransfer::event(e);
}
@@ -2103,23 +2258,23 @@ void DccFileTransfer::handleMarshalError(KviError::Code eError)
{
QString szErr = KviError::getDescription(eError);
m_eGeneralStatus = Failure;
- m_szStatusString = __tr2qs_ctx("Transfer failed: ","dcc");
+ m_szStatusString = __tr2qs_ctx("Transfer failed: ", "dcc");
m_szStatusString += szErr;
outputAndLog(m_szStatusString);
- KVS_TRIGGER_EVENT_3(KviEvent_OnDCCFileTransferFailed,eventWindow(),szErr,(kvs_int_t)0,m_pDescriptor->idString());
+ KVS_TRIGGER_EVENT_3(KviEvent_OnDCCFileTransferFailed, eventWindow(), szErr, (kvs_int_t)0, m_pDescriptor->idString());
displayUpdate();
}
void DccFileTransfer::connected()
{
- outputAndLog(__tr2qs_ctx("Connected to %1:%2","dcc").arg(m_pMarshal->remoteIp(), m_pMarshal->remotePort()));
- outputAndLog(__tr2qs_ctx("Local end is %1:%2","dcc").arg(m_pMarshal->localIp(), m_pMarshal->localPort()));
+ outputAndLog(__tr2qs_ctx("Connected to %1:%2", "dcc").arg(m_pMarshal->remoteIp(), m_pMarshal->remotePort()));
+ outputAndLog(__tr2qs_ctx("Local end is %1:%2", "dcc").arg(m_pMarshal->localIp(), m_pMarshal->localPort()));
m_tTransferStartTime = kvi_unixTime();
if(!(m_pDescriptor->bActive))
{
- m_pDescriptor->szIp = m_pMarshal->remoteIp();
+ m_pDescriptor->szIp = m_pMarshal->remoteIp();
m_pDescriptor->szPort = m_pMarshal->remotePort();
m_pDescriptor->szHost = m_pMarshal->remoteIp();
}
@@ -2127,18 +2282,19 @@ void DccFileTransfer::connected()
if(m_pDescriptor->bRecvFile)
{
KviDccRecvThreadOptions * o = new KviDccRecvThreadOptions;
- o->szFileName = m_pDescriptor->szLocalFileName.toUtf8().data();
+ o->szFileName = m_pDescriptor->szLocalFileName.toUtf8().data();
bool bOk;
- o->uTotalFileSize = m_pDescriptor->szFileSize.toULongLong(&bOk);
- if(!bOk)o->uTotalFileSize = 0;
- o->bResume = m_pDescriptor->bResume;
+ o->uTotalFileSize = m_pDescriptor->szFileSize.toULongLong(&bOk);
+ if(!bOk)
+ o->uTotalFileSize = 0;
+ o->bResume = m_pDescriptor->bResume;
o->iIdleStepLengthInMSec = KVI_OPTION_BOOL(KviOption_boolDccSendForceIdleStep) ? KVI_OPTION_UINT(KviOption_uintDccSendIdleStepInMSec) : 0;
- o->bIsTdcc = m_pDescriptor->bIsTdcc;
- o->bSendZeroAck = KVI_OPTION_BOOL(KviOption_boolSendZeroAckInDccRecv);
- o->bSend64BitAck = KVI_OPTION_BOOL(KviOption_boolSend64BitAckInDccRecv);
- o->bNoAcks = m_pDescriptor->bNoAcks;
- o->uMaxBandwidth = m_uMaxBandwidth;
- m_pSlaveRecvThread = new DccRecvThread(this,m_pMarshal->releaseSocket(),o);
+ o->bIsTdcc = m_pDescriptor->bIsTdcc;
+ o->bSendZeroAck = KVI_OPTION_BOOL(KviOption_boolSendZeroAckInDccRecv);
+ o->bSend64BitAck = KVI_OPTION_BOOL(KviOption_boolSend64BitAckInDccRecv);
+ o->bNoAcks = m_pDescriptor->bNoAcks;
+ o->uMaxBandwidth = m_uMaxBandwidth;
+ m_pSlaveRecvThread = new DccRecvThread(this, m_pMarshal->releaseSocket(), o);
#ifdef COMPILE_SSL_SUPPORT
KviSSL * s = m_pMarshal->releaseSSL();
@@ -2148,20 +2304,24 @@ void DccFileTransfer::connected()
}
#endif
m_pSlaveRecvThread->start();
- } else {
+ }
+ else
+ {
KviDccSendThreadOptions * o = new KviDccSendThreadOptions;
- o->szFileName = m_pDescriptor->szLocalFileName.toUtf8().data();
- o->bFastSend = KVI_OPTION_BOOL(KviOption_boolUseFastDccSend);
+ o->szFileName = m_pDescriptor->szLocalFileName.toUtf8().data();
+ o->bFastSend = KVI_OPTION_BOOL(KviOption_boolUseFastDccSend);
o->iIdleStepLengthInMSec = KVI_OPTION_BOOL(KviOption_boolDccSendForceIdleStep) ? KVI_OPTION_UINT(KviOption_uintDccSendIdleStepInMSec) : 0;
bool bOk;
- o->bIsTdcc = m_pDescriptor->bIsTdcc;
- o->uStartPosition = m_pDescriptor->szFileSize.toULongLong(&bOk);
- if(!bOk) o->uStartPosition = 0;
- o->iPacketSize = KVI_OPTION_UINT(KviOption_uintDccSendPacketSize);
- if(o->iPacketSize < 32)o->iPacketSize = 32;
- o->uMaxBandwidth = m_uMaxBandwidth;
- o->bNoAcks = m_pDescriptor->bNoAcks;
- m_pSlaveSendThread = new DccSendThread(this,m_pMarshal->releaseSocket(),o);
+ o->bIsTdcc = m_pDescriptor->bIsTdcc;
+ o->uStartPosition = m_pDescriptor->szFileSize.toULongLong(&bOk);
+ if(!bOk)
+ o->uStartPosition = 0;
+ o->iPacketSize = KVI_OPTION_UINT(KviOption_uintDccSendPacketSize);
+ if(o->iPacketSize < 32)
+ o->iPacketSize = 32;
+ o->uMaxBandwidth = m_uMaxBandwidth;
+ o->bNoAcks = m_pDescriptor->bNoAcks;
+ m_pSlaveSendThread = new DccSendThread(this, m_pMarshal->releaseSocket(), o);
#ifdef COMPILE_SSL_SUPPORT
KviSSL * s = m_pMarshal->releaseSSL();
if(s)
@@ -2173,33 +2333,32 @@ void DccFileTransfer::connected()
}
m_eGeneralStatus = Transferring;
- m_szStatusString = __tr2qs_ctx("Transferring data","dcc");
+ m_szStatusString = __tr2qs_ctx("Transferring data", "dcc");
- KVS_TRIGGER_EVENT_1(KviEvent_OnDCCFileTransferBegin,eventWindow(),m_pDescriptor->idString());
+ KVS_TRIGGER_EVENT_1(KviEvent_OnDCCFileTransferBegin, eventWindow(), m_pDescriptor->idString());
outputAndLog(m_szStatusString);
displayUpdate();
}
-bool DccFileTransfer::resumeAccepted(const char *filename,const char *port,const char *szZeroPortTag)
+bool DccFileTransfer::resumeAccepted(const char * filename, const char * port, const char * szZeroPortTag)
{
- if(!(kvi_strEqualCI(filename,m_pDescriptor->szFileName.toUtf8().data()) || KVI_OPTION_BOOL(KviOption_boolAcceptBrokenFileNameDccResumeRequests)))
+ if(!(kvi_strEqualCI(filename, m_pDescriptor->szFileName.toUtf8().data()) || KVI_OPTION_BOOL(KviOption_boolAcceptBrokenFileNameDccResumeRequests)))
return false;
- if(!(kvi_strEqualCI(port,m_pDescriptor->szPort.toUtf8().data()) &&
- (!m_pSlaveRecvThread) && m_pDescriptor->bResume && m_pDescriptor->bRecvFile && m_pResumeTimer))
+ if(!(kvi_strEqualCI(port, m_pDescriptor->szPort.toUtf8().data()) && (!m_pSlaveRecvThread) && m_pDescriptor->bResume && m_pDescriptor->bRecvFile && m_pResumeTimer))
return false;
- if(kvi_strEqualCI(port,"0"))
+ if(kvi_strEqualCI(port, "0"))
{
- if(!kvi_strEqualCI(szZeroPortTag,m_pDescriptor->zeroPortRequestTag()))
+ if(!kvi_strEqualCI(szZeroPortTag, m_pDescriptor->zeroPortRequestTag()))
return false;
}
delete m_pResumeTimer;
m_pResumeTimer = 0;
- outputAndLog(__tr2qs_ctx("RESUME accepted, transfer will begin at position %1","dcc").arg(m_pDescriptor->szLocalFileSize));
+ outputAndLog(__tr2qs_ctx("RESUME accepted, transfer will begin at position %1", "dcc").arg(m_pDescriptor->szLocalFileSize));
listenOrConnect();
@@ -2218,7 +2377,7 @@ bool DccFileTransfer::resumeAccepted(const char *filename,const char *port,const
return true;
}
-bool DccFileTransfer::doResume(const char * filename,const char * port,quint64 filePos)
+bool DccFileTransfer::doResume(const char * filename, const char * port, quint64 filePos)
{
if(m_pSlaveRecvThread)
return false; // we're already receiving stuff...
@@ -2228,8 +2387,8 @@ bool DccFileTransfer::doResume(const char * filename,const char * port,quint64 f
if(m_pDescriptor->bRecvFile)
return false; // we're receiving... can't resume anything
- bool bFileNameMatches = KviQString::equalCI(filename,m_pDescriptor->szFileName);
- bool bPortMatches = KviQString::equalCI(port,m_pMarshal->dccPort());
+ bool bFileNameMatches = KviQString::equalCI(filename, m_pDescriptor->szFileName);
+ bool bPortMatches = KviQString::equalCI(port, m_pMarshal->dccPort());
if(!bPortMatches)
{
@@ -2243,7 +2402,7 @@ bool DccFileTransfer::doResume(const char * filename,const char * port,quint64 f
// hmm.. try to accept a mismatched port request
if(_OUTPUT_VERBOSE)
- outputAndLog(KVI_OUT_DCCMSG,__tr2qs_ctx("Processing RESUME request with mismatched port (%1)","dcc").arg(port));
+ outputAndLog(KVI_OUT_DCCMSG, __tr2qs_ctx("Processing RESUME request with mismatched port (%1)", "dcc").arg(port));
}
// port matches
@@ -2260,16 +2419,15 @@ bool DccFileTransfer::doResume(const char * filename,const char * port,quint64 f
{
if(_OUTPUT_VERBOSE)
outputAndLog(
- KVI_OUT_DCCMSG,
- __tr2qs_ctx("Invalid RESUME request: invalid file name (got '%1' but should be '%2')","dcc")
- .arg(filename)
- .arg(m_pDescriptor->szFileName)
- );
+ KVI_OUT_DCCMSG,
+ __tr2qs_ctx("Invalid RESUME request: invalid file name (got '%1' but should be '%2')", "dcc")
+ .arg(filename)
+ .arg(m_pDescriptor->szFileName));
return false; // bad file name
}
if(_OUTPUT_VERBOSE)
- outputAndLog(KVI_OUT_DCCMSG,__tr2qs_ctx("Processing RESUME request with broken filename (%1)","dcc").arg(filename));
+ outputAndLog(KVI_OUT_DCCMSG, __tr2qs_ctx("Processing RESUME request with broken filename (%1)", "dcc").arg(filename));
}
bool bOk;
@@ -2278,31 +2436,30 @@ bool DccFileTransfer::doResume(const char * filename,const char * port,quint64 f
if(!bOk)
{
// ops...internal error
- outputAndLog(KVI_OUT_DCCERROR,__tr2qs_ctx("Internal error in RESUME request","dcc"));
+ outputAndLog(KVI_OUT_DCCERROR, __tr2qs_ctx("Internal error in RESUME request", "dcc"));
return false;
}
if(iLocalFileSize <= filePos)
{
- outputAndLog(KVI_OUT_DCCERROR,__tr2qs_ctx("Invalid RESUME request: position %1 is larger than file size","dcc").arg(filePos));
+ outputAndLog(KVI_OUT_DCCERROR, __tr2qs_ctx("Invalid RESUME request: position %1 is larger than file size", "dcc").arg(filePos));
return false;
}
- outputAndLog(KVI_OUT_DCCERROR,__tr2qs_ctx("Accepting RESUME request, transfer will begin at position %1","dcc").arg(filePos));
+ outputAndLog(KVI_OUT_DCCERROR, __tr2qs_ctx("Accepting RESUME request, transfer will begin at position %1", "dcc").arg(filePos));
m_pDescriptor->szFileSize.setNum(filePos);
KviCString szBuffy;
- KviIrcServerParser::encodeCtcpParameter(filename,szBuffy);
+ KviIrcServerParser::encodeCtcpParameter(filename, szBuffy);
m_pDescriptor->console()->connection()->sendFmtData("PRIVMSG %s :%cDCC ACCEPT %s %s %s%c",
- m_pDescriptor->console()->connection()->encodeText(m_pDescriptor->szNick).data(),
- 0x01,
- m_pDescriptor->console()->connection()->encodeText(szBuffy.ptr()).data(),
- port,
- m_pDescriptor->console()->connection()->encodeText(QString::number(filePos)).data(),
- 0x01
- );
+ m_pDescriptor->console()->connection()->encodeText(m_pDescriptor->szNick).data(),
+ 0x01,
+ m_pDescriptor->console()->connection()->encodeText(szBuffy.ptr()).data(),
+ port,
+ m_pDescriptor->console()->connection()->encodeText(QString::number(filePos)).data(),
+ 0x01);
return true;
}
@@ -2312,56 +2469,57 @@ DccThread * DccFileTransfer::getSlaveThread()
if(m_pDescriptor->bRecvFile)
{
return m_pSlaveRecvThread;
- } else {
+ }
+ else
+ {
return m_pSlaveSendThread;
}
}
-
-DccFileTransferBandwidthDialog::DccFileTransferBandwidthDialog(QWidget * pParent,DccFileTransfer * t)
-: QDialog(pParent)
+DccFileTransferBandwidthDialog::DccFileTransferBandwidthDialog(QWidget * pParent, DccFileTransfer * t)
+ : QDialog(pParent)
{
QGridLayout * g = new QGridLayout(this);
m_pTransfer = t;
int iVal = m_pTransfer->bandwidthLimit();
- QString szText = __tr2qs_ctx("Configure Bandwidth for DCC Transfer %1","dcc").arg(t->id());
+ QString szText = __tr2qs_ctx("Configure Bandwidth for DCC Transfer %1", "dcc").arg(t->id());
setWindowTitle(szText);
- szText = t->isFileUpload() ? __tr2qs_ctx("Limit upload bandwidth to:","dcc") : __tr2qs_ctx("Limit download bandwidth to:","dcc");
+ szText = t->isFileUpload() ? __tr2qs_ctx("Limit upload bandwidth to:", "dcc") : __tr2qs_ctx("Limit download bandwidth to:", "dcc");
- m_pEnableLimitCheck = new QCheckBox(szText,this);
- g->addWidget(m_pEnableLimitCheck,0,0);
+ m_pEnableLimitCheck = new QCheckBox(szText, this);
+ g->addWidget(m_pEnableLimitCheck, 0, 0);
m_pEnableLimitCheck->setChecked((iVal >= 0) && (iVal < MAX_DCC_BANDWIDTH_LIMIT));
m_pLimitBox = new QSpinBox(this);
m_pLimitBox->setMinimum(0);
- m_pLimitBox->setMaximum(MAX_DCC_BANDWIDTH_LIMIT-1);
+ m_pLimitBox->setMaximum(MAX_DCC_BANDWIDTH_LIMIT - 1);
m_pLimitBox->setSingleStep(1);
m_pLimitBox->setEnabled((iVal >= 0) && (iVal < MAX_DCC_BANDWIDTH_LIMIT));
- connect(m_pEnableLimitCheck,SIGNAL(toggled(bool)),m_pLimitBox,SLOT(setEnabled(bool)));
- g->addWidget(m_pLimitBox,0,1,1,2);
+ connect(m_pEnableLimitCheck, SIGNAL(toggled(bool)), m_pLimitBox, SLOT(setEnabled(bool)));
+ g->addWidget(m_pLimitBox, 0, 1, 1, 2);
szText = " ";
- szText += __tr2qs_ctx("bytes/sec","dcc");
+ szText += __tr2qs_ctx("bytes/sec", "dcc");
m_pLimitBox->setSuffix(szText);
m_pLimitBox->setValue(iVal < MAX_DCC_BANDWIDTH_LIMIT ? iVal : 0);
- QPushButton * pb = new QPushButton(__tr2qs_ctx("OK","dcc"),this);
- connect(pb,SIGNAL(clicked()),this,SLOT(okClicked()));
+ QPushButton * pb = new QPushButton(__tr2qs_ctx("OK", "dcc"), this);
+ connect(pb, SIGNAL(clicked()), this, SLOT(okClicked()));
pb->setMinimumWidth(80);
- g->addWidget(pb,2,2);
+ g->addWidget(pb, 2, 2);
- pb = new QPushButton(__tr2qs_ctx("Cancel","dcc"),this);
- connect(pb,SIGNAL(clicked()),this,SLOT(cancelClicked()));
+ pb = new QPushButton(__tr2qs_ctx("Cancel", "dcc"), this);
+ connect(pb, SIGNAL(clicked()), this, SLOT(cancelClicked()));
pb->setMinimumWidth(80);
- g->addWidget(pb,2,1);
+ g->addWidget(pb, 2, 1);
- g->setColumnStretch(0,1);
- g->setRowStretch(1,1);
+ g->setColumnStretch(0, 1);
+ g->setRowStretch(1, 1);
}
DccFileTransferBandwidthDialog::~DccFileTransferBandwidthDialog()
@@ -2374,8 +2532,10 @@ void DccFileTransferBandwidthDialog::okClicked()
if(m_pEnableLimitCheck->isChecked())
{
iVal = m_pLimitBox->value();
- if(iVal < 0)iVal = MAX_DCC_BANDWIDTH_LIMIT;
- if(iVal > MAX_DCC_BANDWIDTH_LIMIT)iVal = MAX_DCC_BANDWIDTH_LIMIT;
+ if(iVal < 0)
+ iVal = MAX_DCC_BANDWIDTH_LIMIT;
+ if(iVal > MAX_DCC_BANDWIDTH_LIMIT)
+ iVal = MAX_DCC_BANDWIDTH_LIMIT;
}
m_pTransfer->setBandwidthLimit(iVal);
delete this;
diff --git a/src/modules/dcc/DccFileTransfer.h b/src/modules/dcc/DccFileTransfer.h
index 1e26acab1..f8fb48a05 100644
--- a/src/modules/dcc/DccFileTransfer.h
+++ b/src/modules/dcc/DccFileTransfer.h
@@ -53,46 +53,47 @@ class QMenu;
typedef struct _KviDccSendThreadOptions
{
- KviCString szFileName;
- quint64 uStartPosition;
- int iPacketSize;
- int iIdleStepLengthInMSec;
- bool bFastSend;
- bool bNoAcks;
- bool bIsTdcc;
+ KviCString szFileName;
+ quint64 uStartPosition;
+ int iPacketSize;
+ int iIdleStepLengthInMSec;
+ bool bFastSend;
+ bool bNoAcks;
+ bool bIsTdcc;
unsigned int uMaxBandwidth;
} KviDccSendThreadOptions;
-
class DccSendThread : public DccThread
{
public:
- DccSendThread(QObject * par,kvi_socket_t fd,KviDccSendThreadOptions * opt);
+ DccSendThread(QObject * par, kvi_socket_t fd, KviDccSendThreadOptions * opt);
~DccSendThread();
+
private:
// stats: SHARED!!!
- uint m_uAverageSpeed;
- uint m_uInstantSpeed;
- quint64 m_uFilePosition;
- quint64 m_uAckedBytes;
- quint64 m_uTotalSentBytes;
+ uint m_uAverageSpeed;
+ uint m_uInstantSpeed;
+ quint64 m_uFilePosition;
+ quint64 m_uAckedBytes;
+ quint64 m_uTotalSentBytes;
// internal
- unsigned long m_uStartTime;
- unsigned long m_uInstantSpeedInterval;
- quint64 m_uInstantSentBytes;
+ unsigned long m_uStartTime;
+ unsigned long m_uInstantSpeedInterval;
+ quint64 m_uInstantSentBytes;
KviDccSendThreadOptions * m_pOpt;
- KviMSecTimeInterval * m_pTimeInterval; // used for computing the instant bandwidth but not only
+ KviMSecTimeInterval * m_pTimeInterval; // used for computing the instant bandwidth but not only
public:
void initGetInfo();
- uint averageSpeed(){ return m_uAverageSpeed; };
- uint instantSpeed(){ return m_uInstantSpeed; };
- quint64 filePosition(){ return m_uFilePosition; };
+ uint averageSpeed() { return m_uAverageSpeed; };
+ uint instantSpeed() { return m_uInstantSpeed; };
+ quint64 filePosition() { return m_uFilePosition; };
// sent ONLY in this session
- quint64 sentBytes(){ return m_uTotalSentBytes; };
- quint64 ackedBytes(){ return m_uAckedBytes; };
- unsigned int bandwidthLimit(){ return m_pOpt->uMaxBandwidth; };
- void setBandwidthLimit(unsigned int uMaxBandwidth){ m_pOpt->uMaxBandwidth = uMaxBandwidth; };
+ quint64 sentBytes() { return m_uTotalSentBytes; };
+ quint64 ackedBytes() { return m_uAckedBytes; };
+ unsigned int bandwidthLimit() { return m_pOpt->uMaxBandwidth; };
+ void setBandwidthLimit(unsigned int uMaxBandwidth) { m_pOpt->uMaxBandwidth = uMaxBandwidth; };
void doneGetInfo();
+
protected:
void updateStats();
virtual void run();
@@ -100,47 +101,50 @@ protected:
typedef struct _KviDccRecvThreadOptions
{
- bool bResume;
- KviCString szFileName;
- quint64 uTotalFileSize;
- int iIdleStepLengthInMSec;
- bool bSendZeroAck;
- bool bSend64BitAck;
- bool bNoAcks;
- bool bIsTdcc;
+ bool bResume;
+ KviCString szFileName;
+ quint64 uTotalFileSize;
+ int iIdleStepLengthInMSec;
+ bool bSendZeroAck;
+ bool bSend64BitAck;
+ bool bNoAcks;
+ bool bIsTdcc;
unsigned int uMaxBandwidth;
} KviDccRecvThreadOptions;
class DccRecvThread : public DccThread
{
public:
- DccRecvThread(QObject * par,kvi_socket_t fd,KviDccRecvThreadOptions * opt);
+ DccRecvThread(QObject * par, kvi_socket_t fd, KviDccRecvThreadOptions * opt);
~DccRecvThread();
+
protected:
KviDccRecvThreadOptions * m_pOpt;
// stats: SHARED!
- uint m_uAverageSpeed;
- uint m_uInstantSpeed;
- quint64 m_uFilePosition;
- quint64 m_uTotalReceivedBytes;
+ uint m_uAverageSpeed;
+ uint m_uInstantSpeed;
+ quint64 m_uFilePosition;
+ quint64 m_uTotalReceivedBytes;
// internal
- unsigned long m_uStartTime;
- KviMSecTimeInterval * m_pTimeInterval; // used for computing the instant bandwidth
- quint64 m_uInstantReceivedBytes;
- quint64 m_uInstantSpeedInterval;
- QFile * m_pFile;
+ unsigned long m_uStartTime;
+ KviMSecTimeInterval * m_pTimeInterval; // used for computing the instant bandwidth
+ quint64 m_uInstantReceivedBytes;
+ quint64 m_uInstantSpeedInterval;
+ QFile * m_pFile;
+
public:
void initGetInfo();
- uint averageSpeed(){ return m_uAverageSpeed; };
- uint instantSpeed(){ return m_uInstantSpeed; };
- quint64 filePosition(){ return m_uFilePosition; };
+ uint averageSpeed() { return m_uAverageSpeed; };
+ uint instantSpeed() { return m_uInstantSpeed; };
+ quint64 filePosition() { return m_uFilePosition; };
// received ONLY in this session
- quint64 receivedBytes(){ return m_uTotalReceivedBytes; };
- unsigned int bandwidthLimit(){ return m_pOpt->uMaxBandwidth; };
- void setBandwidthLimit(unsigned int uMaxBandwidth){ m_pOpt->uMaxBandwidth = uMaxBandwidth; };
+ quint64 receivedBytes() { return m_uTotalReceivedBytes; };
+ unsigned int bandwidthLimit() { return m_pOpt->uMaxBandwidth; };
+ void setBandwidthLimit(unsigned int uMaxBandwidth) { m_pOpt->uMaxBandwidth = uMaxBandwidth; };
void doneGetInfo();
+
protected:
void postMessageEvent(const char * msg);
void updateStats();
@@ -148,82 +152,89 @@ protected:
virtual void run();
};
-
class DccFileTransferBandwidthDialog : public QDialog
{
Q_OBJECT
public:
- DccFileTransferBandwidthDialog(QWidget * pParent,DccFileTransfer * t);
+ DccFileTransferBandwidthDialog(QWidget * pParent, DccFileTransfer * t);
~DccFileTransferBandwidthDialog();
+
protected:
DccFileTransfer * m_pTransfer;
QCheckBox * m_pEnableLimitCheck;
QSpinBox * m_pLimitBox;
+
protected:
- virtual void closeEvent(QCloseEvent *e);
+ virtual void closeEvent(QCloseEvent * e);
protected slots:
void okClicked();
void cancelClicked();
};
-
class DccFileTransfer : public KviFileTransfer, public DccMarshalOutputContext
{
- enum GeneralStatus { Connecting, Transferring, Success, Failure };
+ enum GeneralStatus
+ {
+ Connecting,
+ Transferring,
+ Success,
+ Failure
+ };
Q_OBJECT
public:
DccFileTransfer(DccDescriptor * dcc);
~DccFileTransfer();
+
private:
- DccSendThread * m_pSlaveSendThread;
- DccRecvThread * m_pSlaveRecvThread;
- DccDescriptor * m_pDescriptor;
- DccMarshal * m_pMarshal;
+ DccSendThread * m_pSlaveSendThread;
+ DccRecvThread * m_pSlaveRecvThread;
+ DccDescriptor * m_pDescriptor;
+ DccMarshal * m_pMarshal;
- KviCString m_szTarget;
- KviCString m_szDccType;
- QString m_szTransferIdString;
+ KviCString m_szTarget;
+ KviCString m_szDccType;
+ QString m_szTransferIdString;
- QString m_szStatusString;
- GeneralStatus m_eGeneralStatus;
+ QString m_szStatusString;
+ GeneralStatus m_eGeneralStatus;
- QString m_szTransferLog; // html
+ QString m_szTransferLog; // html
- kvi_time_t m_tTransferStartTime;
- kvi_time_t m_tTransferEndTime;
+ kvi_time_t m_tTransferStartTime;
+ kvi_time_t m_tTransferEndTime;
// cached stats
- quint64 m_uTotalFileSize; // total file size to transfer
+ quint64 m_uTotalFileSize; // total file size to transfer
- unsigned int m_uMaxBandwidth;
+ unsigned int m_uMaxBandwidth;
DccFileTransferBandwidthDialog * m_pBandwidthDialog;
- QTimer * m_pResumeTimer; // used to signal resume timeout
+ QTimer * m_pResumeTimer; // used to signal resume timeout
public:
- bool resumeAccepted(const char * filename,const char * port,const char *szZeroPortTag);
- bool doResume(const char * filename,const char * port,quint64 filePos);
+ bool resumeAccepted(const char * filename, const char * port, const char * szZeroPortTag);
+ bool doResume(const char * filename, const char * port, quint64 filePos);
static void init();
static void done();
static unsigned int runningTransfersCount();
- static DccFileTransfer * nonFailedTransferWithLocalFileName(const QString &szLocalFileName);
+ static DccFileTransfer * nonFailedTransferWithLocalFileName(const QString & szLocalFileName);
static unsigned int transferCount();
- static bool handleResumeAccepted(const char * filename,const char * port,const char * szZeroPortTag);
- static bool handleResumeRequest(const char * filename,const char * port,quint64 filePos);
+ static bool handleResumeAccepted(const char * filename, const char * port, const char * szZeroPortTag);
+ static bool handleResumeRequest(const char * filename, const char * port, quint64 filePos);
- virtual bool event(QEvent *e);
+ virtual bool event(QEvent * e);
virtual KviWindow * dccMarshalOutputWindow();
virtual const char * dccMarshalOutputContextString();
- virtual void displayPaint(QPainter * p,int column, QRect rect);
+ virtual void displayPaint(QPainter * p, int column, QRect rect);
virtual int displayHeight(int iLineSpacing);
virtual void fillContextPopup(QMenu * m);
- virtual void fillStatusString(QString &szBuffer);
+ virtual void fillStatusString(QString & szBuffer);
virtual bool active();
virtual QString tipText();
virtual QString localFileName();
- bool isFileUpload(){ return m_pDescriptor->isFileUpload(); };
+ bool isFileUpload() { return m_pDescriptor->isFileUpload(); };
unsigned int averageSpeed();
unsigned int instantSpeed();
@@ -232,12 +243,13 @@ public:
int bandwidthLimit();
void setBandwidthLimit(int iVal);
virtual DccThread * getSlaveThread();
+
protected:
void startConnection();
void listenOrConnect();
- void addToTransferLog(const QString &s);
- void outputAndLog(const QString &s);
- void outputAndLog(int msgtype,const QString &s);
+ void addToTransferLog(const QString & s);
+ void outputAndLog(const QString & s);
+ void outputAndLog(int msgtype, const QString & s);
KviWindow * eventWindow();
protected slots:
void connectionInProgress();
diff --git a/src/modules/dcc/DccMarshal.cpp b/src/modules/dcc/DccMarshal.cpp
index 0575ab9e5..9f7b9af34 100644
--- a/src/modules/dcc/DccMarshal.cpp
+++ b/src/modules/dcc/DccMarshal.cpp
@@ -37,16 +37,16 @@
#include <QTimer>
DccMarshal::DccMarshal(DccMarshalOutputContext * ctx)
-: QObject(0)
+ : QObject(0)
{
setObjectName("dcc_marshal");
- m_pSn = 0;
- m_fd = KVI_INVALID_SOCKET;
- m_pTimeoutTimer = 0;
- m_bIPv6 = false;
- m_pOutputContext = ctx;
+ m_pSn = 0;
+ m_fd = KVI_INVALID_SOCKET;
+ m_pTimeoutTimer = 0;
+ m_bIPv6 = false;
+ m_pOutputContext = ctx;
#ifdef COMPILE_SSL_SUPPORT
- m_pSSL = 0;
+ m_pSSL = 0;
#endif
m_szIp = "";
m_szPort = "";
@@ -88,10 +88,10 @@ void DccMarshal::reset()
m_fd = KVI_INVALID_SOCKET;
}
#ifdef COMPILE_SSL_SUPPORT
-// qDebug("MARSHAL RESETTING (SSL=%d)",m_pSSL);
+ // qDebug("MARSHAL RESETTING (SSL=%d)",m_pSSL);
if(m_pSSL)
{
-// qDebug("MARSHAL CLEARING THE SSL");
+ // qDebug("MARSHAL CLEARING THE SSL");
KviSSLMaster::freeSSL(m_pSSL);
m_pSSL = 0;
}
@@ -104,7 +104,7 @@ void DccMarshal::reset()
m_bIPv6 = false;
}
-KviError::Code DccMarshal::dccListen(const QString &ip,const QString &port,bool bUseTimeout,bool bUseSSL)
+KviError::Code DccMarshal::dccListen(const QString & ip, const QString & port, bool bUseTimeout, bool bUseSSL)
{
if(m_fd != KVI_INVALID_SOCKET)
return KviError::AnotherConnectionInProgress;
@@ -143,7 +143,9 @@ void DccMarshal::doListen()
{
emit error(KviError::InvalidIpAddress);
return;
- } else m_bIPv6 = true;
+ }
+ else
+ m_bIPv6 = true;
#else
emit error(KviError::InvalidIpAddress);
return;
@@ -166,12 +168,11 @@ void DccMarshal::doListen()
}
#endif
-
#ifdef COMPILE_IPV6_SUPPORT
m_fd = kvi_socket_create(m_bIPv6 ? KVI_SOCKET_PF_INET6 : KVI_SOCKET_PF_INET,
- KVI_SOCKET_TYPE_STREAM,KVI_SOCKET_PROTO_TCP);
+ KVI_SOCKET_TYPE_STREAM, KVI_SOCKET_PROTO_TCP);
#else
- m_fd = kvi_socket_create(KVI_SOCKET_PF_INET,KVI_SOCKET_TYPE_STREAM,KVI_SOCKET_PROTO_TCP);
+ m_fd = kvi_socket_create(KVI_SOCKET_PF_INET, KVI_SOCKET_TYPE_STREAM, KVI_SOCKET_PROTO_TCP);
#endif
if(m_fd == KVI_INVALID_SOCKET)
@@ -183,9 +184,9 @@ void DccMarshal::doListen()
if((!KVI_OPTION_BOOL(KviOption_boolUserDefinedPortRange)) || (m_uPort != 0))
{
#ifdef COMPILE_IPV6_SUPPORT
- KviSockaddr sa(m_szIp.toUtf8().data(),m_uPort,m_bIPv6);
+ KviSockaddr sa(m_szIp.toUtf8().data(), m_uPort, m_bIPv6);
#else
- KviSockaddr sa(m_szIp.toUtf8().data(),m_uPort,false);
+ KviSockaddr sa(m_szIp.toUtf8().data(), m_uPort, false);
#endif
if(!sa.socketAddress())
@@ -195,22 +196,25 @@ void DccMarshal::doListen()
return;
}
- if(!kvi_socket_bind(m_fd,sa.socketAddress(),sa.addressLength()))
+ if(!kvi_socket_bind(m_fd, sa.socketAddress(), sa.addressLength()))
{
reset();
emit error(KviError::BindFailed);
return;
}
-
- } else {
+ }
+ else
+ {
m_uPort = KVI_OPTION_UINT(KviOption_uintDccMinPort);
- if(KVI_OPTION_UINT(KviOption_uintDccMaxPort) > 65535)KVI_OPTION_UINT(KviOption_uintDccMaxPort) = 65535;
+ if(KVI_OPTION_UINT(KviOption_uintDccMaxPort) > 65535)
+ KVI_OPTION_UINT(KviOption_uintDccMaxPort) = 65535;
bool bBindSuccess;
- do {
+ do
+ {
#ifdef COMPILE_IPV6_SUPPORT
- KviSockaddr sa(m_szIp.toUtf8().data(),m_uPort,m_bIPv6);
+ KviSockaddr sa(m_szIp.toUtf8().data(), m_uPort, m_bIPv6);
#else
- KviSockaddr sa(m_szIp.toUtf8().data(),m_uPort,false);
+ KviSockaddr sa(m_szIp.toUtf8().data(), m_uPort, false);
#endif
if(!sa.socketAddress())
{
@@ -219,7 +223,7 @@ void DccMarshal::doListen()
return;
}
- bBindSuccess = kvi_socket_bind(m_fd,sa.socketAddress(),sa.addressLength());
+ bBindSuccess = kvi_socket_bind(m_fd, sa.socketAddress(), sa.addressLength());
if(!bBindSuccess)
{
@@ -240,41 +244,40 @@ void DccMarshal::doListen()
emit error(KviError::BindFailed);
return;
}
-
}
- if(!kvi_socket_listen(m_fd,1))
+ if(!kvi_socket_listen(m_fd, 1))
{
reset();
emit error(KviError::ListenFailed);
return;
}
-
- // Reread the port in case we're binding to a random one (0)
+// Reread the port in case we're binding to a random one (0)
#ifdef COMPILE_IPV6_SUPPORT
- KviSockaddr sareal(0,m_bIPv6);
+ KviSockaddr sareal(0, m_bIPv6);
#else
- KviSockaddr sareal(0,false);
+ KviSockaddr sareal(0, false);
#endif
-
int size = sareal.addressLength();
- if(kvi_socket_getsockname(m_fd,sareal.socketAddress(),&size))
+ if(kvi_socket_getsockname(m_fd, sareal.socketAddress(), &size))
{
-// qDebug("GETSOCKNAMEOK");
+ // qDebug("GETSOCKNAMEOK");
m_szPort.setNum(sareal.port());
m_uPort = sareal.port();
-// qDebug("REALPORT %u",m_uPort);
- } else {
-// qDebug("GETSOCKNAMEFAILED");
+ // qDebug("REALPORT %u",m_uPort);
+ }
+ else
+ {
+ // qDebug("GETSOCKNAMEFAILED");
}
// and setup the READ notifier...
- m_pSn = new QSocketNotifier(m_fd,QSocketNotifier::Read);
- QObject::connect(m_pSn,SIGNAL(activated(int)),this,SLOT(snActivated(int)));
+ m_pSn = new QSocketNotifier(m_fd, QSocketNotifier::Read);
+ QObject::connect(m_pSn, SIGNAL(activated(int)), this, SLOT(snActivated(int)));
m_pSn->setEnabled(true);
// set the timer
@@ -290,7 +293,7 @@ void DccMarshal::doListen()
if(m_bUseTimeout)
{
m_pTimeoutTimer = new QTimer();
- connect(m_pTimeoutTimer,SIGNAL(timeout()),this,SLOT(connectionTimedOut()));
+ connect(m_pTimeoutTimer, SIGNAL(timeout()), this, SLOT(connectionTimedOut()));
m_pTimeoutTimer->setSingleShot(true);
m_pTimeoutTimer->setInterval((KVI_OPTION_UINT(KviOption_uintDccSocketTimeout) * 1000));
m_pTimeoutTimer->start();
@@ -300,7 +303,7 @@ void DccMarshal::doListen()
emit inProgress();
}
-KviError::Code DccMarshal::dccConnect(const char * ip,const char * port,bool bUseTimeout,bool bUseSSL)
+KviError::Code DccMarshal::dccConnect(const char * ip, const char * port, bool bUseTimeout, bool bUseSSL)
{
if(m_fd != KVI_INVALID_SOCKET)
return KviError::AnotherConnectionInProgress;
@@ -336,7 +339,9 @@ void DccMarshal::doConnect()
{
emit error(KviError::InvalidIpAddress);
return;
- } else m_bIPv6 = true;
+ }
+ else
+ m_bIPv6 = true;
#else
emit error(KviError::InvalidIpAddress);
return;
@@ -351,14 +356,13 @@ void DccMarshal::doConnect()
return;
}
-
- // create the socket
+// create the socket
#ifdef COMPILE_IPV6_SUPPORT
m_fd = kvi_socket_create(m_bIPv6 ? KVI_SOCKET_PF_INET6 : KVI_SOCKET_PF_INET,
- KVI_SOCKET_TYPE_STREAM,KVI_SOCKET_PROTO_TCP);
+ KVI_SOCKET_TYPE_STREAM, KVI_SOCKET_PROTO_TCP);
#else
m_fd = kvi_socket_create(KVI_SOCKET_PF_INET,
- KVI_SOCKET_TYPE_STREAM,KVI_SOCKET_PROTO_TCP);
+ KVI_SOCKET_TYPE_STREAM, KVI_SOCKET_PROTO_TCP);
#endif
if(m_fd == KVI_INVALID_SOCKET)
{
@@ -374,13 +378,12 @@ void DccMarshal::doConnect()
return;
}
-
- // fill the sockaddr structure
+// fill the sockaddr structure
#ifdef COMPILE_IPV6_SUPPORT
- KviSockaddr sa(m_szIp.toUtf8().data(),m_uPort,m_bIPv6);
+ KviSockaddr sa(m_szIp.toUtf8().data(), m_uPort, m_bIPv6);
#else
- KviSockaddr sa(m_szIp.toUtf8().data(),m_uPort,false);
+ KviSockaddr sa(m_szIp.toUtf8().data(), m_uPort, false);
#endif
if(!sa.socketAddress())
@@ -390,34 +393,36 @@ void DccMarshal::doConnect()
return;
}
- if(!kvi_socket_connect(m_fd,sa.socketAddress(),sa.addressLength()))
+ if(!kvi_socket_connect(m_fd, sa.socketAddress(), sa.addressLength()))
{
int err = kvi_socket_error();
if(!kvi_socket_recoverableConnectError(err))
{
// Ops...
- int sockError=err;
- if(sockError==0)
+ int sockError = err;
+ if(sockError == 0)
{
// Zero error ?...let's look closer
- int iSize=sizeof(int);
- if(!kvi_socket_getsockopt(m_fd,SOL_SOCKET,SO_ERROR,
- (void *)&sockError,&iSize))sockError=0;
+ int iSize = sizeof(int);
+ if(!kvi_socket_getsockopt(m_fd, SOL_SOCKET, SO_ERROR,
+ (void *)&sockError, &iSize))
+ sockError = 0;
}
// Die
reset();
// And declare problems :)
- if(sockError)emit error(KviError::translateSystemError(sockError));
- else emit error(KviError::UnknownError); //Error 0 ?
+ if(sockError)
+ emit error(KviError::translateSystemError(sockError));
+ else
+ emit error(KviError::UnknownError); //Error 0 ?
return;
}
}
-
// and setup the WRITE notifier...
- m_pSn = new QSocketNotifier(m_fd,QSocketNotifier::Write);
- QObject::connect(m_pSn,SIGNAL(activated(int)),this,SLOT(snActivated(int)));
+ m_pSn = new QSocketNotifier(m_fd, QSocketNotifier::Write);
+ QObject::connect(m_pSn, SIGNAL(activated(int)), this, SLOT(snActivated(int)));
m_pSn->setEnabled(true);
// set the timer
@@ -433,7 +438,7 @@ void DccMarshal::doConnect()
if(m_bUseTimeout)
{
m_pTimeoutTimer = new QTimer();
- connect(m_pTimeoutTimer,SIGNAL(timeout()),this,SLOT(connectionTimedOut()));
+ connect(m_pTimeoutTimer, SIGNAL(timeout()), this, SLOT(connectionTimedOut()));
m_pTimeoutTimer->setSingleShot(true);
m_pTimeoutTimer->setInterval(KVI_OPTION_UINT(KviOption_uintDccSocketTimeout) * 1000);
m_pTimeoutTimer->start();
@@ -443,7 +448,6 @@ void DccMarshal::doConnect()
emit inProgress();
}
-
void DccMarshal::snActivated(int)
{
if(m_pTimeoutTimer)
@@ -454,7 +458,7 @@ void DccMarshal::snActivated(int)
#ifdef COMPILE_IPV6_SUPPORT
struct sockaddr_in6 hostSockAddr6;
#endif
- struct sockaddr_in hostSockAddr;
+ struct sockaddr_in hostSockAddr;
int size = sizeof(hostSockAddr);
struct sockaddr * addr = (struct sockaddr *)&hostSockAddr;
@@ -472,14 +476,17 @@ void DccMarshal::snActivated(int)
// outgoing connection (we have called connect())
// Check for errors...
int sockError;
- int iSize=sizeof(int);
- if(!kvi_socket_getsockopt(m_fd,SOL_SOCKET,SO_ERROR,(void *)&sockError,&iSize))sockError = -1;
+ int iSize = sizeof(int);
+ if(!kvi_socket_getsockopt(m_fd, SOL_SOCKET, SO_ERROR, (void *)&sockError, &iSize))
+ sockError = -1;
if(sockError != 0)
{
//failed
KviError::Code eError;
- if(sockError > 0)eError = KviError::translateSystemError(sockError);
- else eError = KviError::UnknownError; //Error 0 ?
+ if(sockError > 0)
+ eError = KviError::translateSystemError(sockError);
+ else
+ eError = KviError::UnknownError; //Error 0 ?
reset();
emit error(eError);
return;
@@ -488,29 +495,35 @@ void DccMarshal::snActivated(int)
delete m_pSn;
m_pSn = 0;
// get the local address
- if(!kvi_socket_getsockname(m_fd,addr,&size))
+ if(!kvi_socket_getsockname(m_fd, addr, &size))
{
m_szSecondaryIp = "localhost";
- m_szSecondaryPort = __tr2qs_ctx("unknown","dcc");
- } else {
+ m_szSecondaryPort = __tr2qs_ctx("unknown", "dcc");
+ }
+ else
+ {
#ifdef COMPILE_IPV6_SUPPORT
if(m_bIPv6)
{
m_szSecondaryPort.setNum(ntohs(((struct sockaddr_in6 *)addr)->sin6_port));
- if(!KviNetUtils::binaryIpToStringIp_V6(((struct sockaddr_in6 *)addr)->sin6_addr,m_szSecondaryIp))
+ if(!KviNetUtils::binaryIpToStringIp_V6(((struct sockaddr_in6 *)addr)->sin6_addr, m_szSecondaryIp))
m_szSecondaryIp = "localhost";
- } else {
+ }
+ else
+ {
#endif
m_szSecondaryPort.setNum(ntohs(((struct sockaddr_in *)addr)->sin_port));
- if(!KviNetUtils::binaryIpToStringIp(((struct sockaddr_in *)addr)->sin_addr,m_szSecondaryIp))
+ if(!KviNetUtils::binaryIpToStringIp(((struct sockaddr_in *)addr)->sin_addr, m_szSecondaryIp))
m_szSecondaryIp = "localhost";
#ifdef COMPILE_IPV6_SUPPORT
}
#endif
}
- } else {
+ }
+ else
+ {
// Incoming connection
- int newsock = kvi_socket_accept(m_fd,addr,&size);
+ int newsock = kvi_socket_accept(m_fd, addr, &size);
if(newsock != KVI_INVALID_SOCKET)
{
// Connected
@@ -520,13 +533,15 @@ void DccMarshal::snActivated(int)
if(m_bIPv6)
{
m_szSecondaryPort.setNum(ntohs(((struct sockaddr_in6 *)addr)->sin6_port));
- if(!KviNetUtils::binaryIpToStringIp_V6(((struct sockaddr_in6 *)addr)->sin6_addr,m_szSecondaryIp))
- m_szSecondaryIp = __tr2qs_ctx("unknown","dcc");
- } else {
+ if(!KviNetUtils::binaryIpToStringIp_V6(((struct sockaddr_in6 *)addr)->sin6_addr, m_szSecondaryIp))
+ m_szSecondaryIp = __tr2qs_ctx("unknown", "dcc");
+ }
+ else
+ {
#endif
m_szSecondaryPort.setNum(ntohs(((struct sockaddr_in *)addr)->sin_port));
- if(!KviNetUtils::binaryIpToStringIp(((struct sockaddr_in *)addr)->sin_addr,m_szSecondaryIp))
- m_szSecondaryIp = __tr2qs_ctx("unknown","dcc");
+ if(!KviNetUtils::binaryIpToStringIp(((struct sockaddr_in *)addr)->sin_addr, m_szSecondaryIp))
+ m_szSecondaryIp = __tr2qs_ctx("unknown", "dcc");
#ifdef COMPILE_IPV6_SUPPORT
}
#endif
@@ -538,8 +553,9 @@ void DccMarshal::snActivated(int)
emit error(KviError::AsyncSocketFailed);
return;
}
-
- } else {
+ }
+ else
+ {
// Huh ?.. wait for the next notifier call
return;
}
@@ -549,13 +565,15 @@ void DccMarshal::snActivated(int)
// SSL Handshake needed ?
if(m_bUseSSL)
{
- m_pSSL = KviSSLMaster::allocSSL(m_pOutputContext->dccMarshalOutputWindow(),m_fd,m_bOutgoing ? KviSSL::Client : KviSSL::Server,m_pOutputContext->dccMarshalOutputContextString());
+ m_pSSL = KviSSLMaster::allocSSL(m_pOutputContext->dccMarshalOutputWindow(), m_fd, m_bOutgoing ? KviSSL::Client : KviSSL::Server, m_pOutputContext->dccMarshalOutputContextString());
if(m_pSSL)
{
emit startingSSLHandshake();
doSSLHandshake(0);
- } else {
+ }
+ else
+ {
reset();
emit error(KviError::SSLError);
}
@@ -569,7 +587,7 @@ void DccMarshal::snActivated(int)
void DccMarshal::doSSLHandshake(int)
{
#ifdef COMPILE_SSL_SUPPORT
-// qDebug("DO SSL HANDSHAKE");
+ // qDebug("DO SSL HANDSHAKE");
if(m_pSn)
{
delete m_pSn;
@@ -590,24 +608,24 @@ void DccMarshal::doSSLHandshake(int)
{
case KviSSL::Success:
// done!
-// qDebug("EMITTING CONNECTED");
+ // qDebug("EMITTING CONNECTED");
emit connected();
-// qDebug("CONNECTED EMITTED");
- break;
+ // qDebug("CONNECTED EMITTED");
+ break;
case KviSSL::WantRead:
- m_pSn = new QSocketNotifier((int)m_fd,QSocketNotifier::Read);
- QObject::connect(m_pSn,SIGNAL(activated(int)),this,SLOT(doSSLHandshake(int)));
+ m_pSn = new QSocketNotifier((int)m_fd, QSocketNotifier::Read);
+ QObject::connect(m_pSn, SIGNAL(activated(int)), this, SLOT(doSSLHandshake(int)));
m_pSn->setEnabled(true);
- break;
+ break;
case KviSSL::WantWrite:
- m_pSn = new QSocketNotifier((int)m_fd,QSocketNotifier::Write);
- QObject::connect(m_pSn,SIGNAL(activated(int)),this,SLOT(doSSLHandshake(int)));
+ m_pSn = new QSocketNotifier((int)m_fd, QSocketNotifier::Write);
+ QObject::connect(m_pSn, SIGNAL(activated(int)), this, SLOT(doSSLHandshake(int)));
m_pSn->setEnabled(true);
- break;
+ break;
case KviSSL::RemoteEndClosedConnection:
reset();
emit error(KviError::RemoteEndClosedConnection);
- break;
+ break;
case KviSSL::SyscallError:
{
// syscall problem
@@ -615,11 +633,13 @@ void DccMarshal::doSSLHandshake(int)
if(kvi_socket_recoverableError(err))
{
// can recover ? (EAGAIN, EINTR ?)
- m_pSn = new QSocketNotifier((int)m_fd,QSocketNotifier::Write);
- QObject::connect(m_pSn,SIGNAL(activated(int)),this,SLOT(doSSLHandshake(int)));
+ m_pSn = new QSocketNotifier((int)m_fd, QSocketNotifier::Write);
+ QObject::connect(m_pSn, SIGNAL(activated(int)), this, SLOT(doSSLHandshake(int)));
m_pSn->setEnabled(true);
return;
- } else {
+ }
+ else
+ {
// Declare problems :)
reset();
emit error(err ? KviError::translateSystemError(err) : KviError::UnknownError);
@@ -629,7 +649,8 @@ void DccMarshal::doSSLHandshake(int)
default:
{
KviCString buffer;
- while(m_pSSL->getLastErrorString(buffer))emit sslError(buffer.ptr());
+ while(m_pSSL->getLastErrorString(buffer))
+ emit sslError(buffer.ptr());
reset();
emit error(KviError::SSLError);
}
diff --git a/src/modules/dcc/DccMarshal.h b/src/modules/dcc/DccMarshal.h
index d60e86342..b9a3e17b1 100644
--- a/src/modules/dcc/DccMarshal.h
+++ b/src/modules/dcc/DccMarshal.h
@@ -37,16 +37,17 @@ class KviWindow;
class DccMarshal;
#ifdef COMPILE_SSL_SUPPORT
- #include "KviSSLMaster.h"
+#include "KviSSLMaster.h"
#endif
-
class DccMarshalOutputContext
{
friend class DccMarshal;
+
public:
DccMarshalOutputContext(){};
virtual ~DccMarshalOutputContext(){};
+
protected:
virtual KviWindow * dccMarshalOutputWindow() = 0;
virtual const char * dccMarshalOutputContextString() = 0;
@@ -58,26 +59,28 @@ class DccMarshal : public QObject
public:
DccMarshal(DccMarshalOutputContext * ctx);
~DccMarshal();
+
protected:
// DCC DESCRIPTOR
- QString m_szIp; // Dcc initiator ip address (the one that listens)
- QString m_szPort; // Dcc initiator port (the one that listens)
+ QString m_szIp; // Dcc initiator ip address (the one that listens)
+ QString m_szPort; // Dcc initiator port (the one that listens)
// other info
- bool m_bIPv6; // Dcc mode
- kvi_u32_t m_uPort; // Dcc initiator port
- bool m_bOutgoing; // true if WE have connected to the remote host (so m_szIp is the remote host ip)
- QString m_szSecondaryIp; // Ip of the client that has connected to the remote host
- QString m_szSecondaryPort; // Port of the client that has connected to the remote host
+ bool m_bIPv6; // Dcc mode
+ kvi_u32_t m_uPort; // Dcc initiator port
+ bool m_bOutgoing; // true if WE have connected to the remote host (so m_szIp is the remote host ip)
+ QString m_szSecondaryIp; // Ip of the client that has connected to the remote host
+ QString m_szSecondaryPort; // Port of the client that has connected to the remote host
// internals
- kvi_socket_t m_fd; // socket
- QSocketNotifier * m_pSn;
- bool m_bUseTimeout;
- QTimer * m_pTimeoutTimer;
+ kvi_socket_t m_fd; // socket
+ QSocketNotifier * m_pSn;
+ bool m_bUseTimeout;
+ QTimer * m_pTimeoutTimer;
#ifdef COMPILE_SSL_SUPPORT
- KviSSL * m_pSSL;
- bool m_bUseSSL;
+ KviSSL * m_pSSL;
+ bool m_bUseSSL;
#endif
DccMarshalOutputContext * m_pOutputContext;
+
public:
const QString & dccIp() const { return m_szIp; };
const QString & dccPort() const { return m_szPort; };
@@ -85,21 +88,22 @@ public:
const QString & localPort() const { return m_bOutgoing ? m_szSecondaryPort : m_szPort; };
const QString & remoteIp() const { return m_bOutgoing ? m_szIp : m_szSecondaryIp; };
const QString & remotePort() const { return m_bOutgoing ? m_szPort : m_szSecondaryPort; };
- KviError::Code dccListen(const QString &ip,const QString &port,bool bUseTimeout,bool bUseSSL = false);
- KviError::Code dccConnect(const char * ip,const char * port,bool bUseTimeout,bool bUseSSL = false);
+ KviError::Code dccListen(const QString & ip, const QString & port, bool bUseTimeout, bool bUseSSL = false);
+ KviError::Code dccConnect(const char * ip, const char * port, bool bUseTimeout, bool bUseSSL = false);
kvi_socket_t releaseSocket();
#ifdef COMPILE_SSL_SUPPORT
KviSSL * releaseSSL();
#endif
void abort();
+
private:
void reset();
-//#ifdef COMPILE_SSL_SUPPORT
-// bool trySSLCertificate();
-//#endif
+ //#ifdef COMPILE_SSL_SUPPORT
+ // bool trySSLCertificate();
+ //#endif
private slots:
void doSSLHandshake(int);
-// void doListenSSLHandshake();
+ // void doListenSSLHandshake();
void snActivated(int);
void connectionTimedOut();
void doListen();
@@ -112,5 +116,4 @@ signals:
void error(KviError::Code);
};
-
#endif //_MARSHAL_H_
diff --git a/src/modules/dcc/DccThread.cpp b/src/modules/dcc/DccThread.cpp
index a2ace585e..d3ec9af52 100644
--- a/src/modules/dcc/DccThread.cpp
+++ b/src/modules/dcc/DccThread.cpp
@@ -33,28 +33,30 @@
#include "kvi_socket.h"
#ifdef COMPILE_SSL_SUPPORT
- #include "KviSSLMaster.h"
+#include "KviSSLMaster.h"
#endif
-DccThread::DccThread(QObject * par,kvi_socket_t fd)
-: KviSensitiveThread()
+DccThread::DccThread(QObject * par, kvi_socket_t fd)
+ : KviSensitiveThread()
{
- m_pParent = par;
- m_fd = fd;
- m_pMutex = new KviMutex();
+ m_pParent = par;
+ m_fd = fd;
+ m_pMutex = new KviMutex();
#ifdef COMPILE_SSL_SUPPORT
-// qDebug("CLEARING SSL IN DccThread constructor");
- m_pSSL = 0;
+ // qDebug("CLEARING SSL IN DccThread constructor");
+ m_pSSL = 0;
#endif
}
DccThread::~DccThread()
{
#ifdef COMPILE_SSL_SUPPORT
- if(m_pSSL)KviSSLMaster::freeSSL(m_pSSL);
+ if(m_pSSL)
+ KviSSLMaster::freeSSL(m_pSSL);
m_pSSL = 0;
#endif
- if(m_fd != KVI_INVALID_SOCKET)kvi_socket_close(m_fd);
+ if(m_fd != KVI_INVALID_SOCKET)
+ kvi_socket_close(m_fd);
KVI_ASSERT(!m_pMutex->locked());
delete m_pMutex;
}
@@ -62,7 +64,8 @@ DccThread::~DccThread()
#ifdef COMPILE_SSL_SUPPORT
void DccThread::setSSL(KviSSL * s)
{
- if(m_pSSL)KviSSLMaster::freeSSL(m_pSSL);
+ if(m_pSSL)
+ KviSSLMaster::freeSSL(m_pSSL);
m_pSSL = s;
}
#endif
@@ -75,7 +78,9 @@ bool DccThread::handleInvalidSocketRead(int readLen)
// connection closed
postErrorEvent(KviError::RemoteEndClosedConnection);
return false;
- } else {
+ }
+ else
+ {
// error ?
int err = kvi_socket_error();
if((err != EINTR) && (err != EAGAIN))
@@ -93,7 +98,7 @@ void DccThread::raiseSSLError()
KviCString buffer;
while(m_pSSL->getLastErrorString(buffer))
{
- KviCString msg(KviCString::Format,"[SSL ERROR]: %s",buffer.ptr());
+ KviCString msg(KviCString::Format, "[SSL ERROR]: %s", buffer.ptr());
postMessageEvent(msg.ptr());
}
}
@@ -103,12 +108,12 @@ void DccThread::postErrorEvent(int err)
{
KviThreadDataEvent<int> * e = new KviThreadDataEvent<int>(KVI_DCC_THREAD_EVENT_ERROR);
e->setData(new int(err));
- postEvent(m_pParent,e);
+ postEvent(m_pParent, e);
}
void DccThread::postMessageEvent(const char * message)
{
KviThreadDataEvent<KviCString> * e = new KviThreadDataEvent<KviCString>(KVI_DCC_THREAD_EVENT_MESSAGE);
e->setData(new KviCString(message));
- postEvent(m_pParent,e);
+ postEvent(m_pParent, e);
}
diff --git a/src/modules/dcc/DccThread.h b/src/modules/dcc/DccThread.h
index 55041ed6e..25f6fc4fd 100644
--- a/src/modules/dcc/DccThread.h
+++ b/src/modules/dcc/DccThread.h
@@ -32,7 +32,7 @@
#include <QObject>
#ifdef COMPILE_SSL_SUPPORT
- #include "KviSSL.h"
+#include "KviSSL.h"
#endif
// KviThreadDataEvent<int>
@@ -48,26 +48,28 @@
typedef struct _KviDccThreadIncomingData
{
- int iLen;
+ int iLen;
char * buffer;
} KviDccThreadIncomingData;
class DccThread : public KviSensitiveThread
{
public:
- DccThread(QObject * par,kvi_socket_t fd);
+ DccThread(QObject * par, kvi_socket_t fd);
~DccThread();
+
protected:
- KviMutex * m_pMutex; // OWNED! PROTECTS m_pOutBuffers
- kvi_socket_t m_fd;
- QObject * m_pParent; // READ ONLY!
+ KviMutex * m_pMutex; // OWNED! PROTECTS m_pOutBuffers
+ kvi_socket_t m_fd;
+ QObject * m_pParent; // READ ONLY!
#ifdef COMPILE_SSL_SUPPORT
- KviSSL * m_pSSL;
+ KviSSL * m_pSSL;
#endif
protected:
bool handleInvalidSocketRead(int readLen);
+
public:
- QObject * parent(){ return m_pParent; };
+ QObject * parent() { return m_pParent; };
void postErrorEvent(int err);
// Warning!..newer call __tr() here!...use __tr_no_lookup()
void postMessageEvent(const char * message);
diff --git a/src/modules/dcc/DccUtils.cpp b/src/modules/dcc/DccUtils.cpp
index 6d491b8f5..878f5ebd9 100644
--- a/src/modules/dcc/DccUtils.cpp
+++ b/src/modules/dcc/DccUtils.cpp
@@ -102,7 +102,7 @@ bool dcc_module_get_listen_ip_address(KviCommand *c,KviConsoleWindow * pConsole,
}
*/
-bool dcc_kvs_get_listen_ip_address(KviKvsModuleCommandCall *c,KviConsoleWindow * pConsole,QString &szListenIp)
+bool dcc_kvs_get_listen_ip_address(KviKvsModuleCommandCall * c, KviConsoleWindow * pConsole, QString & szListenIp)
{
//
// Find an interface suitable for listening....
@@ -116,16 +116,19 @@ bool dcc_kvs_get_listen_ip_address(KviKvsModuleCommandCall *c,KviConsoleWindow *
{
if(KviNetUtils::isValidStringIp(KVI_OPTION_STRING(KviOption_stringDccListenDefaultInterface).toUtf8().data()))
{
- if(KviQString::equalCI(KVI_OPTION_STRING(KviOption_stringDccListenDefaultInterface),"0.0.0.0"))
+ if(KviQString::equalCI(KVI_OPTION_STRING(KviOption_stringDccListenDefaultInterface), "0.0.0.0"))
{
// Try to find the first available IPv4 interface
if(!kvi_getLocalHostAddress(szListenIp))
{
- if(c)c->warning(__tr2qs_ctx("Can't retrieve a suitable local IPv4 address","dcc"),
- KVI_OPTION_STRING(KviOption_stringDccListenDefaultInterface).toUtf8().data());
+ if(c)
+ c->warning(__tr2qs_ctx("Can't retrieve a suitable local IPv4 address", "dcc"),
+ KVI_OPTION_STRING(KviOption_stringDccListenDefaultInterface).toUtf8().data());
return false;
}
- } else {
+ }
+ else
+ {
szListenIp = KVI_OPTION_STRING(KviOption_stringDccListenDefaultInterface);
}
return true;
@@ -134,20 +137,25 @@ bool dcc_kvs_get_listen_ip_address(KviKvsModuleCommandCall *c,KviConsoleWindow *
if(KviNetUtils::isValidStringIPv6(KVI_OPTION_STRING(KviOption_stringDccListenDefaultInterface).toUtf8().data()))
{
szListenIp = KVI_OPTION_STRING(KviOption_stringDccListenDefaultInterface);
- } else {
+ }
+ else
+ {
#endif
- if(!KviNetUtils::getInterfaceAddress(KVI_OPTION_STRING(KviOption_stringDccListenDefaultInterface),szListenIp))
+ if(!KviNetUtils::getInterfaceAddress(KVI_OPTION_STRING(KviOption_stringDccListenDefaultInterface), szListenIp))
{
KVI_OPTION_BOOL(KviOption_boolDccListenOnSpecifiedInterfaceByDefault) = false;
- if(c)c->warning(__tr2qs_ctx("Can't listen on default interface '%s': fix it in the options dialog, disabling the option (so the next DCC will work)","dcc"),
- KVI_OPTION_STRING(KviOption_stringDccListenDefaultInterface).toUtf8().data());
+ if(c)
+ c->warning(__tr2qs_ctx("Can't listen on default interface '%s': fix it in the options dialog, disabling the option (so the next DCC will work)", "dcc"),
+ KVI_OPTION_STRING(KviOption_stringDccListenDefaultInterface).toUtf8().data());
return false;
}
#ifdef COMPILE_IPV6_SUPPORT
}
#endif
return true;
- } else {
+ }
+ else
+ {
// the option was empty.. disable it
KVI_OPTION_BOOL(KviOption_boolDccListenOnSpecifiedInterfaceByDefault) = false;
}
@@ -158,11 +166,15 @@ bool dcc_kvs_get_listen_ip_address(KviKvsModuleCommandCall *c,KviConsoleWindow *
if(pConsole->isConnected())
{
//#warning "The IPV6 choice is not OK here.... and maybe allow to bind to specified ports"
- pConsole->connection()->link()->socket()->getLocalHostIp(szListenIp,pConsole->isIPv6Connection());
- } else {
+ pConsole->connection()->link()->socket()->getLocalHostIp(szListenIp, pConsole->isIPv6Connection());
+ }
+ else
+ {
szListenIp = "0.0.0.0"; // huh ? :)
}
- } else {
+ }
+ else
+ {
szListenIp = "0.0.0.0";
}
diff --git a/src/modules/dcc/DccUtils.h b/src/modules/dcc/DccUtils.h
index 150e88de6..6020557ee 100644
--- a/src/modules/dcc/DccUtils.h
+++ b/src/modules/dcc/DccUtils.h
@@ -30,7 +30,7 @@
#include "KviKvsModuleInterface.h"
#ifndef _UTILS_CPP_
- extern bool dcc_kvs_get_listen_ip_address(KviKvsModuleCommandCall *c,KviConsoleWindow * pConsole,QString &szListenIp);
+extern bool dcc_kvs_get_listen_ip_address(KviKvsModuleCommandCall * c, KviConsoleWindow * pConsole, QString & szListenIp);
#endif
#endif //_UTILS_H_
diff --git a/src/modules/dcc/DccVideoWindow.cpp b/src/modules/dcc/DccVideoWindow.cpp
index 546043804..3cedf19af 100644
--- a/src/modules/dcc/DccVideoWindow.cpp
+++ b/src/modules/dcc/DccVideoWindow.cpp
@@ -48,11 +48,11 @@
#include <QBuffer>
#ifdef COMPILE_CRYPT_SUPPORT
- #include "KviCryptController.h"
+#include "KviCryptController.h"
#endif
#ifdef COMPILE_SSL_SUPPORT
- #include "KviSSLMaster.h"
+#include "KviSSLMaster.h"
#endif
#include <sys/ioctl.h>
@@ -63,10 +63,10 @@ extern DccBroker * g_pDccBroker;
bool kvi_dcc_video_is_valid_codec(const char * codecName)
{
- if(kvi_strEqualCI("sjpeg",codecName))
+ if(kvi_strEqualCI("sjpeg", codecName))
return true;
#ifndef COMPILE_DISABLE_OGG_THEORA
- if(kvi_strEqualCI("theora",codecName))
+ if(kvi_strEqualCI("theora", codecName))
return true;
#endif
return false;
@@ -76,15 +76,14 @@ static DccVideoCodec * kvi_dcc_video_get_codec(const char * codecName)
{
Q_UNUSED(codecName);
#ifndef COMPILE_DISABLE_OGG_THEORA
- if(kvi_strEqualCI("theora",codecName))
+ if(kvi_strEqualCI("theora", codecName))
return new DccVideoTheoraCodec();
#endif
return new DccVideoSJpegCodec();
}
-
-DccVideoThread::DccVideoThread(KviWindow * wnd,kvi_socket_t fd,KviDccVideoThreadOptions * opt)
-: DccThread(wnd,fd)
+DccVideoThread::DccVideoThread(KviWindow * wnd, kvi_socket_t fd, KviDccVideoThreadOptions * opt)
+ : DccThread(wnd, fd)
{
m_pOpt = opt;
m_bPlaying = false;
@@ -104,25 +103,28 @@ DccVideoThread::~DccVideoThread()
bool DccVideoThread::readWriteStep()
{
-// qDebug("DccVideoThread::readWriteStep()");
+ // qDebug("DccVideoThread::readWriteStep()");
// Socket management
bool bCanRead;
bool bCanWrite;
- if(kvi_select(m_fd,&bCanRead,&bCanWrite))
+ if(kvi_select(m_fd, &bCanRead, &bCanWrite))
{
while(bCanRead)
{
unsigned int actualSize = m_inFrameBuffer.size();
m_inFrameBuffer.resize(actualSize + 16384);
- int readLen = kvi_socket_recv(m_fd,(void *)(m_inFrameBuffer.data() + actualSize),16384);
+ int readLen = kvi_socket_recv(m_fd, (void *)(m_inFrameBuffer.data() + actualSize), 16384);
if(readLen > 0)
{
- if(readLen < 16384)m_inFrameBuffer.resize(actualSize + readLen);
- m_pOpt->pCodec->decode(&m_inFrameBuffer,&m_videoInSignalBuffer,&m_textInSignalBuffer);
- } else {
- bCanRead=false;
-// if(!handleInvalidSocketRead(readLen))return false;
+ if(readLen < 16384)
+ m_inFrameBuffer.resize(actualSize + readLen);
+ m_pOpt->pCodec->decode(&m_inFrameBuffer, &m_videoInSignalBuffer, &m_textInSignalBuffer);
+ }
+ else
+ {
+ bCanRead = false;
+ // if(!handleInvalidSocketRead(readLen))return false;
m_inFrameBuffer.resize(actualSize);
}
}
@@ -132,12 +134,15 @@ bool DccVideoThread::readWriteStep()
// Have somethihg to write ?
if(m_outFrameBuffer.size() > 0)
{
- int written = kvi_socket_send(m_fd,m_outFrameBuffer.data(),m_outFrameBuffer.size());
+ int written = kvi_socket_send(m_fd, m_outFrameBuffer.data(), m_outFrameBuffer.size());
if(written > 0)
{
m_outFrameBuffer.remove(written);
- } else {
- if(!handleInvalidSocketRead(written))return false;
+ }
+ else
+ {
+ if(!handleInvalidSocketRead(written))
+ return false;
}
}
}
@@ -147,7 +152,7 @@ bool DccVideoThread::readWriteStep()
bool DccVideoThread::videoStep()
{
-// qDebug("DccVideoThread::videoStep()");
+ // qDebug("DccVideoThread::videoStep()");
// Are we playing ?
if(m_bPlaying)
@@ -164,17 +169,17 @@ bool DccVideoThread::videoStep()
// Are we recording ?
if(m_bRecording)
{
- QImage * pImage = ((DccVideoWindow*)parent())->m_pCameraImage;
+ QImage * pImage = ((DccVideoWindow *)parent())->m_pCameraImage;
if(pImage)
{
// grab the frame
- m_videoOutSignalBuffer.append((const unsigned char*) pImage->bits(), pImage->byteCount());
- m_pOpt->pCodec->encodeVideo(&m_videoOutSignalBuffer,&m_outFrameBuffer);
+ m_videoOutSignalBuffer.append((const unsigned char *)pImage->bits(), pImage->byteCount());
+ m_pOpt->pCodec->encodeVideo(&m_videoOutSignalBuffer, &m_outFrameBuffer);
// tell our parent to prepare a new frame
KviThreadDataEvent<int> * e = new KviThreadDataEvent<int>(KVI_DCC_THREAD_EVENT_ACTION);
e->setData(new int(KVI_DCC_VIDEO_THREAD_ACTION_GRAB_FRAME));
- postEvent(DccThread::parent(),e);
+ postEvent(DccThread::parent(), e);
}
}
return true;
@@ -182,7 +187,7 @@ bool DccVideoThread::videoStep()
bool DccVideoThread::textStep()
{
-// qDebug("DccVideoThread::textStep()");
+ // qDebug("DccVideoThread::textStep()");
// Are we playing ?
if(m_bPlaying)
{
@@ -190,9 +195,9 @@ bool DccVideoThread::textStep()
{
KviDccThreadIncomingData data;
data.iLen = m_textInSignalBuffer.size();
- data.buffer = (char*) KviMemory::allocate(data.iLen);
+ data.buffer = (char *)KviMemory::allocate(data.iLen);
memcpy(data.buffer, m_textInSignalBuffer.data(), data.iLen);
- handleIncomingData(&data,false);
+ handleIncomingData(&data, false);
m_textInSignalBuffer.clear();
}
@@ -201,20 +206,20 @@ bool DccVideoThread::textStep()
// Are we recording ?
if(m_bRecording)
{
- if(((DccVideoWindow*)parent())->m_tmpTextDataOut.size())
+ if(((DccVideoWindow *)parent())->m_tmpTextDataOut.size())
{
- m_textOutSignalBuffer.append((const unsigned char*) ((DccVideoWindow*)parent())->m_tmpTextDataOut.constData(), ((DccVideoWindow*)parent())->m_tmpTextDataOut.size());
- ((DccVideoWindow*)parent())->m_tmpTextDataOut.clear();
+ m_textOutSignalBuffer.append((const unsigned char *)((DccVideoWindow *)parent())->m_tmpTextDataOut.constData(), ((DccVideoWindow *)parent())->m_tmpTextDataOut.size());
+ ((DccVideoWindow *)parent())->m_tmpTextDataOut.clear();
}
if(m_textOutSignalBuffer.size())
- m_pOpt->pCodec->encodeText(&m_textOutSignalBuffer,&m_outFrameBuffer);
+ m_pOpt->pCodec->encodeText(&m_textOutSignalBuffer, &m_outFrameBuffer);
}
return true;
}
-bool DccVideoThread::handleIncomingData(KviDccThreadIncomingData * data,bool bCritical)
+bool DccVideoThread::handleIncomingData(KviDccThreadIncomingData * data, bool bCritical)
{
//qDebug("DccVideoThread::handleIncomingData");
KVI_ASSERT(data->iLen);
@@ -228,34 +233,39 @@ bool DccVideoThread::handleIncomingData(KviDccThreadIncomingData * data,bool bCr
KviThreadDataEvent<KviCString> * e = new KviThreadDataEvent<KviCString>(KVI_DCC_THREAD_EVENT_DATA);
// The left part is len chars long
int len = aux - data->buffer;
-// qDebug("LEN = %d, iLen = %d",len,data->iLen);
-//#warning "DO IT BETTER (the \r cutting)"
- KviCString * s = new KviCString(data->buffer,len);
- if(s->lastCharIs('\r'))s->cutRight(1);
+ // qDebug("LEN = %d, iLen = %d",len,data->iLen);
+ //#warning "DO IT BETTER (the \r cutting)"
+ KviCString * s = new KviCString(data->buffer, len);
+ if(s->lastCharIs('\r'))
+ s->cutRight(1);
e->setData(s);
// but we cut also \n (or \0)
++aux;
// so len += 1; --> new data->iLen -= len;
data->iLen -= (len + 1);
-// qDebug("iLen now = %d",data->iLen);
+ // qDebug("iLen now = %d",data->iLen);
KVI_ASSERT(data->iLen >= 0);
if(data->iLen > 0)
{
// memmove the remaining part to the beginning
// aux points after \n or \0
- KviMemory::move(data->buffer,aux,data->iLen);
- data->buffer = (char *)KviMemory::reallocate(data->buffer,data->iLen);
+ KviMemory::move(data->buffer, aux, data->iLen);
+ data->buffer = (char *)KviMemory::reallocate(data->buffer, data->iLen);
end = data->buffer + data->iLen;
aux = data->buffer;
- } else {
+ }
+ else
+ {
// no more data in the buffer
KVI_ASSERT(data->iLen == 0);
KviMemory::free(data->buffer);
data->buffer = end = aux = 0;
}
- postEvent(parent(),e);
- } else aux++;
-// qDebug("PASSING CHAR %c",*aux);
+ postEvent(parent(), e);
+ }
+ else
+ aux++;
+ // qDebug("PASSING CHAR %c",*aux);
}
// now aux == end
if(bCritical)
@@ -265,13 +275,14 @@ bool DccVideoThread::handleIncomingData(KviDccThreadIncomingData * data,bool bCr
{
// in the last part there are no NULL and \n chars
KviThreadDataEvent<KviCString> * e = new KviThreadDataEvent<KviCString>(KVI_DCC_THREAD_EVENT_DATA);
- KviCString * s = new KviCString(data->buffer,data->iLen);
- if(s->lastCharIs('\r'))s->cutRight(1);
+ KviCString * s = new KviCString(data->buffer, data->iLen);
+ if(s->lastCharIs('\r'))
+ s->cutRight(1);
e->setData(s);
data->iLen = 0;
KviMemory::free(data->buffer);
data->buffer = 0;
- postEvent(parent(),e);
+ postEvent(parent(), e);
}
}
return true;
@@ -279,7 +290,7 @@ bool DccVideoThread::handleIncomingData(KviDccThreadIncomingData * data,bool bCr
void DccVideoThread::restartRecording(int iDevice, int iInput, int)
{
- m_bRecording=false;
+ m_bRecording = false;
/*
if(!g_pVideoDevicePool)
g_pVideoDevicePool = Kopete::AV::VideoDevicePool::self();
@@ -291,21 +302,22 @@ void DccVideoThread::restartRecording(int iDevice, int iInput, int)
g_pVideoDevicePool->selectInput(iInput);
g_pVideoDevicePool->startCapturing();
*/
- m_bRecording=true;
+ m_bRecording = true;
}
void DccVideoThread::startRecording()
{
//qDebug("Start recording");
- if(m_bRecording)return; // already started
+ if(m_bRecording)
+ return; // already started
//ensure capturing
-// g_pVideoDevicePool->startCapturing();
+ // g_pVideoDevicePool->startCapturing();
//qDebug("Posting event");
KviThreadDataEvent<int> * e = new KviThreadDataEvent<int>(KVI_DCC_THREAD_EVENT_ACTION);
e->setData(new int(KVI_DCC_VIDEO_THREAD_ACTION_START_RECORDING));
- postEvent(DccThread::parent(),e);
+ postEvent(DccThread::parent(), e);
m_bRecording = true;
}
@@ -313,11 +325,12 @@ void DccVideoThread::startRecording()
void DccVideoThread::stopRecording()
{
//qDebug("Stop recording");
- if(!m_bRecording)return; // already stopped
+ if(!m_bRecording)
+ return; // already stopped
KviThreadDataEvent<int> * e = new KviThreadDataEvent<int>(KVI_DCC_THREAD_EVENT_ACTION);
e->setData(new int(KVI_DCC_VIDEO_THREAD_ACTION_STOP_RECORDING));
- postEvent(DccThread::parent(),e);
+ postEvent(DccThread::parent(), e);
m_bRecording = false;
}
@@ -325,22 +338,24 @@ void DccVideoThread::stopRecording()
void DccVideoThread::startPlaying()
{
//qDebug("Start playing");
- if(m_bPlaying)return;
+ if(m_bPlaying)
+ return;
KviThreadDataEvent<int> * e = new KviThreadDataEvent<int>(KVI_DCC_THREAD_EVENT_ACTION);
e->setData(new int(KVI_DCC_VIDEO_THREAD_ACTION_START_PLAYING));
- postEvent(DccThread::parent(),e);
+ postEvent(DccThread::parent(), e);
m_bPlaying = true;
}
void DccVideoThread::stopPlaying()
{
//qDebug("Stop playing");
- if(!m_bPlaying)return;
+ if(!m_bPlaying)
+ return;
KviThreadDataEvent<int> * e = new KviThreadDataEvent<int>(KVI_DCC_THREAD_EVENT_ACTION);
e->setData(new int(KVI_DCC_VIDEO_THREAD_ACTION_STOP_PLAYING));
- postEvent(DccThread::parent(),e);
+ postEvent(DccThread::parent(), e);
m_bPlaying = false;
}
@@ -356,36 +371,43 @@ void DccVideoThread::run()
{
delete e;
goto exit_dcc;
- } else if(e->id() == KVI_DCC_THREAD_EVENT_ACTION)
+ }
+ else if(e->id() == KVI_DCC_THREAD_EVENT_ACTION)
{
int * act = ((KviThreadDataEvent<int> *)e)->getData();
- if(*act)startRecording();
- else stopRecording();
+ if(*act)
+ startRecording();
+ else
+ stopRecording();
delete act;
delete e;
- } else {
+ }
+ else
+ {
// Other events are senseless to us
delete e;
}
}
- if(!readWriteStep())goto exit_dcc;
- if(!videoStep())goto exit_dcc;
- if(!textStep())goto exit_dcc;
+ if(!readWriteStep())
+ goto exit_dcc;
+ if(!videoStep())
+ goto exit_dcc;
+ if(!textStep())
+ goto exit_dcc;
- usleep(FRAME_DURATION*1000);
+ usleep(FRAME_DURATION * 1000);
//qDebug("in %d out %d in_sig %d out_sig %d", m_inFrameBuffer.size(), m_outFrameBuffer.size(), m_videoInSignalBuffer.size(), m_videoOutSignalBuffer.size());
}
-
exit_dcc:
kvi_socket_close(m_fd);
m_fd = KVI_INVALID_SOCKET;
}
-DccVideoWindow::DccVideoWindow(DccDescriptor * dcc,const char * name)
-: DccWindow(KviWindow::DccVideo,name,dcc)
+DccVideoWindow::DccVideoWindow(DccDescriptor * dcc, const char * name)
+ : DccWindow(KviWindow::DccVideo, name, dcc)
{
m_pDescriptor = dcc;
m_pSlaveThread = 0;
@@ -395,7 +417,7 @@ DccVideoWindow::DccVideoWindow(DccDescriptor * dcc,const char * name)
m_pLabel = new KviThemedLabel(m_pButtonBox, this, "dcc_video_label");
m_pLabel->setText(name);
- m_pButtonBox->setStretchFactor(m_pLabel,1);
+ m_pButtonBox->setStretchFactor(m_pLabel, 1);
createTextEncodingButton(m_pButtonBox);
@@ -404,7 +426,7 @@ DccVideoWindow::DccVideoWindow(DccDescriptor * dcc,const char * name)
#endif
// Central splitter
- m_pSplitter = new KviTalSplitter(Qt::Horizontal,this);
+ m_pSplitter = new KviTalSplitter(Qt::Horizontal, this);
m_pSplitter->setObjectName("dcc_video_splitter");
m_pSplitter->setChildrenCollapsible(false);
@@ -412,9 +434,9 @@ DccVideoWindow::DccVideoWindow(DccDescriptor * dcc,const char * name)
m_pLayout = new QGridLayout(m_pContainerWidget);
m_pContainerWidget->setLayout(m_pLayout);
- m_pIrcView = new KviIrcView(this,this);
- connect(m_pIrcView,SIGNAL(rightClicked()),this,SLOT(textViewRightClicked()));
- m_pInput = new KviInput(this);
+ m_pIrcView = new KviIrcView(this, this);
+ connect(m_pIrcView, SIGNAL(rightClicked()), this, SLOT(textViewRightClicked()));
+ m_pInput = new KviInput(this);
//remote video
m_pInVideoLabel = new QLabel();
@@ -427,7 +449,7 @@ DccVideoWindow::DccVideoWindow(DccDescriptor * dcc,const char * name)
//local video
QByteArray cameraDevice;
- if (cameraDevice.isEmpty())
+ if(cameraDevice.isEmpty())
m_pCamera = new QCamera;
else
m_pCamera = new QCamera(cameraDevice);
@@ -445,39 +467,40 @@ DccVideoWindow::DccVideoWindow(DccDescriptor * dcc,const char * name)
//local video input: config
m_pVideoLabel[0] = new QLabel();
- m_pVideoLabel[0]->setText(__tr2qs_ctx("Video device:","dcc"));
+ m_pVideoLabel[0]->setText(__tr2qs_ctx("Video device:", "dcc"));
m_pLayout->addWidget(m_pVideoLabel[0], 1, 2, 1, 1);
m_pCDevices = new QComboBox();
m_pLayout->addWidget(m_pCDevices, 2, 2, 1, 1);
m_pVideoLabel[1] = new QLabel();
- m_pVideoLabel[1]->setText(__tr2qs_ctx("Input:","dcc"));
+ m_pVideoLabel[1]->setText(__tr2qs_ctx("Input:", "dcc"));
m_pLayout->addWidget(m_pVideoLabel[1], 3, 2, 1, 1);
m_pCInputs = new QComboBox();
m_pLayout->addWidget(m_pCInputs, 4, 2, 1, 1);
m_pVideoLabel[2] = new QLabel();
- m_pVideoLabel[2]->setText(__tr2qs_ctx("Standard:","dcc"));
+ m_pVideoLabel[2]->setText(__tr2qs_ctx("Standard:", "dcc"));
m_pLayout->addWidget(m_pVideoLabel[2], 5, 2, 1, 1);
m_pCStandards = new QComboBox();
m_pLayout->addWidget(m_pCStandards, 6, 2, 1, 1);
m_pLayout->addWidget(m_pIrcView, 7, 0, 1, 3);
- m_pLayout->setRowStretch(7,1);
+ m_pLayout->setRowStretch(7, 1);
- if(KVI_OPTION_BOOL(KviOption_boolAutoLogDccChat))m_pIrcView->startLogging();
+ if(KVI_OPTION_BOOL(KviOption_boolAutoLogDccChat))
+ m_pIrcView->startLogging();
- connect(&m_Timer, SIGNAL(timeout()), this, SLOT(slotUpdateImage()) );
+ connect(&m_Timer, SIGNAL(timeout()), this, SLOT(slotUpdateImage()));
m_Timer.start(FRAME_DURATION);
m_pMarshal = new DccMarshal(this);
- connect(m_pMarshal,SIGNAL(error(KviError::Code)),this,SLOT(handleMarshalError(KviError::Code)));
- connect(m_pMarshal,SIGNAL(connected()),this,SLOT(connected()));
- connect(m_pMarshal,SIGNAL(inProgress()),this,SLOT(connectionInProgress()));
+ connect(m_pMarshal, SIGNAL(error(KviError::Code)), this, SLOT(handleMarshalError(KviError::Code)));
+ connect(m_pMarshal, SIGNAL(connected()), this, SLOT(connected()));
+ connect(m_pMarshal, SIGNAL(inProgress()), this, SLOT(connectionInProgress()));
connect(m_pCDevices, SIGNAL(currentIndexChanged(int)), this, SLOT(videoInputChanged(int)));
connect(m_pCInputs, SIGNAL(currentIndexChanged(int)), this, SLOT(videoInputChanged(int)));
@@ -492,37 +515,37 @@ DccVideoWindow::~DccVideoWindow()
if(m_pInVideoLabel)
{
delete m_pInVideoLabel;
- m_pInVideoLabel=0;
+ m_pInVideoLabel = 0;
}
if(m_pCameraView)
{
delete m_pCameraView;
- m_pCameraView=0;
+ m_pCameraView = 0;
}
if(m_pCameraImage)
{
delete m_pCameraImage;
- m_pCameraImage=0;
+ m_pCameraImage = 0;
}
if(m_pCamera)
{
delete m_pCamera;
- m_pCamera=0;
+ m_pCamera = 0;
}
if(m_pCDevices)
{
delete m_pCDevices;
- m_pCDevices=0;
+ m_pCDevices = 0;
}
if(m_pCInputs)
{
delete m_pCInputs;
- m_pCInputs=0;
+ m_pCInputs = 0;
}
if(m_pCStandards)
{
delete m_pCStandards;
- m_pCStandards=0;
+ m_pCStandards = 0;
}
if(m_pVideoLabel[0])
{
@@ -536,7 +559,7 @@ DccVideoWindow::~DccVideoWindow()
if(m_pLayout)
{
delete m_pLayout;
- m_pLayout=0;
+ m_pLayout = 0;
}
g_pDccBroker->unregisterDccWindow(this);
@@ -561,31 +584,31 @@ void DccVideoWindow::resizeEvent(QResizeEvent *)
{
int iHeight = m_pInput->heightHint();
int iHeight2 = m_pButtonBox->sizeHint().height();
- m_pButtonBox->setGeometry(0,0,width(),iHeight2);
- m_pSplitter->setGeometry(0,iHeight2,width(),height() - (iHeight + iHeight2));
- m_pInput->setGeometry(0,height() - iHeight, width(),iHeight);
+ m_pButtonBox->setGeometry(0, 0, width(), iHeight2);
+ m_pSplitter->setGeometry(0, iHeight2, width(), height() - (iHeight + iHeight2));
+ m_pInput->setGeometry(0, height() - iHeight, width(), iHeight);
}
QSize DccVideoWindow::sizeHint() const
{
QSize ret(m_pSplitter->sizeHint().width(),
- m_pContainerWidget->sizeHint().height() + m_pButtonBox->sizeHint().height());
+ m_pContainerWidget->sizeHint().height() + m_pButtonBox->sizeHint().height());
return ret;
}
void DccVideoWindow::textViewRightClicked()
{
- KVS_TRIGGER_EVENT_1(KviEvent_OnDCCChatPopupRequest,this,m_pDescriptor->idString());
+ KVS_TRIGGER_EVENT_1(KviEvent_OnDCCChatPopupRequest, this, m_pDescriptor->idString());
}
void DccVideoWindow::triggerCreationEvents()
{
- KVS_TRIGGER_EVENT_1(KviEvent_OnDCCChatWindowCreated,this,m_pDescriptor->idString());
+ KVS_TRIGGER_EVENT_1(KviEvent_OnDCCChatWindowCreated, this, m_pDescriptor->idString());
}
void DccVideoWindow::triggerDestructionEvents()
{
- KVS_TRIGGER_EVENT_1(KviEvent_OnDCCChatWindowClosing,this,m_pDescriptor->idString());
+ KVS_TRIGGER_EVENT_1(KviEvent_OnDCCChatWindowClosing, this, m_pDescriptor->idString());
}
void DccVideoWindow::startConnection()
@@ -593,14 +616,16 @@ void DccVideoWindow::startConnection()
if(!(m_pDescriptor->bActive))
{
// PASSIVE CONNECTION
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Attempting a passive DCC VIDEO connection","dcc"));
- KviError::Code eError = m_pMarshal->dccListen(m_pDescriptor->szListenIp,m_pDescriptor->szListenPort,m_pDescriptor->bDoTimeout);
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Attempting a passive DCC VIDEO connection", "dcc"));
+ KviError::Code eError = m_pMarshal->dccListen(m_pDescriptor->szListenIp, m_pDescriptor->szListenPort, m_pDescriptor->bDoTimeout);
if(eError != KviError::Success)
handleMarshalError(eError);
- } else {
+ }
+ else
+ {
// ACTIVE CONNECTION
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Attempting an active DCC VIDEO connection","dcc"));
- KviError::Code eError = m_pMarshal->dccConnect(m_pDescriptor->szIp.toUtf8().data(),m_pDescriptor->szPort.toUtf8().data(),m_pDescriptor->bDoTimeout);
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Attempting an active DCC VIDEO connection", "dcc"));
+ KviError::Code eError = m_pMarshal->dccConnect(m_pDescriptor->szIp.toUtf8().data(), m_pDescriptor->szPort.toUtf8().data(), m_pDescriptor->bDoTimeout);
if(eError != KviError::Success)
handleMarshalError(eError);
}
@@ -610,29 +635,34 @@ void DccVideoWindow::connectionInProgress()
{
if(m_pDescriptor->bActive)
{
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Contacting host %Q on port %Q","dcc"),&(m_pDescriptor->szIp),&(m_pDescriptor->szPort));
- } else {
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Contacting host %Q on port %Q", "dcc"), &(m_pDescriptor->szIp), &(m_pDescriptor->szPort));
+ }
+ else
+ {
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Listening on interface %Q port %Q","dcc"),
- &(m_pMarshal->localIp()),&(m_pMarshal->localPort()));
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Listening on interface %Q port %Q", "dcc"),
+ &(m_pMarshal->localIp()), &(m_pMarshal->localPort()));
if(m_pDescriptor->bSendRequest)
{
- QString ip = !m_pDescriptor->szFakeIp.isEmpty() ? m_pDescriptor->szFakeIp : m_pDescriptor->szListenIp;
- KviCString port = !m_pDescriptor->szFakePort.isEmpty() ? m_pDescriptor->szFakePort : m_pMarshal->localPort();
-//#warning "OPTION FOR SENDING 127.0.0.1 and so on (not an unsigned nuumber)"
+ QString ip = !m_pDescriptor->szFakeIp.isEmpty() ? m_pDescriptor->szFakeIp : m_pDescriptor->szListenIp;
+ KviCString port = !m_pDescriptor->szFakePort.isEmpty() ? m_pDescriptor->szFakePort : m_pMarshal->localPort();
+ //#warning "OPTION FOR SENDING 127.0.0.1 and so on (not an unsigned nuumber)"
struct in_addr a;
- if(KviNetUtils::stringIpToBinaryIp(ip,&a)) {
+ if(KviNetUtils::stringIpToBinaryIp(ip, &a))
+ {
ip.setNum(htonl(a.s_addr));
}
m_pDescriptor->console()->connection()->sendFmtData("PRIVMSG %s :%cDCC VIDEO %s %Q %s %d%c",
- m_pDescriptor->console()->connection()->encodeText(m_pDescriptor->szNick).data(),
- 0x01,m_pDescriptor->szCodec.ptr(),
- &ip,port.ptr(),m_pDescriptor->iSampleRate,0x01);
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Sent DCC VIDEO (%s) request to %Q, waiting for the remote client to connect...","dcc"),
- m_pDescriptor->szCodec.ptr(),&(m_pDescriptor->szNick));
- } else output(KVI_OUT_DCCMSG,__tr2qs_ctx("DCC VIDEO request not sent: awaiting manual connection","dcc"));
+ m_pDescriptor->console()->connection()->encodeText(m_pDescriptor->szNick).data(),
+ 0x01, m_pDescriptor->szCodec.ptr(),
+ &ip, port.ptr(), m_pDescriptor->iSampleRate, 0x01);
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Sent DCC VIDEO (%s) request to %Q, waiting for the remote client to connect...", "dcc"),
+ m_pDescriptor->szCodec.ptr(), &(m_pDescriptor->szNick));
+ }
+ else
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("DCC VIDEO request not sent: awaiting manual connection", "dcc"));
}
}
@@ -642,20 +672,20 @@ const QString & DccVideoWindow::target()
if(!m_pszTarget)
m_pszTarget = new QString();
- m_pszTarget->sprintf("%s@%s:%s",m_pDescriptor->szNick.toUtf8().data(),m_pDescriptor->szIp.toUtf8().data(),m_pDescriptor->szPort.toUtf8().data());
+ m_pszTarget->sprintf("%s@%s:%s", m_pDescriptor->szNick.toUtf8().data(), m_pDescriptor->szIp.toUtf8().data(), m_pDescriptor->szPort.toUtf8().data());
return *m_pszTarget;
}
-void DccVideoWindow::getBaseLogFileName(QString &buffer)
+void DccVideoWindow::getBaseLogFileName(QString & buffer)
{
- buffer.sprintf("dccvideo_%s_%s_%s",m_pDescriptor->szNick.toUtf8().data(),m_pDescriptor->szLocalFileName.toUtf8().data(),m_pDescriptor->szPort.toUtf8().data());
+ buffer.sprintf("dccvideo_%s_%s_%s", m_pDescriptor->szNick.toUtf8().data(), m_pDescriptor->szLocalFileName.toUtf8().data(), m_pDescriptor->szPort.toUtf8().data());
}
void DccVideoWindow::fillCaptionBuffers()
{
- KviCString tmp(KviCString::Format,"DCC Video %s@%s:%s %s",
- m_pDescriptor->szNick.toUtf8().data(),m_pDescriptor->szIp.toUtf8().data(),m_pDescriptor->szPort.toUtf8().data(),
- m_pDescriptor->szLocalFileName.toUtf8().data());
+ KviCString tmp(KviCString::Format, "DCC Video %s@%s:%s %s",
+ m_pDescriptor->szNick.toUtf8().data(), m_pDescriptor->szIp.toUtf8().data(), m_pDescriptor->szPort.toUtf8().data(),
+ m_pDescriptor->szLocalFileName.toUtf8().data());
m_szPlainTextCaption = tmp;
}
@@ -665,17 +695,18 @@ QPixmap * DccVideoWindow::myIconPtr()
return g_pIconManager->getSmallIcon(KviIconManager::DccVoice);
}
-void DccVideoWindow::ownMessage(const QString &text, bool bUserFeedback)
+void DccVideoWindow::ownMessage(const QString & text, bool bUserFeedback)
{
if(!m_pSlaveThread)
{
- output(KVI_OUT_SYSTEMWARNING,__tr2qs_ctx("Can't send data: no active connection","dcc"));
+ output(KVI_OUT_SYSTEMWARNING, __tr2qs_ctx("Can't send data: no active connection", "dcc"));
return;
}
QByteArray szData = encodeText(text);
const char * d = szData.data();
- if(!d)return;
+ if(!d)
+ return;
#ifdef COMPILE_CRYPT_SUPPORT
if(cryptSessionInfo())
@@ -686,28 +717,28 @@ void DccVideoWindow::ownMessage(const QString &text, bool bUserFeedback)
{
KviCString encrypted;
cryptSessionInfo()->m_pEngine->setMaxEncryptLen(-1);
- switch(cryptSessionInfo()->m_pEngine->encrypt(d,encrypted))
+ switch(cryptSessionInfo()->m_pEngine->encrypt(d, encrypted))
{
case KviCryptEngine::Encrypted:
{
- KviCString buf(KviCString::Format,"%s\r\n",encrypted.ptr());
+ KviCString buf(KviCString::Format, "%s\r\n", encrypted.ptr());
m_tmpTextDataOut.append(buf.ptr(), buf.len());
if(bUserFeedback)
- g_pMainWindow->firstConsole()->outputPrivmsg(this,KVI_OUT_OWNPRIVMSGCRYPTED,
- m_pDescriptor->szLocalNick.toUtf8().data(),m_pDescriptor->szLocalUser.toUtf8().data(),
- m_pDescriptor->szLocalHost.toUtf8().data(),text,KviConsoleWindow::NoNotifications);
+ g_pMainWindow->firstConsole()->outputPrivmsg(this, KVI_OUT_OWNPRIVMSGCRYPTED,
+ m_pDescriptor->szLocalNick.toUtf8().data(), m_pDescriptor->szLocalUser.toUtf8().data(),
+ m_pDescriptor->szLocalHost.toUtf8().data(), text, KviConsoleWindow::NoNotifications);
}
break;
case KviCryptEngine::Encoded:
{
- KviCString buf(KviCString::Format,"%s\r\n",encrypted.ptr());
+ KviCString buf(KviCString::Format, "%s\r\n", encrypted.ptr());
m_tmpTextDataOut.append(buf.ptr(), buf.len());
if(bUserFeedback)
{
QString encr = decodeText(encrypted.ptr());
- g_pMainWindow->firstConsole()->outputPrivmsg(this,KVI_OUT_OWNPRIVMSG,
- m_pDescriptor->szLocalNick.toUtf8().data(),m_pDescriptor->szLocalUser.toUtf8().data(),
- m_pDescriptor->szLocalHost.toUtf8().data(),encr,KviConsoleWindow::NoNotifications);
+ g_pMainWindow->firstConsole()->outputPrivmsg(this, KVI_OUT_OWNPRIVMSG,
+ m_pDescriptor->szLocalNick.toUtf8().data(), m_pDescriptor->szLocalUser.toUtf8().data(),
+ m_pDescriptor->szLocalHost.toUtf8().data(), encr, KviConsoleWindow::NoNotifications);
}
}
break;
@@ -715,34 +746,36 @@ void DccVideoWindow::ownMessage(const QString &text, bool bUserFeedback)
{
QString szErr = cryptSessionInfo()->m_pEngine->lastError();
output(KVI_OUT_SYSTEMERROR,
- __tr2qs_ctx("The encryption engine was not able to encrypt the current message (%Q): %Q, no data was sent to the remote end","dcc"),
- &text,&szErr);
+ __tr2qs_ctx("The encryption engine was not able to encrypt the current message (%Q): %Q, no data was sent to the remote end", "dcc"),
+ &text, &szErr);
}
break;
}
return;
- } else {
+ }
+ else
+ {
d++; //eat the escape code
- KviCString buf(KviCString::Format,"%s\r\n",d);
+ KviCString buf(KviCString::Format, "%s\r\n", d);
QString tmp = text.right(text.length() - 1);
m_tmpTextDataOut.append(buf.ptr(), buf.len());
if(bUserFeedback)
- g_pMainWindow->firstConsole()->outputPrivmsg(this,KVI_OUT_OWNPRIVMSG,
- m_pDescriptor->szLocalNick.toUtf8().data(),m_pDescriptor->szLocalUser.toUtf8().data(),
- m_pDescriptor->szLocalHost.toUtf8().data(),tmp,KviConsoleWindow::NoNotifications);
+ g_pMainWindow->firstConsole()->outputPrivmsg(this, KVI_OUT_OWNPRIVMSG,
+ m_pDescriptor->szLocalNick.toUtf8().data(), m_pDescriptor->szLocalUser.toUtf8().data(),
+ m_pDescriptor->szLocalHost.toUtf8().data(), tmp, KviConsoleWindow::NoNotifications);
return;
}
}
}
#endif
- KviCString buf(KviCString::Format,"%s\r\n",d);
+ KviCString buf(KviCString::Format, "%s\r\n", d);
m_tmpTextDataOut.append(buf.ptr(), buf.len());
if(bUserFeedback)
- g_pMainWindow->firstConsole()->outputPrivmsg(this,KVI_OUT_OWNPRIVMSG,
- m_pDescriptor->szLocalNick.toUtf8().data(),m_pDescriptor->szLocalUser.toUtf8().data(),
- m_pDescriptor->szLocalHost.toUtf8().data(),text,KviConsoleWindow::NoNotifications);
+ g_pMainWindow->firstConsole()->outputPrivmsg(this, KVI_OUT_OWNPRIVMSG,
+ m_pDescriptor->szLocalNick.toUtf8().data(), m_pDescriptor->szLocalUser.toUtf8().data(),
+ m_pDescriptor->szLocalHost.toUtf8().data(), text, KviConsoleWindow::NoNotifications);
}
const QString & DccVideoWindow::localNick()
@@ -752,7 +785,7 @@ const QString & DccVideoWindow::localNick()
return m_szLocalNick;
}
-void DccVideoWindow::ownAction(const QString &text)
+void DccVideoWindow::ownAction(const QString & text)
{
if(m_pSlaveThread)
{
@@ -761,22 +794,27 @@ void DccVideoWindow::ownAction(const QString &text)
if(KVI_OPTION_BOOL(KviOption_boolStripMircColorsInUserMessages))
{
szTmpBuffer = KviControlCodes::stripControlBytes(text);
- } else {
+ }
+ else
+ {
szTmpBuffer = text;
}
QByteArray szData = encodeText(szTmpBuffer);
const char * d = szData.data();
- if(!d)return;
- KviCString buf(KviCString::Format,"%cACTION %s%c\r\n",0x01,d,0x01);
+ if(!d)
+ return;
+ KviCString buf(KviCString::Format, "%cACTION %s%c\r\n", 0x01, d, 0x01);
m_tmpTextDataOut.append(buf.ptr(), buf.len());
- output(KVI_OUT_ACTION,"%Q %Q",&(m_pDescriptor->szLocalNick),&szTmpBuffer);
- } else {
- output(KVI_OUT_SYSTEMWARNING,__tr2qs_ctx("Can't send data: no active connection","dcc"));
+ output(KVI_OUT_ACTION, "%Q %Q", &(m_pDescriptor->szLocalNick), &szTmpBuffer);
+ }
+ else
+ {
+ output(KVI_OUT_SYSTEMWARNING, __tr2qs_ctx("Can't send data: no active connection", "dcc"));
}
}
-bool DccVideoWindow::event(QEvent *e)
+bool DccVideoWindow::event(QEvent * e)
{
if(e->type() == KVI_THREAD_EVENT)
{
@@ -786,7 +824,7 @@ bool DccVideoWindow::event(QEvent *e)
{
KviError::Code * pError = ((KviThreadDataEvent<KviError::Code> *)e)->getData();
QString ssss = KviError::getDescription(*pError);
- output(KVI_OUT_DCCERROR,__tr2qs_ctx("ERROR: %Q","dcc"),&(ssss));
+ output(KVI_OUT_DCCERROR, __tr2qs_ctx("ERROR: %Q", "dcc"), &(ssss));
delete pError;
return true;
}
@@ -794,16 +832,16 @@ bool DccVideoWindow::event(QEvent *e)
case KVI_DCC_THREAD_EVENT_DATA:
{
KviCString * encoded = ((KviThreadDataEvent<KviCString> *)e)->getData();
- KviCString d=KviCString(decodeText(encoded->ptr()));
+ KviCString d = KviCString(decodeText(encoded->ptr()));
if(d.firstCharIs(0x01))
{
d.cutLeft(1);
if(d.lastCharIs(0x01))
d.cutRight(1);
- if(kvi_strEqualCIN("ACTION",d.ptr(),6))
+ if(kvi_strEqualCIN("ACTION", d.ptr(), 6))
d.cutLeft(6);
d.stripLeftWhiteSpace();
- output(KVI_OUT_ACTION,"%Q %s",&(m_pDescriptor->szNick),d.ptr());
+ output(KVI_OUT_ACTION, "%Q %s", &(m_pDescriptor->szNick), d.ptr());
if(!hasAttention(KviWindow::MainWindowIsVisible))
{
if(KVI_OPTION_BOOL(KviOption_boolFlashDccChatWindowOnNewMessages))
@@ -817,10 +855,12 @@ bool DccVideoWindow::event(QEvent *e)
szMsg += "</b> ";
szMsg += KviQString::toHtmlEscaped(QString(d.ptr()));
//qDebug("KviIrcServerParser_ctcp.cpp:975 debug: %s",szMsg.data());
- g_pApp->notifierMessage(this,KVI_OPTION_MSGTYPE(KVI_OUT_ACTION).pixId(),szMsg,KVI_OPTION_UINT(KviOption_uintNotifierAutoHideTime));
+ g_pApp->notifierMessage(this, KVI_OPTION_MSGTYPE(KVI_OUT_ACTION).pixId(), szMsg, KVI_OPTION_UINT(KviOption_uintNotifierAutoHideTime));
}
}
- } else {
+ }
+ else
+ {
#ifdef COMPILE_CRYPT_SUPPORT
if(KviCryptSessionInfo * cinf = cryptSessionInfo())
@@ -828,39 +868,41 @@ bool DccVideoWindow::event(QEvent *e)
if(cinf->m_bDoDecrypt)
{
KviCString decryptedStuff;
- switch(cinf->m_pEngine->decrypt(d.ptr(),decryptedStuff))
+ switch(cinf->m_pEngine->decrypt(d.ptr(), decryptedStuff))
{
case KviCryptEngine::DecryptOkWasEncrypted:
case KviCryptEngine::DecryptOkWasEncoded:
case KviCryptEngine::DecryptOkWasPlainText:
- if(!KVS_TRIGGER_EVENT_2_HALTED(KviEvent_OnDCCChatMessage,this,QString(decryptedStuff.ptr()),m_pDescriptor->idString()))
+ if(!KVS_TRIGGER_EVENT_2_HALTED(KviEvent_OnDCCChatMessage, this, QString(decryptedStuff.ptr()), m_pDescriptor->idString()))
{
- g_pMainWindow->firstConsole()->outputPrivmsg(this,KVI_OUT_DCCCHATMSG,
- m_pDescriptor->szNick.toUtf8().data(),m_pDescriptor->szUser.toUtf8().data(),
- m_pDescriptor->szHost.toUtf8().data(),decryptedStuff.ptr());
+ g_pMainWindow->firstConsole()->outputPrivmsg(this, KVI_OUT_DCCCHATMSG,
+ m_pDescriptor->szNick.toUtf8().data(), m_pDescriptor->szUser.toUtf8().data(),
+ m_pDescriptor->szHost.toUtf8().data(), decryptedStuff.ptr());
}
delete encoded;
return true;
- break;
+ break;
default: // also case KviCryptEngine::DecryptError
{
QString szErr = cinf->m_pEngine->lastError();
output(KVI_OUT_SYSTEMERROR,
- __tr2qs_ctx("The following message appears to be encrypted, but the encryption engine failed to decode it: %Q","dcc"),
- &szErr);
+ __tr2qs_ctx("The following message appears to be encrypted, but the encryption engine failed to decode it: %Q", "dcc"),
+ &szErr);
}
break;
}
}
- } else {
+ }
+ else
+ {
#endif
// FIXME!
- if(!KVS_TRIGGER_EVENT_2_HALTED(KviEvent_OnDCCChatMessage,this,QString(d.ptr()),m_pDescriptor->idString()))
+ if(!KVS_TRIGGER_EVENT_2_HALTED(KviEvent_OnDCCChatMessage, this, QString(d.ptr()), m_pDescriptor->idString()))
{
- g_pMainWindow->firstConsole()->outputPrivmsg(this,KVI_OUT_DCCCHATMSG,
- m_pDescriptor->szNick.toUtf8().data(),m_pDescriptor->szUser.toUtf8().data(),
- m_pDescriptor->szHost.toUtf8().data(),d.ptr());
+ g_pMainWindow->firstConsole()->outputPrivmsg(this, KVI_OUT_DCCCHATMSG,
+ m_pDescriptor->szNick.toUtf8().data(), m_pDescriptor->szUser.toUtf8().data(),
+ m_pDescriptor->szHost.toUtf8().data(), d.ptr());
if(!hasAttention(KviWindow::MainWindowIsVisible))
{
if(KVI_OPTION_BOOL(KviOption_boolFlashDccChatWindowOnNewMessages))
@@ -870,7 +912,7 @@ bool DccVideoWindow::event(QEvent *e)
if(KVI_OPTION_BOOL(KviOption_boolPopupNotifierOnNewDccChatMessages))
{
QString szMsg = KviQString::toHtmlEscaped(QString(d.ptr()));
- g_pApp->notifierMessage(this,KviIconManager::DccChatMsg,szMsg,KVI_OPTION_UINT(KviOption_uintNotifierAutoHideTime));
+ g_pApp->notifierMessage(this, KviIconManager::DccChatMsg, szMsg, KVI_OPTION_UINT(KviOption_uintNotifierAutoHideTime));
}
}
}
@@ -885,7 +927,7 @@ bool DccVideoWindow::event(QEvent *e)
case KVI_DCC_THREAD_EVENT_MESSAGE:
{
KviCString * str = ((KviThreadDataEvent<KviCString> *)e)->getData();
- outputNoFmt(KVI_OUT_DCCMSG,__tr_no_xgettext_ctx(str->ptr(),"dcc"));
+ outputNoFmt(KVI_OUT_DCCMSG, __tr_no_xgettext_ctx(str->ptr(), "dcc"));
delete str;
return true;
}
@@ -896,31 +938,29 @@ bool DccVideoWindow::event(QEvent *e)
switch(*act)
{
case KVI_DCC_VIDEO_THREAD_ACTION_START_RECORDING:
-// m_pRecordingLabel->setEnabled(true);
- break;
+ // m_pRecordingLabel->setEnabled(true);
+ break;
case KVI_DCC_VIDEO_THREAD_ACTION_STOP_RECORDING:
-// m_pRecordingLabel->setEnabled(false);
- break;
+ // m_pRecordingLabel->setEnabled(false);
+ break;
case KVI_DCC_VIDEO_THREAD_ACTION_START_PLAYING:
-// m_pPlayingLabel->setEnabled(true);
- break;
+ // m_pPlayingLabel->setEnabled(true);
+ break;
case KVI_DCC_VIDEO_THREAD_ACTION_STOP_PLAYING:
-// m_pPlayingLabel->setEnabled(false);
- break;
+ // m_pPlayingLabel->setEnabled(false);
+ break;
case KVI_DCC_VIDEO_THREAD_ACTION_GRAB_FRAME:
- m_pCameraView->render( m_pCameraImage );
- break;
-
+ m_pCameraView->render(m_pCameraImage);
+ break;
}
delete act;
return true;
}
break;
default:
- qDebug("Invalid event type %d received",((KviThreadEvent *)e)->id());
- break;
+ qDebug("Invalid event type %d received", ((KviThreadEvent *)e)->id());
+ break;
}
-
}
return KviWindow::event(e);
@@ -929,18 +969,18 @@ bool DccVideoWindow::event(QEvent *e)
void DccVideoWindow::handleMarshalError(KviError::Code eError)
{
QString ssss = KviError::getDescription(eError);
- output(KVI_OUT_DCCERROR,__tr2qs_ctx("DCC Failed: %Q","dcc"),&ssss);
+ output(KVI_OUT_DCCERROR, __tr2qs_ctx("DCC Failed: %Q", "dcc"), &ssss);
}
void DccVideoWindow::connected()
{
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Connected to %Q:%Q","dcc"),
- &(m_pMarshal->remoteIp()),&(m_pMarshal->remotePort()));
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Local end is %Q:%Q","dcc"),
- &(m_pMarshal->localIp()),&(m_pMarshal->localPort()));
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Connected to %Q:%Q", "dcc"),
+ &(m_pMarshal->remoteIp()), &(m_pMarshal->remotePort()));
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Local end is %Q:%Q", "dcc"),
+ &(m_pMarshal->localIp()), &(m_pMarshal->localPort()));
if(!(m_pDescriptor->bActive))
{
- m_pDescriptor->szIp = m_pMarshal->remoteIp();
+ m_pDescriptor->szIp = m_pMarshal->remoteIp();
m_pDescriptor->szPort = m_pMarshal->remotePort();
m_pDescriptor->szHost = m_pMarshal->remoteIp();
}
@@ -950,10 +990,10 @@ void DccVideoWindow::connected()
opt->pCodec = kvi_dcc_video_get_codec(m_pDescriptor->szCodec.ptr());
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Actual codec used is '%s'","dcc"),opt->pCodec->name());
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Actual codec used is '%s'", "dcc"), opt->pCodec->name());
- m_pSlaveThread = new DccVideoThread(this,m_pMarshal->releaseSocket(),opt);
-/*
+ m_pSlaveThread = new DccVideoThread(this, m_pMarshal->releaseSocket(), opt);
+ /*
#ifndef COMPILE_DISABLE_DCC_VIDEO
if(g_pVideoDevicePool)
{
@@ -985,8 +1025,10 @@ void DccVideoWindow::startTalking()
void DccVideoWindow::startOrStopTalking(bool bStart)
{
- if(bStart)startTalking();
- else stopTalking();
+ if(bStart)
+ startTalking();
+ else
+ stopTalking();
}
void DccVideoWindow::slotUpdateImage()
@@ -997,9 +1039,9 @@ void DccVideoWindow::slotUpdateImage()
}
}
-void DccVideoWindow::videoInputChanged(int )
+void DccVideoWindow::videoInputChanged(int)
{
-// FIXME this currently leads to a segfault
-// if(m_pSlaveThread)
-// m_pSlaveThread->restartRecording(m_pCDevices->currentIndex(), m_pCInputs->currentIndex(), m_pCStandards->currentIndex());
+ // FIXME this currently leads to a segfault
+ // if(m_pSlaveThread)
+ // m_pSlaveThread->restartRecording(m_pCDevices->currentIndex(), m_pCInputs->currentIndex(), m_pCStandards->currentIndex());
}
diff --git a/src/modules/dcc/DccVideoWindow.h b/src/modules/dcc/DccVideoWindow.h
index 8f7e846c7..eca3ed97f 100644
--- a/src/modules/dcc/DccVideoWindow.h
+++ b/src/modules/dcc/DccVideoWindow.h
@@ -48,14 +48,14 @@
#include <QCameraViewfinder>
#ifdef COMPILE_CRYPT_SUPPORT
- class KviCryptSessionInfo;
+class KviCryptSessionInfo;
#endif
class QSlider;
class DccMarshal;
#ifndef _DCC_VIDEO_CPP_
- extern bool kvi_dcc_video_is_valid_codec(const char * codecName);
+extern bool kvi_dcc_video_is_valid_codec(const char * codecName);
#endif
#define KVI_DCC_VIDEO_THREAD_ACTION_START_RECORDING 0
@@ -66,29 +66,33 @@ class DccMarshal;
typedef struct _KviDccVideoThreadOptions
{
- QString szVideoDevice;
+ QString szVideoDevice;
DccVideoCodec * pCodec;
} KviDccVideoThreadOptions;
class DccVideoThread : public DccThread
{
friend class DccVideoWindow;
+
public:
- DccVideoThread(KviWindow * wnd,kvi_socket_t fd,KviDccVideoThreadOptions * opt);
+ DccVideoThread(KviWindow * wnd, kvi_socket_t fd, KviDccVideoThreadOptions * opt);
~DccVideoThread();
+
protected:
KviDccVideoThreadOptions * m_pOpt;
- KviDataBuffer m_outFrameBuffer;
- KviDataBuffer m_inFrameBuffer;
- KviDataBuffer m_videoInSignalBuffer;
- KviDataBuffer m_textInSignalBuffer;
- KviDataBuffer m_videoOutSignalBuffer;
- KviDataBuffer m_textOutSignalBuffer;
- bool m_bPlaying;
- bool m_bRecording;
+ KviDataBuffer m_outFrameBuffer;
+ KviDataBuffer m_inFrameBuffer;
+ KviDataBuffer m_videoInSignalBuffer;
+ KviDataBuffer m_textInSignalBuffer;
+ KviDataBuffer m_videoOutSignalBuffer;
+ KviDataBuffer m_textOutSignalBuffer;
+ bool m_bPlaying;
+ bool m_bRecording;
+
protected:
- QImage m_inImage;
- QImage m_outImage;
+ QImage m_inImage;
+ QImage m_outImage;
+
protected:
bool readWriteStep();
bool videoStep();
@@ -100,48 +104,50 @@ protected:
void stopPlaying();
inline bool isPlaying() { return m_bPlaying; };
virtual void run();
- virtual bool handleIncomingData(KviDccThreadIncomingData *data,bool bCritical);
+ virtual bool handleIncomingData(KviDccThreadIncomingData * data, bool bCritical);
};
-
class DccVideoWindow : public DccWindow
{
Q_OBJECT
friend class DccVideoThread;
+
public:
- DccVideoWindow(DccDescriptor * dcc,const char * name);
+ DccVideoWindow(DccDescriptor * dcc, const char * name);
~DccVideoWindow();
+
protected:
- KviThemedLabel * m_pLabel;
- QWidget * m_pContainerWidget;
- QImage * m_pCameraImage;
- QCameraViewfinder * m_pCameraView;
- QCamera * m_pCamera;
- QLabel * m_pInVideoLabel;
- QComboBox * m_pCDevices;
- QComboBox * m_pCInputs;
- QComboBox * m_pCStandards;
- QGridLayout * m_pLayout;
- QTimer m_Timer;
- QLabel * m_pVideoLabel[3];
- QString * m_pszTarget;
- DccVideoThread * m_pSlaveThread;
- QByteArray m_tmpTextDataOut;
- QString m_szLocalNick;
+ KviThemedLabel * m_pLabel;
+ QWidget * m_pContainerWidget;
+ QImage * m_pCameraImage;
+ QCameraViewfinder * m_pCameraView;
+ QCamera * m_pCamera;
+ QLabel * m_pInVideoLabel;
+ QComboBox * m_pCDevices;
+ QComboBox * m_pCInputs;
+ QComboBox * m_pCStandards;
+ QGridLayout * m_pLayout;
+ QTimer m_Timer;
+ QLabel * m_pVideoLabel[3];
+ QString * m_pszTarget;
+ DccVideoThread * m_pSlaveThread;
+ QByteArray m_tmpTextDataOut;
+ QString m_szLocalNick;
+
protected:
virtual void triggerCreationEvents();
virtual void triggerDestructionEvents();
virtual const QString & target();
virtual void fillCaptionBuffers();
virtual QPixmap * myIconPtr();
- virtual bool event(QEvent *e);
- virtual void getBaseLogFileName(QString &buffer);
+ virtual bool event(QEvent * e);
+ virtual void getBaseLogFileName(QString & buffer);
void startTalking();
void stopTalking();
void startConnection();
virtual const QString & localNick();
- virtual void ownMessage(const QString &text, bool bUserFeedback = true);
- virtual void ownAction(const QString &text);
+ virtual void ownMessage(const QString & text, bool bUserFeedback = true);
+ virtual void ownAction(const QString & text);
virtual void resizeEvent(QResizeEvent *);
virtual QSize sizeHint() const;
protected slots:
@@ -151,8 +157,7 @@ protected slots:
void connectionInProgress();
void slotUpdateImage();
void textViewRightClicked();
- void videoInputChanged(int );
+ void videoInputChanged(int);
};
-
#endif //_VIDEO_H_
diff --git a/src/modules/dcc/DccVoiceAdpcmCodec.cpp b/src/modules/dcc/DccVoiceAdpcmCodec.cpp
index 2ac4f4156..70f2cb227 100644
--- a/src/modules/dcc/DccVoiceAdpcmCodec.cpp
+++ b/src/modules/dcc/DccVoiceAdpcmCodec.cpp
@@ -56,11 +56,9 @@
#include <stdio.h> /*DBG*/
#ifndef __STDC__
- #define signed
+#define signed
#endif
-
-
#define ADPCM_PACKED_FRAME_SIZE_IN_BYTES 512
#define ADPCM_UNPACKED_FRAME_SIZE_IN_BYTES 2048
#define ADPCM_UNPACKED_FRAME_SIZE_IN_SHORTS 1024
@@ -83,10 +81,10 @@ static int stepsizeTable[89] = {
15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767
};
-void ADPCM_compress(short indata[],char outdata[],int len,ADPCM_state *state)
+void ADPCM_compress(short indata[], char outdata[], int len, ADPCM_state * state)
{
- short *lpIn; /* Input buffer pointer */
- signed char *lpOut; /* output buffer pointer */
+ short * lpIn; /* Input buffer pointer */
+ signed char * lpOut; /* output buffer pointer */
int val; /* Current input sample value */
int sign; /* Current adpcm sign bit */
int delta; /* Current adpcm output value */
@@ -96,10 +94,10 @@ void ADPCM_compress(short indata[],char outdata[],int len,ADPCM_state *state)
int vpdiff; /* Current change to valpred */
int index; /* Current step change index */
int outputbuffer = 0; /* place to keep previous 4-bit value */
- int bufferstep; /* toggle between outputbuffer/output */
+ int bufferstep; /* toggle between outputbuffer/output */
lpOut = (signed char *)outdata;
- lpIn = indata;
+ lpIn = indata;
valpred = state->valprev;
index = state->index;
@@ -107,12 +105,14 @@ void ADPCM_compress(short indata[],char outdata[],int len,ADPCM_state *state)
bufferstep = 1;
- for ( ;len > 0;len-- ) {
+ for(; len > 0; len--)
+ {
val = *lpIn++;
// Step 1 - compute difference with previous value
diff = val - valpred;
sign = (diff < 0) ? 8 : 0;
- if(sign)diff=(-diff);
+ if(sign)
+ diff = (-diff);
// Step 2 - Divide and clamp
// Note:
// This code *approximately* computes:
@@ -124,57 +124,69 @@ void ADPCM_compress(short indata[],char outdata[],int len,ADPCM_state *state)
//
delta = 0;
vpdiff = (step >> 3);
- if (diff >=step){
+ if(diff >= step)
+ {
delta = 4;
diff -= step;
vpdiff += step;
}
step >>= 1;
- if (diff >= step) {
+ if(diff >= step)
+ {
delta |= 2;
diff -= step;
vpdiff += step;
}
step >>= 1;
- if ( diff >= step ) {
+ if(diff >= step)
+ {
delta |= 1;
vpdiff += step;
}
// Step 3 - Update previous value
- if(sign)valpred -= vpdiff;
- else valpred += vpdiff;
+ if(sign)
+ valpred -= vpdiff;
+ else
+ valpred += vpdiff;
// Step 4 - Clamp previous value to 16 bits
- if ( valpred > 32767 )valpred = 32767;
- else if ( valpred < -32768 )valpred = -32768;
+ if(valpred > 32767)
+ valpred = 32767;
+ else if(valpred < -32768)
+ valpred = -32768;
// Step 5 - Assemble value, update index and step values
delta |= sign;
index += indexTable[delta];
- if ( index < 0 ) index = 0;
- if ( index > 88 ) index = 88;
+ if(index < 0)
+ index = 0;
+ if(index > 88)
+ index = 88;
step = stepsizeTable[index];
// Step 6 - Output value
- if ( bufferstep )outputbuffer = (delta << 4) & 0xf0;
- else *lpOut++ = (delta & 0x0f) | outputbuffer;
+ if(bufferstep)
+ outputbuffer = (delta << 4) & 0xf0;
+ else
+ *lpOut++ = (delta & 0x0f) | outputbuffer;
bufferstep = !bufferstep;
}
// Output last step, if needed
- if (!bufferstep)*lpOut++ = outputbuffer;
+ if(!bufferstep)
+ *lpOut++ = outputbuffer;
state->valprev = valpred;
state->index = index;
}
-void ADPCM_uncompress(char indata[],short outdata[],int len,ADPCM_state *state)
+void ADPCM_uncompress(char indata[], short outdata[], int len, ADPCM_state * state)
{
- signed char *inp; /* Input buffer pointer */
- short *outp; /* output buffer pointer */
- int sign; /* Current adpcm sign bit */
- int delta; /* Current adpcm output value */
- int step; /* Stepsize */
- int valpred; /* Predicted value */
- int vpdiff; /* Current change to valpred */
- int index; /* Current step change index */
- int inputbuffer=0; /* place to keep next 4-bit value */
- int bufferstep; /* toggle between inputbuffer/input */
+ signed char * inp; /* Input buffer pointer */
+ short * outp; /* output buffer pointer */
+ int sign; /* Current adpcm sign bit */
+ int delta; /* Current adpcm output value */
+ int step; /* Stepsize */
+ int valpred; /* Predicted value */
+ int vpdiff; /* Current change to valpred */
+ int index; /* Current step change index */
+ int inputbuffer = 0; /* place to keep next 4-bit value */
+ int bufferstep; /* toggle between inputbuffer/input */
outp = outdata;
inp = (signed char *)indata;
@@ -185,10 +197,13 @@ void ADPCM_uncompress(char indata[],short outdata[],int len,ADPCM_state *state)
bufferstep = 0;
- for ( ; len > 0 ; len-- ) {
+ for(; len > 0; len--)
+ {
/* Step 1 - get the delta value */
- if ( bufferstep )delta = inputbuffer & 0xf;
- else {
+ if(bufferstep)
+ delta = inputbuffer & 0xf;
+ else
+ {
inputbuffer = *inp++;
delta = (inputbuffer >> 4) & 0xf;
}
@@ -196,8 +211,10 @@ void ADPCM_uncompress(char indata[],short outdata[],int len,ADPCM_state *state)
/* Step 2 - Find new index value (for later) */
index += indexTable[delta];
- if ( index < 0 ) index = 0;
- if ( index > 88 ) index = 88;
+ if(index < 0)
+ index = 0;
+ if(index > 88)
+ index = 88;
/* Step 3 - Separate sign and magnitude */
sign = delta & 8;
@@ -209,16 +226,23 @@ void ADPCM_uncompress(char indata[],short outdata[],int len,ADPCM_state *state)
** in adpcm_coder.
*/
vpdiff = step >> 3;
- if( delta & 4 )vpdiff += step;
- if( delta & 2 )vpdiff += step>>1;
- if( delta & 1 )vpdiff += step>>2;
+ if(delta & 4)
+ vpdiff += step;
+ if(delta & 2)
+ vpdiff += step >> 1;
+ if(delta & 1)
+ vpdiff += step >> 2;
- if(sign)valpred -= vpdiff;
- else valpred += vpdiff;
+ if(sign)
+ valpred -= vpdiff;
+ else
+ valpred += vpdiff;
/* Step 5 - clamp output value */
- if(valpred > 32767)valpred = 32767;
- else if(valpred < -32768)valpred = -32768;
+ if(valpred > 32767)
+ valpred = 32767;
+ else if(valpred < -32768)
+ valpred = -32768;
/* Step 6 - Update step value */
step = stepsizeTable[index];
@@ -231,9 +255,8 @@ void ADPCM_uncompress(char indata[],short outdata[],int len,ADPCM_state *state)
state->index = index;
}
-
DccVoiceAdpcmCodec::DccVoiceAdpcmCodec()
-: DccVoiceCodec()
+ : DccVoiceCodec()
{
m_pEncodeState = new ADPCM_state;
m_pEncodeState->index = 0;
@@ -250,9 +273,10 @@ DccVoiceAdpcmCodec::~DccVoiceAdpcmCodec()
delete m_pDecodeState;
}
-void DccVoiceAdpcmCodec::encode(KviDataBuffer * signal,KviDataBuffer * stream)
+void DccVoiceAdpcmCodec::encode(KviDataBuffer * signal, KviDataBuffer * stream)
{
- if(signal->size() < ADPCM_UNPACKED_FRAME_SIZE_IN_BYTES)return; // nothing to encode
+ if(signal->size() < ADPCM_UNPACKED_FRAME_SIZE_IN_BYTES)
+ return; // nothing to encode
char * ptr = (char *)signal->data();
@@ -265,16 +289,17 @@ void DccVoiceAdpcmCodec::encode(KviDataBuffer * signal,KviDataBuffer * stream)
while(ptr != endPtr)
{
- ADPCM_compress((short *)ptr,(char *)(stream->data() + uFrameOffset),ADPCM_UNPACKED_FRAME_SIZE_IN_SHORTS,m_pEncodeState);
+ ADPCM_compress((short *)ptr, (char *)(stream->data() + uFrameOffset), ADPCM_UNPACKED_FRAME_SIZE_IN_SHORTS, m_pEncodeState);
ptr += ADPCM_UNPACKED_FRAME_SIZE_IN_BYTES;
uFrameOffset += ADPCM_PACKED_FRAME_SIZE_IN_BYTES;
}
signal->remove(uTotalDataCompressed);
}
-void DccVoiceAdpcmCodec::decode(KviDataBuffer * stream,KviDataBuffer * signal)
+void DccVoiceAdpcmCodec::decode(KviDataBuffer * stream, KviDataBuffer * signal)
{
- if(stream->size() < ADPCM_PACKED_FRAME_SIZE_IN_BYTES)return; // nothing to decode
+ if(stream->size() < ADPCM_PACKED_FRAME_SIZE_IN_BYTES)
+ return; // nothing to decode
char * ptr = (char *)stream->data();
@@ -288,7 +313,7 @@ void DccVoiceAdpcmCodec::decode(KviDataBuffer * stream,KviDataBuffer * signal)
while(ptr != endPtr)
{
- ADPCM_uncompress((char *)ptr,(short *)(signal->data() + uSignalOffset),ADPCM_UNPACKED_FRAME_SIZE_IN_SHORTS,m_pDecodeState);
+ ADPCM_uncompress((char *)ptr, (short *)(signal->data() + uSignalOffset), ADPCM_UNPACKED_FRAME_SIZE_IN_SHORTS, m_pDecodeState);
ptr += ADPCM_PACKED_FRAME_SIZE_IN_BYTES;
uSignalOffset += ADPCM_UNPACKED_FRAME_SIZE_IN_BYTES;
}
diff --git a/src/modules/dcc/DccVoiceAdpcmCodec.h b/src/modules/dcc/DccVoiceAdpcmCodec.h
index 4e9ece4ff..e437c18b5 100644
--- a/src/modules/dcc/DccVoiceAdpcmCodec.h
+++ b/src/modules/dcc/DccVoiceAdpcmCodec.h
@@ -50,24 +50,24 @@
typedef struct adpcm_state
{
short valprev; /* Previous output value */
- char index; /* HelpIndex into stepsize table */
+ char index; /* HelpIndex into stepsize table */
} ADPCM_state;
-
class DccVoiceAdpcmCodec : public DccVoiceCodec
{
public:
DccVoiceAdpcmCodec();
virtual ~DccVoiceAdpcmCodec();
+
private:
ADPCM_state * m_pEncodeState;
ADPCM_state * m_pDecodeState;
+
public:
- virtual void encode(KviDataBuffer * signal,KviDataBuffer * stream);
- virtual void decode(KviDataBuffer * stream,KviDataBuffer * signal);
+ virtual void encode(KviDataBuffer * signal, KviDataBuffer * stream);
+ virtual void decode(KviDataBuffer * stream, KviDataBuffer * signal);
virtual int encodedFrameSize();
virtual int decodedFrameSize();
};
-
#endif //_ADPCMCODEC_H_
diff --git a/src/modules/dcc/DccVoiceCodec.cpp b/src/modules/dcc/DccVoiceCodec.cpp
index 0784c54b3..57be1681e 100644
--- a/src/modules/dcc/DccVoiceCodec.cpp
+++ b/src/modules/dcc/DccVoiceCodec.cpp
@@ -24,7 +24,6 @@
#include "DccVoiceCodec.h"
-
#include <QImage>
#include <QByteArray>
#include <QBuffer>
@@ -37,11 +36,11 @@ DccVoiceCodec::~DccVoiceCodec()
{
}
-void DccVoiceCodec::encode(KviDataBuffer *,KviDataBuffer *)
+void DccVoiceCodec::encode(KviDataBuffer *, KviDataBuffer *)
{
}
-void DccVoiceCodec::decode(KviDataBuffer *,KviDataBuffer *)
+void DccVoiceCodec::decode(KviDataBuffer *, KviDataBuffer *)
{
}
@@ -61,7 +60,7 @@ const char * DccVoiceCodec::name()
}
DccVoiceNullCodec::DccVoiceNullCodec()
-: DccVoiceCodec()
+ : DccVoiceCodec()
{
m_szName = "null (no compression)";
}
@@ -70,17 +69,19 @@ DccVoiceNullCodec::~DccVoiceNullCodec()
{
}
-void DccVoiceNullCodec::encode(KviDataBuffer * signal,KviDataBuffer * stream)
+void DccVoiceNullCodec::encode(KviDataBuffer * signal, KviDataBuffer * stream)
{
- if(signal->size() < 1)return;
- stream->append(signal->data(),signal->size());
+ if(signal->size() < 1)
+ return;
+ stream->append(signal->data(), signal->size());
signal->resize(0);
}
-void DccVoiceNullCodec::decode(KviDataBuffer * stream,KviDataBuffer * signal)
+void DccVoiceNullCodec::decode(KviDataBuffer * stream, KviDataBuffer * signal)
{
- if(stream->size() < 1)return;
- signal->append(stream->data(),stream->size());
+ if(stream->size() < 1)
+ return;
+ signal->append(stream->data(), stream->size());
stream->resize(0);
}
@@ -105,15 +106,15 @@ DccVideoCodec::~DccVideoCodec()
{
}
-void DccVideoCodec::encodeVideo(KviDataBuffer *,KviDataBuffer *)
+void DccVideoCodec::encodeVideo(KviDataBuffer *, KviDataBuffer *)
{
}
-void DccVideoCodec::encodeText(KviDataBuffer *,KviDataBuffer *)
+void DccVideoCodec::encodeText(KviDataBuffer *, KviDataBuffer *)
{
}
-void DccVideoCodec::decode(KviDataBuffer *,KviDataBuffer *,KviDataBuffer *)
+void DccVideoCodec::decode(KviDataBuffer *, KviDataBuffer *, KviDataBuffer *)
{
}
@@ -133,7 +134,7 @@ const char * DccVideoCodec::name()
}
DccVideoSJpegCodec::DccVideoSJpegCodec()
-: DccVideoCodec()
+ : DccVideoCodec()
{
m_szName = "sjpeg";
}
@@ -142,10 +143,11 @@ DccVideoSJpegCodec::~DccVideoSJpegCodec()
{
}
-void DccVideoSJpegCodec::encodeVideo(KviDataBuffer * videoSignal,KviDataBuffer * stream)
+void DccVideoSJpegCodec::encodeVideo(KviDataBuffer * videoSignal, KviDataBuffer * stream)
{
- if(videoSignal->size() < 1) return;
+ if(videoSignal->size() < 1)
+ return;
QImage img(videoSignal->data(), 320, 240, 1280, QImage::Format_ARGB32);
QByteArray ba;
@@ -157,65 +159,67 @@ void DccVideoSJpegCodec::encodeVideo(KviDataBuffer * videoSignal,KviDataBuffer *
img.save(&buffer, "JPEG", 20);
if(ba.size() > 0)
{
- stream->append((const unsigned char*)ba.data(),ba.size());
- }
+ stream->append((const unsigned char *)ba.data(), ba.size());
+ }
videoSignal->clear();
}
void DccVideoSJpegCodec::encodeText(KviDataBuffer * textSignal, KviDataBuffer * stream)
{
- static unsigned const char *irct_magic_init = (unsigned const char*) "\0<text>\0";
- static unsigned const char *irct_magic_end = (unsigned const char*) "\0</text>\0";
+ static unsigned const char * irct_magic_init = (unsigned const char *)"\0<text>\0";
+ static unsigned const char * irct_magic_end = (unsigned const char *)"\0</text>\0";
- qDebug("encodeText %s %d",textSignal->data(), textSignal->size());
- if(textSignal->size() < 1) return;
- stream->append(irct_magic_init,8);
- stream->append((const unsigned char*)textSignal->data(),textSignal->size());
- stream->append(irct_magic_end,9);
+ qDebug("encodeText %s %d", textSignal->data(), textSignal->size());
+ if(textSignal->size() < 1)
+ return;
+ stream->append(irct_magic_init, 8);
+ stream->append((const unsigned char *)textSignal->data(), textSignal->size());
+ stream->append(irct_magic_end, 9);
textSignal->clear();
return;
}
-void DccVideoSJpegCodec::decode(KviDataBuffer * stream,KviDataBuffer * videoSignal,KviDataBuffer * textSignal)
+void DccVideoSJpegCodec::decode(KviDataBuffer * stream, KviDataBuffer * videoSignal, KviDataBuffer * textSignal)
{
- static unsigned const char jpg_magic_init[4] = { 0xFF, 0xD8, 0xFF, 0xE0}; //SOI + APP0
- static unsigned const char jpg_magic_end[2] = { 0xFF, 0xD9}; //EOI
-
- static unsigned const char *irct_magic_init = (unsigned const char*) "\0<text>\0";
- static unsigned const char *irct_magic_end = (unsigned const char*) "\0</text>\0";
+ static unsigned const char jpg_magic_init[4] = { 0xFF, 0xD8, 0xFF, 0xE0 }; //SOI + APP0
+ static unsigned const char jpg_magic_end[2] = { 0xFF, 0xD9 }; //EOI
- if(stream->size() < 1)return;
+ static unsigned const char * irct_magic_init = (unsigned const char *)"\0<text>\0";
+ static unsigned const char * irct_magic_end = (unsigned const char *)"\0</text>\0";
+ if(stream->size() < 1)
+ return;
int txtStart = stream->find(irct_magic_init, 8);
int txtEnd = stream->find(irct_magic_end, 9);
int jpgStart = stream->find(jpg_magic_init, 4);
- if(txtStart!=-1 && txtEnd !=-1 && txtStart<jpgStart)
+ if(txtStart != -1 && txtEnd != -1 && txtStart < jpgStart)
{
- qDebug("a txtStart %d txtEnd %d",txtStart,txtEnd);
- stream->remove(txtStart+8);
- int len = txtEnd - txtStart -8; //-8 irct_magic_init
- if(len>0)
+ qDebug("a txtStart %d txtEnd %d", txtStart, txtEnd);
+ stream->remove(txtStart + 8);
+ int len = txtEnd - txtStart - 8; //-8 irct_magic_init
+ if(len > 0)
{
textSignal->append(stream->data(), len);
- char*txt=(char*)malloc(len+1);
- memcpy(txt,stream->data(), len);
- txt[len]='\0';
- qDebug("a recv |%s| %d",txt,len);
+ char * txt = (char *)malloc(len + 1);
+ memcpy(txt, stream->data(), len);
+ txt[len] = '\0';
+ qDebug("a recv |%s| %d", txt, len);
}
- stream->remove(len+9);
+ stream->remove(len + 9);
}
- if(stream->size() < 1)return;
+ if(stream->size() < 1)
+ return;
jpgStart = stream->find(jpg_magic_init, 4);
int jpgEnd = stream->find(jpg_magic_end, 2);
if(jpgStart != -1 && jpgEnd != -1)
{
-// qDebug("jpgStart %d jpgEnd %d",jpgStart,jpgEnd);
+ // qDebug("jpgStart %d jpgEnd %d",jpgStart,jpgEnd);
QImage img;
//remove junk before jpeg start
if(jpgStart > 0)
@@ -227,7 +231,7 @@ void DccVideoSJpegCodec::decode(KviDataBuffer * stream,KviDataBuffer * videoSign
if(!img.isNull())
{
videoSignal->clear();
- videoSignal->append(img.bits(),img.byteCount());
+ videoSignal->append(img.bits(), img.byteCount());
}
stream->remove(len);
}
@@ -235,20 +239,20 @@ void DccVideoSJpegCodec::decode(KviDataBuffer * stream,KviDataBuffer * videoSign
txtStart = stream->find(irct_magic_init, 8);
txtEnd = stream->find(irct_magic_end, 9);
- if(txtStart!=-1 && txtEnd !=-1)
+ if(txtStart != -1 && txtEnd != -1)
{
- qDebug("b txtStart %d txtEnd %d",txtStart,txtEnd);
- stream->remove(txtStart+8);
- int len = txtEnd - txtStart -8; //-8 irct_magic_init
- if(len>0)
+ qDebug("b txtStart %d txtEnd %d", txtStart, txtEnd);
+ stream->remove(txtStart + 8);
+ int len = txtEnd - txtStart - 8; //-8 irct_magic_init
+ if(len > 0)
{
textSignal->append(stream->data(), len);
- char*txt=(char*)malloc(len+1);
- memcpy(txt,stream->data(), len);
- txt[len]='\0';
- qDebug("b recv |%s| %d",txt,len);
+ char * txt = (char *)malloc(len + 1);
+ memcpy(txt, stream->data(), len);
+ txt[len] = '\0';
+ qDebug("b recv |%s| %d", txt, len);
}
- stream->remove(len+9);
+ stream->remove(len + 9);
}
}
@@ -262,10 +266,9 @@ int DccVideoSJpegCodec::decodedFrameSize()
return 0;
}
-
#ifndef COMPILE_DISABLE_OGG_THEORA
DccVideoTheoraCodec::DccVideoTheoraCodec()
-: DccVideoCodec()
+ : DccVideoCodec()
{
m_szName = "theora";
m_pEncoder = 0;
@@ -276,38 +279,41 @@ DccVideoTheoraCodec::~DccVideoTheoraCodec()
{
if(m_pEncoder)
delete m_pEncoder;
- m_pEncoder=0;
+ m_pEncoder = 0;
if(m_pDecoder)
delete m_pDecoder;
- m_pDecoder=0;
+ m_pDecoder = 0;
}
-void DccVideoTheoraCodec::encodeVideo(KviDataBuffer * videoSignal,KviDataBuffer * stream)
+void DccVideoTheoraCodec::encodeVideo(KviDataBuffer * videoSignal, KviDataBuffer * stream)
{
- if(videoSignal->size() < 1) return;
+ if(videoSignal->size() < 1)
+ return;
if(!m_pEncoder)
m_pEncoder = new KviOggTheoraEncoder(stream);
- m_pEncoder->addVideoFrame((QRgb *) videoSignal->data(),videoSignal->size());
+ m_pEncoder->addVideoFrame((QRgb *)videoSignal->data(), videoSignal->size());
videoSignal->clear();
}
void DccVideoTheoraCodec::encodeText(KviDataBuffer * textSignal, KviDataBuffer * stream)
{
- if(textSignal->size() < 1) return;
+ if(textSignal->size() < 1)
+ return;
if(!m_pEncoder)
m_pEncoder = new KviOggTheoraEncoder(stream);
- m_pEncoder->addTextFrame(textSignal->data(),textSignal->size());
+ m_pEncoder->addTextFrame(textSignal->data(), textSignal->size());
textSignal->clear();
}
-void DccVideoTheoraCodec::decode(KviDataBuffer * stream,KviDataBuffer * videoSignal,KviDataBuffer * textSignal)
+void DccVideoTheoraCodec::decode(KviDataBuffer * stream, KviDataBuffer * videoSignal, KviDataBuffer * textSignal)
{
- if(stream->size() < 1)return;
+ if(stream->size() < 1)
+ return;
if(!m_pDecoder)
m_pDecoder = new KviOggTheoraDecoder(videoSignal, textSignal);
diff --git a/src/modules/dcc/DccVoiceCodec.h b/src/modules/dcc/DccVoiceCodec.h
index 85c97de42..70e4ebddc 100644
--- a/src/modules/dcc/DccVoiceCodec.h
+++ b/src/modules/dcc/DccVoiceCodec.h
@@ -28,8 +28,8 @@
#include "KviDataBuffer.h"
#ifndef COMPILE_DISABLE_OGG_THEORA
- #include "KviOggTheoraDecoder.h"
- #include "KviOggTheoraEncoder.h"
+#include "KviOggTheoraDecoder.h"
+#include "KviOggTheoraEncoder.h"
#endif
class DccVoiceCodec
@@ -37,12 +37,14 @@ class DccVoiceCodec
public:
DccVoiceCodec();
virtual ~DccVoiceCodec();
+
protected:
KviCString m_szName;
+
public:
const char * name();
- virtual void encode(KviDataBuffer * signal,KviDataBuffer * stream);
- virtual void decode(KviDataBuffer * stream,KviDataBuffer * signal);
+ virtual void encode(KviDataBuffer * signal, KviDataBuffer * stream);
+ virtual void decode(KviDataBuffer * stream, KviDataBuffer * signal);
virtual int encodedFrameSize();
virtual int decodedFrameSize();
};
@@ -52,9 +54,10 @@ class DccVoiceNullCodec : public DccVoiceCodec
public:
DccVoiceNullCodec();
virtual ~DccVoiceNullCodec();
+
public:
- virtual void encode(KviDataBuffer * signal,KviDataBuffer * stream);
- virtual void decode(KviDataBuffer * stream,KviDataBuffer * signal);
+ virtual void encode(KviDataBuffer * signal, KviDataBuffer * stream);
+ virtual void decode(KviDataBuffer * stream, KviDataBuffer * signal);
virtual int encodedFrameSize();
virtual int decodedFrameSize();
};
@@ -64,13 +67,15 @@ class DccVideoCodec
public:
DccVideoCodec();
virtual ~DccVideoCodec();
+
protected:
KviCString m_szName;
+
public:
const char * name();
virtual void encodeVideo(KviDataBuffer * videoSignal, KviDataBuffer * stream);
virtual void encodeText(KviDataBuffer * textSignal, KviDataBuffer * stream);
- virtual void decode(KviDataBuffer * stream,KviDataBuffer * videoSignal,KviDataBuffer * textSignal);
+ virtual void decode(KviDataBuffer * stream, KviDataBuffer * videoSignal, KviDataBuffer * textSignal);
virtual int encodedFrameSize();
virtual int decodedFrameSize();
};
@@ -80,10 +85,11 @@ class DccVideoSJpegCodec : public DccVideoCodec
public:
DccVideoSJpegCodec();
virtual ~DccVideoSJpegCodec();
+
public:
virtual void encodeVideo(KviDataBuffer * videoSignal, KviDataBuffer * stream);
virtual void encodeText(KviDataBuffer * textSignal, KviDataBuffer * stream);
- virtual void decode(KviDataBuffer * stream,KviDataBuffer * videoSignal,KviDataBuffer * textSignal);
+ virtual void decode(KviDataBuffer * stream, KviDataBuffer * videoSignal, KviDataBuffer * textSignal);
virtual int encodedFrameSize();
virtual int decodedFrameSize();
};
@@ -94,12 +100,14 @@ class DccVideoTheoraCodec : public DccVideoCodec
public:
DccVideoTheoraCodec();
virtual ~DccVideoTheoraCodec();
+
public:
virtual void encodeVideo(KviDataBuffer * videoSignal, KviDataBuffer * stream);
virtual void encodeText(KviDataBuffer * textSignal, KviDataBuffer * stream);
- virtual void decode(KviDataBuffer * stream,KviDataBuffer * videoSignal,KviDataBuffer * textSignal);
+ virtual void decode(KviDataBuffer * stream, KviDataBuffer * videoSignal, KviDataBuffer * textSignal);
virtual int encodedFrameSize();
virtual int decodedFrameSize();
+
private:
KviOggTheoraEncoder * m_pEncoder;
KviOggTheoraDecoder * m_pDecoder;
diff --git a/src/modules/dcc/DccVoiceGsmCodec.cpp b/src/modules/dcc/DccVoiceGsmCodec.cpp
index 8f7fb6534..e2a23bb4e 100644
--- a/src/modules/dcc/DccVoiceGsmCodec.cpp
+++ b/src/modules/dcc/DccVoiceGsmCodec.cpp
@@ -27,122 +27,125 @@
#include "DccVoiceGsmCodec.h"
#ifdef COMPILE_USE_GSM
- #include <dlfcn.h>
+#include <dlfcn.h>
- #define GSM_PACKED_FRAME_SIZE_IN_BYTES 33
- #define GSM_UNPACKED_FRAME_SIZE_IN_BYTES 320
- #define GSM_UNPACKED_FRAME_SIZE_IN_SHORTS 160
+#define GSM_PACKED_FRAME_SIZE_IN_BYTES 33
+#define GSM_UNPACKED_FRAME_SIZE_IN_BYTES 320
+#define GSM_UNPACKED_FRAME_SIZE_IN_SHORTS 160
- void * (*gsm_session_create)() = 0;
- void (*gsm_session_destroy)(void *) = 0;
- void (*gsm_session_encode)(void *,short *,unsigned char *) = 0;
- int (*gsm_session_decode)(void *,unsigned char *,short *) = 0;
+void * (*gsm_session_create)() = 0;
+void (*gsm_session_destroy)(void *) = 0;
+void (*gsm_session_encode)(void *, short *, unsigned char *) = 0;
+int (*gsm_session_decode)(void *, unsigned char *, short *) = 0;
- void * g_pGSMCodecLibraryHandle = 0;
+void * g_pGSMCodecLibraryHandle = 0;
- bool kvi_gsm_codec_init()
- {
- if(g_pGSMCodecLibraryHandle)return true; // Already initialized
-
- g_pGSMCodecLibraryHandle = dlopen("libgsm.so",RTLD_NOW | RTLD_GLOBAL);
- if(!g_pGSMCodecLibraryHandle)return false; // no way to open it
+bool kvi_gsm_codec_init()
+{
+ if(g_pGSMCodecLibraryHandle)
+ return true; // Already initialized
- gsm_session_create = (void * (*)()) dlsym(g_pGSMCodecLibraryHandle,"gsm_create");
- gsm_session_destroy = (void (*)(void *)) dlsym(g_pGSMCodecLibraryHandle,"gsm_destroy");
- gsm_session_encode = (void (*)(void *,short *,unsigned char *)) dlsym(g_pGSMCodecLibraryHandle,"gsm_encode");
- gsm_session_decode = (int (*)(void *,unsigned char *,short *)) dlsym(g_pGSMCodecLibraryHandle,"gsm_decode");
+ g_pGSMCodecLibraryHandle = dlopen("libgsm.so", RTLD_NOW | RTLD_GLOBAL);
+ if(!g_pGSMCodecLibraryHandle)
+ return false; // no way to open it
- if(! (gsm_session_create && gsm_session_destroy && gsm_session_encode && gsm_session_decode))
- {
- dlclose(g_pGSMCodecLibraryHandle);
- g_pGSMCodecLibraryHandle = 0;
- return false;
- }
- return true;
- }
+ gsm_session_create = (void * (*)())dlsym(g_pGSMCodecLibraryHandle, "gsm_create");
+ gsm_session_destroy = (void (*)(void *))dlsym(g_pGSMCodecLibraryHandle, "gsm_destroy");
+ gsm_session_encode = (void (*)(void *, short *, unsigned char *))dlsym(g_pGSMCodecLibraryHandle, "gsm_encode");
+ gsm_session_decode = (int (*)(void *, unsigned char *, short *))dlsym(g_pGSMCodecLibraryHandle, "gsm_decode");
- void kvi_gsm_codec_done()
+ if(!(gsm_session_create && gsm_session_destroy && gsm_session_encode && gsm_session_decode))
{
- if(g_pGSMCodecLibraryHandle)
- {
- dlclose(g_pGSMCodecLibraryHandle);
- g_pGSMCodecLibraryHandle = 0;
- }
+ dlclose(g_pGSMCodecLibraryHandle);
+ g_pGSMCodecLibraryHandle = 0;
+ return false;
}
+ return true;
+}
-
- DccVoiceGsmCodec::DccVoiceGsmCodec()
- : DccVoiceCodec()
+void kvi_gsm_codec_done()
+{
+ if(g_pGSMCodecLibraryHandle)
{
- m_pEncodeState = gsm_session_create();
- m_pDecodeState = gsm_session_create();
- m_szName = "gsm (compression 33:320)";
+ dlclose(g_pGSMCodecLibraryHandle);
+ g_pGSMCodecLibraryHandle = 0;
}
+}
- DccVoiceGsmCodec::~DccVoiceGsmCodec()
- {
- gsm_session_destroy(m_pEncodeState);
- gsm_session_destroy(m_pDecodeState);
- }
+DccVoiceGsmCodec::DccVoiceGsmCodec()
+ : DccVoiceCodec()
+{
+ m_pEncodeState = gsm_session_create();
+ m_pDecodeState = gsm_session_create();
+ m_szName = "gsm (compression 33:320)";
+}
- void DccVoiceGsmCodec::encode(KviDataBuffer * signal,KviDataBuffer * stream)
- {
- if(signal->size() < GSM_UNPACKED_FRAME_SIZE_IN_BYTES)return; // nothing to encode
+DccVoiceGsmCodec::~DccVoiceGsmCodec()
+{
+ gsm_session_destroy(m_pEncodeState);
+ gsm_session_destroy(m_pDecodeState);
+}
- unsigned char * ptr = signal->data();
+void DccVoiceGsmCodec::encode(KviDataBuffer * signal, KviDataBuffer * stream)
+{
+ if(signal->size() < GSM_UNPACKED_FRAME_SIZE_IN_BYTES)
+ return; // nothing to encode
- int uFrames = signal->size() / GSM_UNPACKED_FRAME_SIZE_IN_BYTES;
- int uTotalDataCompressed = uFrames * GSM_UNPACKED_FRAME_SIZE_IN_BYTES;
- int uFrameOffset = stream->size();
- unsigned char * endPtr = ptr + uTotalDataCompressed;
+ unsigned char * ptr = signal->data();
- stream->addSize(GSM_PACKED_FRAME_SIZE_IN_BYTES * uFrames);
+ int uFrames = signal->size() / GSM_UNPACKED_FRAME_SIZE_IN_BYTES;
+ int uTotalDataCompressed = uFrames * GSM_UNPACKED_FRAME_SIZE_IN_BYTES;
+ int uFrameOffset = stream->size();
+ unsigned char * endPtr = ptr + uTotalDataCompressed;
- while(ptr != endPtr)
- {
- gsm_session_encode(m_pEncodeState,(short *)ptr,stream->data() + uFrameOffset);
- ptr += GSM_UNPACKED_FRAME_SIZE_IN_BYTES;
- uFrameOffset += GSM_PACKED_FRAME_SIZE_IN_BYTES;
- }
- signal->remove(uTotalDataCompressed);
- }
+ stream->addSize(GSM_PACKED_FRAME_SIZE_IN_BYTES * uFrames);
- void DccVoiceGsmCodec::decode(KviDataBuffer * stream,KviDataBuffer * signal)
+ while(ptr != endPtr)
{
- if(stream->size() < GSM_PACKED_FRAME_SIZE_IN_BYTES)return; // nothing to decode
+ gsm_session_encode(m_pEncodeState, (short *)ptr, stream->data() + uFrameOffset);
+ ptr += GSM_UNPACKED_FRAME_SIZE_IN_BYTES;
+ uFrameOffset += GSM_PACKED_FRAME_SIZE_IN_BYTES;
+ }
+ signal->remove(uTotalDataCompressed);
+}
- unsigned char * ptr = stream->data();
+void DccVoiceGsmCodec::decode(KviDataBuffer * stream, KviDataBuffer * signal)
+{
+ if(stream->size() < GSM_PACKED_FRAME_SIZE_IN_BYTES)
+ return; // nothing to decode
- // Gsm codec
- int uFrames = stream->size() / GSM_PACKED_FRAME_SIZE_IN_BYTES;
- int uTotalDataDecompressed = uFrames * GSM_PACKED_FRAME_SIZE_IN_BYTES;
- int uSignalOffset = signal->size();
- unsigned char * endPtr = ptr + (uTotalDataDecompressed);
+ unsigned char * ptr = stream->data();
- signal->addSize(GSM_UNPACKED_FRAME_SIZE_IN_BYTES * uFrames);
+ // Gsm codec
+ int uFrames = stream->size() / GSM_PACKED_FRAME_SIZE_IN_BYTES;
+ int uTotalDataDecompressed = uFrames * GSM_PACKED_FRAME_SIZE_IN_BYTES;
+ int uSignalOffset = signal->size();
+ unsigned char * endPtr = ptr + (uTotalDataDecompressed);
- while(ptr != endPtr)
- {
- // We don't check the return value here
- // Well..it is either an unrecoverable internal error
- // or a broken frame...
- // but if we receive broken frames over DCC...well....better
- // check the hardware...or the remote codec as well...
- gsm_session_decode(m_pDecodeState,ptr,(short *)(signal->data() + uSignalOffset));
- ptr += GSM_PACKED_FRAME_SIZE_IN_BYTES;
- uSignalOffset += GSM_UNPACKED_FRAME_SIZE_IN_BYTES;
- }
- stream->remove(uTotalDataDecompressed);
- }
+ signal->addSize(GSM_UNPACKED_FRAME_SIZE_IN_BYTES * uFrames);
- int DccVoiceGsmCodec::encodedFrameSize()
+ while(ptr != endPtr)
{
- return GSM_PACKED_FRAME_SIZE_IN_BYTES;
+ // We don't check the return value here
+ // Well..it is either an unrecoverable internal error
+ // or a broken frame...
+ // but if we receive broken frames over DCC...well....better
+ // check the hardware...or the remote codec as well...
+ gsm_session_decode(m_pDecodeState, ptr, (short *)(signal->data() + uSignalOffset));
+ ptr += GSM_PACKED_FRAME_SIZE_IN_BYTES;
+ uSignalOffset += GSM_UNPACKED_FRAME_SIZE_IN_BYTES;
}
+ stream->remove(uTotalDataDecompressed);
+}
- int DccVoiceGsmCodec::decodedFrameSize()
- {
- return GSM_UNPACKED_FRAME_SIZE_IN_BYTES;
- }
+int DccVoiceGsmCodec::encodedFrameSize()
+{
+ return GSM_PACKED_FRAME_SIZE_IN_BYTES;
+}
+
+int DccVoiceGsmCodec::decodedFrameSize()
+{
+ return GSM_UNPACKED_FRAME_SIZE_IN_BYTES;
+}
#endif // COMPILE_USE_GSM
diff --git a/src/modules/dcc/DccVoiceGsmCodec.h b/src/modules/dcc/DccVoiceGsmCodec.h
index 36cc1ae95..9a86de7ba 100644
--- a/src/modules/dcc/DccVoiceGsmCodec.h
+++ b/src/modules/dcc/DccVoiceGsmCodec.h
@@ -26,30 +26,31 @@
#include "kvi_settings.h"
-
#ifdef COMPILE_USE_GSM
- #include "DccVoiceCodec.h"
+#include "DccVoiceCodec.h"
+
+#ifndef _GSMCODEC_CPP_
+extern bool kvi_gsm_codec_init();
+extern void kvi_gsm_codec_done();
+#endif //_GSMCODEC_CPP_
+
+class DccVoiceGsmCodec : public DccVoiceCodec
+{
+public:
+ DccVoiceGsmCodec();
+ virtual ~DccVoiceGsmCodec();
- #ifndef _GSMCODEC_CPP_
- extern bool kvi_gsm_codec_init();
- extern void kvi_gsm_codec_done();
- #endif //_GSMCODEC_CPP_
+private:
+ void * m_pEncodeState;
+ void * m_pDecodeState;
- class DccVoiceGsmCodec : public DccVoiceCodec
- {
- public:
- DccVoiceGsmCodec();
- virtual ~DccVoiceGsmCodec();
- private:
- void * m_pEncodeState;
- void * m_pDecodeState;
- public:
- virtual void encode(KviDataBuffer * signal,KviDataBuffer * stream);
- virtual void decode(KviDataBuffer * stream,KviDataBuffer * signal);
- virtual int encodedFrameSize();
- virtual int decodedFrameSize();
- };
+public:
+ virtual void encode(KviDataBuffer * signal, KviDataBuffer * stream);
+ virtual void decode(KviDataBuffer * stream, KviDataBuffer * signal);
+ virtual int encodedFrameSize();
+ virtual int decodedFrameSize();
+};
#endif //COMPILE_USE_GSM
diff --git a/src/modules/dcc/DccVoiceWindow.cpp b/src/modules/dcc/DccVoiceWindow.cpp
index 4356a274a..0a353bfaf 100644
--- a/src/modules/dcc/DccVoiceWindow.cpp
+++ b/src/modules/dcc/DccVoiceWindow.cpp
@@ -46,14 +46,14 @@
#include <QToolTip>
#if !defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW)
- #include <sys/time.h>
- #include <sys/types.h>
- #include <unistd.h>
- #include <errno.h>
- #include <fcntl.h>
- //#include "KviError.h"
- #include <sys/stat.h> // for open()
- #include <sys/ioctl.h> // for ioctl()
+#include <sys/time.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <errno.h>
+#include <fcntl.h>
+//#include "KviError.h"
+#include <sys/stat.h> // for open()
+#include <sys/ioctl.h> // for ioctl()
#endif
extern DccBroker * g_pDccBroker;
@@ -61,25 +61,24 @@ extern DccBroker * g_pDccBroker;
//Check for the *SS Api....we don't want to fail here...
#ifndef COMPILE_DISABLE_DCC_VOICE
- #ifdef HAVE_LINUX_SOUNDCARD_H
- #include <linux/soundcard.h>
- #else
- #ifdef HAVE_SYS_SOUNDCARD_H
- #include <sys/soundcard.h>
- #else
- #ifdef HAVE_SOUNDCARD_H
- #include <soundcard.h>
- #else
- //CAN NOT COMPILE :(
- #define COMPILE_DISABLE_DCC_VOICE
- #if !defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW)
- #warning "Can't find the soundcard.h header; you will NOT be able to use DCC Voice"
- #endif
- #endif
- #endif
- #endif
+#ifdef HAVE_LINUX_SOUNDCARD_H
+#include <linux/soundcard.h>
+#else
+#ifdef HAVE_SYS_SOUNDCARD_H
+#include <sys/soundcard.h>
+#else
+#ifdef HAVE_SOUNDCARD_H
+#include <soundcard.h>
+#else
+//CAN NOT COMPILE :(
+#define COMPILE_DISABLE_DCC_VOICE
+#if !defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MINGW)
+#warning "Can't find the soundcard.h header; you will NOT be able to use DCC Voice"
+#endif
+#endif
+#endif
+#endif
#endif
-
//#define KVI_AUDIO_DEVICE "/dev/dsp"
// 32 fragments, 512 bytes
@@ -88,36 +87,39 @@ extern DccBroker * g_pDccBroker;
#define KVI_FORMAT AFMT_S16_LE
#define KVI_NUM_CHANNELS 1
-
bool kvi_dcc_voice_is_valid_codec(const char * codecName)
{
#ifdef COMPILE_USE_GSM
- if(kvi_strEqualCI("gsm",codecName))
+ if(kvi_strEqualCI("gsm", codecName))
{
return kvi_gsm_codec_init();
}
#endif
- if(kvi_strEqualCI("adpcm",codecName))return true;
- if(kvi_strEqualCI("null",codecName))return true;
+ if(kvi_strEqualCI("adpcm", codecName))
+ return true;
+ if(kvi_strEqualCI("null", codecName))
+ return true;
return false;
}
static DccVoiceCodec * kvi_dcc_voice_get_codec(const char * codecName)
{
#ifdef COMPILE_USE_GSM
- if(kvi_strEqualCI("gsm",codecName))
+ if(kvi_strEqualCI("gsm", codecName))
{
- if(kvi_gsm_codec_init())return new DccVoiceGsmCodec();
+ if(kvi_gsm_codec_init())
+ return new DccVoiceGsmCodec();
}
#endif
- if(kvi_strEqualCI("adpcm",codecName))return new DccVoiceAdpcmCodec();
- if(kvi_strEqualCI("null",codecName))return new DccVoiceNullCodec();
+ if(kvi_strEqualCI("adpcm", codecName))
+ return new DccVoiceAdpcmCodec();
+ if(kvi_strEqualCI("null", codecName))
+ return new DccVoiceNullCodec();
return new DccVoiceAdpcmCodec();
}
-
-DccVoiceThread::DccVoiceThread(KviWindow * wnd,kvi_socket_t fd,KviDccVoiceThreadOptions * opt)
-: DccThread(wnd,fd)
+DccVoiceThread::DccVoiceThread(KviWindow * wnd, kvi_socket_t fd, KviDccVoiceThreadOptions * opt)
+ : DccThread(wnd, fd)
{
#ifndef COMPILE_DISABLE_DCC_VOICE
m_pOpt = opt;
@@ -148,7 +150,8 @@ bool DccVoiceThread::checkSoundcard()
bool bOpened = false;
if(m_soundFd == -1)
{
- if(!openSoundcard(O_RDONLY))return false;
+ if(!openSoundcard(O_RDONLY))
+ return false;
bOpened = true;
}
@@ -156,59 +159,66 @@ bool DccVoiceThread::checkSoundcard()
m_bSoundcardChecked = true;
- if(ioctl(m_soundFd,SNDCTL_DSP_GETCAPS,&caps) < 0)
+ if(ioctl(m_soundFd, SNDCTL_DSP_GETCAPS, &caps) < 0)
{
- postMessageEvent(__tr2qs_ctx("WARNING: failed to check the soundcard duplex capabilities: if this is a half-duplex soundcard, use the DCC VOICE option to force half-duplex algorithm","dcc").toUtf8().data());
- if(bOpened)closeSoundcard();
+ postMessageEvent(__tr2qs_ctx("WARNING: failed to check the soundcard duplex capabilities: if this is a half-duplex soundcard, use the DCC VOICE option to force half-duplex algorithm", "dcc").toUtf8().data());
+ if(bOpened)
+ closeSoundcard();
return false;
}
if(!(caps & DSP_CAP_DUPLEX))
{
m_pOpt->bForceHalfDuplex = true; // the device is half duplex...use it in that way
- postMessageEvent(__tr2qs_ctx("Half-duplex soundcard detected, you will not be able to talk and listen at the same time","dcc").toUtf8().data());
+ postMessageEvent(__tr2qs_ctx("Half-duplex soundcard detected, you will not be able to talk and listen at the same time", "dcc").toUtf8().data());
}
- if(bOpened)closeSoundcard();
+ if(bOpened)
+ closeSoundcard();
return true;
#endif
}
-
bool DccVoiceThread::openSoundcard(int mode)
{
#ifdef COMPILE_DISABLE_DCC_VOICE
return false;
#else
int speed = m_pOpt->iSampleRate;
- static int chans=KVI_NUM_CHANNELS;
- static int fmt=KVI_FORMAT;
+ static int chans = KVI_NUM_CHANNELS;
+ static int fmt = KVI_FORMAT;
static int frag = KVI_SNDCTL_FRAG_SIZE;
-
if(m_soundFd != -1)
{
- if(m_soundFdMode == mode)return true; // already open
+ if(m_soundFdMode == mode)
+ return true; // already open
closeSoundcard();
}
- m_soundFd = ::open(m_pOpt->szSoundDevice.ptr(),mode | O_NONBLOCK);
- if(m_soundFd < 0)return false;
+ m_soundFd = ::open(m_pOpt->szSoundDevice.ptr(), mode | O_NONBLOCK);
+ if(m_soundFd < 0)
+ return false;
if(!m_pOpt->bForceHalfDuplex)
{
- if(ioctl(m_soundFd,SNDCTL_DSP_SETDUPLEX,0) < 0)goto exit_false;
+ if(ioctl(m_soundFd, SNDCTL_DSP_SETDUPLEX, 0) < 0)
+ goto exit_false;
}
- if(ioctl(m_soundFd,SNDCTL_DSP_SETFRAGMENT,&frag)<0)goto exit_false;
- if(ioctl(m_soundFd,SNDCTL_DSP_SETFMT,&fmt)<0)goto exit_false;
- if(ioctl(m_soundFd,SNDCTL_DSP_CHANNELS,&chans)<0)goto exit_false;
- if(ioctl(m_soundFd,SNDCTL_DSP_SPEED,&speed)<0)goto exit_false;
+ if(ioctl(m_soundFd, SNDCTL_DSP_SETFRAGMENT, &frag) < 0)
+ goto exit_false;
+ if(ioctl(m_soundFd, SNDCTL_DSP_SETFMT, &fmt) < 0)
+ goto exit_false;
+ if(ioctl(m_soundFd, SNDCTL_DSP_CHANNELS, &chans) < 0)
+ goto exit_false;
+ if(ioctl(m_soundFd, SNDCTL_DSP_SPEED, &speed) < 0)
+ goto exit_false;
if(speed != m_pOpt->iSampleRate)
{
- KviCString tmp(KviCString::Format,__tr2qs_ctx("WARNING: failed to set the requested sample rate (%d): the device used closest match (%d)","dcc").toUtf8().data(),
- m_pOpt->iSampleRate,speed);
+ KviCString tmp(KviCString::Format, __tr2qs_ctx("WARNING: failed to set the requested sample rate (%d): the device used closest match (%d)", "dcc").toUtf8().data(),
+ m_pOpt->iSampleRate, speed);
postMessageEvent(tmp.ptr());
}
@@ -216,7 +226,6 @@ bool DccVoiceThread::openSoundcard(int mode)
m_soundFdMode = mode;
-
return true;
exit_false:
@@ -228,7 +237,7 @@ exit_false:
bool DccVoiceThread::openSoundcardForWriting()
{
#ifndef COMPILE_DISABLE_DCC_VOICE
- return openSoundcardWithDuplexOption(O_WRONLY,O_RDONLY);
+ return openSoundcardWithDuplexOption(O_WRONLY, O_RDONLY);
#else
return false;
#endif
@@ -237,13 +246,13 @@ bool DccVoiceThread::openSoundcardForWriting()
bool DccVoiceThread::openSoundcardForReading()
{
#ifndef COMPILE_DISABLE_DCC_VOICE
- return openSoundcardWithDuplexOption(O_RDONLY,O_WRONLY);
+ return openSoundcardWithDuplexOption(O_RDONLY, O_WRONLY);
#else
return false;
#endif
}
-bool DccVoiceThread::openSoundcardWithDuplexOption(int openMode,int failMode)
+bool DccVoiceThread::openSoundcardWithDuplexOption(int openMode, int failMode)
{
#ifndef COMPILE_DISABLE_DCC_VOICE
if(m_soundFd == -1)
@@ -252,8 +261,11 @@ bool DccVoiceThread::openSoundcardWithDuplexOption(int openMode,int failMode)
if(m_pOpt->bForceHalfDuplex)
{
// Forcing half duplex... (user option or the card does not support full duplex mode)
- if(!openSoundcard(openMode))return false;
- } else {
+ if(!openSoundcard(openMode))
+ return false;
+ }
+ else
+ {
// Try read/write open
if(!openSoundcard(O_RDWR))
{
@@ -262,15 +274,18 @@ bool DccVoiceThread::openSoundcardWithDuplexOption(int openMode,int failMode)
{
// We haven't checked the full-duplex support yet...
// Try to open in RDONLY o WRONLY mode
- if(!openSoundcard(openMode))return false;
+ if(!openSoundcard(openMode))
+ return false;
if(!checkSoundcard())
{
- postMessageEvent(__tr2qs_ctx("Oops! Failed to test the soundcard capabilities, expect problems...","dcc").toUtf8().data());
+ postMessageEvent(__tr2qs_ctx("Oops! Failed to test the soundcard capabilities, expect problems...", "dcc").toUtf8().data());
}
} // else the test has been done and it is a full duplex card that is just busy
}
}
- } else {
+ }
+ else
+ {
// Hmmm...already open
// If it is open in O_RDWR or O_WRONLY mode...it is ok for us
// but if it is open in O_RDONLY mode...we can do nothing...just wait
@@ -302,23 +317,27 @@ bool DccVoiceThread::readWriteStep()
bool bCanRead;
bool bCanWrite;
- if(kvi_select(m_fd,&bCanRead,&bCanWrite))
+ if(kvi_select(m_fd, &bCanRead, &bCanWrite))
{
if(bCanRead)
{
unsigned int actualSize = m_inFrameBuffer.size();
m_inFrameBuffer.resize(actualSize + 1024);
- int readLen = kvi_socket_recv(m_fd,(void *)(m_inFrameBuffer.data() + actualSize),1024);
+ int readLen = kvi_socket_recv(m_fd, (void *)(m_inFrameBuffer.data() + actualSize), 1024);
if(readLen > 0)
{
- if(readLen < 1024)m_inFrameBuffer.resize(actualSize + readLen);
- m_pOpt->pCodec->decode(&m_inFrameBuffer,&m_inSignalBuffer);
-//#warning "A maximum length for the signal buffer is actually needed!!!"
- } else {
- if(!handleInvalidSocketRead(readLen))return false;
+ if(readLen < 1024)
+ m_inFrameBuffer.resize(actualSize + readLen);
+ m_pOpt->pCodec->decode(&m_inFrameBuffer, &m_inSignalBuffer);
+ //#warning "A maximum length for the signal buffer is actually needed!!!"
+ }
+ else
+ {
+ if(!handleInvalidSocketRead(readLen))
+ return false;
m_inFrameBuffer.resize(actualSize);
}
- }// else {
+ } // else {
// m_uSleepTime += 100;
//}
@@ -327,21 +346,24 @@ bool DccVoiceThread::readWriteStep()
// Have somethihg to write ?
if(m_outFrameBuffer.size() > 0)
{
- int written = kvi_socket_send(m_fd,m_outFrameBuffer.data(),m_outFrameBuffer.size());
+ int written = kvi_socket_send(m_fd, m_outFrameBuffer.data(), m_outFrameBuffer.size());
if(written > 0)
{
m_outFrameBuffer.remove(written);
- } else {
- if(!handleInvalidSocketRead(written))return false;
}
- }// else {
- // m_uSleepTime += 100;
- // }
- }// else {
- // m_uSleepTime += 100;
-// }
-//#warning "Usleep here ?"
- }// else {
+ else
+ {
+ if(!handleInvalidSocketRead(written))
+ return false;
+ }
+ } // else {
+ // m_uSleepTime += 100;
+ // }
+ } // else {
+ // m_uSleepTime += 100;
+ // }
+ //#warning "Usleep here ?"
+ } // else {
// if(!(m_bPlaying || m_bRecording))
// {
// // Really NOTHING is happening...sleep a bit more
@@ -367,7 +389,7 @@ bool DccVoiceThread::soundStep()
{
// Get the number of fragments that can be written to the soundcard without blocking
- if(ioctl(m_soundFd,SNDCTL_DSP_GETOSPACE,&info) < 0)
+ if(ioctl(m_soundFd, SNDCTL_DSP_GETOSPACE, &info) < 0)
{
qDebug("get o space failed");
info.bytes = KVI_FRAGMENT_SIZE_IN_BYTES; // dummy... if this is not correct...well...we will block for 1024/16000 of a sec
@@ -378,29 +400,37 @@ bool DccVoiceThread::soundStep()
{
int toWrite = info.fragments * info.fragsize;
//qDebug("Can write %d bytes",toWrite);
- if(m_inSignalBuffer.size() < toWrite)toWrite = m_inSignalBuffer.size();
- int written = write(m_soundFd,m_inSignalBuffer.data(),toWrite);
- if(written > 0)m_inSignalBuffer.remove(written);
- else {
-//#warning "Do something for -1 here ?"
-//#warning "Usleep ?"
+ if(m_inSignalBuffer.size() < toWrite)
+ toWrite = m_inSignalBuffer.size();
+ int written = write(m_soundFd, m_inSignalBuffer.data(), toWrite);
+ if(written > 0)
+ m_inSignalBuffer.remove(written);
+ else
+ {
+ //#warning "Do something for -1 here ?"
+ //#warning "Usleep ?"
}
} //else {
- // No stuff can be written...we are running too fast ?
- // m_uSleepTime += 100; // sleep for a while
- //}
- } else {
+ // No stuff can be written...we are running too fast ?
+ // m_uSleepTime += 100; // sleep for a while
+ //}
+ }
+ else
+ {
// hmmmm....playing, but nothing to write, possible underrun or EOF
// a nice idea would be to use SNDCTL_DSP_GETODELAY here...
// but it appears to be broken on some audio devices
- if(ioctl(m_soundFd,SNDCTL_DSP_GETOSPACE,&info) < 0)info.fragstotal = info.fragments; // dummy...but what should we do ?
+ if(ioctl(m_soundFd, SNDCTL_DSP_GETOSPACE, &info) < 0)
+ info.fragstotal = info.fragments; // dummy...but what should we do ?
if(info.fragstotal == info.fragments)
{
// underrun or EOF: close the device
stopPlaying();
}
}
- } else {
+ }
+ else
+ {
// do we have anything to play ?
if(m_inSignalBuffer.size() > 0)
{
@@ -410,11 +440,13 @@ bool DccVoiceThread::soundStep()
startPlaying();
m_iLastSignalBufferSize = m_inSignalBuffer.size();
- } else {
+ }
+ else
+ {
// have stuff to play, but it's not enough to fill the pre-buffer
//
struct timeval tv;
- gettimeofday(&tv,0);
+ gettimeofday(&tv, 0);
long int sigBufferTime = (tv.tv_sec * 1000) + (tv.tv_usec / 1000);
@@ -431,16 +463,18 @@ bool DccVoiceThread::soundStep()
if((sigBufferTime - m_iLastSignalBufferTime) > preBufferTime)
{
startPlaying();
- if(m_bPlaying)m_iLastSignalBufferSize = 0;
+ if(m_bPlaying)
+ m_iLastSignalBufferSize = 0;
}
- } else {
+ }
+ else
+ {
// signal buffer size differs...we have received new packets
// and still pre-buffering
m_iLastSignalBufferSize = m_inSignalBuffer.size();
m_iLastSignalBufferTime = sigBufferTime;
}
}
-
}
}
@@ -449,16 +483,16 @@ bool DccVoiceThread::soundStep()
{
fd_set rs;
FD_ZERO(&rs);
- FD_SET(m_soundFd,&rs);
+ FD_SET(m_soundFd, &rs);
struct timeval tv;
tv.tv_sec = 0;
tv.tv_usec = 10;
- int ret = select(m_soundFd + 1,&rs,0,0,&tv);
+ int ret = select(m_soundFd + 1, &rs, 0, 0, &tv);
if(ret > 0)
{
// This is rather easy...
audio_buf_info info;
- if(ioctl(m_soundFd,SNDCTL_DSP_GETISPACE,&info) < 0)
+ if(ioctl(m_soundFd, SNDCTL_DSP_GETISPACE, &info) < 0)
{
qDebug("Ispace failed");
info.fragments = 0; // dummy...
@@ -478,23 +512,27 @@ bool DccVoiceThread::soundStep()
int oldSize = m_outSignalBuffer.size();
int available = info.fragments * info.fragsize;
m_outSignalBuffer.addSize(available);
- int readed = read(m_soundFd,m_outSignalBuffer.data() + oldSize,available);
+ int readed = read(m_soundFd, m_outSignalBuffer.data() + oldSize, available);
if(readed < available)
{
// huh ? ...error ?
- if(readed >= 0)m_outSignalBuffer.resize(oldSize + readed);
- else {
+ if(readed >= 0)
+ m_outSignalBuffer.resize(oldSize + readed);
+ else
+ {
if((errno == EINTR) || (errno == EAGAIN))
{
m_outSignalBuffer.resize(oldSize);
- } else {
-//#warning "Critical error...do something reasonable!"
+ }
+ else
+ {
+ //#warning "Critical error...do something reasonable!"
m_outSignalBuffer.resize(oldSize);
}
}
}
-/*
+ /*
qDebug("Signal buffer:");
for(int i=0;i<200;i+=2)
{
@@ -504,12 +542,12 @@ bool DccVoiceThread::soundStep()
}
qDebug("END\n");
*/
- m_pOpt->pCodec->encode(&m_outSignalBuffer,&m_outFrameBuffer);
+ m_pOpt->pCodec->encode(&m_outSignalBuffer, &m_outFrameBuffer);
}
- }// else {
- // Nothing to read
- // m_uSleepTime += 100;
- // }
+ } // else {
+ // Nothing to read
+ // m_uSleepTime += 100;
+ // }
}
#endif // !COMPILE_DISABLE_DCC_VOICE
@@ -520,17 +558,20 @@ void DccVoiceThread::startRecording()
{
#ifndef COMPILE_DISABLE_DCC_VOICE
//qDebug("Start recording");
- if(m_bRecording)return; // already started
+ if(m_bRecording)
+ return; // already started
if(openSoundcardForReading())
{
-// qDebug("Posting event");
+ // qDebug("Posting event");
KviThreadDataEvent<int> * e = new KviThreadDataEvent<int>(KVI_DCC_THREAD_EVENT_ACTION);
e->setData(new int(KVI_DCC_VOICE_THREAD_ACTION_START_RECORDING));
- postEvent(parent(),e);
+ postEvent(parent(), e);
m_bRecording = true;
m_bRecordingRequestPending = false;
- } else {
+ }
+ else
+ {
m_bRecordingRequestPending = true;
}
#endif
@@ -541,14 +582,16 @@ void DccVoiceThread::stopRecording()
#ifndef COMPILE_DISABLE_DCC_VOICE
//qDebug("Stop recording");
m_bRecordingRequestPending = false;
- if(!m_bRecording)return; // already stopped
+ if(!m_bRecording)
+ return; // already stopped
KviThreadDataEvent<int> * e = new KviThreadDataEvent<int>(KVI_DCC_THREAD_EVENT_ACTION);
e->setData(new int(KVI_DCC_VOICE_THREAD_ACTION_STOP_RECORDING));
- postEvent(parent(),e);
+ postEvent(parent(), e);
m_bRecording = false;
- if(!m_bPlaying)closeSoundcard();
+ if(!m_bPlaying)
+ closeSoundcard();
#endif
}
@@ -556,13 +599,14 @@ void DccVoiceThread::startPlaying()
{
#ifndef COMPILE_DISABLE_DCC_VOICE
//qDebug("Start playing");
- if(m_bPlaying)return;
+ if(m_bPlaying)
+ return;
if(openSoundcardForWriting())
{
KviThreadDataEvent<int> * e = new KviThreadDataEvent<int>(KVI_DCC_THREAD_EVENT_ACTION);
e->setData(new int(KVI_DCC_VOICE_THREAD_ACTION_START_PLAYING));
- postEvent(parent(),e);
+ postEvent(parent(), e);
m_bPlaying = true;
}
#endif
@@ -572,14 +616,16 @@ void DccVoiceThread::stopPlaying()
{
#ifndef COMPILE_DISABLE_DCC_VOICE
//qDebug("Stop playing");
- if(!m_bPlaying)return;
+ if(!m_bPlaying)
+ return;
KviThreadDataEvent<int> * e = new KviThreadDataEvent<int>(KVI_DCC_THREAD_EVENT_ACTION);
e->setData(new int(KVI_DCC_VOICE_THREAD_ACTION_STOP_PLAYING));
- postEvent(parent(),e);
+ postEvent(parent(), e);
m_bPlaying = false;
- if(!m_bRecording)closeSoundcard();
+ if(!m_bRecording)
+ closeSoundcard();
#endif
}
@@ -588,7 +634,7 @@ void DccVoiceThread::run()
#ifndef COMPILE_DISABLE_DCC_VOICE
for(;;)
{
-// m_uSleepTime = 0;
+ // m_uSleepTime = 0;
// Dequeue events
while(KviThreadEvent * e = dequeueEvent())
@@ -597,21 +643,28 @@ void DccVoiceThread::run()
{
delete e;
goto exit_dcc;
- } else if(e->id() == KVI_DCC_THREAD_EVENT_ACTION)
+ }
+ else if(e->id() == KVI_DCC_THREAD_EVENT_ACTION)
{
int * act = ((KviThreadDataEvent<int> *)e)->getData();
- if(*act)startRecording();
- else stopRecording();
+ if(*act)
+ startRecording();
+ else
+ stopRecording();
delete act;
delete e;
- } else {
+ }
+ else
+ {
// Other events are senseless to us
delete e;
}
}
- if(!readWriteStep())goto exit_dcc;
- if(!soundStep())goto exit_dcc;
+ if(!readWriteStep())
+ goto exit_dcc;
+ if(!soundStep())
+ goto exit_dcc;
m_pInfoMutex->lock();
m_iInputBufferSize = m_inSignalBuffer.size();
@@ -621,13 +674,13 @@ void DccVoiceThread::run()
// Actually the maximum that we can sleep here is
// around 500 usecs... = 0.0005 sec -> 8 bytes at 8 KHz
- // if(m_uSleepTime)usleep(m_uSleepTime);
+ // if(m_uSleepTime)usleep(m_uSleepTime);
// Start recording if the request was not fulfilled yet
- if(m_bRecordingRequestPending)startRecording();
+ if(m_bRecordingRequestPending)
+ startRecording();
}
-
exit_dcc:
#endif //! COMPILE_DISABLE_DCC_VOICE
@@ -636,24 +689,23 @@ exit_dcc:
m_fd = KVI_INVALID_SOCKET;
}
-
-DccVoiceWindow::DccVoiceWindow(DccDescriptor * dcc,const char * name)
-: DccWindow(KviWindow::DccVoice,name,dcc)
+DccVoiceWindow::DccVoiceWindow(DccDescriptor * dcc, const char * name)
+ : DccWindow(KviWindow::DccVoice, name, dcc)
{
m_pDescriptor = dcc;
m_pSlaveThread = 0;
- m_pSplitter = new KviTalSplitter(Qt::Horizontal,this);
+ m_pSplitter = new KviTalSplitter(Qt::Horizontal, this);
m_pSplitter->setObjectName("dcc_window_splitter");
- m_pIrcView = new KviIrcView(m_pSplitter,this);
+ m_pIrcView = new KviIrcView(m_pSplitter, this);
m_pHBox = new KviTalHBox(this);
KviTalVBox * vbox = new KviTalVBox(m_pHBox);
- m_pInputLabel = new QLabel(__tr2qs_ctx("Input buffer","dcc"),vbox);
+ m_pInputLabel = new QLabel(__tr2qs_ctx("Input buffer", "dcc"), vbox);
m_pInputLabel->setFrameStyle(QFrame::Sunken | QFrame::Panel);
- m_pOutputLabel = new QLabel(__tr2qs_ctx("Output buffer","dcc"),vbox);
+ m_pOutputLabel = new QLabel(__tr2qs_ctx("Output buffer", "dcc"), vbox);
m_pOutputLabel->setFrameStyle(QFrame::Sunken | QFrame::Panel);
vbox->setSpacing(1);
@@ -673,7 +725,7 @@ DccVoiceWindow::DccVoiceWindow(DccDescriptor * dcc,const char * name)
//#warning "The volume slider should be enabled only when receiving data"
//m_pVolumeSlider = new QSlider(-100, 0, 10, 0, Qt::Vertical, m_pHBox, "dcc_voice_volume_slider");
- m_pVolumeSlider = new QSlider(Qt::Vertical,m_pHBox);
+ m_pVolumeSlider = new QSlider(Qt::Vertical, m_pHBox);
m_pVolumeSlider->setObjectName("dcc_voice_volume_slider");
m_pVolumeSlider->setMinimum(-100);
m_pVolumeSlider->setMaximum(0);
@@ -684,29 +736,29 @@ DccVoiceWindow::DccVoiceWindow(DccDescriptor * dcc,const char * name)
/* Update the tooltip */
setMixerVolume(m_pVolumeSlider->value());
m_pVolumeSlider->setMaximumWidth(16);
- m_pVolumeSlider->setMaximumHeight(2*m_pPlayingLabel->height());
+ m_pVolumeSlider->setMaximumHeight(2 * m_pPlayingLabel->height());
connect(m_pVolumeSlider, SIGNAL(valueChanged(int)), this, SLOT(setMixerVolume(int)));
m_pTalkButton = new QToolButton(m_pHBox);
m_pTalkButton->setEnabled(false);
m_pTalkButton->setCheckable(true);
QIcon iset;
- iset.addPixmap(*(g_pIconManager->getBigIcon(KVI_BIGICON_DISCONNECTED)),QIcon::Normal,QIcon::Off);
- iset.addPixmap(*(g_pIconManager->getBigIcon(KVI_BIGICON_CONNECTED)),QIcon::Normal,QIcon::On);
+ iset.addPixmap(*(g_pIconManager->getBigIcon(KVI_BIGICON_DISCONNECTED)), QIcon::Normal, QIcon::Off);
+ iset.addPixmap(*(g_pIconManager->getBigIcon(KVI_BIGICON_CONNECTED)), QIcon::Normal, QIcon::On);
m_pTalkButton->setIcon(iset);
- m_pTalkButton->setIconSize(QSize(32,32));
- connect(m_pTalkButton,SIGNAL(toggled(bool)),this,SLOT(startOrStopTalking(bool)));
+ m_pTalkButton->setIconSize(QSize(32, 32));
+ connect(m_pTalkButton, SIGNAL(toggled(bool)), this, SLOT(startOrStopTalking(bool)));
- m_pHBox->setStretchFactor(vbox,1);
+ m_pHBox->setStretchFactor(vbox, 1);
m_pHBox->setMargin(2);
m_pHBox->setSpacing(1);
//setFocusHandler(m_pIrcView,this);
m_pMarshal = new DccMarshal(this);
- connect(m_pMarshal,SIGNAL(error(KviError::Code)),this,SLOT(handleMarshalError(KviError::Code)));
- connect(m_pMarshal,SIGNAL(connected()),this,SLOT(connected()));
- connect(m_pMarshal,SIGNAL(inProgress()),this,SLOT(connectionInProgress()));
+ connect(m_pMarshal, SIGNAL(error(KviError::Code)), this, SLOT(handleMarshalError(KviError::Code)));
+ connect(m_pMarshal, SIGNAL(connected()), this, SLOT(connected()));
+ connect(m_pMarshal, SIGNAL(inProgress()), this, SLOT(connectionInProgress()));
m_pUpdateTimer = new QTimer();
@@ -726,24 +778,25 @@ DccVoiceWindow::~DccVoiceWindow()
KviThreadManager::killPendingEvents(this);
delete m_pUpdateTimer;
-// delete m_pDescriptor;
-// delete m_pMarshal;
+ // delete m_pDescriptor;
+ // delete m_pMarshal;
}
-
void DccVoiceWindow::startConnection()
{
if(!(m_pDescriptor->bActive))
{
// PASSIVE CONNECTION
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Attempting a passive DCC VOICE connection","dcc"));
- KviError::Code eError = m_pMarshal->dccListen(m_pDescriptor->szListenIp,m_pDescriptor->szListenPort,m_pDescriptor->bDoTimeout);
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Attempting a passive DCC VOICE connection", "dcc"));
+ KviError::Code eError = m_pMarshal->dccListen(m_pDescriptor->szListenIp, m_pDescriptor->szListenPort, m_pDescriptor->bDoTimeout);
if(eError != KviError::Success)
handleMarshalError(eError);
- } else {
+ }
+ else
+ {
// ACTIVE CONNECTION
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Attempting an active DCC VOICE connection","dcc"));
- KviError::Code eError = m_pMarshal->dccConnect(m_pDescriptor->szIp.toUtf8().data(),m_pDescriptor->szPort.toUtf8().data(),m_pDescriptor->bDoTimeout);
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Attempting an active DCC VOICE connection", "dcc"));
+ KviError::Code eError = m_pMarshal->dccConnect(m_pDescriptor->szIp.toUtf8().data(), m_pDescriptor->szPort.toUtf8().data(), m_pDescriptor->bDoTimeout);
if(eError != KviError::Success)
handleMarshalError(eError);
}
@@ -753,29 +806,34 @@ void DccVoiceWindow::connectionInProgress()
{
if(m_pDescriptor->bActive)
{
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Contacting host %Q on port %Q","dcc"),&(m_pDescriptor->szIp),&(m_pDescriptor->szPort));
- } else {
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Contacting host %Q on port %Q", "dcc"), &(m_pDescriptor->szIp), &(m_pDescriptor->szPort));
+ }
+ else
+ {
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Listening on interface %Q port %Q","dcc"),
- &(m_pMarshal->localIp()),&(m_pMarshal->localPort()));
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Listening on interface %Q port %Q", "dcc"),
+ &(m_pMarshal->localIp()), &(m_pMarshal->localPort()));
if(m_pDescriptor->bSendRequest)
{
- QString ip = !m_pDescriptor->szFakeIp.isEmpty() ? m_pDescriptor->szFakeIp : m_pDescriptor->szListenIp;
- KviCString port = !m_pDescriptor->szFakePort.isEmpty() ? m_pDescriptor->szFakePort : m_pMarshal->localPort();
-//#warning "OPTION FOR SENDING 127.0.0.1 and so on (not an unsigned nuumber)"
+ QString ip = !m_pDescriptor->szFakeIp.isEmpty() ? m_pDescriptor->szFakeIp : m_pDescriptor->szListenIp;
+ KviCString port = !m_pDescriptor->szFakePort.isEmpty() ? m_pDescriptor->szFakePort : m_pMarshal->localPort();
+ //#warning "OPTION FOR SENDING 127.0.0.1 and so on (not an unsigned nuumber)"
struct in_addr a;
- if(KviNetUtils::stringIpToBinaryIp(ip,&a)) {
+ if(KviNetUtils::stringIpToBinaryIp(ip, &a))
+ {
ip.setNum(htonl(a.s_addr));
}
m_pDescriptor->console()->connection()->sendFmtData("PRIVMSG %s :%cDCC VOICE %s %Q %s %d%c",
- m_pDescriptor->console()->connection()->encodeText(m_pDescriptor->szNick).data(),
- 0x01,m_pDescriptor->szCodec.ptr(),
- &ip,port.ptr(),m_pDescriptor->iSampleRate,0x01);
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Sent DCC VOICE (%s) request to %Q, waiting for the remote client to connect...","dcc"),
- m_pDescriptor->szCodec.ptr(),&(m_pDescriptor->szNick));
- } else output(KVI_OUT_DCCMSG,__tr2qs_ctx("DCC VOICE request not sent: awaiting manual connections","dcc"));
+ m_pDescriptor->console()->connection()->encodeText(m_pDescriptor->szNick).data(),
+ 0x01, m_pDescriptor->szCodec.ptr(),
+ &ip, port.ptr(), m_pDescriptor->iSampleRate, 0x01);
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Sent DCC VOICE (%s) request to %Q, waiting for the remote client to connect...", "dcc"),
+ m_pDescriptor->szCodec.ptr(), &(m_pDescriptor->szNick));
+ }
+ else
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("DCC VOICE request not sent: awaiting manual connections", "dcc"));
}
}
@@ -783,20 +841,20 @@ const QString & DccVoiceWindow::target()
{
// This may change on the fly...
m_szTarget.sprintf("%s@%s:%s",
- m_pDescriptor->szNick.toUtf8().data(),m_pDescriptor->szIp.toUtf8().data(),m_pDescriptor->szPort.toUtf8().data());
+ m_pDescriptor->szNick.toUtf8().data(), m_pDescriptor->szIp.toUtf8().data(), m_pDescriptor->szPort.toUtf8().data());
return m_szTarget;
}
-void DccVoiceWindow::getBaseLogFileName(QString &buffer)
+void DccVoiceWindow::getBaseLogFileName(QString & buffer)
{
- buffer.sprintf("dccvoice_%s_%s_%s",m_pDescriptor->szNick.toUtf8().data(),m_pDescriptor->szLocalFileName.toUtf8().data(),m_pDescriptor->szPort.toUtf8().data());
+ buffer.sprintf("dccvoice_%s_%s_%s", m_pDescriptor->szNick.toUtf8().data(), m_pDescriptor->szLocalFileName.toUtf8().data(), m_pDescriptor->szPort.toUtf8().data());
}
void DccVoiceWindow::fillCaptionBuffers()
{
- KviCString tmp(KviCString::Format,"DCC Voice %s@%s:%s %s",
- m_pDescriptor->szNick.toUtf8().data(),m_pDescriptor->szIp.toUtf8().data(),m_pDescriptor->szPort.toUtf8().data(),
- m_pDescriptor->szLocalFileName.toUtf8().data());
+ KviCString tmp(KviCString::Format, "DCC Voice %s@%s:%s %s",
+ m_pDescriptor->szNick.toUtf8().data(), m_pDescriptor->szIp.toUtf8().data(), m_pDescriptor->szPort.toUtf8().data(),
+ m_pDescriptor->szLocalFileName.toUtf8().data());
m_szPlainTextCaption = tmp;
}
@@ -806,7 +864,7 @@ QPixmap * DccVoiceWindow::myIconPtr()
return g_pIconManager->getSmallIcon(KviIconManager::DccVoice);
}
-bool DccVoiceWindow::event(QEvent *e)
+bool DccVoiceWindow::event(QEvent * e)
{
if(e->type() == KVI_THREAD_EVENT)
{
@@ -816,7 +874,7 @@ bool DccVoiceWindow::event(QEvent *e)
{
KviError::Code * pError = ((KviThreadDataEvent<KviError::Code> *)e)->getData();
QString ssss = KviError::getDescription(*pError);
- output(KVI_OUT_DCCERROR,__tr2qs_ctx("ERROR: %Q","dcc"),&(ssss));
+ output(KVI_OUT_DCCERROR, __tr2qs_ctx("ERROR: %Q", "dcc"), &(ssss));
delete pError;
m_pUpdateTimer->stop();
updateInfo();
@@ -829,7 +887,7 @@ bool DccVoiceWindow::event(QEvent *e)
case KVI_DCC_THREAD_EVENT_MESSAGE:
{
KviCString * str = ((KviThreadDataEvent<KviCString> *)e)->getData();
- outputNoFmt(KVI_OUT_DCCMSG,__tr_no_xgettext_ctx(str->ptr(),"dcc"));
+ outputNoFmt(KVI_OUT_DCCMSG, __tr_no_xgettext_ctx(str->ptr(), "dcc"));
delete str;
return true;
}
@@ -841,26 +899,25 @@ bool DccVoiceWindow::event(QEvent *e)
{
case KVI_DCC_VOICE_THREAD_ACTION_START_RECORDING:
m_pRecordingLabel->setEnabled(true);
- break;
+ break;
case KVI_DCC_VOICE_THREAD_ACTION_STOP_RECORDING:
m_pRecordingLabel->setEnabled(false);
- break;
+ break;
case KVI_DCC_VOICE_THREAD_ACTION_START_PLAYING:
m_pPlayingLabel->setEnabled(true);
- break;
+ break;
case KVI_DCC_VOICE_THREAD_ACTION_STOP_PLAYING:
m_pPlayingLabel->setEnabled(false);
- break;
+ break;
}
delete act;
return true;
}
break;
default:
- qDebug("Invalid event type %d received",((KviThreadEvent *)e)->id());
- break;
+ qDebug("Invalid event type %d received", ((KviThreadEvent *)e)->id());
+ break;
}
-
}
return KviWindow::event(e);
@@ -874,9 +931,9 @@ void DccVoiceWindow::updateInfo()
int iOSize = m_pSlaveThread->m_iOutputBufferSize;
int iISize = m_pSlaveThread->m_iInputBufferSize;
m_pSlaveThread->m_pInfoMutex->unlock();
- KviCString tmp(KviCString::Format,__tr_ctx("Input buffer: %d bytes","dcc"),iISize);
+ KviCString tmp(KviCString::Format, __tr_ctx("Input buffer: %d bytes", "dcc"), iISize);
m_pInputLabel->setText(tmp.ptr());
- tmp.sprintf(__tr_ctx("Output buffer: %d bytes","dcc"),iOSize);
+ tmp.sprintf(__tr_ctx("Output buffer: %d bytes", "dcc"), iOSize);
m_pOutputLabel->setText(tmp.ptr());
}
}
@@ -884,8 +941,8 @@ void DccVoiceWindow::updateInfo()
void DccVoiceWindow::resizeEvent(QResizeEvent *)
{
int hght2 = m_pHBox->sizeHint().height();
- m_pHBox->setGeometry(0,0,width(),hght2);
- m_pSplitter->setGeometry(0,hght2,width(),height() - hght2);
+ m_pHBox->setGeometry(0, 0, width(), hght2);
+ m_pSplitter->setGeometry(0, hght2, width(), height() - hght2);
}
QSize DccVoiceWindow::sizeHint() const
@@ -899,7 +956,7 @@ QSize DccVoiceWindow::sizeHint() const
void DccVoiceWindow::handleMarshalError(KviError::Code eError)
{
QString ssss = KviError::getDescription(eError);
- output(KVI_OUT_DCCERROR,__tr2qs_ctx("DCC failed: %Q","dcc"),&ssss);
+ output(KVI_OUT_DCCERROR, __tr2qs_ctx("DCC failed: %Q", "dcc"), &ssss);
m_pTalkButton->setEnabled(false);
m_pTalkButton->setChecked(false);
m_pRecordingLabel->setEnabled(false);
@@ -908,36 +965,35 @@ void DccVoiceWindow::handleMarshalError(KviError::Code eError)
void DccVoiceWindow::connected()
{
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Connected to %Q:%Q","dcc"),
- &(m_pMarshal->remoteIp()),&(m_pMarshal->remotePort()));
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Local end is %Q:%Q","dcc"),
- &(m_pMarshal->localIp()),&(m_pMarshal->localPort()));
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Connected to %Q:%Q", "dcc"),
+ &(m_pMarshal->remoteIp()), &(m_pMarshal->remotePort()));
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Local end is %Q:%Q", "dcc"),
+ &(m_pMarshal->localIp()), &(m_pMarshal->localPort()));
if(!(m_pDescriptor->bActive))
{
- m_pDescriptor->szIp = m_pMarshal->remoteIp();
+ m_pDescriptor->szIp = m_pMarshal->remoteIp();
m_pDescriptor->szPort = m_pMarshal->remotePort();
m_pDescriptor->szHost = m_pMarshal->remoteIp();
}
updateCaption();
- connect(m_pUpdateTimer,SIGNAL(timeout()),this,SLOT(updateInfo()));
+ connect(m_pUpdateTimer, SIGNAL(timeout()), this, SLOT(updateInfo()));
m_pUpdateTimer->start(1000);
KviDccVoiceThreadOptions * opt = new KviDccVoiceThreadOptions;
-
opt->pCodec = kvi_dcc_voice_get_codec(m_pDescriptor->szCodec.ptr());
- output(KVI_OUT_DCCMSG,__tr2qs_ctx("Actual codec used is '%s'","dcc"),opt->pCodec->name());
+ output(KVI_OUT_DCCMSG, __tr2qs_ctx("Actual codec used is '%s'", "dcc"), opt->pCodec->name());
opt->bForceHalfDuplex = KVI_OPTION_BOOL(KviOption_boolDccVoiceForceHalfDuplex);
-// opt->bForceDummyReadTrigger = false;
+ // opt->bForceDummyReadTrigger = false;
opt->iPreBufferSize = KVI_OPTION_UINT(KviOption_uintDccVoicePreBufferSize);
opt->szSoundDevice = KVI_OPTION_STRING(KviOption_stringDccVoiceSoundDevice).toUtf8().data();
opt->iSampleRate = m_pDescriptor->iSampleRate;
- m_pSlaveThread = new DccVoiceThread(this,m_pMarshal->releaseSocket(),opt);
- connect(m_pUpdateTimer,SIGNAL(timeout()),this,SLOT(updateInfo()));
+ m_pSlaveThread = new DccVoiceThread(this, m_pMarshal->releaseSocket(), opt);
+ connect(m_pUpdateTimer, SIGNAL(timeout()), this, SLOT(updateInfo()));
m_pSlaveThread->start();
m_pTalkButton->setEnabled(true);
@@ -959,8 +1015,10 @@ void DccVoiceWindow::startTalking()
void DccVoiceWindow::startOrStopTalking(bool bStart)
{
- if(bStart)startTalking();
- else stopTalking();
+ if(bStart)
+ startTalking();
+ else
+ stopTalking();
}
int DccVoiceWindow::getMixerVolume(void) const
@@ -978,14 +1036,14 @@ int DccVoiceWindow::getMixerVolume(void) const
req = KVI_OPTION_BOOL(KviOption_boolDccVoiceVolumeSliderControlsPCM) ? SOUND_MIXER_READ_PCM : SOUND_MIXER_READ_VOLUME;
- if(::ioctl(fd,req,&ret))
+ if(::ioctl(fd, req, &ret))
{
::close(fd);
return 0;
}
left = (ret & 0x00ff);
-// right = (ret & 0xff00) >> 8;
+ // right = (ret & 0xff00) >> 8;
::close(fd);
@@ -1011,17 +1069,16 @@ void DccVoiceWindow::setMixerVolume(int vol)
::ioctl(fd, req, &val);
::close(fd);
- m_pVolumeSlider->setToolTip(__tr2qs_ctx("Volume: %1","dcc").arg(-vol));
+ m_pVolumeSlider->setToolTip(__tr2qs_ctx("Volume: %1", "dcc").arg(-vol));
#endif
}
-
/* The code below doesn't work. Guess I have to catch some other widget's focusInEvent. Which one ? */
/* The point is to move the volume slider to correct position if for example user switched to
* another KVirc window, fired up xmms, changed the volume, and returned to our dcc voice window */
-void DccVoiceWindow::focusInEvent(QFocusEvent *e)
+void DccVoiceWindow::focusInEvent(QFocusEvent * e)
{
-// qDebug("focusInEvent()");
+ // qDebug("focusInEvent()");
m_pVolumeSlider->setValue(getMixerVolume());
setMixerVolume(m_pVolumeSlider->value());
diff --git a/src/modules/dcc/DccVoiceWindow.h b/src/modules/dcc/DccVoiceWindow.h
index d641c766e..bc37ffecb 100644
--- a/src/modules/dcc/DccVoiceWindow.h
+++ b/src/modules/dcc/DccVoiceWindow.h
@@ -43,7 +43,7 @@ class QSlider;
class DccMarshal;
#ifndef _DCC_VOICE_CPP_
- extern bool kvi_dcc_voice_is_valid_codec(const char * codecName);
+extern bool kvi_dcc_voice_is_valid_codec(const char * codecName);
#endif
#define KVI_DCC_VOICE_THREAD_ACTION_START_RECORDING 0
@@ -53,42 +53,45 @@ class DccMarshal;
typedef struct _KviDccVoiceThreadOptions
{
- bool bForceHalfDuplex;
- int iPreBufferSize;
- int iSampleRate;
- KviCString szSoundDevice;
+ bool bForceHalfDuplex;
+ int iPreBufferSize;
+ int iSampleRate;
+ KviCString szSoundDevice;
DccVoiceCodec * pCodec;
} KviDccVoiceThreadOptions;
class DccVoiceThread : public DccThread
{
friend class DccVoiceWindow;
+
public:
- DccVoiceThread(KviWindow * wnd,kvi_socket_t fd,KviDccVoiceThreadOptions * opt);
+ DccVoiceThread(KviWindow * wnd, kvi_socket_t fd, KviDccVoiceThreadOptions * opt);
~DccVoiceThread();
+
protected:
-// bool m_bUseGsm;
+ // bool m_bUseGsm;
KviDccVoiceThreadOptions * m_pOpt;
- int m_soundFd;
- int m_soundFdMode;
- KviDataBuffer m_outFrameBuffer;
- KviDataBuffer m_inFrameBuffer;
- KviDataBuffer m_inSignalBuffer;
- KviDataBuffer m_outSignalBuffer;
- bool m_bPlaying;
- bool m_bRecording;
- bool m_bRecordingRequestPending;
- bool m_bSoundcardChecked;
- int m_iLastSignalBufferSize;
- long m_iLastSignalBufferTime;
-// unsigned int m_uSleepTime;
- KviMutex * m_pInfoMutex;
+ int m_soundFd;
+ int m_soundFdMode;
+ KviDataBuffer m_outFrameBuffer;
+ KviDataBuffer m_inFrameBuffer;
+ KviDataBuffer m_inSignalBuffer;
+ KviDataBuffer m_outSignalBuffer;
+ bool m_bPlaying;
+ bool m_bRecording;
+ bool m_bRecordingRequestPending;
+ bool m_bSoundcardChecked;
+ int m_iLastSignalBufferSize;
+ long m_iLastSignalBufferTime;
+ // unsigned int m_uSleepTime;
+ KviMutex * m_pInfoMutex;
// stuff protected by the mutex:
- int m_iInputBufferSize;
- int m_iOutputBufferSize;
+ int m_iInputBufferSize;
+ int m_iOutputBufferSize;
+
protected:
bool checkSoundcard();
- bool openSoundcardWithDuplexOption(int openMode,int failMode);
+ bool openSoundcardWithDuplexOption(int openMode, int failMode);
bool openSoundcard(int mode);
bool openSoundcardForWriting();
bool openSoundcardForReading();
@@ -102,33 +105,34 @@ protected:
virtual void run();
};
-
class DccVoiceWindow : public DccWindow
{
Q_OBJECT
public:
- DccVoiceWindow(DccDescriptor * dcc,const char * name);
+ DccVoiceWindow(DccDescriptor * dcc, const char * name);
~DccVoiceWindow();
+
protected:
- KviTalHBox * m_pHBox;
- QSlider * m_pVolumeSlider;
- QLabel * m_pInputLabel;
- QLabel * m_pOutputLabel;
- QLabel * m_pRecordingLabel;
- QLabel * m_pPlayingLabel;
- QToolButton * m_pTalkButton;
- QTimer * m_pUpdateTimer;
- QString m_szTarget;
- DccVoiceThread * m_pSlaveThread;
+ KviTalHBox * m_pHBox;
+ QSlider * m_pVolumeSlider;
+ QLabel * m_pInputLabel;
+ QLabel * m_pOutputLabel;
+ QLabel * m_pRecordingLabel;
+ QLabel * m_pPlayingLabel;
+ QToolButton * m_pTalkButton;
+ QTimer * m_pUpdateTimer;
+ QString m_szTarget;
+ DccVoiceThread * m_pSlaveThread;
+
protected:
virtual void focusInEvent(QFocusEvent *);
virtual const QString & target();
virtual void fillCaptionBuffers();
virtual QPixmap * myIconPtr();
- virtual void resizeEvent(QResizeEvent *e);
+ virtual void resizeEvent(QResizeEvent * e);
virtual QSize sizeHint() const;
- virtual bool event(QEvent *e);
- virtual void getBaseLogFileName(QString &buffer);
+ virtual bool event(QEvent * e);
+ virtual void getBaseLogFileName(QString & buffer);
void startTalking();
void stopTalking();
void startConnection();
@@ -140,7 +144,7 @@ protected slots:
void startOrStopTalking(bool bStart);
void setMixerVolume(int);
void connectionInProgress();
-// void stopTalking();
+ // void stopTalking();
};
#if 0
@@ -437,7 +441,6 @@ void KviVoiceConference::conferenceThread()
// read raw audio data at sample rate X, sample size Y
// multiplex data always at this sample rate and sample size
-
#endif
#endif //_VOICE_H_
diff --git a/src/modules/dcc/DccWindow.cpp b/src/modules/dcc/DccWindow.cpp
index 3f4b47994..e9eb2c597 100644
--- a/src/modules/dcc/DccWindow.cpp
+++ b/src/modules/dcc/DccWindow.cpp
@@ -26,20 +26,22 @@
#include "KviTalHBox.h"
-DccWindow::DccWindow(KviWindow::Type eType,const char * name,DccDescriptor * d)
-: KviWindow(eType,name, d->console())
+DccWindow::DccWindow(KviWindow::Type eType, const char * name, DccDescriptor * d)
+ : KviWindow(eType, name, d->console())
{
m_pDescriptor = d;
m_pDescriptor->setWindow(this);
- m_pMarshal = 0;
+ m_pMarshal = 0;
m_pButtonBox = new KviTalHBox(this);
createTextEncodingButton(m_pButtonBox);
}
DccWindow::~DccWindow()
{
- if(m_pMarshal)delete m_pMarshal;
- if(m_pDescriptor)delete m_pDescriptor;
+ if(m_pMarshal)
+ delete m_pMarshal;
+ if(m_pDescriptor)
+ delete m_pDescriptor;
}
KviWindow * DccWindow::dccMarshalOutputWindow()
diff --git a/src/modules/dcc/DccWindow.h b/src/modules/dcc/DccWindow.h
index 58d6f3355..31a4710fd 100644
--- a/src/modules/dcc/DccWindow.h
+++ b/src/modules/dcc/DccWindow.h
@@ -35,17 +35,19 @@ class DccWindow : public KviWindow, public DccMarshalOutputContext
{
Q_OBJECT
public:
- DccWindow(KviWindow::Type eType,const char * name,DccDescriptor * d);
+ DccWindow(KviWindow::Type eType, const char * name, DccDescriptor * d);
~DccWindow();
+
protected:
- DccDescriptor * m_pDescriptor;
- DccMarshal * m_pMarshal;
+ DccDescriptor * m_pDescriptor;
+ DccMarshal * m_pMarshal;
+
public:
- DccDescriptor * descriptor() { return m_pDescriptor; };
- const DccMarshal * marshal() { return m_pMarshal; };
- virtual DccThread * getSlaveThread() { return 0; };
- virtual KviWindow * dccMarshalOutputWindow();
- virtual const char * dccMarshalOutputContextString();
+ DccDescriptor * descriptor() { return m_pDescriptor; };
+ const DccMarshal * marshal() { return m_pMarshal; };
+ virtual DccThread * getSlaveThread() { return 0; };
+ virtual KviWindow * dccMarshalOutputWindow();
+ virtual const char * dccMarshalOutputContextString();
};
#endif //_WINDOW_H_
diff --git a/src/modules/dcc/canvaswidget.cpp b/src/modules/dcc/canvaswidget.cpp
index 4660c3173..e89326c49 100644
--- a/src/modules/dcc/canvaswidget.cpp
+++ b/src/modules/dcc/canvaswidget.cpp
@@ -25,1486 +25,1515 @@
#include "canvaswidget.h"
#ifdef COMPILE_DCC_CANVAS
- #include "KviCString.h"
- #include "KviLocale.h"
+#include "KviCString.h"
+#include "KviLocale.h"
- #include <QCursor>
- #include <QPainter>
- #include <QLineEdit>
- #include <QComboBox>
- #include <QValidator>
- #include <QMenu>
+#include <QCursor>
+#include <QPainter>
+#include <QLineEdit>
+#include <QComboBox>
+#include <QValidator>
+#include <QMenu>
- #include <math.h>
- #include <stdlib.h>
+#include <math.h>
+#include <stdlib.h>
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //
- // KviCanvasRectangleItem
- //
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// KviCanvasRectangleItem
+//
- KviCanvasRectangleItem::KviCanvasRectangleItem(QCanvas * c,int x,int y,int w,int h)
- : QCanvasRectangle(x,y,w,h,c)
- {
- }
+KviCanvasRectangleItem::KviCanvasRectangleItem(QCanvas * c, int x, int y, int w, int h)
+ : QCanvasRectangle(x, y, w, h, c)
+{
+}
- KviCanvasRectangleItem::~KviCanvasRectangleItem()
- {
- }
+KviCanvasRectangleItem::~KviCanvasRectangleItem()
+{
+}
- void KviCanvasRectangleItem::drawSelection(QPainter &p)
- {
- p.setRasterOp(NotROP);
- p.fillRect((int)x() + 1,(int)y() + 1,width() - 2,height() - 2,QBrush(Dense6Pattern));
- p.setPen(QPen(DotLine));
- p.drawRect((int)x(),(int)y(),width(),height());
- p.setRasterOp(CopyROP);
- }
+void KviCanvasRectangleItem::drawSelection(QPainter & p)
+{
+ p.setRasterOp(NotROP);
+ p.fillRect((int)x() + 1, (int)y() + 1, width() - 2, height() - 2, QBrush(Dense6Pattern));
+ p.setPen(QPen(DotLine));
+ p.drawRect((int)x(), (int)y(), width(), height());
+ p.setRasterOp(CopyROP);
+}
- void KviCanvasRectangleItem::setProperty(const QString &property,const QVariant &val)
+void KviCanvasRectangleItem::setProperty(const QString & property, const QVariant & val)
+{
+ if(m_properties[property].isValid())
{
- if(m_properties[property].isValid())
- {
- m_properties.replace(property,val);
- hide();
- show();
- }
+ m_properties.replace(property, val);
+ hide();
+ show();
}
+}
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// KviCanvasPolygon
+//
+KviCanvasPolygon::KviCanvasPolygon(QCanvas * c, int x, int y, QPointArray & pnts, double dScaleFactor)
+ : QCanvasPolygon(c)
+{
+ m_properties.insert("clrForeground", QVariant(QColor(0, 0, 0)));
+ m_properties.insert("uLineWidth", QVariant((unsigned int)0));
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //
- // KviCanvasPolygon
- //
- KviCanvasPolygon::KviCanvasPolygon(QCanvas * c,int x,int y,QPointArray &pnts,double dScaleFactor)
- : QCanvasPolygon(c)
- {
- m_properties.insert("clrForeground",QVariant(QColor(0,0,0)));
- m_properties.insert("uLineWidth",QVariant((unsigned int)0));
+ m_properties.insert("clrBackground", QVariant(QColor(0, 0, 0)));
+ m_properties.insert("bHasBackground", QVariant(false, 1));
- m_properties.insert("clrBackground",QVariant(QColor(0,0,0)));
- m_properties.insert("bHasBackground",QVariant(false,1));
+ m_dScaleFactor = dScaleFactor;
+ m_points = pnts;
- m_dScaleFactor = dScaleFactor;
- m_points = pnts;
+ resetPoints();
+ move(x, y);
+}
- resetPoints();
- move(x,y);
- }
+KviCanvasPolygon::~KviCanvasPolygon()
+{
+}
- KviCanvasPolygon::~KviCanvasPolygon()
- {
- }
+void KviCanvasPolygon::setScaleFactor(double dScaleFactor)
+{
+ m_dScaleFactor = dScaleFactor;
+ resetPoints();
+}
- void KviCanvasPolygon::setScaleFactor(double dScaleFactor)
- {
- m_dScaleFactor = dScaleFactor;
- resetPoints();
- }
+void KviCanvasPolygon::setInternalPoints(const QPointArray & pnts)
+{
+ m_points = pnts;
+ resetPoints();
+}
- void KviCanvasPolygon::setInternalPoints(const QPointArray &pnts)
+void KviCanvasPolygon::resetPoints()
+{
+ QPointArray scaled(m_points.size());
+ for(unsigned int i = 0; i < m_points.size(); i++)
{
- m_points = pnts;
- resetPoints();
-
+ int px;
+ int py;
+ m_points.point(i, &px, &py);
+ px = (int)(px * m_dScaleFactor);
+ py = (int)(py * m_dScaleFactor);
+ scaled.setPoint(i, px, py);
}
+ setPoints(scaled);
+}
- void KviCanvasPolygon::resetPoints()
- {
- QPointArray scaled(m_points.size());
- for(unsigned int i=0;i<m_points.size();i++)
- {
- int px;
- int py;
- m_points.point(i,&px,&py);
- px = (int)(px * m_dScaleFactor);
- py = (int)(py * m_dScaleFactor);
- scaled.setPoint(i,px,py);
- }
- setPoints(scaled);
- }
+int KviCanvasPolygon::rtti() const
+{
+ return KVI_CANVAS_RTTI_POLYGON;
+}
- int KviCanvasPolygon::rtti() const
+void KviCanvasPolygon::setProperty(const QString & property, const QVariant & val)
+{
+ if(m_properties[property].isValid())
{
- return KVI_CANVAS_RTTI_POLYGON;
- }
-
- void KviCanvasPolygon::setProperty(const QString &property,const QVariant &val)
- {
- if(m_properties[property].isValid())
+ m_properties.replace(property, val);
+ if((property == "clrForeground") || (property == "uLineWidth"))
{
- m_properties.replace(property,val);
- if((property == "clrForeground") || (property == "uLineWidth"))
- {
- setPen(QPen(m_properties["clrForeground"].asColor(),m_properties["uLineWidth"].toInt()));
- } else if((property == "clrBackground") || (property == "bHasBackground"))
- {
- if(m_properties["bHasBackground"].asBool())
- setBrush(QBrush(m_properties["clrBackground"].asColor()));
- else
- setBrush(QBrush());
- } else {
- hide(); show();
- }
+ setPen(QPen(m_properties["clrForeground"].asColor(), m_properties["uLineWidth"].toInt()));
}
- }
-
- void KviCanvasPolygon::draw(QPainter &p)
- {
- if(isEnabled())
+ else if((property == "clrBackground") || (property == "bHasBackground"))
{
- p.setBrush(brush());
- p.setPen(pen());
- p.drawPolygon(areaPoints());
+ if(m_properties["bHasBackground"].asBool())
+ setBrush(QBrush(m_properties["clrBackground"].asColor()));
+ else
+ setBrush(QBrush());
}
-
- if(isSelected())
+ else
{
- p.setRasterOp(NotROP);
- p.setPen(QPen(DotLine));
- p.drawPolygon(areaPoints());
- p.setBrush(QBrush());
- double dVal = 10;
- p.drawEllipse((int)(x() - dVal),(int)(y() - dVal),(int)(dVal * 2),(int)(dVal * 2));
- p.drawLine((int)(x() - (dVal * 2)),(int)y(),(int)(x() + (dVal * 2)),(int)y());
- p.drawLine((int)x(),(int)(y() - (dVal * 2)),(int)x(),(int)(y() + (dVal * 2)));
- p.setRasterOp(CopyROP);
- canvas()->setChanged(QRect((int)(x() - dVal),(int)(y() - dVal),(int)(dVal * 4),(int)(dVal * 4)));
+ hide();
+ show();
}
}
+}
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //
- // KviCanvasEllipticItem
- //
-
- KviCanvasEllipticItem::KviCanvasEllipticItem(QCanvas * c,int x,int y,int w,int h)
- : KviCanvasRectangleItem(c,x,y,w,h)
+void KviCanvasPolygon::draw(QPainter & p)
+{
+ if(isEnabled())
{
- m_properties.insert("clrForeground",QVariant(QColor(0,0,0)));
- m_properties.insert("uLineWidth",QVariant((unsigned int)0));
-
- m_properties.insert("clrBackground",QVariant(QColor(0,0,0)));
- m_properties.insert("bHasBackground",QVariant(false,1));
-
- // m_properties.insert("iStartAngle",QVariant(0));
- // m_properties.insert("iEndAngle",QVariant(360));
+ p.setBrush(brush());
+ p.setPen(pen());
+ p.drawPolygon(areaPoints());
}
- KviCanvasEllipticItem::~KviCanvasEllipticItem()
+ if(isSelected())
{
+ p.setRasterOp(NotROP);
+ p.setPen(QPen(DotLine));
+ p.drawPolygon(areaPoints());
+ p.setBrush(QBrush());
+ double dVal = 10;
+ p.drawEllipse((int)(x() - dVal), (int)(y() - dVal), (int)(dVal * 2), (int)(dVal * 2));
+ p.drawLine((int)(x() - (dVal * 2)), (int)y(), (int)(x() + (dVal * 2)), (int)y());
+ p.drawLine((int)x(), (int)(y() - (dVal * 2)), (int)x(), (int)(y() + (dVal * 2)));
+ p.setRasterOp(CopyROP);
+ canvas()->setChanged(QRect((int)(x() - dVal), (int)(y() - dVal), (int)(dVal * 4), (int)(dVal * 4)));
}
+}
- void KviCanvasEllipticItem::draw(QPainter &p)
- {
- if(isEnabled())
- {
- QBrush b = p.brush();
- if(m_properties["bHasBackground"].asBool())p.setBrush(m_properties["clrBackground"].asColor());
- else p.setBrush(QBrush());
- p.setPen(pen());
- drawContent(p);
- p.setBrush(b);
- }
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// KviCanvasEllipticItem
+//
- if(isSelected())drawSelection(p);
- }
+KviCanvasEllipticItem::KviCanvasEllipticItem(QCanvas * c, int x, int y, int w, int h)
+ : KviCanvasRectangleItem(c, x, y, w, h)
+{
+ m_properties.insert("clrForeground", QVariant(QColor(0, 0, 0)));
+ m_properties.insert("uLineWidth", QVariant((unsigned int)0));
- void KviCanvasEllipticItem::drawContent(QPainter &p)
- {
- }
+ m_properties.insert("clrBackground", QVariant(QColor(0, 0, 0)));
+ m_properties.insert("bHasBackground", QVariant(false, 1));
- void KviCanvasEllipticItem::setProperty(const QString & property,const QVariant &val)
- {
- if(m_properties[property].isValid())
- {
- m_properties.replace(property,val);
- if((property == "clrForeground") || (property == "uLineWidth"))
- {
- setPen(QPen(m_properties["clrForeground"].asColor(),m_properties["uLineWidth"].toInt()));
- } else {
- hide(); show();
- }
- }
- }
+ // m_properties.insert("iStartAngle",QVariant(0));
+ // m_properties.insert("iEndAngle",QVariant(360));
+}
+
+KviCanvasEllipticItem::~KviCanvasEllipticItem()
+{
+}
- int KviCanvasEllipticItem::rtti() const
+void KviCanvasEllipticItem::draw(QPainter & p)
+{
+ if(isEnabled())
{
- return KVI_CANVAS_RTTI_ELLIPSE;
+ QBrush b = p.brush();
+ if(m_properties["bHasBackground"].asBool())
+ p.setBrush(m_properties["clrBackground"].asColor());
+ else
+ p.setBrush(QBrush());
+ p.setPen(pen());
+ drawContent(p);
+ p.setBrush(b);
}
+ if(isSelected())
+ drawSelection(p);
+}
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //
- // KviCanvasEllipse
- //
-
+void KviCanvasEllipticItem::drawContent(QPainter & p)
+{
+}
- KviCanvasEllipse::KviCanvasEllipse(QCanvas * c,int x,int y,int w,int h)
- : KviCanvasEllipticItem(c,x,y,w,h)
+void KviCanvasEllipticItem::setProperty(const QString & property, const QVariant & val)
+{
+ if(m_properties[property].isValid())
{
+ m_properties.replace(property, val);
+ if((property == "clrForeground") || (property == "uLineWidth"))
+ {
+ setPen(QPen(m_properties["clrForeground"].asColor(), m_properties["uLineWidth"].toInt()));
+ }
+ else
+ {
+ hide();
+ show();
+ }
}
+}
- KviCanvasEllipse::~KviCanvasEllipse()
- {
- }
+int KviCanvasEllipticItem::rtti() const
+{
+ return KVI_CANVAS_RTTI_ELLIPSE;
+}
- int KviCanvasEllipse::rtti() const
- {
- return KVI_CANVAS_RTTI_ELLIPSE;
- }
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// KviCanvasEllipse
+//
- void KviCanvasEllipse::drawContent(QPainter &p)
- {
- p.drawEllipse((int)x(),(int)y(),width(),height());
- }
+KviCanvasEllipse::KviCanvasEllipse(QCanvas * c, int x, int y, int w, int h)
+ : KviCanvasEllipticItem(c, x, y, w, h)
+{
+}
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //
- // KviCanvasPie
- //
+KviCanvasEllipse::~KviCanvasEllipse()
+{
+}
+int KviCanvasEllipse::rtti() const
+{
+ return KVI_CANVAS_RTTI_ELLIPSE;
+}
- KviCanvasPie::KviCanvasPie(QCanvas * c,int x,int y,int w,int h)
- : KviCanvasEllipticItem(c,x,y,w,h)
- {
- m_properties.insert("iStartAngle",QVariant((int)0));
- m_properties.insert("iExtensionAngle",QVariant((int)360));
- }
+void KviCanvasEllipse::drawContent(QPainter & p)
+{
+ p.drawEllipse((int)x(), (int)y(), width(), height());
+}
- KviCanvasPie::~KviCanvasPie()
- {
- }
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// KviCanvasPie
+//
- int KviCanvasPie::rtti() const
- {
- return KVI_CANVAS_RTTI_PIE;
- }
+KviCanvasPie::KviCanvasPie(QCanvas * c, int x, int y, int w, int h)
+ : KviCanvasEllipticItem(c, x, y, w, h)
+{
+ m_properties.insert("iStartAngle", QVariant((int)0));
+ m_properties.insert("iExtensionAngle", QVariant((int)360));
+}
- void KviCanvasPie::drawContent(QPainter &p)
- {
- int iStartAngle = m_properties["iStartAngle"].asInt() * 16;
- int iEndAngle = m_properties["iExtensionAngle"].asInt() * 16;
- p.drawPie((int)x(),(int)y(),width(),height(),iStartAngle,iEndAngle);
- }
+KviCanvasPie::~KviCanvasPie()
+{
+}
+int KviCanvasPie::rtti() const
+{
+ return KVI_CANVAS_RTTI_PIE;
+}
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //
- // KviCanvasChord
- //
- KviCanvasChord::KviCanvasChord(QCanvas * c,int x,int y,int w,int h)
- : KviCanvasEllipticItem(c,x,y,w,h)
- {
- m_properties.insert("iStartAngle",QVariant((int)0));
- m_properties.insert("iExtensionAngle",QVariant((int)360));
- }
+void KviCanvasPie::drawContent(QPainter & p)
+{
+ int iStartAngle = m_properties["iStartAngle"].asInt() * 16;
+ int iEndAngle = m_properties["iExtensionAngle"].asInt() * 16;
+ p.drawPie((int)x(), (int)y(), width(), height(), iStartAngle, iEndAngle);
+}
- KviCanvasChord::~KviCanvasChord()
- {
- }
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// KviCanvasChord
+//
+KviCanvasChord::KviCanvasChord(QCanvas * c, int x, int y, int w, int h)
+ : KviCanvasEllipticItem(c, x, y, w, h)
+{
+ m_properties.insert("iStartAngle", QVariant((int)0));
+ m_properties.insert("iExtensionAngle", QVariant((int)360));
+}
- int KviCanvasChord::rtti() const
- {
- return KVI_CANVAS_RTTI_CHORD;
- }
+KviCanvasChord::~KviCanvasChord()
+{
+}
- void KviCanvasChord::drawContent(QPainter &p)
- {
- int iStartAngle = m_properties["iStartAngle"].asInt() * 16;
- int iEndAngle = m_properties["iExtensionAngle"].asInt() * 16;
- p.drawChord((int)x(),(int)y(),width(),height(),iStartAngle,iEndAngle);
- }
+int KviCanvasChord::rtti() const
+{
+ return KVI_CANVAS_RTTI_CHORD;
+}
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //
- // KviCanvasRectangle
- //
- KviCanvasRectangle::KviCanvasRectangle(QCanvas * c,int x,int y,int w,int h)
- : KviCanvasRectangleItem(c,x,y,w,h)
- {
- m_properties.insert("clrForeground",QVariant(QColor(0,0,0)));
- m_properties.insert("uLineWidth",QVariant((unsigned int)0));
+void KviCanvasChord::drawContent(QPainter & p)
+{
+ int iStartAngle = m_properties["iStartAngle"].asInt() * 16;
+ int iEndAngle = m_properties["iExtensionAngle"].asInt() * 16;
+ p.drawChord((int)x(), (int)y(), width(), height(), iStartAngle, iEndAngle);
+}
- m_properties.insert("clrBackground",QVariant(QColor(0,0,0)));
- m_properties.insert("bHasBackground",QVariant(false,1));
- }
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// KviCanvasRectangle
+//
+KviCanvasRectangle::KviCanvasRectangle(QCanvas * c, int x, int y, int w, int h)
+ : KviCanvasRectangleItem(c, x, y, w, h)
+{
+ m_properties.insert("clrForeground", QVariant(QColor(0, 0, 0)));
+ m_properties.insert("uLineWidth", QVariant((unsigned int)0));
- KviCanvasRectangle::~KviCanvasRectangle()
- {
- }
+ m_properties.insert("clrBackground", QVariant(QColor(0, 0, 0)));
+ m_properties.insert("bHasBackground", QVariant(false, 1));
+}
- int KviCanvasRectangle::rtti() const
- {
- return KVI_CANVAS_RTTI_RECTANGLE;
- }
+KviCanvasRectangle::~KviCanvasRectangle()
+{
+}
- void KviCanvasRectangle::setProperty(const QString &property,const QVariant &val)
+int KviCanvasRectangle::rtti() const
+{
+ return KVI_CANVAS_RTTI_RECTANGLE;
+}
+
+void KviCanvasRectangle::setProperty(const QString & property, const QVariant & val)
+{
+ if(m_properties[property].isValid())
{
- if(m_properties[property].isValid())
+ m_properties.replace(property, val);
+ if((property == "clrForeground") || (property == "uLineWidth"))
{
- m_properties.replace(property,val);
- if((property == "clrForeground") || (property == "uLineWidth"))
- {
- setPen(QPen(m_properties["clrForeground"].asColor(),m_properties["uLineWidth"].toInt()));
- } else {
- hide(); show();
- }
+ setPen(QPen(m_properties["clrForeground"].asColor(), m_properties["uLineWidth"].toInt()));
+ }
+ else
+ {
+ hide();
+ show();
}
}
+}
- void KviCanvasRectangle::draw(QPainter & p)
+void KviCanvasRectangle::draw(QPainter & p)
+{
+ if(isEnabled())
{
- if(isEnabled())
+ if(m_properties["bHasBackground"].asBool())
{
- if(m_properties["bHasBackground"].asBool())
- {
- p.fillRect((int)x() + 1,(int)y() + 1,width() - 2,height() - 2,m_properties["clrBackground"].asColor());
- }
- p.setPen(pen());
- p.drawRect((int)x(),(int)y(),width(),height());
+ p.fillRect((int)x() + 1, (int)y() + 1, width() - 2, height() - 2, m_properties["clrBackground"].asColor());
}
-
- if(isSelected())drawSelection(p);
+ p.setPen(pen());
+ p.drawRect((int)x(), (int)y(), width(), height());
}
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //
- // KviCanvasRichText
- //
- KviCanvasRichText::KviCanvasRichText(QCanvas * c,int x,int y,int w,int h)
- : KviCanvasRectangleItem(c,x,y,w,h)
- {
- QFont f = QFont();
- f.setStyleHint(QFont::SansSerif);
- f.setPointSize(12);
- m_properties.insert("szText",QVariant(QString("Insert here your <font color=\"#FF0000\"><b>RICH TEXT</b></font>")));
- m_properties.insert("fntDefault",QVariant(f));
- }
+ if(isSelected())
+ drawSelection(p);
+}
- KviCanvasRichText::~KviCanvasRichText()
- {
- }
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// KviCanvasRichText
+//
+KviCanvasRichText::KviCanvasRichText(QCanvas * c, int x, int y, int w, int h)
+ : KviCanvasRectangleItem(c, x, y, w, h)
+{
+ QFont f = QFont();
+ f.setStyleHint(QFont::SansSerif);
+ f.setPointSize(12);
+ m_properties.insert("szText", QVariant(QString("Insert here your <font color=\"#FF0000\"><b>RICH TEXT</b></font>")));
+ m_properties.insert("fntDefault", QVariant(f));
+}
+
+KviCanvasRichText::~KviCanvasRichText()
+{
+}
+
+int KviCanvasRichText::rtti() const
+{
+ return KVI_CANVAS_RTTI_RICHTEXT;
+}
- int KviCanvasRichText::rtti() const
+void KviCanvasRichText::draw(QPainter & p)
+{
+ if(isEnabled())
{
- return KVI_CANVAS_RTTI_RICHTEXT;
+ QString szText = m_properties["szText"].asString();
+ QSimpleRichText text(szText, m_properties["fntDefault"].asFont());
+ text.setWidth(width());
+ text.draw(&p, (int)x() + 1, (int)y() + 1, QRegion(QRect((int)x() + 1, (int)y() + 1, width(), height())), QColorGroup());
}
- void KviCanvasRichText::draw(QPainter & p)
- {
- if(isEnabled())
- {
- QString szText = m_properties["szText"].asString();
- QSimpleRichText text(szText,m_properties["fntDefault"].asFont());
- text.setWidth(width());
- text.draw(&p,(int)x() + 1,(int)y() + 1,QRegion(QRect((int)x() + 1,(int)y() + 1,width(),height())),QColorGroup());
- }
+ if(isSelected())
+ drawSelection(p);
+}
- if(isSelected())drawSelection(p);
- }
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// KviCanvasLine
+//
+KviCanvasLine::KviCanvasLine(QCanvas * c, int x1, int y1, int x2, int y2)
+ : QCanvasLine(c)
+{
+ setPoints(x1, y1, x2, y2);
+ m_properties.insert("uLineWidth", QVariant((unsigned int)0));
+ m_properties.insert("clrForeground", QVariant(QColor()));
+}
+KviCanvasLine::~KviCanvasLine()
+{
+}
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //
- // KviCanvasLine
- //
- KviCanvasLine::KviCanvasLine(QCanvas * c,int x1,int y1,int x2,int y2)
- : QCanvasLine(c)
+void KviCanvasLine::setProperty(const QString & property, const QVariant & val)
+{
+ m_properties.replace(property, val);
+ if((property == "uLineWidth") || (property == "clrForeground"))
{
- setPoints(x1,y1,x2,y2);
- m_properties.insert("uLineWidth",QVariant((unsigned int)0));
- m_properties.insert("clrForeground",QVariant(QColor()));
+ setPen(QPen(m_properties["clrForeground"].asColor(), m_properties["uLineWidth"].toInt()));
}
+}
- KviCanvasLine::~KviCanvasLine()
- {
- }
+int KviCanvasLine::rtti() const
+{
+ return KVI_CANVAS_RTTI_LINE;
+}
- void KviCanvasLine::setProperty(const QString &property,const QVariant &val)
+void KviCanvasLine::draw(QPainter & p)
+{
+ if(isEnabled())
{
- m_properties.replace(property,val);
- if((property == "uLineWidth") || (property == "clrForeground"))
- {
- setPen(QPen(m_properties["clrForeground"].asColor(),m_properties["uLineWidth"].toInt()));
- }
+ p.setPen(pen());
+ p.drawLine(startPoint(), endPoint());
}
- int KviCanvasLine::rtti() const
+ if(isSelected())
{
- return KVI_CANVAS_RTTI_LINE;
+ p.setRasterOp(NotROP);
+ p.setPen(QPen(DotLine));
+ p.drawLine(startPoint(), endPoint());
+ p.setRasterOp(CopyROP);
}
+}
- void KviCanvasLine::draw(QPainter &p)
- {
- if(isEnabled())
- {
- p.setPen(pen());
- p.drawLine(startPoint(),endPoint());
- }
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// KviCanvasView
+//
+KviCanvasView::KviCanvasView(QCanvas * c, DccCanvasWidget * cw, QWidget * par)
+ : QCanvasView(c, par)
+{
+ m_pCanvasWidget = cw;
+ m_state = Idle;
+ m_dragMode = None;
+ m_pSelectedItem = 0;
+ viewport()->setMouseTracking(true);
+}
- if(isSelected())
- {
- p.setRasterOp(NotROP);
- p.setPen(QPen(DotLine));
- p.drawLine(startPoint(),endPoint());
- p.setRasterOp(CopyROP);
- }
- }
+KviCanvasView::~KviCanvasView()
+{
+}
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //
- // KviCanvasView
- //
- KviCanvasView::KviCanvasView(QCanvas * c,DccCanvasWidget * cw,QWidget * par)
- : QCanvasView(c,par)
- {
- m_pCanvasWidget = cw;
- m_state = Idle;
- m_dragMode = None;
- m_pSelectedItem = 0;
- viewport()->setMouseTracking(true);
- }
+void KviCanvasView::insertRectangle()
+{
+ m_state = SelectOrigin;
+ setCursor(crossCursor);
+ m_objectToInsert = Rectangle;
+}
- KviCanvasView::~KviCanvasView()
- {
- }
+void KviCanvasView::insertRichText()
+{
+ m_state = SelectOrigin;
+ setCursor(crossCursor);
+ m_objectToInsert = RichText;
+}
- void KviCanvasView::insertRectangle()
- {
- m_state = SelectOrigin;
- setCursor(crossCursor);
- m_objectToInsert = Rectangle;
- }
+void KviCanvasView::insertLine()
+{
+ m_state = SelectOrigin;
+ setCursor(crossCursor);
+ m_objectToInsert = Line;
+}
- void KviCanvasView::insertRichText()
- {
- m_state = SelectOrigin;
- setCursor(crossCursor);
- m_objectToInsert = RichText;
- }
+void KviCanvasView::insertEllipse()
+{
+ m_state = SelectOrigin;
+ setCursor(crossCursor);
+ m_objectToInsert = Ellipse;
+}
- void KviCanvasView::insertLine()
- {
- m_state = SelectOrigin;
- setCursor(crossCursor);
- m_objectToInsert = Line;
- }
+void KviCanvasView::insertPie()
+{
+ m_state = SelectOrigin;
+ setCursor(crossCursor);
+ m_objectToInsert = Pie;
+}
- void KviCanvasView::insertEllipse()
- {
- m_state = SelectOrigin;
- setCursor(crossCursor);
- m_objectToInsert = Ellipse;
- }
+void KviCanvasView::insertChord()
+{
+ m_state = SelectOrigin;
+ setCursor(crossCursor);
+ m_objectToInsert = Chord;
+}
- void KviCanvasView::insertPie()
- {
- m_state = SelectOrigin;
- setCursor(crossCursor);
- m_objectToInsert = Pie;
- }
+void KviCanvasView::insertPolygonTriangle()
+{
+ m_state = SelectOrigin;
+ setCursor(crossCursor);
+ m_objectToInsert = PolygonTriangle;
+}
- void KviCanvasView::insertChord()
- {
- m_state = SelectOrigin;
- setCursor(crossCursor);
- m_objectToInsert = Chord;
- }
+void KviCanvasView::insertPolygonRectangle()
+{
+ m_state = SelectOrigin;
+ setCursor(crossCursor);
+ m_objectToInsert = PolygonRectangle;
+}
- void KviCanvasView::insertPolygonTriangle()
- {
- m_state = SelectOrigin;
- setCursor(crossCursor);
- m_objectToInsert = PolygonTriangle;
- }
+void KviCanvasView::insertPolygonPentagon()
+{
+ m_state = SelectOrigin;
+ setCursor(crossCursor);
+ m_objectToInsert = PolygonPentagon;
+}
- void KviCanvasView::insertPolygonRectangle()
- {
- m_state = SelectOrigin;
- setCursor(crossCursor);
- m_objectToInsert = PolygonRectangle;
- }
+void KviCanvasView::insertPolygonHexagon()
+{
+ m_state = SelectOrigin;
+ setCursor(crossCursor);
+ m_objectToInsert = PolygonPentagon;
+}
- void KviCanvasView::insertPolygonPentagon()
- {
- m_state = SelectOrigin;
- setCursor(crossCursor);
- m_objectToInsert = PolygonPentagon;
- }
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
- void KviCanvasView::insertPolygonHexagon()
+static void calcPolygonPoints(QPointArray & pnts, unsigned int nVertices)
+{
+ double dDelta = (2 * M_PI) / nVertices;
+ for(unsigned int i = 0; i < nVertices; i++)
{
- m_state = SelectOrigin;
- setCursor(crossCursor);
- m_objectToInsert = PolygonPentagon;
+ double dAng = dDelta * i;
+ double theX = 300 * sin(dAng);
+ double theY = 300 * cos(dAng);
+ pnts.setPoint(i, (int)theX, (int)theY);
}
+}
- #ifndef M_PI
- #define M_PI 3.14159265358979323846
- #endif
-
- static void calcPolygonPoints(QPointArray &pnts,unsigned int nVertices)
- {
- double dDelta = (2 * M_PI) / nVertices;
- for(unsigned int i=0;i<nVertices;i++)
- {
- double dAng = dDelta * i;
- double theX = 300 * sin(dAng);
- double theY = 300 * cos(dAng);
- pnts.setPoint(i,(int)theX,(int)theY);
- }
- }
+void KviCanvasView::insertObjectAt(const QPoint & pnt, ObjectType o)
+{
+ QCanvasItem * r = 0;
- void KviCanvasView::insertObjectAt(const QPoint & pnt,ObjectType o)
+ switch(o)
{
- QCanvasItem * r = 0;
-
- switch(o)
- {
- case Rectangle:
- r = new KviCanvasRectangle(canvas(),pnt.x(),pnt.y(),0,0);
- break;
- case RichText:
- r = new KviCanvasRichText(canvas(),pnt.x(),pnt.y(),0,0);
+ case Rectangle:
+ r = new KviCanvasRectangle(canvas(), pnt.x(), pnt.y(), 0, 0);
break;
- case Line:
- r = new KviCanvasLine(canvas(),pnt.x(),pnt.y(),pnt.x(),pnt.y());
+ case RichText:
+ r = new KviCanvasRichText(canvas(), pnt.x(), pnt.y(), 0, 0);
break;
- case Ellipse:
- r = new KviCanvasEllipse(canvas(),pnt.x(),pnt.y(),0,0);
+ case Line:
+ r = new KviCanvasLine(canvas(), pnt.x(), pnt.y(), pnt.x(), pnt.y());
break;
- case Pie:
- r = new KviCanvasPie(canvas(),pnt.x(),pnt.y(),0,0);
+ case Ellipse:
+ r = new KviCanvasEllipse(canvas(), pnt.x(), pnt.y(), 0, 0);
break;
- case Chord:
- r = new KviCanvasChord(canvas(),pnt.x(),pnt.y(),0,0);
+ case Pie:
+ r = new KviCanvasPie(canvas(), pnt.x(), pnt.y(), 0, 0);
break;
- case PolygonTriangle:
- {
- QPointArray pa(3);
- pa.setPoint(0,0,-500);
- pa.setPoint(1,-450,220);
- pa.setPoint(2,450,220);
- r = new KviCanvasPolygon(canvas(),pnt.x(),pnt.y(),pa,0.1);
- }
- break;
- case PolygonRectangle:
- {
- QPointArray pa(4);
- pa.setPoint(0,-350,-350);
- pa.setPoint(1,350,-350);
- pa.setPoint(2,350,350);
- pa.setPoint(3,-350,350);
- r = new KviCanvasPolygon(canvas(),pnt.x(),pnt.y(),pa,0.1);
- }
- break;
- case PolygonPentagon:
- {
- QPointArray pa(5);
- calcPolygonPoints(pa,5);
- r = new KviCanvasPolygon(canvas(),pnt.x(),pnt.y(),pa,0.1);
- }
- break;
- case PolygonHexagon:
- {
- QPointArray pa(6);
- calcPolygonPoints(pa,6);
- r = new KviCanvasPolygon(canvas(),pnt.x(),pnt.y(),pa,0.1);
- }
+ case Chord:
+ r = new KviCanvasChord(canvas(), pnt.x(), pnt.y(), 0, 0);
break;
+ case PolygonTriangle:
+ {
+ QPointArray pa(3);
+ pa.setPoint(0, 0, -500);
+ pa.setPoint(1, -450, 220);
+ pa.setPoint(2, 450, 220);
+ r = new KviCanvasPolygon(canvas(), pnt.x(), pnt.y(), pa, 0.1);
}
-
- if(r)
+ break;
+ case PolygonRectangle:
{
- setItemSelected(r);
- r->setEnabled(true);
- r->show();
+ QPointArray pa(4);
+ pa.setPoint(0, -350, -350);
+ pa.setPoint(1, 350, -350);
+ pa.setPoint(2, 350, 350);
+ pa.setPoint(3, -350, 350);
+ r = new KviCanvasPolygon(canvas(), pnt.x(), pnt.y(), pa, 0.1);
}
-
- switch(KVI_CANVAS_RTTI_CONTROL_TYPE(r))
+ break;
+ case PolygonPentagon:
{
- case KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE:
- beginDragRectangle((KviCanvasRectangleItem *)r,pnt,true);
- break;
- case KVI_CANVAS_RTTI_CONTROL_TYPE_LINE:
- beginDragLine((KviCanvasLine *)r,pnt,true);
- break;
- // case KVI_CANVAS_RTTI_CONTROL_TYPE_POLYGON:
- // beginDragPolygon((KviCanvasPolygon *)r,pnt,true);
- // break;
+ QPointArray pa(5);
+ calcPolygonPoints(pa, 5);
+ r = new KviCanvasPolygon(canvas(), pnt.x(), pnt.y(), pa, 0.1);
}
+ break;
+ case PolygonHexagon:
+ {
+ QPointArray pa(6);
+ calcPolygonPoints(pa, 6);
+ r = new KviCanvasPolygon(canvas(), pnt.x(), pnt.y(), pa, 0.1);
+ }
+ break;
+ }
- // canvas()->update();
+ if(r)
+ {
+ setItemSelected(r);
+ r->setEnabled(true);
+ r->show();
}
- void KviCanvasView::setItemSelected(QCanvasItem * it)
+ switch(KVI_CANVAS_RTTI_CONTROL_TYPE(r))
{
- clearSelection();
- it->setSelected(true);
- m_pSelectedItem = it;
- m_pCanvasWidget->m_pPropertiesWidget->editItem(it);
+ case KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE:
+ beginDragRectangle((KviCanvasRectangleItem *)r, pnt, true);
+ break;
+ case KVI_CANVAS_RTTI_CONTROL_TYPE_LINE:
+ beginDragLine((KviCanvasLine *)r, pnt, true);
+ break;
+ // case KVI_CANVAS_RTTI_CONTROL_TYPE_POLYGON:
+ // beginDragPolygon((KviCanvasPolygon *)r,pnt,true);
+ // break;
+ }
+
+ // canvas()->update();
+}
+
+void KviCanvasView::setItemSelected(QCanvasItem * it)
+{
+ clearSelection();
+ it->setSelected(true);
+ m_pSelectedItem = it;
+ m_pCanvasWidget->m_pPropertiesWidget->editItem(it);
+}
+void KviCanvasView::clearSelection()
+{
+ if(!m_pSelectedItem)
+ return;
+ m_pSelectedItem->setSelected(false);
+ m_pSelectedItem = 0;
+ m_pCanvasWidget->m_pPropertiesWidget->editItem(0);
+}
+
+void KviCanvasView::beginDragLine(KviCanvasLine * it, const QPoint & p, bool bInitial)
+{
+ QPoint sp = it->startPoint();
+
+ m_dragBegin = p - sp;
+
+ if(bInitial)
+ {
+ m_dragMode = Bottom;
+ setCursor(sizeAllCursor);
+ return;
}
- void KviCanvasView::clearSelection()
+ if((abs(p.x() - sp.x()) < 3) && (abs(p.y() - sp.y()) < 3))
{
- if(!m_pSelectedItem)return;
- m_pSelectedItem->setSelected(false);
- m_pSelectedItem = 0;
- m_pCanvasWidget->m_pPropertiesWidget->editItem(0);
+ m_dragMode = Top;
+ setCursor(sizeAllCursor);
+ return;
}
- void KviCanvasView::beginDragLine(KviCanvasLine * it,const QPoint &p,bool bInitial)
+ sp = it->endPoint();
+ if((abs(p.x() - sp.x()) < 3) && (abs(p.y() - sp.y()) < 3))
{
- QPoint sp = it->startPoint();
+ m_dragMode = Bottom;
+ setCursor(sizeAllCursor);
+ return;
+ }
- m_dragBegin = p - sp;
+ m_dragMode = All;
+ setCursor(pointingHandCursor);
+}
- if(bInitial)
+void KviCanvasView::dragLine(KviCanvasLine * it, const QPoint & p)
+{
+ switch(m_dragMode)
+ {
+ case Bottom:
{
- m_dragMode = Bottom;
- setCursor(sizeAllCursor);
- return;
+ QPoint sp = it->startPoint();
+ it->setPoints(sp.x(), sp.y(), p.x(), p.y());
}
-
- if((abs(p.x() - sp.x()) < 3) && (abs(p.y() - sp.y()) < 3))
+ break;
+ case Top:
{
- m_dragMode = Top;
- setCursor(sizeAllCursor);
- return;
+ QPoint ep = it->endPoint();
+ it->setPoints(p.x(), p.y(), ep.x(), ep.y());
}
-
- sp = it->endPoint();
- if((abs(p.x() - sp.x()) < 3) && (abs(p.y() - sp.y()) < 3))
+ break;
+ case All:
{
- m_dragMode = Bottom;
- setCursor(sizeAllCursor);
- return;
+ QPoint sp = p - m_dragBegin;
+ QPoint ep = sp + (it->endPoint() - it->startPoint());
+ it->setPoints(sp.x(), sp.y(), ep.x(), ep.y());
}
-
- m_dragMode = All;
- setCursor(pointingHandCursor);
- }
-
- void KviCanvasView::dragLine(KviCanvasLine * it,const QPoint &p)
- {
- switch(m_dragMode)
- {
- case Bottom:
- {
- QPoint sp = it->startPoint();
- it->setPoints(sp.x(),sp.y(),p.x(),p.y());
- }
- break;
- case Top:
- {
- QPoint ep = it->endPoint();
- it->setPoints(p.x(),p.y(),ep.x(),ep.y());
- }
+ break;
+ default: /* make gcc happy */
break;
- case All:
- {
- QPoint sp = p - m_dragBegin;
- QPoint ep = sp + (it->endPoint() - it->startPoint());
- it->setPoints(sp.x(),sp.y(),ep.x(),ep.y());
- }
- break;
- default: /* make gcc happy */
- break;
- }
- canvas()->update();
}
+ canvas()->update();
+}
- static double ssm_2d_rotationAngleFromXAxis(double dx,double dy)
- {
- //
- // v1 . v2 dx * 1 + dy * 0 dx
- //acos(---------) = acos(-----------------) = acos(---------)
- // |v1||v2| |(dx,dy)| * 1 |(dx,dy)|
- //
+static double ssm_2d_rotationAngleFromXAxis(double dx, double dy)
+{
+ //
+ // v1 . v2 dx * 1 + dy * 0 dx
+ //acos(---------) = acos(-----------------) = acos(---------)
+ // |v1||v2| |(dx,dy)| * 1 |(dx,dy)|
+ //
- //double dVal = hypot(dx,dy);
- double dVal = sqrt((dx * dx) + (dy * dy));
+ //double dVal = hypot(dx,dy);
+ double dVal = sqrt((dx * dx) + (dy * dy));
- if(dVal == 0.0)return 0; // ???
+ if(dVal == 0.0)
+ return 0; // ???
- dVal = acos(dx / dVal);
+ dVal = acos(dx / dVal);
- return (dy > 0.0) ? dVal : -dVal;
- }
+ return (dy > 0.0) ? dVal : -dVal;
+}
- static double ssm_2d_rotationAngle(double drefx,double drefy,double drotatedx,double drotatedy)
- {
- double dRefAngle = ssm_2d_rotationAngleFromXAxis(drefx,drefy);
- double dRotAngle = ssm_2d_rotationAngleFromXAxis(drotatedx,drotatedy);
- return dRotAngle - dRefAngle;
- }
+static double ssm_2d_rotationAngle(double drefx, double drefy, double drotatedx, double drotatedy)
+{
+ double dRefAngle = ssm_2d_rotationAngleFromXAxis(drefx, drefy);
+ double dRotAngle = ssm_2d_rotationAngleFromXAxis(drotatedx, drotatedy);
+ return dRotAngle - dRefAngle;
+}
- static void ssm_2d_rotate(double &dx,double &dy,double dAngle)
- {
- // Rotation matrix:
- //
- // | cos(x) sin(x) |
- // | |
- // | -sin(x) cos(x) |
+static void ssm_2d_rotate(double & dx, double & dy, double dAngle)
+{
+ // Rotation matrix:
+ //
+ // | cos(x) sin(x) |
+ // | |
+ // | -sin(x) cos(x) |
- double s = sin(dAngle);
- double c = cos(dAngle);
+ double s = sin(dAngle);
+ double c = cos(dAngle);
- double tmpX = (dx * c) - (dy * s);
- double tmpY = (dx * s) + (dy * c);
+ double tmpX = (dx * c) - (dy * s);
+ double tmpY = (dx * s) + (dy * c);
- dx = tmpX;
- dy = tmpY;
- }
+ dx = tmpX;
+ dy = tmpY;
+}
- static double ssm_hypot(double a,double b)
- {
- return sqrt((a * a) + (b * b));
- }
+static double ssm_hypot(double a, double b)
+{
+ return sqrt((a * a) + (b * b));
+}
- void KviCanvasView::beginDragPolygon(KviCanvasPolygon * it,const QPoint &p,bool bShift,bool bCtrl)
- {
- m_dragBegin = QPoint((int)(p.x() - it->x()),(int)(p.y() - it->y()));
+void KviCanvasView::beginDragPolygon(KviCanvasPolygon * it, const QPoint & p, bool bShift, bool bCtrl)
+{
+ m_dragBegin = QPoint((int)(p.x() - it->x()), (int)(p.y() - it->y()));
- QPointArray pa = it->areaPoints();
+ QPointArray pa = it->areaPoints();
- for(unsigned int i=0;i<pa.size();i++)
- {
- QPoint pnt = pa.point(i);
- double dX = pnt.x() - p.x();
- double dY = pnt.y() - p.y();
- double dHypot = sqrt((dX * dX) + (dY * dY));
- if(dHypot < 3.0)
- {
- // We're dragging a point
- m_dragMode = SinglePoint;
- m_dragPointIndex = i;
- setCursor(crossCursor);
- return;
- }
- }
-
- if(bShift)
+ for(unsigned int i = 0; i < pa.size(); i++)
+ {
+ QPoint pnt = pa.point(i);
+ double dX = pnt.x() - p.x();
+ double dY = pnt.y() - p.y();
+ double dHypot = sqrt((dX * dX) + (dY * dY));
+ if(dHypot < 3.0)
{
- m_dragMode = Scale;
- m_dragScaleFactor = it->scaleFactor();
- setCursor(sizeAllCursor);
+ // We're dragging a point
+ m_dragMode = SinglePoint;
+ m_dragPointIndex = i;
+ setCursor(crossCursor);
return;
}
+ }
- if(bCtrl)
- {
- m_dragMode = Rotate;
- m_dragPointArray = it->internalPoints();
- // qDebug("Here");
- setCursor(sizeHorCursor);
- return;
- }
+ if(bShift)
+ {
+ m_dragMode = Scale;
+ m_dragScaleFactor = it->scaleFactor();
+ setCursor(sizeAllCursor);
+ return;
+ }
- m_dragMode = All;
- setCursor(pointingHandCursor);
+ if(bCtrl)
+ {
+ m_dragMode = Rotate;
+ m_dragPointArray = it->internalPoints();
+ // qDebug("Here");
+ setCursor(sizeHorCursor);
+ return;
}
- void KviCanvasView::dragPolygon(KviCanvasPolygon * it,const QPoint &p)
+ m_dragMode = All;
+ setCursor(pointingHandCursor);
+}
+
+void KviCanvasView::dragPolygon(KviCanvasPolygon * it, const QPoint & p)
+{
+ switch(m_dragMode)
{
- switch(m_dragMode)
- {
- case All:
- it->move(p.x() - m_dragBegin.x(),p.y() - m_dragBegin.y());
- break;
- case SinglePoint:
- {
- QPointArray pnt = it->internalPoints();
- pnt.setPoint(m_dragPointIndex,(int)((p.x() - it->x()) / it->scaleFactor()),(int)((p.y() - it->y()) / it->scaleFactor()));
- it->setInternalPoints(pnt);
- }
- break;
- case Scale:
- {
- double dDistance = ssm_hypot(p.x() - it->x(),p.y() - it->y());
- double dOriginal = ssm_hypot(m_dragBegin.x(),m_dragBegin.y());
- if(dOriginal < 1)dOriginal = 1;
- if(dDistance < 0.1)dDistance = 0.1;
- it->setScaleFactor(m_dragScaleFactor * dDistance / dOriginal);
- }
+ case All:
+ it->move(p.x() - m_dragBegin.x(), p.y() - m_dragBegin.y());
break;
- case Rotate:
+ case SinglePoint:
+ {
+ QPointArray pnt = it->internalPoints();
+ pnt.setPoint(m_dragPointIndex, (int)((p.x() - it->x()) / it->scaleFactor()), (int)((p.y() - it->y()) / it->scaleFactor()));
+ it->setInternalPoints(pnt);
+ }
+ break;
+ case Scale:
+ {
+ double dDistance = ssm_hypot(p.x() - it->x(), p.y() - it->y());
+ double dOriginal = ssm_hypot(m_dragBegin.x(), m_dragBegin.y());
+ if(dOriginal < 1)
+ dOriginal = 1;
+ if(dDistance < 0.1)
+ dDistance = 0.1;
+ it->setScaleFactor(m_dragScaleFactor * dDistance / dOriginal);
+ }
+ break;
+ case Rotate:
+ {
+ QPoint act((int)(p.x() - it->x()), (int)(p.y() - it->y()));
+ double dAngle = ssm_2d_rotationAngle(m_dragBegin.x(), m_dragBegin.y(), act.x(), act.y());
+ // qDebug("%d,%d %d,%d %f",m_dragBegin.x(),m_dragBegin.y(),act.x(),act.y(),dAngle);
+ QPointArray thePoints = m_dragPointArray.copy();
+ for(unsigned int i = 0; i < thePoints.size(); i++)
{
- QPoint act((int)(p.x() - it->x()),(int)(p.y() - it->y()));
- double dAngle = ssm_2d_rotationAngle(m_dragBegin.x(),m_dragBegin.y(),act.x(),act.y());
- // qDebug("%d,%d %d,%d %f",m_dragBegin.x(),m_dragBegin.y(),act.x(),act.y(),dAngle);
- QPointArray thePoints = m_dragPointArray.copy();
- for(unsigned int i=0;i<thePoints.size();i++)
- {
- QPoint tmp = thePoints.point(i);
- double dx = tmp.x();
- double dy = tmp.y();
- ssm_2d_rotate(dx,dy,dAngle);
- thePoints.setPoint(i,(int)dx,(int)dy);
- }
- it->setInternalPoints(thePoints);
+ QPoint tmp = thePoints.point(i);
+ double dx = tmp.x();
+ double dy = tmp.y();
+ ssm_2d_rotate(dx, dy, dAngle);
+ thePoints.setPoint(i, (int)dx, (int)dy);
}
- break;
- default:
- break;
+ it->setInternalPoints(thePoints);
}
- canvas()->update();
+ break;
+ default:
+ break;
}
+ canvas()->update();
+}
+
+void KviCanvasView::beginDragRectangle(KviCanvasRectangleItem * it, const QPoint & p, bool bInitial)
+{
+ m_dragBegin = QPoint((int)(p.x() - it->x()), (int)(p.y() - it->y()));
- void KviCanvasView::beginDragRectangle(KviCanvasRectangleItem * it,const QPoint & p,bool bInitial)
+ if(bInitial)
{
- m_dragBegin = QPoint((int)(p.x() - it->x()),(int)(p.y() - it->y()));
+ // Right bottom
+ m_dragMode = RightBottom;
+ setCursor(sizeFDiagCursor);
+ return;
+ }
- if(bInitial)
+ if(p.x() < (((int)it->x()) + 2))
+ {
+ // Left edge
+ if(p.y() < (((int)it->y()) + 2))
{
- // Right bottom
- m_dragMode = RightBottom;
+ // Left top
+ m_dragMode = LeftTop;
setCursor(sizeFDiagCursor);
return;
}
-
- if(p.x() < (((int)it->x()) + 2))
+ if(p.y() > (it->bottom() - 2))
{
- // Left edge
- if(p.y() < (((int)it->y()) + 2))
- {
- // Left top
- m_dragMode = LeftTop;
- setCursor(sizeFDiagCursor);
- return;
- }
- if(p.y() > ( it->bottom() - 2))
- {
- // Left bottom
- m_dragMode = LeftBottom;
- setCursor(sizeBDiagCursor);
- return;
- }
- m_dragMode = Left;
- setCursor(sizeHorCursor);
- return;
- }
-
- if(p.x() > (it->right() - 2))
- {
- // Right edge
- if(p.y() < (((int)it->y()) + 2))
- {
- // Right top
- m_dragMode = RightTop;
- setCursor(sizeBDiagCursor);
- return;
- }
- if(p.y() > ( it->bottom() - 2))
- {
- // Right bottom
- m_dragMode = RightBottom;
- setCursor(sizeFDiagCursor);
- return;
- }
- m_dragMode = Right;
- setCursor(sizeHorCursor);
+ // Left bottom
+ m_dragMode = LeftBottom;
+ setCursor(sizeBDiagCursor);
return;
}
+ m_dragMode = Left;
+ setCursor(sizeHorCursor);
+ return;
+ }
- // Somewhere in the middle
+ if(p.x() > (it->right() - 2))
+ {
+ // Right edge
if(p.y() < (((int)it->y()) + 2))
{
- // Top
- m_dragMode = Top;
- setCursor(sizeVerCursor);
+ // Right top
+ m_dragMode = RightTop;
+ setCursor(sizeBDiagCursor);
return;
}
- if(p.y() > ( it->bottom() - 2))
+ if(p.y() > (it->bottom() - 2))
{
- // Bottom
- m_dragMode = Bottom;
- setCursor(sizeVerCursor);
+ // Right bottom
+ m_dragMode = RightBottom;
+ setCursor(sizeFDiagCursor);
return;
}
-
- m_dragMode = All;
- setCursor(pointingHandCursor);
+ m_dragMode = Right;
+ setCursor(sizeHorCursor);
+ return;
}
- void KviCanvasView::dragRectangle(KviCanvasRectangleItem * it,const QPoint & p)
+ // Somewhere in the middle
+ if(p.y() < (((int)it->y()) + 2))
+ {
+ // Top
+ m_dragMode = Top;
+ setCursor(sizeVerCursor);
+ return;
+ }
+ if(p.y() > (it->bottom() - 2))
{
+ // Bottom
+ m_dragMode = Bottom;
+ setCursor(sizeVerCursor);
+ return;
+ }
- int aux1,aux2,aux3,aux4;
+ m_dragMode = All;
+ setCursor(pointingHandCursor);
+}
- switch(m_dragMode)
- {
- case All:
- it->move(p.x() - m_dragBegin.x(),p.y() - m_dragBegin.y());
+void KviCanvasView::dragRectangle(KviCanvasRectangleItem * it, const QPoint & p)
+{
+
+ int aux1, aux2, aux3, aux4;
+
+ switch(m_dragMode)
+ {
+ case All:
+ it->move(p.x() - m_dragBegin.x(), p.y() - m_dragBegin.y());
break;
- case Left:
- aux1 = it->width() + (int)(it->x() - p.x());
- aux2 = p.x();
- if(aux1 < 1)
- {
- aux2 += (aux1 - 1);
- aux1 = 1;
- }
- it->move(aux2,it->y());
- it->setSize(aux1,it->height());
+ case Left:
+ aux1 = it->width() + (int)(it->x() - p.x());
+ aux2 = p.x();
+ if(aux1 < 1)
+ {
+ aux2 += (aux1 - 1);
+ aux1 = 1;
+ }
+ it->move(aux2, it->y());
+ it->setSize(aux1, it->height());
break;
- case Right:
- aux1 = it->width() + (p.x() - it->right());
- if(aux1 < 1)aux1 = 1;
- it->setSize(aux1,it->height());
+ case Right:
+ aux1 = it->width() + (p.x() - it->right());
+ if(aux1 < 1)
+ aux1 = 1;
+ it->setSize(aux1, it->height());
break;
- case Top:
- aux1 = it->height() + (int)(it->y() - p.y());
- aux2 = p.y();
- if(aux1 < 1)
- {
- aux2 += (aux1 - 1);
- aux1 = 1;
- }
- it->move(it->x(),aux2);
- it->setSize(it->width(),aux1);
+ case Top:
+ aux1 = it->height() + (int)(it->y() - p.y());
+ aux2 = p.y();
+ if(aux1 < 1)
+ {
+ aux2 += (aux1 - 1);
+ aux1 = 1;
+ }
+ it->move(it->x(), aux2);
+ it->setSize(it->width(), aux1);
break;
- case Bottom:
- aux1 = (int)it->height() + (p.y() - it->bottom());
- if(aux1 < 1)aux1 = 1;
- it->setSize(it->width(),aux1);
+ case Bottom:
+ aux1 = (int)it->height() + (p.y() - it->bottom());
+ if(aux1 < 1)
+ aux1 = 1;
+ it->setSize(it->width(), aux1);
break;
- case LeftTop:
- aux1 = it->width() + (int)(it->x() - p.x());
- aux3 = p.x();
- if(aux1 < 1)
- {
- aux3 += (aux1 - 1);
- aux1 = 1;
- }
- aux2 = it->height() + (int)(it->y() - p.y());
- aux4 = p.y();
- if(aux2 < 1)
- {
- aux4 += (aux2 - 1);
- aux2 = 1;
- }
- it->setSize(aux1,aux2);
- it->move(aux3,aux4);
+ case LeftTop:
+ aux1 = it->width() + (int)(it->x() - p.x());
+ aux3 = p.x();
+ if(aux1 < 1)
+ {
+ aux3 += (aux1 - 1);
+ aux1 = 1;
+ }
+ aux2 = it->height() + (int)(it->y() - p.y());
+ aux4 = p.y();
+ if(aux2 < 1)
+ {
+ aux4 += (aux2 - 1);
+ aux2 = 1;
+ }
+ it->setSize(aux1, aux2);
+ it->move(aux3, aux4);
break;
- case RightTop:
- aux1 = it->width() + (int)(p.x() - it->right());
- if(aux1 < 1)aux1 = 1;
- aux2 = it->height() + (int)(it->y() - p.y());
- aux4 = p.y();
- if(aux2 < 1)
- {
- aux4 += (aux2 - 1);
- aux2 = 1;
- }
- it->setSize(aux1,aux2);
- it->move(it->x(),aux4);
+ case RightTop:
+ aux1 = it->width() + (int)(p.x() - it->right());
+ if(aux1 < 1)
+ aux1 = 1;
+ aux2 = it->height() + (int)(it->y() - p.y());
+ aux4 = p.y();
+ if(aux2 < 1)
+ {
+ aux4 += (aux2 - 1);
+ aux2 = 1;
+ }
+ it->setSize(aux1, aux2);
+ it->move(it->x(), aux4);
break;
- case LeftBottom:
- aux1 = it->width() + (int)(it->x() - p.x());
- aux3 = p.x();
- if(aux1 < 1)
- {
- aux3 += (aux1 - 1);
- aux1 = 1;
- }
- aux2 = it->height() + (int)(p.y() - it->bottom());
- if(aux2 < 1)aux2 = 1;
- it->setSize(aux1,aux2);
- it->move(aux3,it->y());
+ case LeftBottom:
+ aux1 = it->width() + (int)(it->x() - p.x());
+ aux3 = p.x();
+ if(aux1 < 1)
+ {
+ aux3 += (aux1 - 1);
+ aux1 = 1;
+ }
+ aux2 = it->height() + (int)(p.y() - it->bottom());
+ if(aux2 < 1)
+ aux2 = 1;
+ it->setSize(aux1, aux2);
+ it->move(aux3, it->y());
break;
- case RightBottom:
- aux1 = it->width() + (int)(p.x() - it->right());
- if(aux1 < 1)aux1 = 1;
- aux2 = it->height() + (int)(p.y() - it->bottom());
- if(aux2 < 1)aux2 = 1;
- it->setSize(aux1,aux2);
+ case RightBottom:
+ aux1 = it->width() + (int)(p.x() - it->right());
+ if(aux1 < 1)
+ aux1 = 1;
+ aux2 = it->height() + (int)(p.y() - it->bottom());
+ if(aux2 < 1)
+ aux2 = 1;
+ it->setSize(aux1, aux2);
break;
- default:
+ default:
break;
- }
-
- canvas()->update();
}
- void KviCanvasView::contentsMouseMoveEvent(QMouseEvent *e)
- {
+ canvas()->update();
+}
+
+void KviCanvasView::contentsMouseMoveEvent(QMouseEvent * e)
+{
// QPoint p = inverseWorldMatrix().map(e->pos());
- QPoint p = e->pos();
- if(e->state() & Qt::LeftButton)
+ QPoint p = e->pos();
+ if(e->state() & Qt::LeftButton)
+ {
+ if((m_dragMode != None) && (m_pSelectedItem))
{
- if((m_dragMode != None) && (m_pSelectedItem))
+ if(m_pSelectedItem->isEnabled())
+ m_pSelectedItem->setEnabled(false);
+ switch(KVI_CANVAS_RTTI_CONTROL_TYPE(m_pSelectedItem))
{
- if(m_pSelectedItem->isEnabled())m_pSelectedItem->setEnabled(false);
- switch(KVI_CANVAS_RTTI_CONTROL_TYPE(m_pSelectedItem))
- {
- case KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE:
- dragRectangle((KviCanvasRectangleItem *)m_pSelectedItem,p);
+ case KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE:
+ dragRectangle((KviCanvasRectangleItem *)m_pSelectedItem, p);
break;
- case KVI_CANVAS_RTTI_CONTROL_TYPE_LINE:
- dragLine((KviCanvasLine *)m_pSelectedItem,p);
+ case KVI_CANVAS_RTTI_CONTROL_TYPE_LINE:
+ dragLine((KviCanvasLine *)m_pSelectedItem, p);
break;
- case KVI_CANVAS_RTTI_CONTROL_TYPE_POLYGON:
- dragPolygon((KviCanvasPolygon *)m_pSelectedItem,p);
+ case KVI_CANVAS_RTTI_CONTROL_TYPE_POLYGON:
+ dragPolygon((KviCanvasPolygon *)m_pSelectedItem, p);
break;
- }
}
- } else {
- // Without buttons
- if(m_state == Idle)
- {
- QCanvasItemList l = canvas()->collisions(p);
- QCanvasItemList::Iterator it = l.begin();
+ }
+ }
+ else
+ {
+ // Without buttons
+ if(m_state == Idle)
+ {
+ QCanvasItemList l = canvas()->collisions(p);
+ QCanvasItemList::Iterator it = l.begin();
- if(it != l.end())
+ if(it != l.end())
+ {
+ // Got an item
+ QCanvasItem * hit = (QCanvasItem *)*it;
+ // Now find the point on that we have clicked it
+ if(hit == m_pSelectedItem)
{
- // Got an item
- QCanvasItem * hit = (QCanvasItem *)*it;
- // Now find the point on that we have clicked it
- if(hit == m_pSelectedItem)
+ switch(KVI_CANVAS_RTTI_CONTROL_TYPE(m_pSelectedItem))
{
- switch(KVI_CANVAS_RTTI_CONTROL_TYPE(m_pSelectedItem))
- {
- case KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE:
- beginDragRectangle((KviCanvasRectangleItem *)m_pSelectedItem,p);
+ case KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE:
+ beginDragRectangle((KviCanvasRectangleItem *)m_pSelectedItem, p);
break;
- case KVI_CANVAS_RTTI_CONTROL_TYPE_LINE:
- beginDragLine((KviCanvasLine *)m_pSelectedItem,p);
+ case KVI_CANVAS_RTTI_CONTROL_TYPE_LINE:
+ beginDragLine((KviCanvasLine *)m_pSelectedItem, p);
break;
- case KVI_CANVAS_RTTI_CONTROL_TYPE_POLYGON:
- beginDragPolygon((KviCanvasPolygon *)m_pSelectedItem,p);
+ case KVI_CANVAS_RTTI_CONTROL_TYPE_POLYGON:
+ beginDragPolygon((KviCanvasPolygon *)m_pSelectedItem, p);
break;
- }
}
- else if(m_dragMode != None)setCursor(arrowCursor);
- } else {
- if(m_dragMode != None)setCursor(arrowCursor);
}
+ else if(m_dragMode != None)
+ setCursor(arrowCursor);
+ }
+ else
+ {
+ if(m_dragMode != None)
+ setCursor(arrowCursor);
}
}
}
+}
- void KviCanvasView::contentsMouseReleaseEvent(QMouseEvent *e)
+void KviCanvasView::contentsMouseReleaseEvent(QMouseEvent * e)
+{
+ if(m_dragMode != None)
{
- if(m_dragMode != None)
+ // Was just dragging a rectangle
+ m_dragMode = None;
+ setCursor(arrowCursor);
+ if(m_pSelectedItem)
{
- // Was just dragging a rectangle
- m_dragMode = None;
- setCursor(arrowCursor);
- if(m_pSelectedItem)
- {
- m_pSelectedItem->setEnabled(true);
- canvas()->update();
- }
+ m_pSelectedItem->setEnabled(true);
+ canvas()->update();
}
}
+}
- void KviCanvasView::contentsMousePressEvent(QMouseEvent *e)
+void KviCanvasView::contentsMousePressEvent(QMouseEvent * e)
+{
+ if(e->button() & Qt::LeftButton)
{
- if(e->button() & Qt::LeftButton)
+ // QPoint p = inverseWorldMatrix().map(e->pos());
+ QPoint p = e->pos();
+
+ switch(m_state)
{
- // QPoint p = inverseWorldMatrix().map(e->pos());
- QPoint p = e->pos();
+ case SelectOrigin:
+ clearSelection();
+ setCursor(arrowCursor);
+ m_state = Idle;
+ insertObjectAt(p, m_objectToInsert);
+ canvas()->update();
+ break;
- switch(m_state)
+ case Idle:
{
- case SelectOrigin:
- clearSelection();
- setCursor(arrowCursor);
- m_state = Idle;
- insertObjectAt(p,m_objectToInsert);
- canvas()->update();
- break;
+ QCanvasItemList l = canvas()->collisions(p);
+ QCanvasItemList::Iterator it = l.begin();
- case Idle:
+ if(it != l.end())
{
- QCanvasItemList l = canvas()->collisions(p);
- QCanvasItemList::Iterator it = l.begin();
-
- if(it != l.end())
+ // Got an item
+ QCanvasItem * hit = *it;
+ if(hit != m_pSelectedItem)
+ {
+ // Was not selected yet
+ setItemSelected(hit);
+ canvas()->update();
+ }
+ // Now find the point on that we have clicked it
+ switch(KVI_CANVAS_RTTI_CONTROL_TYPE(hit))
{
- // Got an item
- QCanvasItem * hit = *it;
- if(hit != m_pSelectedItem)
- {
- // Was not selected yet
- setItemSelected(hit);
- canvas()->update();
- }
- // Now find the point on that we have clicked it
- switch(KVI_CANVAS_RTTI_CONTROL_TYPE(hit))
- {
- case KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE:
- beginDragRectangle(((KviCanvasRectangleItem *)hit),p);
+ case KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE:
+ beginDragRectangle(((KviCanvasRectangleItem *)hit), p);
break;
- case KVI_CANVAS_RTTI_CONTROL_TYPE_LINE:
- beginDragLine(((KviCanvasLine *)hit),p);
+ case KVI_CANVAS_RTTI_CONTROL_TYPE_LINE:
+ beginDragLine(((KviCanvasLine *)hit), p);
break;
- case KVI_CANVAS_RTTI_CONTROL_TYPE_POLYGON:
- beginDragPolygon(((KviCanvasPolygon *)hit),p,e->state() & Qt::ShiftButton,e->state() & Qt::ControlButton);
+ case KVI_CANVAS_RTTI_CONTROL_TYPE_POLYGON:
+ beginDragPolygon(((KviCanvasPolygon *)hit), p, e->state() & Qt::ShiftButton, e->state() & Qt::ControlButton);
break;
- }
- } else {
- // No item
- clearSelection();
- canvas()->update();
}
}
- break;
+ else
+ {
+ // No item
+ clearSelection();
+ canvas()->update();
+ }
}
+ break;
}
}
+}
- void KviCanvasView::propertyChanged(const QString &s,const QVariant &v)
- {
- if(!m_pSelectedItem)return;
+void KviCanvasView::propertyChanged(const QString & s, const QVariant & v)
+{
+ if(!m_pSelectedItem)
+ return;
- switch(KVI_CANVAS_RTTI_CONTROL_TYPE(m_pSelectedItem))
- {
- case KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE:
- ((KviCanvasRectangleItem *)m_pSelectedItem)->setProperty(s,v);
+ switch(KVI_CANVAS_RTTI_CONTROL_TYPE(m_pSelectedItem))
+ {
+ case KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE:
+ ((KviCanvasRectangleItem *)m_pSelectedItem)->setProperty(s, v);
break;
- case KVI_CANVAS_RTTI_CONTROL_TYPE_LINE:
- ((KviCanvasLine *)m_pSelectedItem)->setProperty(s,v);
+ case KVI_CANVAS_RTTI_CONTROL_TYPE_LINE:
+ ((KviCanvasLine *)m_pSelectedItem)->setProperty(s, v);
break;
- case KVI_CANVAS_RTTI_CONTROL_TYPE_POLYGON:
- ((KviCanvasPolygon *)m_pSelectedItem)->setProperty(s,v);
+ case KVI_CANVAS_RTTI_CONTROL_TYPE_POLYGON:
+ ((KviCanvasPolygon *)m_pSelectedItem)->setProperty(s, v);
break;
- }
-
- canvas()->update();
}
+ canvas()->update();
+}
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //
- // KviVariantTableItem
- //
- KviVariantTableItem::KviVariantTableItem(QTable * t,const QVariant & property)
- : QTableItem(t,QTableItem::WhenCurrent,QString())
- {
- m_property = property;
- }
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// KviVariantTableItem
+//
+KviVariantTableItem::KviVariantTableItem(QTable * t, const QVariant & property)
+ : QTableItem(t, QTableItem::WhenCurrent, QString())
+{
+ m_property = property;
+}
- KviVariantTableItem::~KviVariantTableItem()
- {
- }
+KviVariantTableItem::~KviVariantTableItem()
+{
+}
- QWidget * KviVariantTableItem::createEditor() const
+QWidget * KviVariantTableItem::createEditor() const
+{
+ switch(m_property.type())
{
- switch(m_property.type())
+ case QVariant::String:
{
- case QVariant::String:
- {
- QLineEdit * e = new QLineEdit(table()->viewport());
- e->setText(m_property.toString());
- return e;
- }
- break;
- case QVariant::Int:
- {
- QLineEdit * e = new QLineEdit(table()->viewport());
- QString sz;
- sz.setNum(m_property.toInt());
- e->setText(sz);
- e->setValidator(new QIntValidator(e));
- return e;
- }
- break;
- case QVariant::UInt:
- {
- QLineEdit * e = new QLineEdit(table()->viewport());
- QString sz;
- sz.setNum(m_property.toInt());
- e->setText(sz);
- QIntValidator * i = new QIntValidator(e);
- i->setBottom(0);
- e->setValidator(i);
- return e;
- }
- break;
- case QVariant::Bool:
- {
- QComboBox * b = new QComboBox(false,table()->viewport());
- b->addAction("false");
- b->addAction("true");
- b->setCurrentItem(m_property.toBool() ? 1 : 0);
- return b;
- }
- break;
- case QVariant::Color:
- {
- QLineEdit * e = new QLineEdit(table()->viewport());
- e->setText(m_property.toColor().name());
- return e;
- }
- break;
- case QVariant::Font:
- {
- QComboBox * b = new QComboBox(true,table()->viewport());
- QString tmp;
- QString tmpDefault;
- QFont f = QFont();
- f.setStyleHint(QFont::SansSerif);
- tmpDefault = f.family();
- f.setStyleHint(QFont::TypeWriter);
- tmp.setNum(m_property.toFont().pointSize());
- tmp.prepend(", ");
- tmp.prepend(m_property.toFont().family());
- b->addAction(tmp);
- b->addAction(tmpDefault + ", 8");
- b->addAction(tmpDefault + ", 10");
- b->addAction(tmpDefault + ", 12");
- b->addAction(tmpDefault + ", 14");
- b->addAction(tmpDefault + ", 16");
- b->addAction(tmpDefault + ", 18");
- b->addAction(tmpDefault + ", 20");
- b->addAction(tmpDefault + ", 24");
- b->addAction(tmpDefault + ", 28");
- b->addAction(tmpDefault + ", 32");
- b->addAction(tmpDefault + ", 40");
- b->addAction(tmpDefault + ", 48");
- b->addAction(f.family() + ", 12");
- b->setCurrentItem(0);
- b->setCurrentItem(m_property.toBool() ? 1 : 0);
- return b;
- }
- break;
- default:
- break;
+ QLineEdit * e = new QLineEdit(table()->viewport());
+ e->setText(m_property.toString());
+ return e;
}
- return 0;
+ break;
+ case QVariant::Int:
+ {
+ QLineEdit * e = new QLineEdit(table()->viewport());
+ QString sz;
+ sz.setNum(m_property.toInt());
+ e->setText(sz);
+ e->setValidator(new QIntValidator(e));
+ return e;
+ }
+ break;
+ case QVariant::UInt:
+ {
+ QLineEdit * e = new QLineEdit(table()->viewport());
+ QString sz;
+ sz.setNum(m_property.toInt());
+ e->setText(sz);
+ QIntValidator * i = new QIntValidator(e);
+ i->setBottom(0);
+ e->setValidator(i);
+ return e;
+ }
+ break;
+ case QVariant::Bool:
+ {
+ QComboBox * b = new QComboBox(false, table()->viewport());
+ b->addAction("false");
+ b->addAction("true");
+ b->setCurrentItem(m_property.toBool() ? 1 : 0);
+ return b;
+ }
+ break;
+ case QVariant::Color:
+ {
+ QLineEdit * e = new QLineEdit(table()->viewport());
+ e->setText(m_property.toColor().name());
+ return e;
+ }
+ break;
+ case QVariant::Font:
+ {
+ QComboBox * b = new QComboBox(true, table()->viewport());
+ QString tmp;
+ QString tmpDefault;
+ QFont f = QFont();
+ f.setStyleHint(QFont::SansSerif);
+ tmpDefault = f.family();
+ f.setStyleHint(QFont::TypeWriter);
+ tmp.setNum(m_property.toFont().pointSize());
+ tmp.prepend(", ");
+ tmp.prepend(m_property.toFont().family());
+ b->addAction(tmp);
+ b->addAction(tmpDefault + ", 8");
+ b->addAction(tmpDefault + ", 10");
+ b->addAction(tmpDefault + ", 12");
+ b->addAction(tmpDefault + ", 14");
+ b->addAction(tmpDefault + ", 16");
+ b->addAction(tmpDefault + ", 18");
+ b->addAction(tmpDefault + ", 20");
+ b->addAction(tmpDefault + ", 24");
+ b->addAction(tmpDefault + ", 28");
+ b->addAction(tmpDefault + ", 32");
+ b->addAction(tmpDefault + ", 40");
+ b->addAction(tmpDefault + ", 48");
+ b->addAction(f.family() + ", 12");
+ b->setCurrentItem(0);
+ b->setCurrentItem(m_property.toBool() ? 1 : 0);
+ return b;
+ }
+ break;
+ default:
+ break;
}
+ return 0;
+}
- void KviVariantTableItem::setContentFromEditor(QWidget * w)
+void KviVariantTableItem::setContentFromEditor(QWidget * w)
+{
+ switch(m_property.type())
{
- switch(m_property.type())
- {
- case QVariant::String:
- m_property = QVariant(((QLineEdit *)w)->text());
+ case QVariant::String:
+ m_property = QVariant(((QLineEdit *)w)->text());
break;
- case QVariant::Int:
- m_property = QVariant(((QLineEdit *)w)->text().toInt());
+ case QVariant::Int:
+ m_property = QVariant(((QLineEdit *)w)->text().toInt());
break;
- case QVariant::UInt:
- m_property = QVariant(((QLineEdit *)w)->text().toUInt());
+ case QVariant::UInt:
+ m_property = QVariant(((QLineEdit *)w)->text().toUInt());
break;
- case QVariant::Bool:
- m_property = QVariant(((QComboBox *)w)->currentItem(),1);
+ case QVariant::Bool:
+ m_property = QVariant(((QComboBox *)w)->currentItem(), 1);
break;
- case QVariant::Color:
- m_property.asColor().setNamedColor(((QLineEdit *)w)->text());
+ case QVariant::Color:
+ m_property.asColor().setNamedColor(((QLineEdit *)w)->text());
break;
- case QVariant::Font:
+ case QVariant::Font:
+ {
+ KviCString txt = ((QComboBox *)w)->currentText();
+ if(txt.hasData())
{
- KviCString txt = ((QComboBox *)w)->currentText();
- if(txt.hasData())
- {
- KviCString fam = txt;
- fam.cutFromFirst(',',true);
- fam.trimmed();
- KviCString psz = txt;
- psz.cutToFirst(',',true);
- psz.trimmed();
- bool bOk;
- unsigned int uSize = psz.toUInt(&bOk);
- if(!bOk)uSize = 12;
- m_property = QVariant(QFont(fam.ptr(),uSize));
- }
+ KviCString fam = txt;
+ fam.cutFromFirst(',', true);
+ fam.trimmed();
+ KviCString psz = txt;
+ psz.cutToFirst(',', true);
+ psz.trimmed();
+ bool bOk;
+ unsigned int uSize = psz.toUInt(&bOk);
+ if(!bOk)
+ uSize = 12;
+ m_property = QVariant(QFont(fam.ptr(), uSize));
}
- break;
- default:
- break;
}
+ break;
+ default:
+ break;
}
+}
- void KviVariantTableItem::paint(QPainter *p,const QColorGroup &cg,const QRect &cr,bool)
- {
- p->fillRect(0,0,cr.width(),cr.height(),cg.base());
+void KviVariantTableItem::paint(QPainter * p, const QColorGroup & cg, const QRect & cr, bool)
+{
+ p->fillRect(0, 0, cr.width(), cr.height(), cg.base());
- if(m_property.type() == QVariant::Color)
+ if(m_property.type() == QVariant::Color)
+ {
+ p->fillRect(3, 3, cr.width() - 6, cr.height() - 6, m_property.asColor());
+ }
+ else
+ {
+ QString sz;
+ switch(m_property.type())
{
- p->fillRect(3,3,cr.width() - 6,cr.height() - 6,m_property.asColor());
- } else {
- QString sz;
- switch(m_property.type())
- {
- case QVariant::String:
- sz = m_property.toString();
+ case QVariant::String:
+ sz = m_property.toString();
break;
- case QVariant::Bool:
- sz = m_property.toBool() ? "true" : "false";
+ case QVariant::Bool:
+ sz = m_property.toBool() ? "true" : "false";
break;
- case QVariant::Font:
- sz.setNum(m_property.toFont().pointSize());
- sz.prepend(", ");
- sz.prepend(m_property.toFont().family());
+ case QVariant::Font:
+ sz.setNum(m_property.toFont().pointSize());
+ sz.prepend(", ");
+ sz.prepend(m_property.toFont().family());
break;
- case QVariant::Int:
- sz.setNum(m_property.toInt());
+ case QVariant::Int:
+ sz.setNum(m_property.toInt());
break;
- case QVariant::UInt:
- sz.setNum(m_property.toUInt());
+ case QVariant::UInt:
+ sz.setNum(m_property.toUInt());
break;
- default:
+ default:
break;
- }
- p->setPen(cg.text());
- p->drawText(0,0,cr.width(),cr.height(),Qt::AlignLeft | Qt::AlignTop,sz);
}
+ p->setPen(cg.text());
+ p->drawText(0, 0, cr.width(), cr.height(), Qt::AlignLeft | Qt::AlignTop, sz);
}
+}
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// KviCanvasItemPropertiesWidget
+//
+KviCanvasItemPropertiesWidget::KviCanvasItemPropertiesWidget(QWidget * par)
+ : QTable(par)
+{
+ setSelectionMode(QTable::NoSelection);
+ setColumnMovingEnabled(false);
+ setRowMovingEnabled(false);
+ setShowGrid(true);
+ setNumCols(2);
+ setSorting(false);
+ setLeftMargin(0);
+ verticalHeader()->hide();
+ connect(this, SIGNAL(valueChanged(int, int)), this, SLOT(cellEdited(int, int)));
+}
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //
- // KviCanvasItemPropertiesWidget
- //
- KviCanvasItemPropertiesWidget::KviCanvasItemPropertiesWidget(QWidget * par)
- : QTable(par)
- {
- setSelectionMode(QTable::NoSelection);
- setColumnMovingEnabled(false);
- setRowMovingEnabled(false);
- setShowGrid(true);
- setNumCols(2);
- setSorting(false);
- setLeftMargin(0);
- verticalHeader()->hide();
- connect(this,SIGNAL(valueChanged(int,int)),this,SLOT(cellEdited(int,int)));
- }
-
- KviCanvasItemPropertiesWidget::~KviCanvasItemPropertiesWidget()
- {
- }
+KviCanvasItemPropertiesWidget::~KviCanvasItemPropertiesWidget()
+{
+}
- void KviCanvasItemPropertiesWidget::cellEdited(int row,int)
- {
- QTableItem * it = item(row,0);
- if(!it)return;
- QString szName = it->text();
- it = item(row,1);
- if(!it)return;
- emit propertyChanged(szName,((KviVariantTableItem *)it)->property());
- }
+void KviCanvasItemPropertiesWidget::cellEdited(int row, int)
+{
+ QTableItem * it = item(row, 0);
+ if(!it)
+ return;
+ QString szName = it->text();
+ it = item(row, 1);
+ if(!it)
+ return;
+ emit propertyChanged(szName, ((KviVariantTableItem *)it)->property());
+}
- void KviCanvasItemPropertiesWidget::editItem(QCanvasItem * it)
+void KviCanvasItemPropertiesWidget::editItem(QCanvasItem * it)
+{
+ if(!it)
{
- if(!it)
+ for(int i = 0; i < numRows(); i++)
{
- for(int i=0;i<numRows();i++)
- {
- clearCell(i,0);
- clearCell(i,1);
- clearCellWidget(i,1);
- }
- setNumRows(0);
- return;
+ clearCell(i, 0);
+ clearCell(i, 1);
+ clearCellWidget(i, 1);
}
+ setNumRows(0);
+ return;
+ }
- QMap<QString,QVariant> * m = 0;
+ QMap<QString, QVariant> * m = 0;
- switch(KVI_CANVAS_RTTI_CONTROL_TYPE(it))
- {
- case KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE:
- m = ((KviCanvasRectangleItem *)it)->properties();
+ switch(KVI_CANVAS_RTTI_CONTROL_TYPE(it))
+ {
+ case KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE:
+ m = ((KviCanvasRectangleItem *)it)->properties();
break;
- case KVI_CANVAS_RTTI_CONTROL_TYPE_LINE:
- m = ((KviCanvasLine *)it)->properties();
+ case KVI_CANVAS_RTTI_CONTROL_TYPE_LINE:
+ m = ((KviCanvasLine *)it)->properties();
break;
- case KVI_CANVAS_RTTI_CONTROL_TYPE_POLYGON:
- m = ((KviCanvasPolygon *)it)->properties();
+ case KVI_CANVAS_RTTI_CONTROL_TYPE_POLYGON:
+ m = ((KviCanvasPolygon *)it)->properties();
break;
- }
-
- if(!m)
- {
- editItem(0);
- return;
- }
+ }
- for(int i=0;i<numRows();i++)
- {
- clearCell(i,0);
- clearCell(i,1);
- clearCellWidget(i,1);
- }
+ if(!m)
+ {
+ editItem(0);
+ return;
+ }
- setNumRows(m->count());
+ for(int i = 0; i < numRows(); i++)
+ {
+ clearCell(i, 0);
+ clearCell(i, 1);
+ clearCellWidget(i, 1);
+ }
- QTableItem * item;
+ setNumRows(m->count());
- int idx = 0;
+ QTableItem * item;
- for(QMap<QString,QVariant>::ConstIterator iter = m->begin();iter != m->end();++iter)
- {
- item = new QTableItem(this,QTableItem::Never,iter.key().toUtf8().data());
- setItem(idx,0,item);
- item = new KviVariantTableItem(this,iter.data());
- setItem(idx,1,item);
- idx++;
- }
+ int idx = 0;
+ for(QMap<QString, QVariant>::ConstIterator iter = m->begin(); iter != m->end(); ++iter)
+ {
+ item = new QTableItem(this, QTableItem::Never, iter.key().toUtf8().data());
+ setItem(idx, 0, item);
+ item = new KviVariantTableItem(this, iter.data());
+ setItem(idx, 1, item);
+ idx++;
}
+}
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //
- // DccCanvasWidget
- //
- DccCanvasWidget::DccCanvasWidget(QWidget * par)
- : QWidget(par,"canvas_widget")
- {
- m_pCanvas = new QCanvas(this);
- //#warning "Make this size as parameter of Dcc ?"
- m_pCanvas->resize(648,480);
- m_pMenuBar = new QMenuBar(this);
- m_pSplitter = new QSplitter(QSplitter::Horizontal,this);
- m_pCanvasView = new KviCanvasView(m_pCanvas,this,m_pSplitter);
- m_pStatusLabel = new QLabel(this);
- m_pPropertiesWidget = new KviCanvasItemPropertiesWidget(m_pSplitter);
- QValueList<int> l;
- l.append(80);
- l.append(20);
- m_pSplitter->setSizes(l);
+//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+//
+// DccCanvasWidget
+//
+DccCanvasWidget::DccCanvasWidget(QWidget * par)
+ : QWidget(par, "canvas_widget")
+{
+ m_pCanvas = new QCanvas(this);
+ //#warning "Make this size as parameter of Dcc ?"
+ m_pCanvas->resize(648, 480);
+ m_pMenuBar = new QMenuBar(this);
+ m_pSplitter = new QSplitter(QSplitter::Horizontal, this);
+ m_pCanvasView = new KviCanvasView(m_pCanvas, this, m_pSplitter);
+ m_pStatusLabel = new QLabel(this);
+ m_pPropertiesWidget = new KviCanvasItemPropertiesWidget(m_pSplitter);
+ QValueList<int> l;
+ l.append(80);
+ l.append(20);
+ m_pSplitter->setSizes(l);
- connect(m_pPropertiesWidget,SIGNAL(propertyChanged(const QString &,const QVariant &)),m_pCanvasView,SLOT(propertyChanged(const QString &,const QVariant &)));
+ connect(m_pPropertiesWidget, SIGNAL(propertyChanged(const QString &, const QVariant &)), m_pCanvasView, SLOT(propertyChanged(const QString &, const QVariant &)));
- QMenu * add = new QMenu(m_pMenuBar);
- QMenu * shapes = new QMenu(add);
- QMenu * polygons = new QMenu(add);
- QMenu * items = new QMenu(add);
- shapes->addAction(__tr2qs_ctx("&Line","dcc"),m_pCanvasView,SLOT(insertLine()));
- shapes->addAction(__tr2qs_ctx("&Rectangle","dcc"),m_pCanvasView,SLOT(insertRectangle()));
- shapes->addAction(__tr2qs_ctx("&Ellipse","dcc"),m_pCanvasView,SLOT(insertEllipse()));
- shapes->addAction(__tr2qs_ctx("&Pie","dcc"),m_pCanvasView,SLOT(insertPie()));
- shapes->addAction(__tr2qs_ctx("&Chord","dcc"),m_pCanvasView,SLOT(insertChord()));
+ QMenu * add = new QMenu(m_pMenuBar);
+ QMenu * shapes = new QMenu(add);
+ QMenu * polygons = new QMenu(add);
+ QMenu * items = new QMenu(add);
+ shapes->addAction(__tr2qs_ctx("&Line", "dcc"), m_pCanvasView, SLOT(insertLine()));
+ shapes->addAction(__tr2qs_ctx("&Rectangle", "dcc"), m_pCanvasView, SLOT(insertRectangle()));
+ shapes->addAction(__tr2qs_ctx("&Ellipse", "dcc"), m_pCanvasView, SLOT(insertEllipse()));
+ shapes->addAction(__tr2qs_ctx("&Pie", "dcc"), m_pCanvasView, SLOT(insertPie()));
+ shapes->addAction(__tr2qs_ctx("&Chord", "dcc"), m_pCanvasView, SLOT(insertChord()));
- items->addAction(__tr2qs_ctx("&Rich text (html)","dcc"),m_pCanvasView,SLOT(insertRichText()));
+ items->addAction(__tr2qs_ctx("&Rich text (html)", "dcc"), m_pCanvasView, SLOT(insertRichText()));
- polygons->addAction(__tr2qs_ctx("&Triangle","dcc"),m_pCanvasView,SLOT(insertPolygonTriangle()));
- polygons->addAction(__tr2qs_ctx("&Rectangle","dcc"),m_pCanvasView,SLOT(insertPolygonRectangle()));
- polygons->addAction(__tr2qs_ctx("&Pentagon","dcc"),m_pCanvasView,SLOT(insertPolygonPentagon()));
- polygons->addAction(__tr2qs_ctx("&Hexagon","dcc"),m_pCanvasView,SLOT(insertPolygonHexagon()));
+ polygons->addAction(__tr2qs_ctx("&Triangle", "dcc"), m_pCanvasView, SLOT(insertPolygonTriangle()));
+ polygons->addAction(__tr2qs_ctx("&Rectangle", "dcc"), m_pCanvasView, SLOT(insertPolygonRectangle()));
+ polygons->addAction(__tr2qs_ctx("&Pentagon", "dcc"), m_pCanvasView, SLOT(insertPolygonPentagon()));
+ polygons->addAction(__tr2qs_ctx("&Hexagon", "dcc"), m_pCanvasView, SLOT(insertPolygonHexagon()));
- add->addAction(__tr2qs_ctx("&Shape","dcc"),shapes);
- add->addAction(__tr2qs_ctx("&Item","dcc"),items);
- add->addAction(__tr2qs_ctx("&Polygons","dcc"),polygons);
+ add->addAction(__tr2qs_ctx("&Shape", "dcc"), shapes);
+ add->addAction(__tr2qs_ctx("&Item", "dcc"), items);
+ add->addAction(__tr2qs_ctx("&Polygons", "dcc"), polygons);
- m_pMenuBar->addAction(__tr2qs_ctx("&Insert","dcc"),add);
- }
+ m_pMenuBar->addAction(__tr2qs_ctx("&Insert", "dcc"), add);
+}
- DccCanvasWidget::~DccCanvasWidget()
- {
- }
+DccCanvasWidget::~DccCanvasWidget()
+{
+}
- void DccCanvasWidget::resizeEvent(QResizeEvent *)
- {
- int h = m_pMenuBar->sizeHint().height();
- m_pMenuBar->setGeometry(0,0,width(),h);
- int h2 = m_pStatusLabel->sizeHint().height();
- m_pStatusLabel->setGeometry(0,height() - h2,width(),h2);
- m_pSplitter->setGeometry(0,h,width(),height() - (h + h2));
- }
+void DccCanvasWidget::resizeEvent(QResizeEvent *)
+{
+ int h = m_pMenuBar->sizeHint().height();
+ m_pMenuBar->setGeometry(0, 0, width(), h);
+ int h2 = m_pStatusLabel->sizeHint().height();
+ m_pStatusLabel->setGeometry(0, height() - h2, width(), h2);
+ m_pSplitter->setGeometry(0, h, width(), height() - (h + h2));
+}
#endif
diff --git a/src/modules/dcc/canvaswidget.h b/src/modules/dcc/canvaswidget.h
index da40016e7..d6737cef4 100644
--- a/src/modules/dcc/canvaswidget.h
+++ b/src/modules/dcc/canvaswidget.h
@@ -27,276 +27,309 @@
#include "DccBroker.h"
#ifdef COMPILE_DCC_CANVAS
- #include <QCanvas>
- #include <QMenuBar>
- #include <QLabel>
- #include <QMap>
- #include <QVariant>
- #include <QTable>
- #include <QSplitter>
+#include <QCanvas>
+#include <QMenuBar>
+#include <QLabel>
+#include <QMap>
+#include <QVariant>
+#include <QTable>
+#include <QSplitter>
- class DccCanvasWidget;
+class DccCanvasWidget;
- #define KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE 1
- #define KVI_CANVAS_RTTI_CONTROL_TYPE_LINE 2
- #define KVI_CANVAS_RTTI_CONTROL_TYPE_POLYGON 4
+#define KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE 1
+#define KVI_CANVAS_RTTI_CONTROL_TYPE_LINE 2
+#define KVI_CANVAS_RTTI_CONTROL_TYPE_POLYGON 4
- #define KVI_CANVAS_RTTI_CONTROL_TYPE_MASK 255
+#define KVI_CANVAS_RTTI_CONTROL_TYPE_MASK 255
- #define KVI_CANVAS_RTTI_RECTANGLE (KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE | (1 << 8))
- #define KVI_CANVAS_RTTI_RICHTEXT (KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE | (2 << 8))
- #define KVI_CANVAS_RTTI_LINE (KVI_CANVAS_RTTI_CONTROL_TYPE_LINE | (3 << 8))
- #define KVI_CANVAS_RTTI_ELLIPSE (KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE | (4 << 8))
- #define KVI_CANVAS_RTTI_CHORD (KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE | (5 << 8))
- #define KVI_CANVAS_RTTI_PIE (KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE | (6 << 8))
- #define KVI_CANVAS_RTTI_POLYGON (KVI_CANVAS_RTTI_CONTROL_TYPE_POLYGON | (7 << 8))
+#define KVI_CANVAS_RTTI_RECTANGLE (KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE | (1 << 8))
+#define KVI_CANVAS_RTTI_RICHTEXT (KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE | (2 << 8))
+#define KVI_CANVAS_RTTI_LINE (KVI_CANVAS_RTTI_CONTROL_TYPE_LINE | (3 << 8))
+#define KVI_CANVAS_RTTI_ELLIPSE (KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE | (4 << 8))
+#define KVI_CANVAS_RTTI_CHORD (KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE | (5 << 8))
+#define KVI_CANVAS_RTTI_PIE (KVI_CANVAS_RTTI_CONTROL_TYPE_RECTANGLE | (6 << 8))
+#define KVI_CANVAS_RTTI_POLYGON (KVI_CANVAS_RTTI_CONTROL_TYPE_POLYGON | (7 << 8))
- #define KVI_CANVAS_RTTI_CONTROL_TYPE(__item) (__item->rtti() & KVI_CANVAS_RTTI_CONTROL_TYPE_MASK)
+#define KVI_CANVAS_RTTI_CONTROL_TYPE(__item) (__item->rtti() & KVI_CANVAS_RTTI_CONTROL_TYPE_MASK)
+class KviCanvasPolygon : public QCanvasPolygon
+{
+public:
+ KviCanvasPolygon(QCanvas * c, int x, int y, QPointArray & pnts, double dScaleFactor);
+ virtual ~KviCanvasPolygon();
+protected:
+ QMap<QString, QVariant> m_properties;
+ double m_dScaleFactor;
+ QPointArray m_points;
- class KviCanvasPolygon : public QCanvasPolygon
- {
- public:
- KviCanvasPolygon(QCanvas * c,int x,int y,QPointArray &pnts,double dScaleFactor);
- virtual ~KviCanvasPolygon();
- protected:
- QMap<QString,QVariant> m_properties;
- double m_dScaleFactor;
- QPointArray m_points;
- public:
- virtual void draw(QPainter & p);
- double scaleFactor(){ return m_dScaleFactor; };
- void setScaleFactor(double dScaleFactor);
- void resetPoints();
- const QPointArray & internalPoints(){ return m_points; };
- void setInternalPoints(const QPointArray &pnts);
- QMap<QString,QVariant> * properties(){ return &m_properties; };
- virtual void setProperty(const QString &property,const QVariant &val);
- virtual int rtti() const;
- };
+public:
+ virtual void draw(QPainter & p);
+ double scaleFactor() { return m_dScaleFactor; };
+ void setScaleFactor(double dScaleFactor);
+ void resetPoints();
+ const QPointArray & internalPoints() { return m_points; };
+ void setInternalPoints(const QPointArray & pnts);
+ QMap<QString, QVariant> * properties() { return &m_properties; };
+ virtual void setProperty(const QString & property, const QVariant & val);
+ virtual int rtti() const;
+};
+class KviCanvasRectangleItem : public QCanvasRectangle
+{
+ friend class KviCanvasRectangle;
+ friend class KviCanvasRichText;
+ friend class KviCanvasEllipticItem;
- class KviCanvasRectangleItem : public QCanvasRectangle
- {
- friend class KviCanvasRectangle;
- friend class KviCanvasRichText;
- friend class KviCanvasEllipticItem;
- protected:
- KviCanvasRectangleItem(QCanvas * c,int x,int y,int w,int h);
- public:
- virtual ~KviCanvasRectangleItem();
- protected:
- QMap<QString,QVariant> m_properties;
- public:
- int right(){ return ((int)x()) + width(); };
- int bottom(){ return ((int)y()) + height(); };
- QMap<QString,QVariant> * properties(){ return &m_properties; };
- virtual void setProperty(const QString &property,const QVariant &val);
+protected:
+ KviCanvasRectangleItem(QCanvas * c, int x, int y, int w, int h);
+
+public:
+ virtual ~KviCanvasRectangleItem();
+
+protected:
+ QMap<QString, QVariant> m_properties;
+
+public:
+ int right() { return ((int)x()) + width(); };
+ int bottom() { return ((int)y()) + height(); };
+ QMap<QString, QVariant> * properties() { return &m_properties; };
+ virtual void setProperty(const QString & property, const QVariant & val);
// QVariant property(const QString &name){ return m_properties[name]; };
- protected:
- void drawSelection(QPainter &p);
- };
+protected:
+ void drawSelection(QPainter & p);
+};
+class KviCanvasEllipticItem : public KviCanvasRectangleItem
+{
+ friend class KviCanvasEllipse;
+ friend class KviCanvasChord;
+ friend class KviCanvasPie;
- class KviCanvasEllipticItem : public KviCanvasRectangleItem
- {
- friend class KviCanvasEllipse;
- friend class KviCanvasChord;
- friend class KviCanvasPie;
- protected:
- KviCanvasEllipticItem(QCanvas * c,int x,int y,int w,int h);
- ~KviCanvasEllipticItem();
- public:
- virtual void setProperty(const QString & property,const QVariant &val);
- virtual void draw(QPainter & p);
- virtual void drawContent(QPainter & p);
- virtual int rtti() const;
- };
+protected:
+ KviCanvasEllipticItem(QCanvas * c, int x, int y, int w, int h);
+ ~KviCanvasEllipticItem();
+public:
+ virtual void setProperty(const QString & property, const QVariant & val);
+ virtual void draw(QPainter & p);
+ virtual void drawContent(QPainter & p);
+ virtual int rtti() const;
+};
- class KviCanvasEllipse : public KviCanvasEllipticItem
- {
- public:
- KviCanvasEllipse(QCanvas * c,int x,int y,int w,int h);
- ~KviCanvasEllipse();
- public:
- virtual void drawContent(QPainter & p);
- virtual int rtti() const;
- };
+class KviCanvasEllipse : public KviCanvasEllipticItem
+{
+public:
+ KviCanvasEllipse(QCanvas * c, int x, int y, int w, int h);
+ ~KviCanvasEllipse();
+public:
+ virtual void drawContent(QPainter & p);
+ virtual int rtti() const;
+};
- class KviCanvasPie : public KviCanvasEllipticItem
- {
- public:
- KviCanvasPie(QCanvas * c,int x,int y,int w,int h);
- ~KviCanvasPie();
- public:
- virtual void drawContent(QPainter & p);
- virtual int rtti() const;
- };
+class KviCanvasPie : public KviCanvasEllipticItem
+{
+public:
+ KviCanvasPie(QCanvas * c, int x, int y, int w, int h);
+ ~KviCanvasPie();
+public:
+ virtual void drawContent(QPainter & p);
+ virtual int rtti() const;
+};
- class KviCanvasChord : public KviCanvasEllipticItem
- {
- public:
- KviCanvasChord(QCanvas * c,int x,int y,int w,int h);
- ~KviCanvasChord();
- public:
- virtual void drawContent(QPainter & p);
- virtual int rtti() const;
- };
+class KviCanvasChord : public KviCanvasEllipticItem
+{
+public:
+ KviCanvasChord(QCanvas * c, int x, int y, int w, int h);
+ ~KviCanvasChord();
+public:
+ virtual void drawContent(QPainter & p);
+ virtual int rtti() const;
+};
- class KviCanvasLine : public QCanvasLine
- {
- public:
- KviCanvasLine(QCanvas * c,int x1,int y1,int x2,int y2);
- virtual ~KviCanvasLine();
- protected:
- QMap<QString,QVariant> m_properties;
- public:
- QMap<QString,QVariant> * properties(){ return &m_properties; };
- virtual void setProperty(const QString &property,const QVariant &val);
+class KviCanvasLine : public QCanvasLine
+{
+public:
+ KviCanvasLine(QCanvas * c, int x1, int y1, int x2, int y2);
+ virtual ~KviCanvasLine();
+
+protected:
+ QMap<QString, QVariant> m_properties;
+
+public:
+ QMap<QString, QVariant> * properties() { return &m_properties; };
+ virtual void setProperty(const QString & property, const QVariant & val);
// QVariant property(const QString &name){ return m_properties[name]; };
- virtual void draw(QPainter & p);
- virtual int rtti() const;
- };
+ virtual void draw(QPainter & p);
+ virtual int rtti() const;
+};
+class KviCanvasRectangle : public KviCanvasRectangleItem
+{
+public:
+ KviCanvasRectangle(QCanvas * c, int x, int y, int w, int h);
+ ~KviCanvasRectangle();
- class KviCanvasRectangle : public KviCanvasRectangleItem
- {
- public:
- KviCanvasRectangle(QCanvas * c,int x,int y,int w,int h);
- ~KviCanvasRectangle();
- public:
- virtual void draw(QPainter & p);
- virtual void setProperty(const QString &property,const QVariant &val);
- virtual int rtti() const;
- };
+public:
+ virtual void draw(QPainter & p);
+ virtual void setProperty(const QString & property, const QVariant & val);
+ virtual int rtti() const;
+};
+
+class KviCanvasRichText : public KviCanvasRectangleItem
+{
+public:
+ KviCanvasRichText(QCanvas * c, int x, int y, int w, int h);
+ ~KviCanvasRichText();
+public:
+ virtual void draw(QPainter & p);
+ virtual int rtti() const;
+};
- class KviCanvasRichText : public KviCanvasRectangleItem
+class KviCanvasView : public QCanvasView
+{
+ Q_OBJECT
+public:
+ KviCanvasView(QCanvas * c, DccCanvasWidget * cw, QWidget * par);
+ ~KviCanvasView();
+
+public:
+ enum State
{
- public:
- KviCanvasRichText(QCanvas * c,int x,int y,int w,int h);
- ~KviCanvasRichText();
- public:
- virtual void draw(QPainter & p);
- virtual int rtti() const;
+ Idle,
+ SelectOrigin
+ };
+ enum ObjectType
+ {
+ Rectangle,
+ RichText,
+ Line,
+ Ellipse,
+ Chord,
+ Pie,
+ PolygonTriangle,
+ PolygonRectangle,
+ PolygonPentagon,
+ PolygonHexagon
+ };
+ enum DragMode
+ {
+ None,
+ All,
+ Left,
+ Right,
+ Top,
+ Bottom,
+ LeftTop,
+ RightTop,
+ LeftBottom,
+ RightBottom,
+ Scale,
+ SinglePoint,
+ Rotate
};
+protected:
+ DccCanvasWidget * m_pCanvasWidget;
- class KviCanvasView : public QCanvasView
- {
- Q_OBJECT
- public:
- KviCanvasView(QCanvas * c,DccCanvasWidget * cw,QWidget * par);
- ~KviCanvasView();
- public:
- enum State { Idle, SelectOrigin };
- enum ObjectType {
- Rectangle, RichText, Line, Ellipse, Chord, Pie,
- PolygonTriangle, PolygonRectangle, PolygonPentagon,
- PolygonHexagon
- };
- enum DragMode {
- None, All, Left, Right, Top, Bottom, LeftTop, RightTop,
- LeftBottom, RightBottom, Scale, SinglePoint, Rotate
- };
- protected:
- DccCanvasWidget * m_pCanvasWidget;
+ // Insertion of objects
+ State m_state;
+ ObjectType m_objectToInsert;
- // Insertion of objects
- State m_state;
- ObjectType m_objectToInsert;
+ // Selected item
+ QCanvasItem * m_pSelectedItem;
- // Selected item
- QCanvasItem * m_pSelectedItem;
+ DragMode m_dragMode;
+ QPoint m_dragBegin;
+ double m_dragScaleFactor;
+ unsigned int m_dragPointIndex;
+ QPointArray m_dragPointArray;
- DragMode m_dragMode;
- QPoint m_dragBegin;
- double m_dragScaleFactor;
- unsigned int m_dragPointIndex;
- QPointArray m_dragPointArray;
- protected:
- void beginDragRectangle(KviCanvasRectangleItem * it,const QPoint &p,bool bInitial = false);
- void dragRectangle(KviCanvasRectangleItem * it,const QPoint & p);
+protected:
+ void beginDragRectangle(KviCanvasRectangleItem * it, const QPoint & p, bool bInitial = false);
+ void dragRectangle(KviCanvasRectangleItem * it, const QPoint & p);
- void beginDragLine(KviCanvasLine * it,const QPoint &p,bool bInitial = false);
- void dragLine(KviCanvasLine * it,const QPoint &p);
+ void beginDragLine(KviCanvasLine * it, const QPoint & p, bool bInitial = false);
+ void dragLine(KviCanvasLine * it, const QPoint & p);
- void beginDragPolygon(KviCanvasPolygon * it,const QPoint &p,bool bShift = false,bool bCtrl = false);
- void dragPolygon(KviCanvasPolygon * it,const QPoint &p);
+ void beginDragPolygon(KviCanvasPolygon * it, const QPoint & p, bool bShift = false, bool bCtrl = false);
+ void dragPolygon(KviCanvasPolygon * it, const QPoint & p);
- void setItemSelected(QCanvasItem * it);
- void clearSelection();
- void insertObjectAt(const QPoint & pnt,ObjectType o);
- virtual void contentsMousePressEvent(QMouseEvent *e);
- virtual void contentsMouseMoveEvent(QMouseEvent *e);
- virtual void contentsMouseReleaseEvent(QMouseEvent *e);
- public slots:
- void insertRectangle();
- void insertRichText();
- void insertLine();
- void insertPie();
- void insertChord();
- void insertEllipse();
- void insertPolygonTriangle();
- void insertPolygonRectangle();
- void insertPolygonPentagon();
- void insertPolygonHexagon();
- void propertyChanged(const QString &s,const QVariant &v);
- };
+ void setItemSelected(QCanvasItem * it);
+ void clearSelection();
+ void insertObjectAt(const QPoint & pnt, ObjectType o);
+ virtual void contentsMousePressEvent(QMouseEvent * e);
+ virtual void contentsMouseMoveEvent(QMouseEvent * e);
+ virtual void contentsMouseReleaseEvent(QMouseEvent * e);
+public slots:
+ void insertRectangle();
+ void insertRichText();
+ void insertLine();
+ void insertPie();
+ void insertChord();
+ void insertEllipse();
+ void insertPolygonTriangle();
+ void insertPolygonRectangle();
+ void insertPolygonPentagon();
+ void insertPolygonHexagon();
+ void propertyChanged(const QString & s, const QVariant & v);
+};
+class KviVariantTableItem : public QTableItem
+{
+public:
+ KviVariantTableItem(QTable * t, const QVariant & property);
+ ~KviVariantTableItem();
- class KviVariantTableItem : public QTableItem
- {
- public:
- KviVariantTableItem(QTable * t,const QVariant & property);
- ~KviVariantTableItem();
- private:
- QVariant m_property;
- public:
- virtual QWidget * createEditor() const;
- virtual void setContentFromEditor(QWidget *w);
- QVariant & property(){ return m_property; };
- virtual void paint(QPainter *p,const QColorGroup &cg,const QRect &cr,bool selected);
- };
+private:
+ QVariant m_property;
+public:
+ virtual QWidget * createEditor() const;
+ virtual void setContentFromEditor(QWidget * w);
+ QVariant & property() { return m_property; };
+ virtual void paint(QPainter * p, const QColorGroup & cg, const QRect & cr, bool selected);
+};
- class KviCanvasItemPropertiesWidget : public QTable
- {
- Q_OBJECT
- public:
- KviCanvasItemPropertiesWidget(QWidget * par);
- ~KviCanvasItemPropertiesWidget();
- public:
- void editItem(QCanvasItem * it);
- protected slots:
- void cellEdited(int row,int col);
- signals:
- void propertyChanged(const QString &s,const QVariant &v);
- };
+class KviCanvasItemPropertiesWidget : public QTable
+{
+ Q_OBJECT
+public:
+ KviCanvasItemPropertiesWidget(QWidget * par);
+ ~KviCanvasItemPropertiesWidget();
+public:
+ void editItem(QCanvasItem * it);
+protected slots:
+ void cellEdited(int row, int col);
+signals:
+ void propertyChanged(const QString & s, const QVariant & v);
+};
- class DccCanvasWidget : public QWidget
- {
- friend class KviCanvasView;
- Q_OBJECT
- public:
- DccCanvasWidget(QWidget * par);
- ~DccCanvasWidget();
- protected:
- QSplitter * m_pSplitter;
- QCanvas * m_pCanvas;
- QMenuBar * m_pMenuBar;
- KviCanvasView * m_pCanvasView;
- QLabel * m_pStatusLabel;
- KviCanvasItemPropertiesWidget * m_pPropertiesWidget;
- protected:
- virtual void resizeEvent(QResizeEvent *);
- };
+class DccCanvasWidget : public QWidget
+{
+ friend class KviCanvasView;
+ Q_OBJECT
+public:
+ DccCanvasWidget(QWidget * par);
+ ~DccCanvasWidget();
+
+protected:
+ QSplitter * m_pSplitter;
+ QCanvas * m_pCanvas;
+ QMenuBar * m_pMenuBar;
+ KviCanvasView * m_pCanvasView;
+ QLabel * m_pStatusLabel;
+ KviCanvasItemPropertiesWidget * m_pPropertiesWidget;
+
+protected:
+ virtual void resizeEvent(QResizeEvent *);
+};
#endif
#endif //_CANVAS_WIDGET_H_
diff --git a/src/modules/dcc/libkvidcc.cpp b/src/modules/dcc/libkvidcc.cpp
index 6acd8eddb..aa8bc979d 100644
--- a/src/modules/dcc/libkvidcc.cpp
+++ b/src/modules/dcc/libkvidcc.cpp
@@ -53,8 +53,8 @@
#include <QFileInfo>
#ifdef COMPILE_ON_WINDOWS
- // Ugly Windoze compiler...
- #include "DccDialog.h"
+// Ugly Windoze compiler...
+#include "DccDialog.h"
#endif
//#warning "KviOption_boolIgnoreDccChat and other types too"
@@ -63,21 +63,22 @@
DccBroker * g_pDccBroker = 0;
-
-static void dcc_module_set_dcc_type(DccDescriptor * d,const char * szBaseType)
+static void dcc_module_set_dcc_type(DccDescriptor * d, const char * szBaseType)
{
d->szType = szBaseType;
#ifdef COMPILE_SSL_SUPPORT
- if(d->bIsSSL)d->szType.prepend('S');
+ if(d->bIsSSL)
+ d->szType.prepend('S');
#endif
- if(d->bIsTdcc)d->szType.prepend('T');
+ if(d->bIsTdcc)
+ d->szType.prepend('T');
}
-static bool dcc_kvs_parse_default_parameters(DccDescriptor * d,KviKvsModuleCommandCall *c)
+static bool dcc_kvs_parse_default_parameters(DccDescriptor * d, KviKvsModuleCommandCall * c)
{
- d->bIsTdcc = c->switches()->find('t',"tdcc");
+ d->bIsTdcc = c->switches()->find('t', "tdcc");
- KviKvsVariant * pSw = c->switches()->find('m',"minimize");
+ KviKvsVariant * pSw = c->switches()->find('m', "minimize");
if(pSw != 0)
d->bOverrideMinimize = pSw->asBoolean();
@@ -87,12 +88,14 @@ static bool dcc_kvs_parse_default_parameters(DccDescriptor * d,KviKvsModuleComma
if(!d->console())
{
// We don't need a console with -c and -n, otherwise we need it
- if(!(c->switches()->find('c',"connect") || c->switches()->find('n',"no-ctcp")))
+ if(!(c->switches()->find('c', "connect") || c->switches()->find('n', "no-ctcp")))
{
delete d;
- c->error(__tr2qs_ctx("This window has no associated IRC context (an IRC context is required unless -c or -n are passed)","dcc"));
+ c->error(__tr2qs_ctx("This window has no associated IRC context (an IRC context is required unless -c or -n are passed)", "dcc"));
return false;
- } else d->setConsole(g_pMainWindow->firstConsole());
+ }
+ else
+ d->setConsole(g_pMainWindow->firstConsole());
}
KVI_ASSERT(d->console());
@@ -100,83 +103,93 @@ static bool dcc_kvs_parse_default_parameters(DccDescriptor * d,KviKvsModuleComma
if(!d->console()->isConnected())
{
// We don't need a connection with -c and -n, otherwise we need it
- if(!(c->switches()->find('c',"connect") || c->switches()->find('n',"no-ctcp")))
+ if(!(c->switches()->find('c', "connect") || c->switches()->find('n', "no-ctcp")))
{
delete d;
- c->error(__tr2qs_ctx("You're not connected to a server (an active connection is required unless -c or -n are passed)","dcc"));
+ c->error(__tr2qs_ctx("You're not connected to a server (an active connection is required unless -c or -n are passed)", "dcc"));
return false;
- } else {
+ }
+ else
+ {
// -c or -n, grab a local nick from somewhere
- d->szLocalNick = KVI_OPTION_STRING(KviOption_stringNickname1).trimmed();
- if(d->szLocalNick.isEmpty())d->szLocalNick = KVI_DEFAULT_NICKNAME1;
- d->szLocalUser = __tr2qs_ctx("unknown","dcc"); // we can live without it
- d->szLocalHost = d->szLocalUser; // we can live without it
+ d->szLocalNick = KVI_OPTION_STRING(KviOption_stringNickname1).trimmed();
+ if(d->szLocalNick.isEmpty())
+ d->szLocalNick = KVI_DEFAULT_NICKNAME1;
+ d->szLocalUser = __tr2qs_ctx("unknown", "dcc"); // we can live without it
+ d->szLocalHost = d->szLocalUser; // we can live without it
}
- } else {
+ }
+ else
+ {
// We know everything
- d->szLocalNick = d->console()->connection()->userInfo()->nickName();
- d->szLocalUser = d->console()->connection()->userInfo()->userName();
- d->szLocalHost = d->console()->connection()->userInfo()->hostName();
+ d->szLocalNick = d->console()->connection()->userInfo()->nickName();
+ d->szLocalUser = d->console()->connection()->userInfo()->userName();
+ d->szLocalHost = d->console()->connection()->userInfo()->hostName();
}
- if( (pSw = c->switches()->find('i',"ip")) )
+ if((pSw = c->switches()->find('i', "ip")))
{
pSw->asString(d->szListenIp);
if(!(d->szListenIp.contains('.') || d->szListenIp.contains(':')))
{
// This will magically work with the same buffer as source and dst!
- if(!KviNetUtils::getInterfaceAddress(d->szListenIp,d->szListenIp))
+ if(!KviNetUtils::getInterfaceAddress(d->szListenIp, d->szListenIp))
{
- c->error(__tr2qs_ctx("Unable to get address of interface %Q","dcc"),&(d->szListenIp));
+ c->error(__tr2qs_ctx("Unable to get address of interface %Q", "dcc"), &(d->szListenIp));
delete d;
return false;
}
}
- } else {
+ }
+ else
+ {
QString tmp;
- if(!dcc_kvs_get_listen_ip_address(c,d->console(),tmp))
+ if(!dcc_kvs_get_listen_ip_address(c, d->console(), tmp))
{
delete d;
- c->error(__tr2qs_ctx("No suitable interfaces to listen on, use -i","dcc"));
+ c->error(__tr2qs_ctx("No suitable interfaces to listen on, use -i", "dcc"));
return false;
}
- d->szListenIp=tmp;
+ d->szListenIp = tmp;
}
- if( (pSw = c->switches()->find('p',"port")) )
+ if((pSw = c->switches()->find('p', "port")))
{
pSw->asString(d->szListenPort); // fixme!
}
- else d->szListenPort = "0"; // any port is ok
+ else
+ d->szListenPort = "0"; // any port is ok
- if( (pSw = c->switches()->find('a',"fake-address")) )
+ if((pSw = c->switches()->find('a', "fake-address")))
{
pSw->asString(d->szFakeIp);
}
- else {
+ else
+ {
if(KVI_OPTION_BOOL(KviOption_boolDccSendFakeAddressByDefault))
{
d->szFakeIp = KVI_OPTION_STRING(KviOption_stringDefaultDccFakeAddress);
- if(d->szFakeIp.isEmpty())KVI_OPTION_BOOL(KviOption_boolDccSendFakeAddressByDefault) = false;
+ if(d->szFakeIp.isEmpty())
+ KVI_OPTION_BOOL(KviOption_boolDccSendFakeAddressByDefault) = false;
}
}
- if( (pSw = c->switches()->find('f',"fake-port")) )
+ if((pSw = c->switches()->find('f', "fake-port")))
{
pSw->asString(d->szFakePort);
}
- d->bDoTimeout = (!c->switches()->find('u',"unlimited"));
+ d->bDoTimeout = (!c->switches()->find('u', "unlimited"));
#ifdef COMPILE_SSL_SUPPORT
- d->bIsSSL = c->switches()->find('s',"ssl");
+ d->bIsSSL = c->switches()->find('s', "ssl");
#else
- if(c->switches()->find('s',"ssl"))c->warning(__tr2qs_ctx("This executable was built without SSL support, -s switch ignored","dcc"));
+ if(c->switches()->find('s', "ssl"))
+ c->warning(__tr2qs_ctx("This executable was built without SSL support, -s switch ignored", "dcc"));
#endif
return true;
}
-
/*
@doc: dcc.chat
@type:
@@ -390,61 +403,63 @@ static bool dcc_kvs_cmd_chat(KviKvsModuleCommandCall * c)
{
QString szTarget;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("target",KVS_PT_NONEMPTYSTRING,0,szTarget)
+ KVSM_PARAMETER("target", KVS_PT_NONEMPTYSTRING, 0, szTarget)
KVSM_PARAMETERS_END(c)
DccDescriptor * d = new DccDescriptor(c->window()->console());
- d->szNick = szTarget; // we always specify the nickname
- d->szUser = __tr2qs_ctx("unknown","dcc"); // username is always unknown
- d->szHost = d->szUser; // host is always unknown
+ d->szNick = szTarget; // we always specify the nickname
+ d->szUser = __tr2qs_ctx("unknown", "dcc"); // username is always unknown
+ d->szHost = d->szUser; // host is always unknown
- if(!dcc_kvs_parse_default_parameters(d,c))return false;
- dcc_module_set_dcc_type(d,"CHAT");
+ if(!dcc_kvs_parse_default_parameters(d, c))
+ return false;
+ dcc_module_set_dcc_type(d, "CHAT");
- if(c->switches()->find('z',"zero-port"))
+ if(c->switches()->find('z', "zero-port"))
{
// we want to have it reversed... add a tag and send out the request
KviDccZeroPortTag * t = g_pDccBroker->addZeroPortTag();
d->console()->connection()->sendFmtData("PRIVMSG %s :%cDCC %s chat 127.0.0.1 0 %s%c",
- d->console()->connection()->encodeText(d->szNick).data(),
- 0x01,
- d->console()->connection()->encodeText(d->szType).data(),
- d->console()->connection()->encodeText(t->m_szTag).data(),
- 0x01);
+ d->console()->connection()->encodeText(d->szNick).data(),
+ 0x01,
+ d->console()->connection()->encodeText(d->szType).data(),
+ d->console()->connection()->encodeText(t->m_szTag).data(),
+ 0x01);
return true;
}
- if(c->switches()->find('c',"connect"))
+ if(c->switches()->find('c', "connect"))
{
- if(!(c->switches()->find('i',"ip") && c->switches()->find('p',"port")))
+ if(!(c->switches()->find('i', "ip") && c->switches()->find('p', "port")))
{
delete d;
- c->error(__tr2qs_ctx("-c requires -i and -p","dcc"));
+ c->error(__tr2qs_ctx("-c requires -i and -p", "dcc"));
return false;
}
- d->szIp = d->szListenIp;
- d->szPort = d->szListenPort;
- d->szListenIp = ""; // useless
+ d->szIp = d->szListenIp;
+ d->szPort = d->szListenPort;
+ d->szListenIp = ""; // useless
d->szListenPort = ""; // useless
- d->bActive = true;
- } else {
- d->szIp = __tr2qs_ctx("unknown","dcc");
- d->szPort = d->szIp;
- d->bActive = false;
- d->bSendRequest = !c->switches()->find('n',"no-ctcp");
+ d->bActive = true;
+ }
+ else
+ {
+ d->szIp = __tr2qs_ctx("unknown", "dcc");
+ d->szPort = d->szIp;
+ d->bActive = false;
+ d->bSendRequest = !c->switches()->find('n', "no-ctcp");
}
//c->window()->output(0,"%Q %Q %Q",&(d->szIp),&(d->szPort),&(d->szListenIp));
d->triggerCreationEvent();
- g_pDccBroker->executeChat(0,d);
+ g_pDccBroker->executeChat(0, d);
return true;
}
-
/*
@doc: dcc.send
@type:
@@ -582,20 +597,20 @@ static bool dcc_kvs_cmd_chat(KviKvsModuleCommandCall * c)
static bool dcc_kvs_cmd_send(KviKvsModuleCommandCall * c)
{
- QString szTarget,szFileName;
+ QString szTarget, szFileName;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("target",KVS_PT_NONEMPTYSTRING,0,szTarget)
- KVSM_PARAMETER("file name",KVS_PT_NONEMPTYSTRING,KVS_PF_OPTIONAL,szFileName)
+ KVSM_PARAMETER("target", KVS_PT_NONEMPTYSTRING, 0, szTarget)
+ KVSM_PARAMETER("file name", KVS_PT_NONEMPTYSTRING, KVS_PF_OPTIONAL, szFileName)
KVSM_PARAMETERS_END(c)
DccDescriptor * d = new DccDescriptor(c->window()->console());
- d->szNick = szTarget; // we always specify the nickname
+ d->szNick = szTarget; // we always specify the nickname
QString szTmp;
KviKvsVariant * pSw = 0;
- if( (pSw = c->switches()->find('g',"get")) )
+ if((pSw = c->switches()->find('g', "get")))
{
d->szFileName = QFileInfo(szFileName).fileName();
@@ -607,57 +622,68 @@ static bool dcc_kvs_cmd_send(KviKvsModuleCommandCall * c)
pSw->asString(szTmp);
// avoid sprintf as long as possible
d->szFileSize = szTmp;
- } else {
- d->szFileSize = __tr_ctx("<unknown size>","dcc");
+ }
+ else
+ {
+ d->szFileSize = __tr_ctx("<unknown size>", "dcc");
}
}
- } else {
- d->szFileName = szFileName;
+ }
+ else
+ {
+ d->szFileName = szFileName;
d->szLocalFileName = szFileName;
}
- d->szUser = __tr2qs_ctx("unknown","dcc"); // username is always unknown
- d->szHost = d->szUser; // host is always unknown
- d->bRecvFile = pSw != 0;
- d->bNoAcks = c->switches()->find('b',"blind") || c->switches()->find('t',"tdcc");
- d->bResume = false;
- d->bAutoAccept = pSw != 0;
+ d->szUser = __tr2qs_ctx("unknown", "dcc"); // username is always unknown
+ d->szHost = d->szUser; // host is always unknown
+ d->bRecvFile = pSw != 0;
+ d->bNoAcks = c->switches()->find('b', "blind") || c->switches()->find('t', "tdcc");
+ d->bResume = false;
+ d->bAutoAccept = pSw != 0;
d->bIsIncomingAvatar = false;
- if(!dcc_kvs_parse_default_parameters(d,c))return false;
+ if(!dcc_kvs_parse_default_parameters(d, c))
+ return false;
- if(c->switches()->find('c',"connect"))
+ if(c->switches()->find('c', "connect"))
{
- if(!(c->switches()->find('i',"ip") && c->switches()->find('p',"port")))
+ if(!(c->switches()->find('i', "ip") && c->switches()->find('p', "port")))
{
delete d;
- c->error(__tr2qs_ctx("-c requires -i and -p","dcc"));
+ c->error(__tr2qs_ctx("-c requires -i and -p", "dcc"));
return false;
}
- d->szIp = d->szListenIp;
- d->szPort = d->szListenPort;
- d->szListenIp = ""; // useless
+ d->szIp = d->szListenIp;
+ d->szPort = d->szListenPort;
+ d->szListenIp = ""; // useless
d->szListenPort = ""; // useless
- d->bActive = true;
- } else {
- d->szIp = __tr2qs_ctx("unknown","dcc");
- d->szPort = d->szIp;
- d->bActive = false;
- d->bSendRequest = !c->switches()->find('n',"no-ctcp");
+ d->bActive = true;
+ }
+ else
+ {
+ d->szIp = __tr2qs_ctx("unknown", "dcc");
+ d->szPort = d->szIp;
+ d->bActive = false;
+ d->bSendRequest = !c->switches()->find('n', "no-ctcp");
}
- if(c->switches()->find('g',"get"))
+ if(c->switches()->find('g', "get"))
{
- dcc_module_set_dcc_type(d,"RECV");
+ dcc_module_set_dcc_type(d, "RECV");
d->triggerCreationEvent();
g_pDccBroker->recvFileManage(d);
- } else {
- dcc_module_set_dcc_type(d,"SEND");
+ }
+ else
+ {
+ dcc_module_set_dcc_type(d, "SEND");
d->triggerCreationEvent();
if(!d->szLocalFileName.isEmpty())
{
- g_pDccBroker->sendFileExecute(0,d);
- } else {
+ g_pDccBroker->sendFileExecute(0, d);
+ }
+ else
+ {
g_pDccBroker->sendFileManage(d);
}
}
@@ -757,38 +783,40 @@ static bool dcc_kvs_cmd_send(KviKvsModuleCommandCall * c)
static bool dcc_kvs_cmd_recv(KviKvsModuleCommandCall * c)
{
- QString szTarget,szFileName;
+ QString szTarget, szFileName;
kvs_uint_t uSize;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("target",KVS_PT_NONEMPTYSTRING,0,szTarget)
- KVSM_PARAMETER("filename",KVS_PT_NONEMPTYSTRING,0,szFileName)
- KVSM_PARAMETER("size",KVS_PT_UINT,0,uSize)
+ KVSM_PARAMETER("target", KVS_PT_NONEMPTYSTRING, 0, szTarget)
+ KVSM_PARAMETER("filename", KVS_PT_NONEMPTYSTRING, 0, szFileName)
+ KVSM_PARAMETER("size", KVS_PT_UINT, 0, uSize)
KVSM_PARAMETERS_END(c)
DccDescriptor * d = new DccDescriptor(c->window()->console());
- d->szNick = szTarget;
- d->szUser = __tr2qs_ctx("unknown","dcc");
- d->szHost = d->szUser;
- d->szIp = __tr2qs_ctx("unknown","dcc");
- d->szPort = d->szIp;
+ d->szNick = szTarget;
+ d->szUser = __tr2qs_ctx("unknown", "dcc");
+ d->szHost = d->szUser;
+ d->szIp = __tr2qs_ctx("unknown", "dcc");
+ d->szPort = d->szIp;
// -c is senseless here...but we accept it for compatibility
- if(!dcc_kvs_parse_default_parameters(d,c))return false;
+ if(!dcc_kvs_parse_default_parameters(d, c))
+ return false;
- d->szFileName = szFileName;
+ d->szFileName = szFileName;
d->szFileSize.setNum(uSize);
- d->bActive = false; // we have to listen!
- d->bResume = false;
- d->bRecvFile = true; // we have to receive the file!
- d->bSendRequest = !c->switches()->find('n',"no-ctcp");
- d->bNoAcks = d->bIsTdcc || c->switches()->find('b',"blind");
- d->bAutoAccept = KVI_OPTION_BOOL(KviOption_boolAutoAcceptDccSend);
- d->bIsIncomingAvatar = g_pApp->findPendingAvatarChange(d->console(),d->szNick,d->szFileName);
+ d->bActive = false; // we have to listen!
+ d->bResume = false;
+ d->bRecvFile = true; // we have to receive the file!
+ d->bSendRequest = !c->switches()->find('n', "no-ctcp");
+ d->bNoAcks = d->bIsTdcc || c->switches()->find('b', "blind");
+ d->bAutoAccept = KVI_OPTION_BOOL(KviOption_boolAutoAcceptDccSend);
+ d->bIsIncomingAvatar = g_pApp->findPendingAvatarChange(d->console(), d->szNick, d->szFileName);
- if(KVI_OPTION_BOOL(KviOption_boolAutoAcceptIncomingAvatars))d->bAutoAccept = d->bAutoAccept || d->bIsIncomingAvatar;
- dcc_module_set_dcc_type(d,"RECV");
+ if(KVI_OPTION_BOOL(KviOption_boolAutoAcceptIncomingAvatars))
+ d->bAutoAccept = d->bAutoAccept || d->bIsIncomingAvatar;
+ dcc_module_set_dcc_type(d, "RECV");
d->triggerCreationEvent();
g_pDccBroker->recvFileManage(d);
@@ -838,39 +866,38 @@ static bool dcc_kvs_cmd_recv(KviKvsModuleCommandCall * c)
static bool dcc_kvs_cmd_rsend(KviKvsModuleCommandCall * c)
{
- QString szTarget,szFileName;
+ QString szTarget, szFileName;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("target",KVS_PT_NONEMPTYSTRING,0,szTarget)
- KVSM_PARAMETER("filename",KVS_PT_NONEMPTYSTRING,KVS_PF_OPTIONAL,szFileName)
+ KVSM_PARAMETER("target", KVS_PT_NONEMPTYSTRING, 0, szTarget)
+ KVSM_PARAMETER("filename", KVS_PT_NONEMPTYSTRING, KVS_PF_OPTIONAL, szFileName)
KVSM_PARAMETERS_END(c)
KVSM_REQUIRE_CONNECTION(c)
DccDescriptor * d = new DccDescriptor(c->window()->console());
- d->szNick = szTarget;
- d->szLocalFileName = szFileName;
- d->bIsTdcc = c->switches()->find('t',"tdcc");
+ d->szNick = szTarget;
+ d->szLocalFileName = szFileName;
+ d->bIsTdcc = c->switches()->find('t', "tdcc");
#ifdef COMPILE_SSL_SUPPORT
- d->bIsSSL = c->switches()->find('s',"ssl");
+ d->bIsSSL = c->switches()->find('s', "ssl");
#else
- if(c->switches()->find('s',"ssl"))c->warning(__tr2qs_ctx("This executable has been built without SSL support, -s switch ignored","dcc"));
+ if(c->switches()->find('s', "ssl"))
+ c->warning(__tr2qs_ctx("This executable has been built without SSL support, -s switch ignored", "dcc"));
#endif //!COMPILE_SSL_SUPPORT
- if(c->switches()->find('z',"zero-port"))
+ if(c->switches()->find('z', "zero-port"))
{
- dcc_module_set_dcc_type(d,"SEND");
+ dcc_module_set_dcc_type(d, "SEND");
d->setZeroPortRequestTag("nonempty"); // just to tag it
- } else
- dcc_module_set_dcc_type(d,"RSEND");
+ }
+ else
+ dcc_module_set_dcc_type(d, "RSEND");
d->triggerCreationEvent();
g_pDccBroker->rsendManage(d);
return true;
}
-
-
-
/*
@doc: dcc.get
@type:
@@ -901,17 +928,17 @@ static bool dcc_kvs_cmd_rsend(KviKvsModuleCommandCall * c)
static bool dcc_kvs_cmd_get(KviKvsModuleCommandCall * c)
{
- QString szTarget,szFileName;
+ QString szTarget, szFileName;
kvs_uint_t uSize;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("target",KVS_PT_NONEMPTYSTRING,0,szTarget)
- KVSM_PARAMETER("filename",KVS_PT_NONEMPTYSTRING,0,szFileName)
- KVSM_PARAMETER("size",KVS_PT_UINT,KVS_PF_OPTIONAL,uSize)
+ KVSM_PARAMETER("target", KVS_PT_NONEMPTYSTRING, 0, szTarget)
+ KVSM_PARAMETER("filename", KVS_PT_NONEMPTYSTRING, 0, szFileName)
+ KVSM_PARAMETER("size", KVS_PT_UINT, KVS_PF_OPTIONAL, uSize)
KVSM_PARAMETERS_END(c)
KVSM_REQUIRE_CONNECTION(c)
- KviQString::cutToLast(szFileName,'/');
+ KviQString::cutToLast(szFileName, '/');
if(szFileName.contains(' '))
{
@@ -921,36 +948,38 @@ static bool dcc_kvs_cmd_get(KviKvsModuleCommandCall * c)
KviCString szDCC("GET");
#ifdef COMPILE_SSL_SUPPORT
- if(c->switches()->find('s',"ssl"))szDCC.prepend('S');
+ if(c->switches()->find('s', "ssl"))
+ szDCC.prepend('S');
#else
- if(c->switches()->find('s',"ssl"))c->warning(__tr2qs_ctx("This executable has no SSL support, -s switch ignored","dcc"));
+ if(c->switches()->find('s', "ssl"))
+ c->warning(__tr2qs_ctx("This executable has no SSL support, -s switch ignored", "dcc"));
#endif
- if(c->switches()->find('t',"tdcc"))szDCC.prepend('T');
+ if(c->switches()->find('t', "tdcc"))
+ szDCC.prepend('T');
if(uSize == 0)
{
c->window()->console()->connection()->sendFmtData("PRIVMSG %s :%cDCC %s %s%c",
- c->window()->console()->connection()->encodeText(szTarget).data(),
- 0x01,
- c->window()->console()->connection()->encodeText(szDCC.ptr()).data(),
- c->window()->console()->connection()->encodeText(szFileName).data(),
- 0x01);
- } else {
+ c->window()->console()->connection()->encodeText(szTarget).data(),
+ 0x01,
+ c->window()->console()->connection()->encodeText(szDCC.ptr()).data(),
+ c->window()->console()->connection()->encodeText(szFileName).data(),
+ 0x01);
+ }
+ else
+ {
c->window()->console()->connection()->sendFmtData("PRIVMSG %s :%cDCC %s %s %s%c",
- c->window()->console()->connection()->encodeText(szTarget).data(),
- 0x01,
- c->window()->console()->connection()->encodeText(szDCC.ptr()).data(),
- c->window()->console()->connection()->encodeText(szFileName).data(),
- c->window()->console()->connection()->encodeText(QString::number(uSize)).data(),
- 0x01);
+ c->window()->console()->connection()->encodeText(szTarget).data(),
+ 0x01,
+ c->window()->console()->connection()->encodeText(szDCC.ptr()).data(),
+ c->window()->console()->connection()->encodeText(szFileName).data(),
+ c->window()->console()->connection()->encodeText(QString::number(uSize)).data(),
+ 0x01);
}
return true;
}
-
-
-
// FIXME: SSL support for DCC VOICE ? (has a sense ?)
/*
@@ -1064,71 +1093,76 @@ static bool dcc_kvs_cmd_voice(KviKvsModuleCommandCall * c)
{
QString szTarget;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("target",KVS_PT_NONEMPTYSTRING,0,szTarget)
+ KVSM_PARAMETER("target", KVS_PT_NONEMPTYSTRING, 0, szTarget)
KVSM_PARAMETERS_END(c)
#ifdef COMPILE_DISABLE_DCC_VOICE
- c->warning(__tr2qs_ctx("DCC VOICE support not enabled at compilation time","dcc"));
+ c->warning(__tr2qs_ctx("DCC VOICE support not enabled at compilation time", "dcc"));
return true;
#endif
DccDescriptor * d = new DccDescriptor(c->window()->console());
- d->szNick = szTarget; // we always specify the nickname
- d->szUser = __tr2qs_ctx("unknown","dcc"); // username is always unknown
- d->szHost = d->szUser; // host is always unknown
- d->iSampleRate = 8000;
+ d->szNick = szTarget; // we always specify the nickname
+ d->szUser = __tr2qs_ctx("unknown", "dcc"); // username is always unknown
+ d->szHost = d->szUser; // host is always unknown
+ d->iSampleRate = 8000;
- if(!dcc_kvs_parse_default_parameters(d,c))return false;
+ if(!dcc_kvs_parse_default_parameters(d, c))
+ return false;
- if(KviKvsVariant * pSR = c->switches()->find('h',"sample-rate"))
+ if(KviKvsVariant * pSR = c->switches()->find('h', "sample-rate"))
{
kvs_int_t iSR;
if(!pSR->asInteger(iSR))
{
- c->warning(__tr2qs_ctx("Invalid sample rate specified, defaulting to 8000","dcc"));
+ c->warning(__tr2qs_ctx("Invalid sample rate specified, defaulting to 8000", "dcc"));
d->iSampleRate = 8000;
- } else {
+ }
+ else
+ {
d->iSampleRate = iSR;
}
}
d->szCodec = "adpcm";
- if(KviKvsVariant * pCodec = c->switches()->find('g',"codec"))
+ if(KviKvsVariant * pCodec = c->switches()->find('g', "codec"))
{
QString szCodec;
pCodec->asString(szCodec);
if(!kvi_dcc_voice_is_valid_codec(szCodec.toUtf8().data()))
{
- c->warning(__tr2qs_ctx("Invalid codec specified, defaulting to 'ADPCM'","dcc"));
+ c->warning(__tr2qs_ctx("Invalid codec specified, defaulting to 'ADPCM'", "dcc"));
d->szCodec = "adpcm";
}
}
- dcc_module_set_dcc_type(d,"VOICE");
- if(c->switches()->find('c',"connect"))
+ dcc_module_set_dcc_type(d, "VOICE");
+ if(c->switches()->find('c', "connect"))
{
- if(!(c->switches()->find('i',"ip") && c->switches()->find('p',"port")))
+ if(!(c->switches()->find('i', "ip") && c->switches()->find('p', "port")))
{
delete d;
- c->error(__tr2qs_ctx("-c requires -i and -p","dcc"));
+ c->error(__tr2qs_ctx("-c requires -i and -p", "dcc"));
return false;
}
- d->szIp = d->szListenIp;
- d->szPort = d->szListenPort;
- d->szListenIp = ""; // useless
+ d->szIp = d->szListenIp;
+ d->szPort = d->szListenPort;
+ d->szListenIp = ""; // useless
d->szListenPort = ""; // useless
- d->bActive = true;
+ d->bActive = true;
d->triggerCreationEvent();
- g_pDccBroker->activeVoiceExecute(0,d);
- } else {
- d->szIp = __tr2qs_ctx("unknown","dcc");
- d->szPort = d->szIp;
- d->bActive = false;
- d->bSendRequest = !(c->switches()->find('n',"no-ctcp"));
+ g_pDccBroker->activeVoiceExecute(0, d);
+ }
+ else
+ {
+ d->szIp = __tr2qs_ctx("unknown", "dcc");
+ d->szPort = d->szIp;
+ d->bActive = false;
+ d->bSendRequest = !(c->switches()->find('n', "no-ctcp"));
d->triggerCreationEvent();
g_pDccBroker->passiveVoiceExecute(d);
@@ -1137,65 +1171,69 @@ static bool dcc_kvs_cmd_voice(KviKvsModuleCommandCall * c)
return true;
}
-
static bool dcc_kvs_cmd_video(KviKvsModuleCommandCall * c)
{
QString szTarget;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("target",KVS_PT_NONEMPTYSTRING,0,szTarget)
+ KVSM_PARAMETER("target", KVS_PT_NONEMPTYSTRING, 0, szTarget)
KVSM_PARAMETERS_END(c)
#ifdef COMPILE_DISABLE_DCC_VIDEO
- c->warning(__tr2qs_ctx("DCC VIDEO support not enabled at compilation time","dcc"));
+ c->warning(__tr2qs_ctx("DCC VIDEO support not enabled at compilation time", "dcc"));
return true;
#else
DccDescriptor * d = new DccDescriptor(c->window()->console());
- d->szNick = szTarget; // we always specify the nickname
- d->szUser = __tr2qs_ctx("unknown","dcc"); // username is always unknown
- d->szHost = d->szUser; // host is always unknown
+ d->szNick = szTarget; // we always specify the nickname
+ d->szUser = __tr2qs_ctx("unknown", "dcc"); // username is always unknown
+ d->szHost = d->szUser; // host is always unknown
- if(!dcc_kvs_parse_default_parameters(d,c))return false;
+ if(!dcc_kvs_parse_default_parameters(d, c))
+ return false;
d->szCodec = "sjpeg";
- if(KviKvsVariant * pCodec = c->switches()->find('g',"codec"))
+ if(KviKvsVariant * pCodec = c->switches()->find('g', "codec"))
{
QString szCodec;
pCodec->asString(szCodec);
if(!kvi_dcc_video_is_valid_codec(szCodec.toUtf8().data()))
{
- c->warning(__tr2qs_ctx("Invalid codec specified","dcc"));
+ c->warning(__tr2qs_ctx("Invalid codec specified", "dcc"));
d->szCodec = "sjpeg";
- } else {
+ }
+ else
+ {
d->szCodec = szCodec;
}
}
- dcc_module_set_dcc_type(d,"VIDEO");
- if(c->switches()->find('c',"connect"))
+ dcc_module_set_dcc_type(d, "VIDEO");
+ if(c->switches()->find('c', "connect"))
{
- if(!(c->switches()->find('i',"ip") && c->switches()->find('p',"port")))
+ if(!(c->switches()->find('i', "ip") && c->switches()->find('p', "port")))
{
delete d;
- c->error(__tr2qs_ctx("-c requires -i and -p","dcc"));
+ c->error(__tr2qs_ctx("-c requires -i and -p", "dcc"));
return false;
}
- d->szIp = d->szListenIp;
- d->szPort = d->szListenPort;
- d->szListenIp = ""; // useless
+ d->szIp = d->szListenIp;
+ d->szPort = d->szListenPort;
+ d->szListenIp = ""; // useless
d->szListenPort = ""; // useless
- d->bActive = true;
+ d->bActive = true;
d->triggerCreationEvent();
- g_pDccBroker->activeVideoExecute(0,d);
- } else {
- d->szIp = __tr2qs_ctx("unknown","dcc");
- d->szPort = d->szIp;
- d->bActive = false;
- d->bSendRequest = !(c->switches()->find('n',"no-ctcp"));
+ g_pDccBroker->activeVideoExecute(0, d);
+ }
+ else
+ {
+ d->szIp = __tr2qs_ctx("unknown", "dcc");
+ d->szPort = d->szIp;
+ d->bActive = false;
+ d->bSendRequest = !(c->switches()->find('n', "no-ctcp"));
d->triggerCreationEvent();
g_pDccBroker->passiveVideoExecute(d);
@@ -1205,7 +1243,6 @@ static bool dcc_kvs_cmd_video(KviKvsModuleCommandCall * c)
#endif
}
-
/*
static bool dcc_module_cmd_canvas(KviModule *m,KviCommand *c)
{
@@ -1324,10 +1361,6 @@ static bool dcc_module_cmd_canvas(KviModule *m,KviCommand *c)
}
*/
-
-
-
-
/*
@doc: dcc_connection
@type:
@@ -1586,7 +1619,7 @@ static bool dcc_module_cmd_canvas(KviModule *m,KviCommand *c)
[i]XDCC[/i] has exactly the same meaning as [i]DCC[/i] (at least in KVIrc).[br]
*/
-static DccDescriptor * dcc_kvs_find_dcc_descriptor(const kvs_uint_t &uId,KviKvsModuleRunTimeCall * c,bool bWarn = true)
+static DccDescriptor * dcc_kvs_find_dcc_descriptor(const kvs_uint_t & uId, KviKvsModuleRunTimeCall * c, bool bWarn = true)
{
DccDescriptor * dcc = 0;
if(uId == 0)
@@ -1596,16 +1629,15 @@ static DccDescriptor * dcc_kvs_find_dcc_descriptor(const kvs_uint_t &uId,KviKvsM
dcc = ((DccWindow *)(c->window()))->descriptor();
}
if((!dcc) && bWarn)
- c->warning(__tr2qs_ctx("The current window has no associated DCC session","dcc"));
+ c->warning(__tr2qs_ctx("The current window has no associated DCC session", "dcc"));
return dcc;
}
dcc = DccDescriptor::find(uId);
if((!dcc) && bWarn)
- c->warning(__tr2qs_ctx("The specified parameter is not a valid DCC identifier","dcc"));
+ c->warning(__tr2qs_ctx("The specified parameter is not a valid DCC identifier", "dcc"));
return dcc;
}
-
/*
@doc: dcc.abort
@type:
@@ -1634,10 +1666,10 @@ static bool dcc_kvs_cmd_abort(KviKvsModuleCommandCall * c)
{
kvs_uint_t uDccId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c,!c->switches()->find('q',"quiet"));
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c, !c->switches()->find('q', "quiet"));
if(dcc)
{
@@ -1673,17 +1705,19 @@ static bool dcc_kvs_cmd_abort(KviKvsModuleCommandCall * c)
*/
static bool dcc_kvs_cmd_setBandwidthLimit(KviKvsModuleCommandCall * c)
{
- kvs_uint_t uDccId,uVal;
+ kvs_uint_t uDccId, uVal;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("limit_value",KVS_PT_UINT,0,uVal)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("limit_value", KVS_PT_UINT, 0, uVal)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c,!c->switches()->find('q',"quiet"));
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c, !c->switches()->find('q', "quiet"));
if(dcc)
{
- if (dcc->transfer())dcc->transfer()->setBandwidthLimit(uVal);
- else if (!c->switches()->find('q',"quiet"))c->warning(__tr2qs_ctx("This DCC session is not a DCC transfer session","dcc"));
+ if(dcc->transfer())
+ dcc->transfer()->setBandwidthLimit(uVal);
+ else if(!c->switches()->find('q', "quiet"))
+ c->warning(__tr2qs_ctx("This DCC session is not a DCC transfer session", "dcc"));
}
return true;
}
@@ -1714,16 +1748,16 @@ static bool dcc_kvs_fnc_protocol(KviKvsModuleFunctionCall * c)
{
kvs_uint_t uDccId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c);
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c);
- if(dcc)c->returnValue()->setString(dcc->protocol());
+ if(dcc)
+ c->returnValue()->setString(dcc->protocol());
return true;
}
-
/*
@doc: dcc.connectionType
@type:
@@ -1751,16 +1785,16 @@ static bool dcc_kvs_fnc_connectionType(KviKvsModuleFunctionCall * c)
{
kvs_uint_t uDccId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c);
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c);
- if(dcc)c->returnValue()->setString(dcc->isActive() ? "ACTIVE" : "PASSIVE");
+ if(dcc)
+ c->returnValue()->setString(dcc->isActive() ? "ACTIVE" : "PASSIVE");
return true;
}
-
/*
@doc: dcc.isFileTransfer
@type:
@@ -1787,16 +1821,16 @@ static bool dcc_kvs_fnc_isFileTransfer(KviKvsModuleFunctionCall * c)
{
kvs_uint_t uDccId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c,false);
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c, false);
- if(dcc)c->returnValue()->setBoolean(dcc->isFileTransfer());
+ if(dcc)
+ c->returnValue()->setBoolean(dcc->isFileTransfer());
return true;
}
-
/*
@doc: dcc.isFileUpload
@type:
@@ -1823,16 +1857,16 @@ static bool dcc_kvs_fnc_isFileUpload(KviKvsModuleFunctionCall * c)
{
kvs_uint_t uDccId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c);
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c);
- if(dcc)c->returnValue()->setBoolean(dcc->isFileUpload());
+ if(dcc)
+ c->returnValue()->setBoolean(dcc->isFileUpload());
return true;
}
-
/*
@doc: dcc.isFileDownload
@type:
@@ -1859,16 +1893,16 @@ static bool dcc_kvs_fnc_isFileDownload(KviKvsModuleFunctionCall * c)
{
kvs_uint_t uDccId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c);
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c);
- if(dcc)c->returnValue()->setBoolean(dcc->isFileDownload());
+ if(dcc)
+ c->returnValue()->setBoolean(dcc->isFileDownload());
return true;
}
-
/*
@doc: dcc.localNick
@type:
@@ -1894,16 +1928,16 @@ static bool dcc_kvs_fnc_localNick(KviKvsModuleFunctionCall * c)
{
kvs_uint_t uDccId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c);
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c);
- if(dcc)c->returnValue()->setString(dcc->localNick());
+ if(dcc)
+ c->returnValue()->setString(dcc->localNick());
return true;
}
-
/*
@doc: dcc.localUser
@type:
@@ -1929,12 +1963,13 @@ static bool dcc_kvs_fnc_localUser(KviKvsModuleFunctionCall * c)
{
kvs_uint_t uDccId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c);
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c);
- if(dcc)c->returnValue()->setString(dcc->localUser());
+ if(dcc)
+ c->returnValue()->setString(dcc->localUser());
return true;
}
@@ -1963,16 +1998,16 @@ static bool dcc_kvs_fnc_localHost(KviKvsModuleFunctionCall * c)
{
kvs_uint_t uDccId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c);
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c);
- if(dcc)c->returnValue()->setString(dcc->localHost());
+ if(dcc)
+ c->returnValue()->setString(dcc->localHost());
return true;
}
-
/*
@doc: dcc.localIp
@type:
@@ -1998,16 +2033,16 @@ static bool dcc_kvs_fnc_localIp(KviKvsModuleFunctionCall * c)
{
kvs_uint_t uDccId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c);
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c);
- if(dcc)c->returnValue()->setString(dcc->localIp());
+ if(dcc)
+ c->returnValue()->setString(dcc->localIp());
return true;
}
-
/*
@doc: dcc.localPort
@type:
@@ -2032,16 +2067,16 @@ static bool dcc_kvs_fnc_localPort(KviKvsModuleFunctionCall * c)
{
kvs_uint_t uDccId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c);
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c);
- if(dcc)c->returnValue()->setString(dcc->localPort());
+ if(dcc)
+ c->returnValue()->setString(dcc->localPort());
return true;
}
-
/*
@doc: dcc.localFileName
@type:
@@ -2064,16 +2099,16 @@ static bool dcc_kvs_fnc_localFileName(KviKvsModuleFunctionCall * c)
{
kvs_uint_t uDccId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c);
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c);
- if(dcc)c->returnValue()->setString(dcc->localFileName());
+ if(dcc)
+ c->returnValue()->setString(dcc->localFileName());
return true;
}
-
/*
@doc: dcc.localFileSize
@type:
@@ -2101,16 +2136,16 @@ static bool dcc_kvs_fnc_localFileSize(KviKvsModuleFunctionCall * c)
{
kvs_uint_t uDccId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c);
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c);
- if(dcc)c->returnValue()->setString(dcc->localFileSize().isEmpty() ? QString("0") : dcc->localFileSize());
+ if(dcc)
+ c->returnValue()->setString(dcc->localFileSize().isEmpty() ? QString("0") : dcc->localFileSize());
return true;
}
-
/*
@doc: dcc.remoteNick
@type:
@@ -2136,16 +2171,16 @@ static bool dcc_kvs_fnc_remoteNick(KviKvsModuleFunctionCall * c)
{
kvs_uint_t uDccId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c);
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c);
- if(dcc)c->returnValue()->setString(dcc->remoteNick());
+ if(dcc)
+ c->returnValue()->setString(dcc->remoteNick());
return true;
}
-
/*
@doc: dcc.remoteUser
@type:
@@ -2171,12 +2206,13 @@ static bool dcc_kvs_fnc_remoteUser(KviKvsModuleFunctionCall * c)
{
kvs_uint_t uDccId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c);
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c);
- if(dcc)c->returnValue()->setString(dcc->remoteUser());
+ if(dcc)
+ c->returnValue()->setString(dcc->remoteUser());
return true;
}
@@ -2205,12 +2241,13 @@ static bool dcc_kvs_fnc_remoteHost(KviKvsModuleFunctionCall * c)
{
kvs_uint_t uDccId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c);
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c);
- if(dcc)c->returnValue()->setString(dcc->remoteHost());
+ if(dcc)
+ c->returnValue()->setString(dcc->remoteHost());
return true;
}
@@ -2239,16 +2276,16 @@ static bool dcc_kvs_fnc_remoteIp(KviKvsModuleFunctionCall * c)
{
kvs_uint_t uDccId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c);
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c);
- if(dcc)c->returnValue()->setString(dcc->remoteIp());
+ if(dcc)
+ c->returnValue()->setString(dcc->remoteIp());
return true;
}
-
/*
@doc: dcc.remotePort
@type:
@@ -2274,16 +2311,16 @@ static bool dcc_kvs_fnc_remotePort(KviKvsModuleFunctionCall * c)
{
kvs_uint_t uDccId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c);
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c);
- if(dcc)c->returnValue()->setString(dcc->remotePort());
+ if(dcc)
+ c->returnValue()->setString(dcc->remotePort());
return true;
}
-
/*
@doc: dcc.remoteFileName
@type:
@@ -2306,16 +2343,16 @@ static bool dcc_kvs_fnc_remoteFileName(KviKvsModuleFunctionCall * c)
{
kvs_uint_t uDccId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c);
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c);
- if(dcc)c->returnValue()->setString(dcc->remoteFileName());
+ if(dcc)
+ c->returnValue()->setString(dcc->remoteFileName());
return true;
}
-
/*
@doc: dcc.remoteFileSize
@type:
@@ -2343,16 +2380,16 @@ static bool dcc_kvs_fnc_remoteFileSize(KviKvsModuleFunctionCall * c)
{
kvs_uint_t uDccId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c);
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c);
- if(dcc)c->returnValue()->setString(dcc->remoteFileSize().isEmpty() ? QString("0") : dcc->remoteFileSize());
+ if(dcc)
+ c->returnValue()->setString(dcc->remoteFileSize().isEmpty() ? QString("0") : dcc->remoteFileSize());
return true;
}
-
/*
@doc: dcc.ircContext
@type:
@@ -2381,10 +2418,10 @@ static bool dcc_kvs_fnc_ircContext(KviKvsModuleFunctionCall * c)
{
kvs_uint_t uDccId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c);
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c);
if(dcc)
{
@@ -2392,16 +2429,16 @@ static bool dcc_kvs_fnc_ircContext(KviKvsModuleFunctionCall * c)
if(pEventWindow && (g_pApp->windowExists(pEventWindow)))
{
c->returnValue()->setInteger(dcc->console()->context()->id());
- } else {
- c->error(__tr2qs_ctx("The IRC context that originated the DCC doesn't exists anymore.","dcc"));
+ }
+ else
+ {
+ c->error(__tr2qs_ctx("The IRC context that originated the DCC doesn't exists anymore.", "dcc"));
return false;
}
}
return true;
}
-
-
/*
@doc: dcc.transferStatus
@type:
@@ -2431,10 +2468,10 @@ static bool dcc_kvs_fnc_transferStatus(KviKvsModuleFunctionCall * c)
{
kvs_uint_t uDccId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c);
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c);
if(dcc)
{
@@ -2448,7 +2485,6 @@ static bool dcc_kvs_fnc_transferStatus(KviKvsModuleFunctionCall * c)
return true;
}
-
/*
@doc: dcc.transferredBytes
@type:
@@ -2476,25 +2512,25 @@ static bool dcc_kvs_fnc_transferredBytes(KviKvsModuleFunctionCall * c)
{
kvs_uint_t uDccId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c);
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c);
if(dcc)
{
if(dcc->transfer())
{
c->returnValue()->setInteger(dcc->transfer()->transferredBytes());
- } else {
+ }
+ else
+ {
c->returnValue()->setInteger(0);
}
}
return true;
}
-
-
/*
@doc: dcc.averageSpeed
@type:
@@ -2522,17 +2558,19 @@ static bool dcc_kvs_fnc_averageSpeed(KviKvsModuleFunctionCall * c)
{
kvs_uint_t uDccId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c);
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c);
if(dcc)
{
if(dcc->transfer())
{
c->returnValue()->setInteger(dcc->transfer()->averageSpeed());
- } else {
+ }
+ else
+ {
c->returnValue()->setInteger(0);
}
}
@@ -2564,24 +2602,25 @@ static bool dcc_kvs_fnc_currentSpeed(KviKvsModuleFunctionCall * c)
{
kvs_uint_t uDccId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
KVSM_PARAMETERS_END(c)
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c);
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c);
if(dcc)
{
if(dcc->transfer())
{
c->returnValue()->setInteger(dcc->transfer()->instantSpeed());
- } else {
+ }
+ else
+ {
c->returnValue()->setInteger(0);
}
}
return true;
}
-
/*
@doc: dcc.session
@type:
@@ -2604,7 +2643,7 @@ static bool dcc_kvs_fnc_session(KviKvsModuleFunctionCall * c)
{
QString szWinId;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("window_id",KVS_PT_STRING,KVS_PF_OPTIONAL,szWinId)
+ KVSM_PARAMETER("window_id", KVS_PT_STRING, KVS_PF_OPTIONAL, szWinId)
KVSM_PARAMETERS_END(c)
DccDescriptor * dcc = 0;
@@ -2614,9 +2653,11 @@ static bool dcc_kvs_fnc_session(KviKvsModuleFunctionCall * c)
dcc = ((DccWindow *)(c->window()))->descriptor();
if(!dcc)
{
- c->warning(__tr2qs_ctx("The current window has no associated DCC session","dcc"));
+ c->warning(__tr2qs_ctx("The current window has no associated DCC session", "dcc"));
c->returnValue()->setInteger(0);
- } else {
+ }
+ else
+ {
c->returnValue()->setInteger(dcc->id());
}
return true;
@@ -2625,7 +2666,7 @@ static bool dcc_kvs_fnc_session(KviKvsModuleFunctionCall * c)
KviWindow * pWnd = g_pApp->findWindow(szWinId);
if(!pWnd)
{
- c->warning(__tr2qs_ctx("The specified window identifier is not valid","dcc"));
+ c->warning(__tr2qs_ctx("The specified window identifier is not valid", "dcc"));
c->returnValue()->setInteger(0);
return true;
}
@@ -2634,15 +2675,16 @@ static bool dcc_kvs_fnc_session(KviKvsModuleFunctionCall * c)
dcc = ((DccWindow *)pWnd)->descriptor();
if(!dcc)
{
- c->warning(__tr2qs_ctx("The current window has no associated DCC session","dcc"));
+ c->warning(__tr2qs_ctx("The current window has no associated DCC session", "dcc"));
c->returnValue()->setInteger(0);
- } else {
+ }
+ else
+ {
c->returnValue()->setInteger(dcc->id());
}
return true;
}
-
/*
@doc: dcc.sessionList
@type:
@@ -2667,16 +2709,17 @@ static bool dcc_kvs_fnc_sessionList(KviKvsModuleFunctionCall * c)
{
QString szFlags;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("filter",KVS_PT_STRING,KVS_PF_OPTIONAL,szFlags)
+ KVSM_PARAMETER("filter", KVS_PT_STRING, KVS_PF_OPTIONAL, szFlags)
KVSM_PARAMETERS_END(c)
KviKvsArray * a = new KviKvsArray();
c->returnValue()->setArray(a);
- KviPointerHashTable<int,DccDescriptor> * dict = DccDescriptor::descriptorDict();
- if(!dict)return true;
+ KviPointerHashTable<int, DccDescriptor> * dict = DccDescriptor::descriptorDict();
+ if(!dict)
+ return true;
- KviPointerHashTableIterator<int,DccDescriptor> it(*dict);
+ KviPointerHashTableIterator<int, DccDescriptor> it(*dict);
int idx = 0;
@@ -2685,21 +2728,21 @@ static bool dcc_kvs_fnc_sessionList(KviKvsModuleFunctionCall * c)
// all
while(DccDescriptor * dcc = it.current())
{
- a->set(idx++,new KviKvsVariant((kvs_int_t)(dcc->id())));
+ a->set(idx++, new KviKvsVariant((kvs_int_t)(dcc->id())));
++it;
}
- } else {
- bool bWantFileUploads = szFlags.contains('u',Qt::CaseInsensitive);
- bool bWantFileDownloads = szFlags.contains('d',Qt::CaseInsensitive);
- bool bWantChats = szFlags.contains('c',Qt::CaseInsensitive);
+ }
+ else
+ {
+ bool bWantFileUploads = szFlags.contains('u', Qt::CaseInsensitive);
+ bool bWantFileDownloads = szFlags.contains('d', Qt::CaseInsensitive);
+ bool bWantChats = szFlags.contains('c', Qt::CaseInsensitive);
while(DccDescriptor * dcc = it.current())
{
- if((dcc->isFileUpload() && bWantFileUploads) ||
- (dcc->isFileDownload() && bWantFileDownloads) ||
- (dcc->isDccChat() && bWantChats))
+ if((dcc->isFileUpload() && bWantFileUploads) || (dcc->isFileDownload() && bWantFileDownloads) || (dcc->isDccChat() && bWantChats))
{
- a->set(idx++,new KviKvsVariant((kvs_int_t)(dcc->id())));
+ a->set(idx++, new KviKvsVariant((kvs_int_t)(dcc->id())));
}
++it;
}
@@ -2708,7 +2751,6 @@ static bool dcc_kvs_fnc_sessionList(KviKvsModuleFunctionCall * c)
return true;
}
-
/*
@doc: dcc.getSSLCertInfo
@type:
@@ -2772,39 +2814,41 @@ static bool dcc_kvs_fnc_getSSLCertInfo(KviKvsModuleFunctionCall * c)
QString szQuery;
QString szType;
QString szParam1;
- bool bRemote=true;
+ bool bRemote = true;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("query",KVS_PT_STRING,0,szQuery)
- KVSM_PARAMETER("type",KVS_PT_STRING,KVS_PF_OPTIONAL,szType)
- KVSM_PARAMETER("dcc_id",KVS_PT_UINT,KVS_PF_OPTIONAL,uDccId)
- KVSM_PARAMETER("param1",KVS_PT_STRING,KVS_PF_OPTIONAL,szParam1)
+ KVSM_PARAMETER("query", KVS_PT_STRING, 0, szQuery)
+ KVSM_PARAMETER("type", KVS_PT_STRING, KVS_PF_OPTIONAL, szType)
+ KVSM_PARAMETER("dcc_id", KVS_PT_UINT, KVS_PF_OPTIONAL, uDccId)
+ KVSM_PARAMETER("param1", KVS_PT_STRING, KVS_PF_OPTIONAL, szParam1)
KVSM_PARAMETERS_END(c)
#ifndef COMPILE_SSL_SUPPORT
- c->warning(__tr2qs_ctx("This executable was built without SSL support","dcc"));
+ c->warning(__tr2qs_ctx("This executable was built without SSL support", "dcc"));
return true;
#else
- if(szType.compare("local")==0)
+ if(szType.compare("local") == 0)
+ {
+ bRemote = false;
+ }
+ else
{
- bRemote=false;
- } else {
// already defaults to true, we only catch the error condition
- if(szType.compare("remote")!=0)
+ if(szType.compare("remote") != 0)
{
- c->warning(__tr2qs_ctx("You specified a bad string for the parameter \"type\"","dcc"));
+ c->warning(__tr2qs_ctx("You specified a bad string for the parameter \"type\"", "dcc"));
c->returnValue()->setString("");
return true;
}
}
- DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId,c);
+ DccDescriptor * dcc = dcc_kvs_find_dcc_descriptor(uDccId, c);
if(dcc)
{
if(!dcc->isSSL())
{
- c->warning(__tr2qs_ctx("Unable to get SSL information: DCC session is not using SSL","dcc"));
+ c->warning(__tr2qs_ctx("Unable to get SSL information: DCC session is not using SSL", "dcc"));
c->returnValue()->setString("");
return true;
}
@@ -2817,7 +2861,7 @@ static bool dcc_kvs_fnc_getSSLCertInfo(KviKvsModuleFunctionCall * c)
if(!pSlaveThread)
{
- c->warning(__tr2qs_ctx("Unable to get SSL information: DCC session not initialized yet","dcc"));
+ c->warning(__tr2qs_ctx("Unable to get SSL information: DCC session not initialized yet", "dcc"));
c->returnValue()->setString("");
return true;
}
@@ -2825,7 +2869,7 @@ static bool dcc_kvs_fnc_getSSLCertInfo(KviKvsModuleFunctionCall * c)
KviSSL * pSSL = pSlaveThread->getSSL();
if(!pSSL)
{
- c->warning(__tr2qs_ctx("Unable to get SSL information: SSL non initialized yet in DCC session","dcc"));
+ c->warning(__tr2qs_ctx("Unable to get SSL information: SSL non initialized yet in DCC session", "dcc"));
c->returnValue()->setString("");
return true;
}
@@ -2834,7 +2878,7 @@ static bool dcc_kvs_fnc_getSSLCertInfo(KviKvsModuleFunctionCall * c)
if(!pCert)
{
- c->warning(__tr2qs_ctx("Unable to get SSL information: no peer certificate available","dcc"));
+ c->warning(__tr2qs_ctx("Unable to get SSL information: no peer certificate available", "dcc"));
c->returnValue()->setString("");
return true;
}
@@ -2842,7 +2886,7 @@ static bool dcc_kvs_fnc_getSSLCertInfo(KviKvsModuleFunctionCall * c)
if(KviSSLMaster::getSSLCertInfo(pCert, szQuery, szParam1, c->returnValue()))
return true;
- c->warning(__tr2qs_ctx("Unable to get SSL information: query not recognized","dcc"));
+ c->warning(__tr2qs_ctx("Unable to get SSL information: query not recognized", "dcc"));
c->returnValue()->setString("");
return true;
}
@@ -2850,7 +2894,6 @@ static bool dcc_kvs_fnc_getSSLCertInfo(KviKvsModuleFunctionCall * c)
#endif
}
-
/*
@doc: dcc
@type:
@@ -2909,51 +2952,49 @@ static bool dcc_kvs_fnc_getSSLCertInfo(KviKvsModuleFunctionCall * c)
[fnc]$dcc.getSSLCertInfo[/fnc][br]
*/
-
static bool dcc_module_init(KviModule * m)
{
g_pDccBroker = new DccBroker();
- KVSM_REGISTER_SIMPLE_COMMAND(m,"send",dcc_kvs_cmd_send);
- KVSM_REGISTER_SIMPLE_COMMAND(m,"chat",dcc_kvs_cmd_chat);
- KVSM_REGISTER_SIMPLE_COMMAND(m,"video",dcc_kvs_cmd_video);
- KVSM_REGISTER_SIMPLE_COMMAND(m,"voice",dcc_kvs_cmd_voice);
- KVSM_REGISTER_SIMPLE_COMMAND(m,"recv",dcc_kvs_cmd_recv);
- KVSM_REGISTER_SIMPLE_COMMAND(m,"rsend",dcc_kvs_cmd_rsend);
- KVSM_REGISTER_SIMPLE_COMMAND(m,"get",dcc_kvs_cmd_get);
- KVSM_REGISTER_SIMPLE_COMMAND(m,"abort",dcc_kvs_cmd_abort);
- KVSM_REGISTER_SIMPLE_COMMAND(m,"setBandwidthLimit",dcc_kvs_cmd_setBandwidthLimit);
-
+ KVSM_REGISTER_SIMPLE_COMMAND(m, "send", dcc_kvs_cmd_send);
+ KVSM_REGISTER_SIMPLE_COMMAND(m, "chat", dcc_kvs_cmd_chat);
+ KVSM_REGISTER_SIMPLE_COMMAND(m, "video", dcc_kvs_cmd_video);
+ KVSM_REGISTER_SIMPLE_COMMAND(m, "voice", dcc_kvs_cmd_voice);
+ KVSM_REGISTER_SIMPLE_COMMAND(m, "recv", dcc_kvs_cmd_recv);
+ KVSM_REGISTER_SIMPLE_COMMAND(m, "rsend", dcc_kvs_cmd_rsend);
+ KVSM_REGISTER_SIMPLE_COMMAND(m, "get", dcc_kvs_cmd_get);
+ KVSM_REGISTER_SIMPLE_COMMAND(m, "abort", dcc_kvs_cmd_abort);
+ KVSM_REGISTER_SIMPLE_COMMAND(m, "setBandwidthLimit", dcc_kvs_cmd_setBandwidthLimit);
// FIXME: file upload / download state ?
- KVSM_REGISTER_FUNCTION(m,"transferStatus",dcc_kvs_fnc_transferStatus);
- KVSM_REGISTER_FUNCTION(m,"protocol",dcc_kvs_fnc_protocol);
- KVSM_REGISTER_FUNCTION(m,"connectionType",dcc_kvs_fnc_connectionType);
- KVSM_REGISTER_FUNCTION(m,"isFileTransfer",dcc_kvs_fnc_isFileTransfer);
- KVSM_REGISTER_FUNCTION(m,"isFileUpload",dcc_kvs_fnc_isFileUpload);
- KVSM_REGISTER_FUNCTION(m,"isFileDownload",dcc_kvs_fnc_isFileDownload);
- KVSM_REGISTER_FUNCTION(m,"localNick",dcc_kvs_fnc_localNick);
- KVSM_REGISTER_FUNCTION(m,"localUser",dcc_kvs_fnc_localUser);
- KVSM_REGISTER_FUNCTION(m,"localHost",dcc_kvs_fnc_localHost);
- KVSM_REGISTER_FUNCTION(m,"localIp",dcc_kvs_fnc_localIp);
- KVSM_REGISTER_FUNCTION(m,"localPort",dcc_kvs_fnc_localPort);
- KVSM_REGISTER_FUNCTION(m,"localFileName",dcc_kvs_fnc_localFileName);
- KVSM_REGISTER_FUNCTION(m,"localFileSize",dcc_kvs_fnc_localFileSize);
- KVSM_REGISTER_FUNCTION(m,"remoteNick",dcc_kvs_fnc_remoteNick);
- KVSM_REGISTER_FUNCTION(m,"remoteUser",dcc_kvs_fnc_remoteUser);
- KVSM_REGISTER_FUNCTION(m,"remoteHost",dcc_kvs_fnc_remoteHost);
- KVSM_REGISTER_FUNCTION(m,"remoteIp",dcc_kvs_fnc_remoteIp);
- KVSM_REGISTER_FUNCTION(m,"remotePort",dcc_kvs_fnc_remotePort);
- KVSM_REGISTER_FUNCTION(m,"remoteFileName",dcc_kvs_fnc_remoteFileName);
- KVSM_REGISTER_FUNCTION(m,"remoteFileSize",dcc_kvs_fnc_remoteFileSize);
- KVSM_REGISTER_FUNCTION(m,"averageSpeed",dcc_kvs_fnc_averageSpeed);
- KVSM_REGISTER_FUNCTION(m,"currentSpeed",dcc_kvs_fnc_currentSpeed);
- KVSM_REGISTER_FUNCTION(m,"transferredBytes",dcc_kvs_fnc_transferredBytes);
- KVSM_REGISTER_FUNCTION(m,"ircContext",dcc_kvs_fnc_ircContext);
- KVSM_REGISTER_FUNCTION(m,"session",dcc_kvs_fnc_session);
- KVSM_REGISTER_FUNCTION(m,"sessionList",dcc_kvs_fnc_sessionList);
- KVSM_REGISTER_FUNCTION(m,"getSSLCertInfo",dcc_kvs_fnc_getSSLCertInfo);
+ KVSM_REGISTER_FUNCTION(m, "transferStatus", dcc_kvs_fnc_transferStatus);
+ KVSM_REGISTER_FUNCTION(m, "protocol", dcc_kvs_fnc_protocol);
+ KVSM_REGISTER_FUNCTION(m, "connectionType", dcc_kvs_fnc_connectionType);
+ KVSM_REGISTER_FUNCTION(m, "isFileTransfer", dcc_kvs_fnc_isFileTransfer);
+ KVSM_REGISTER_FUNCTION(m, "isFileUpload", dcc_kvs_fnc_isFileUpload);
+ KVSM_REGISTER_FUNCTION(m, "isFileDownload", dcc_kvs_fnc_isFileDownload);
+ KVSM_REGISTER_FUNCTION(m, "localNick", dcc_kvs_fnc_localNick);
+ KVSM_REGISTER_FUNCTION(m, "localUser", dcc_kvs_fnc_localUser);
+ KVSM_REGISTER_FUNCTION(m, "localHost", dcc_kvs_fnc_localHost);
+ KVSM_REGISTER_FUNCTION(m, "localIp", dcc_kvs_fnc_localIp);
+ KVSM_REGISTER_FUNCTION(m, "localPort", dcc_kvs_fnc_localPort);
+ KVSM_REGISTER_FUNCTION(m, "localFileName", dcc_kvs_fnc_localFileName);
+ KVSM_REGISTER_FUNCTION(m, "localFileSize", dcc_kvs_fnc_localFileSize);
+ KVSM_REGISTER_FUNCTION(m, "remoteNick", dcc_kvs_fnc_remoteNick);
+ KVSM_REGISTER_FUNCTION(m, "remoteUser", dcc_kvs_fnc_remoteUser);
+ KVSM_REGISTER_FUNCTION(m, "remoteHost", dcc_kvs_fnc_remoteHost);
+ KVSM_REGISTER_FUNCTION(m, "remoteIp", dcc_kvs_fnc_remoteIp);
+ KVSM_REGISTER_FUNCTION(m, "remotePort", dcc_kvs_fnc_remotePort);
+ KVSM_REGISTER_FUNCTION(m, "remoteFileName", dcc_kvs_fnc_remoteFileName);
+ KVSM_REGISTER_FUNCTION(m, "remoteFileSize", dcc_kvs_fnc_remoteFileSize);
+ KVSM_REGISTER_FUNCTION(m, "averageSpeed", dcc_kvs_fnc_averageSpeed);
+ KVSM_REGISTER_FUNCTION(m, "currentSpeed", dcc_kvs_fnc_currentSpeed);
+ KVSM_REGISTER_FUNCTION(m, "transferredBytes", dcc_kvs_fnc_transferredBytes);
+ KVSM_REGISTER_FUNCTION(m, "ircContext", dcc_kvs_fnc_ircContext);
+ KVSM_REGISTER_FUNCTION(m, "session", dcc_kvs_fnc_session);
+ KVSM_REGISTER_FUNCTION(m, "sessionList", dcc_kvs_fnc_sessionList);
+ KVSM_REGISTER_FUNCTION(m, "getSSLCertInfo", dcc_kvs_fnc_getSSLCertInfo);
return true;
}
@@ -2975,14 +3016,13 @@ static bool dcc_module_can_unload(KviModule *)
}
KVIRC_MODULE(
- "DCC",
- "4.0.0",
- "Copyright (C) 2000-2004:\n" \
- "Szymon Stefanek (pragma at kvirc dot net)\n",
- "DCC extension for KVIrc\n",
- dcc_module_init,
- dcc_module_can_unload,
- 0,
- dcc_module_cleanup,
- "dcc"
-)
+ "DCC",
+ "4.0.0",
+ "Copyright (C) 2000-2004:\n"
+ "Szymon Stefanek (pragma at kvirc dot net)\n",
+ "DCC extension for KVIrc\n",
+ dcc_module_init,
+ dcc_module_can_unload,
+ 0,
+ dcc_module_cleanup,
+ "dcc")
diff --git a/src/modules/dcc/requests.cpp b/src/modules/dcc/requests.cpp
index b86e23528..d27ea9b65 100644
--- a/src/modules/dcc/requests.cpp
+++ b/src/modules/dcc/requests.cpp
@@ -28,7 +28,7 @@
#include "DccBroker.h"
#ifndef COMPILE_DISABLE_DCC_VIDEO
- #include "DccVideoWindow.h"
+#include "DccVideoWindow.h"
#endif
#include "DccVoiceWindow.h"
@@ -58,8 +58,8 @@
#include <QFileInfo>
#ifdef COMPILE_ON_WINDOWS
- // Ugly Windoze compiler...
- #include "DccDialog.h"
+// Ugly Windoze compiler...
+#include "DccDialog.h"
#endif
//#warning "KviOption_boolIgnoreDccChat and other types too"
@@ -67,27 +67,26 @@
extern KVIRC_API KviSharedFilesManager * g_pSharedFilesManager;
extern DccBroker * g_pDccBroker;
-static void dcc_module_reply_errmsg(KviDccRequest * dcc,const QString& errText)
+static void dcc_module_reply_errmsg(KviDccRequest * dcc, const QString & errText)
{
dcc->ctcpMsg->msg->console()->connection()->sendFmtData(
- "NOTICE %s :%cERRMSG %s%c",
- dcc->ctcpMsg->msg->console()->connection()->encodeText(dcc->ctcpMsg->pSource->nick()).data(),0x01,
- dcc->ctcpMsg->msg->console()->connection()->encodeText(errText).data()
- ,0x01);
+ "NOTICE %s :%cERRMSG %s%c",
+ dcc->ctcpMsg->msg->console()->connection()->encodeText(dcc->ctcpMsg->pSource->nick()).data(), 0x01,
+ dcc->ctcpMsg->msg->console()->connection()->encodeText(errText).data(), 0x01);
}
-static void dcc_module_request_error(KviDccRequest * dcc,const QString& errText)
+static void dcc_module_request_error(KviDccRequest * dcc, const QString & errText)
{
dcc->ctcpMsg->msg->console()->output(KVI_OUT_DCCERROR,
- __tr2qs_ctx("Unable to process the above request: %Q, %Q","dcc"),
- &errText,
- KVI_OPTION_BOOL(KviOption_boolNotifyFailedDccHandshakes) ? &(__tr2qs_ctx("Ignoring and notifying failure","dcc")) : &(__tr2qs_ctx("Ignoring","dcc")));
+ __tr2qs_ctx("Unable to process the above request: %Q, %Q", "dcc"),
+ &errText,
+ KVI_OPTION_BOOL(KviOption_boolNotifyFailedDccHandshakes) ? &(__tr2qs_ctx("Ignoring and notifying failure", "dcc")) : &(__tr2qs_ctx("Ignoring", "dcc")));
if(KVI_OPTION_BOOL(KviOption_boolNotifyFailedDccHandshakes))
{
QString szError = QString("Sorry, your DCC %1 request can't be satisfied: %2").arg(dcc->szType.ptr(), errText);
//since szError contains a user-suppplied string, we simplify it to avoid any kind of injection (bug #858)
- dcc_module_reply_errmsg(dcc,szError.simplified());
+ dcc_module_reply_errmsg(dcc, szError.simplified());
}
}
@@ -98,8 +97,8 @@ static bool dcc_module_check_concurrent_transfers_limit(KviDccRequest * dcc)
unsigned int uTransfers = DccFileTransfer::runningTransfersCount();
if(uTransfers >= KVI_OPTION_UINT(KviOption_uintMaxDccSendTransfers))
{
- QString szError = QString(__tr2qs_ctx("Concurrent transfer limit reached (%1 of %2 transfers running)","dcc")).arg(uTransfers).arg(KVI_OPTION_UINT(KviOption_uintMaxDccSendTransfers));
- dcc_module_request_error(dcc,szError);
+ QString szError = QString(__tr2qs_ctx("Concurrent transfer limit reached (%1 of %2 transfers running)", "dcc")).arg(uTransfers).arg(KVI_OPTION_UINT(KviOption_uintMaxDccSendTransfers));
+ dcc_module_request_error(dcc, szError);
return false;
}
}
@@ -113,51 +112,55 @@ static bool dcc_module_check_limits(KviDccRequest * dcc)
unsigned int uWindows = g_pDccBroker->dccWindowsCount();
if(uWindows >= KVI_OPTION_UINT(KviOption_uintMaxDccSlots))
{
- QString szError = QString(__tr2qs_ctx("Slot limit reached (%1 slots of %2)","dcc")).arg(uWindows).arg(KVI_OPTION_UINT(KviOption_uintMaxDccSlots));
- dcc_module_request_error(dcc,szError);
+ QString szError = QString(__tr2qs_ctx("Slot limit reached (%1 slots of %2)", "dcc")).arg(uWindows).arg(KVI_OPTION_UINT(KviOption_uintMaxDccSlots));
+ dcc_module_request_error(dcc, szError);
return false;
}
}
if(g_pDccBroker->dccBoxCount() >= 32)
{
// there are too many pending dcc requests: the user isn't watching....
- dcc_module_request_error(dcc,__tr2qs_ctx("Too many pending connections","dcc"));
+ dcc_module_request_error(dcc, __tr2qs_ctx("Too many pending connections", "dcc"));
return false;
}
return true;
}
-static void dcc_fill_local_nick_user_host(DccDescriptor * d,KviDccRequest * dcc)
+static void dcc_fill_local_nick_user_host(DccDescriptor * d, KviDccRequest * dcc)
{
if(dcc->pConsole->connection())
{
- d->szLocalNick = dcc->pConsole->connection()->userInfo()->nickName();
- d->szLocalUser = dcc->pConsole->connection()->userInfo()->userName();
- d->szLocalHost = dcc->pConsole->connection()->userInfo()->hostName();
- } else {
- d->szLocalNick = __tr_ctx("unknown","dcc");
- d->szLocalUser = __tr2qs_ctx("unknown","dcc");
- d->szLocalHost = __tr2qs_ctx("unknown","dcc");
+ d->szLocalNick = dcc->pConsole->connection()->userInfo()->nickName();
+ d->szLocalUser = dcc->pConsole->connection()->userInfo()->userName();
+ d->szLocalHost = dcc->pConsole->connection()->userInfo()->hostName();
+ }
+ else
+ {
+ d->szLocalNick = __tr_ctx("unknown", "dcc");
+ d->szLocalUser = __tr2qs_ctx("unknown", "dcc");
+ d->szLocalHost = __tr2qs_ctx("unknown", "dcc");
}
}
-static void dcc_module_set_dcc_type(DccDescriptor * d,const char * szBaseType)
+static void dcc_module_set_dcc_type(DccDescriptor * d, const char * szBaseType)
{
d->szType = szBaseType;
#ifdef COMPILE_SSL_SUPPORT
- if(d->bIsSSL)d->szType.prepend('S');
+ if(d->bIsSSL)
+ d->szType.prepend('S');
#endif
- if(d->bIsTdcc)d->szType.prepend('T');
+ if(d->bIsTdcc)
+ d->szType.prepend('T');
}
-static bool dcc_module_normalize_target_data(KviDccRequest * dcc,KviCString &ipaddr,KviCString &port)
+static bool dcc_module_normalize_target_data(KviDccRequest * dcc, KviCString & ipaddr, KviCString & port)
{
if(!port.isUnsignedNum())
{
if(!dcc->ctcpMsg->msg->haltOutput())
{
- QString szError = QString(__tr2qs_ctx("Invalid port number %1","dcc")).arg(port.ptr());
- dcc_module_request_error(dcc,szError);
+ QString szError = QString(__tr2qs_ctx("Invalid port number %1", "dcc")).arg(port.ptr());
+ dcc_module_request_error(dcc, szError);
}
return false;
}
@@ -168,23 +171,25 @@ static bool dcc_module_normalize_target_data(KviDccRequest * dcc,KviCString &ipa
{
addr.s_addr = htonl((unsigned long)ipaddr.toULong());
QString tmp;
- if(!KviNetUtils::binaryIpToStringIp(addr,tmp))
+ if(!KviNetUtils::binaryIpToStringIp(addr, tmp))
{
if(!dcc->ctcpMsg->msg->haltOutput())
{
- QString szError = QString(__tr2qs_ctx("Invalid IP address in old format %1","dcc")).arg(ipaddr.ptr());
- dcc_module_request_error(dcc,szError);
+ QString szError = QString(__tr2qs_ctx("Invalid IP address in old format %1", "dcc")).arg(ipaddr.ptr());
+ dcc_module_request_error(dcc, szError);
}
return false;
}
ipaddr = tmp;
- } else {
+ }
+ else
+ {
//FIXME: KviCString -> QString
- if(!KviNetUtils::stringIpToBinaryIp(QString(ipaddr),&addr))
+ if(!KviNetUtils::stringIpToBinaryIp(QString(ipaddr), &addr))
{
#ifdef COMPILE_IPV6_SUPPORT
struct in6_addr addr6;
- if(KviNetUtils::stringIpToBinaryIp_V6(QString(ipaddr),&addr6))
+ if(KviNetUtils::stringIpToBinaryIp_V6(QString(ipaddr), &addr6))
{
dcc->bIPv6 = true;
return true; // IPV6 address.
@@ -192,8 +197,8 @@ static bool dcc_module_normalize_target_data(KviDccRequest * dcc,KviCString &ipa
#endif
if(!dcc->ctcpMsg->msg->haltOutput())
{
- QString szError = QString(__tr2qs_ctx("Invalid IP address %1","dcc")).arg(ipaddr.ptr());
- dcc_module_request_error(dcc,szError);
+ QString szError = QString(__tr2qs_ctx("Invalid IP address %1", "dcc")).arg(ipaddr.ptr());
+ dcc_module_request_error(dcc, szError);
}
return false;
}
@@ -201,12 +206,11 @@ static bool dcc_module_normalize_target_data(KviDccRequest * dcc,KviCString &ipa
return true;
}
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// CHAT
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-static void dccModuleParseDccChat(KviDccRequest *dcc)
+static void dccModuleParseDccChat(KviDccRequest * dcc)
{
//
// We have received a DCC CHAT request in the following form:
@@ -249,17 +253,19 @@ static void dccModuleParseDccChat(KviDccRequest *dcc)
//
// First of all we check the dcc slot limits
- if(!dcc_module_check_limits(dcc))return;
+ if(!dcc_module_check_limits(dcc))
+ return;
// Then we check the target host data
- if(!dcc_module_normalize_target_data(dcc,dcc->szParam2,dcc->szParam3))return;
+ if(!dcc_module_normalize_target_data(dcc, dcc->szParam2, dcc->szParam3))
+ return;
- if(!kvi_strEqualCI(dcc->szParam1.ptr(),"chat"))
+ if(!kvi_strEqualCI(dcc->szParam1.ptr(), "chat"))
{
if(!dcc->ctcpMsg->msg->haltOutput())
{
dcc->ctcpMsg->msg->console()->output(KVI_OUT_DCCMSG,
- __tr2qs_ctx("The above request is broken: the second parameter is '%s' and should be 'chat', trying to continue","dcc"),dcc->szParam1.ptr());
+ __tr2qs_ctx("The above request is broken: the second parameter is '%s' and should be 'chat', trying to continue", "dcc"), dcc->szParam1.ptr());
}
}
@@ -267,26 +273,25 @@ static void dccModuleParseDccChat(KviDccRequest *dcc)
szExtensions.cutRight(4); // cut off CHAT
#ifdef COMPILE_SSL_SUPPORT
- bool bSSLExtension = szExtensions.contains('S',false);
-#else //!COMPILE_SSL_SUPPORT
- if(szExtensions.contains('S',false))
+ bool bSSLExtension = szExtensions.contains('S', false);
+#else //!COMPILE_SSL_SUPPORT
+ if(szExtensions.contains('S', false))
{
- dcc_module_request_error(dcc,__tr2qs_ctx("This executable has been compiled without SSL support, the SSL extension to DCC CHAT is not available","dcc"));
+ dcc_module_request_error(dcc, __tr2qs_ctx("This executable has been compiled without SSL support, the SSL extension to DCC CHAT is not available", "dcc"));
return;
}
#endif //!COMPILE_SSL_SUPPORT
DccDescriptor * d = new DccDescriptor(dcc->pConsole);
- d->szNick = dcc->ctcpMsg->pSource->nick();
- d->szUser = dcc->ctcpMsg->pSource->user();
- d->szHost = dcc->ctcpMsg->pSource->host();
-
- dcc_fill_local_nick_user_host(d,dcc);
+ d->szNick = dcc->ctcpMsg->pSource->nick();
+ d->szUser = dcc->ctcpMsg->pSource->user();
+ d->szHost = dcc->ctcpMsg->pSource->host();
- d->szIp = dcc->szParam2.ptr();
- d->szPort = dcc->szParam3.ptr();
+ dcc_fill_local_nick_user_host(d, dcc);
+ d->szIp = dcc->szParam2.ptr();
+ d->szPort = dcc->szParam3.ptr();
if(dcc->szParam4.hasData())
{
@@ -297,16 +302,21 @@ static void dccModuleParseDccChat(KviDccRequest *dcc)
if(KVI_OPTION_BOOL(KviOption_boolDccSendFakeAddressByDefault))
{
d->szFakeIp = KVI_OPTION_STRING(KviOption_stringDefaultDccFakeAddress);
- if(d->szFakeIp.isEmpty())KVI_OPTION_BOOL(KviOption_boolDccSendFakeAddressByDefault) = false;
+ if(d->szFakeIp.isEmpty())
+ KVI_OPTION_BOOL(KviOption_boolDccSendFakeAddressByDefault) = false;
}
d->setZeroPortRequestTag(dcc->szParam4.ptr());
QString tmp;
- if(!dcc_kvs_get_listen_ip_address(0,d->console(),tmp))d->szListenIp = "0.0.0.0";
- else d->szListenIp=tmp;
+ if(!dcc_kvs_get_listen_ip_address(0, d->console(), tmp))
+ d->szListenIp = "0.0.0.0";
+ else
+ d->szListenIp = tmp;
d->szListenPort = "0"; // any port is OK
- d->bAutoAccept = KVI_OPTION_BOOL(KviOption_boolAutoAcceptDccChat);
- d->bActive = false; // we must listen then...
- } else {
+ d->bAutoAccept = KVI_OPTION_BOOL(KviOption_boolAutoAcceptDccChat);
+ d->bActive = false; // we must listen then...
+ }
+ else
+ {
// zero port acknowledge
// check if this is a tag that we have sent out
QString szTag = QString(dcc->szParam4.ptr());
@@ -322,43 +332,45 @@ static void dccModuleParseDccChat(KviDccRequest *dcc)
// request, but since we don't encourage bugs, we don't do it :D
// Mail me at pragma at kvirc dot net if you really think it's necessary.
dcc->ctcpMsg->msg->console()->output(KVI_OUT_DCCMSG,
- __tr2qs_ctx("The above request is broken: it looks like a zero port tag acknowledge but I have either never seen this tag or it was sent more than 120 seconds ago","dcc"));
- dcc_module_request_error(dcc,__tr2qs_ctx("It seems that I haven't requested this DCC chat","dcc"));
+ __tr2qs_ctx("The above request is broken: it looks like a zero port tag acknowledge but I have either never seen this tag or it was sent more than 120 seconds ago", "dcc"));
+ dcc_module_request_error(dcc, __tr2qs_ctx("It seems that I haven't requested this DCC chat", "dcc"));
delete d;
return;
- } else {
+ }
+ else
+ {
g_pDccBroker->removeZeroPortTag(szTag);
}
- d->bAutoAccept = true; // auto-accept it (we have sent it out)
- d->bActive = true;
+ d->bAutoAccept = true; // auto-accept it (we have sent it out)
+ d->bActive = true;
}
- } else {
- d->bAutoAccept = KVI_OPTION_BOOL(KviOption_boolAutoAcceptDccChat);
- d->bActive = true; // we have to connect (standard active chat)
+ }
+ else
+ {
+ d->bAutoAccept = KVI_OPTION_BOOL(KviOption_boolAutoAcceptDccChat);
+ d->bActive = true; // we have to connect (standard active chat)
}
#ifdef COMPILE_SSL_SUPPORT
- d->bIsSSL = bSSLExtension;
+ d->bIsSSL = bSSLExtension;
#endif
- dcc_module_set_dcc_type(d,"CHAT");
+ dcc_module_set_dcc_type(d, "CHAT");
d->triggerCreationEvent();
g_pDccBroker->handleChatRequest(d);
}
-
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// SEND
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
static void dccModuleParseDccRecv(KviDccRequest * dcc);
-static void dccModuleParseDccSend(KviDccRequest *dcc)
+static void dccModuleParseDccSend(KviDccRequest * dcc)
{
-//#warning "Ignore files depending on file type ? (MediaType ?)"
+ //#warning "Ignore files depending on file type ? (MediaType ?)"
//
// We have received a DCC SEND request in the following form
//
@@ -402,7 +414,7 @@ static void dccModuleParseDccSend(KviDccRequest *dcc)
// we have sent out a zero port request and the remote party acked it
//
- if((!kvi_strEqualCS(dcc->szParam3.ptr(),"0")) && dcc->szParam5.hasData())
+ if((!kvi_strEqualCS(dcc->szParam3.ptr(), "0")) && dcc->szParam5.hasData())
{
// DCC SEND <filename> <remoteip> <remoteport> <filesize> <tag>
// zero port acknowledge: treat as a RECV that should look like
@@ -414,9 +426,11 @@ static void dccModuleParseDccSend(KviDccRequest *dcc)
if(t)
{
// FIXME: #warning "%u will not support 64-bit numbers and won't work as intended here"
- dcc->szParam4.sprintf("%u",t->m_uResumePosition);
+ dcc->szParam4.sprintf("%u", t->m_uResumePosition);
g_pDccBroker->removeZeroPortTag(dcc->szParam5.ptr());
- } else {
+ }
+ else
+ {
// this should never happen since we always add
// a zero port tag for out outgoing requests
// but well... maybe the user did something behind our back...
@@ -432,21 +446,24 @@ static void dccModuleParseDccSend(KviDccRequest *dcc)
}
// First of all we check the transfer limits
- dcc->szParam1=dcc->pConsole->decodeText(dcc->szParam1);
- if(!dcc_module_check_limits(dcc))return;
- if(!dcc_module_check_concurrent_transfers_limit(dcc))return;
+ dcc->szParam1 = dcc->pConsole->decodeText(dcc->szParam1);
+ if(!dcc_module_check_limits(dcc))
+ return;
+ if(!dcc_module_check_concurrent_transfers_limit(dcc))
+ return;
// Then we ensure that the data that the remote end has sent are valid
- if(!dcc_module_normalize_target_data(dcc,dcc->szParam2,dcc->szParam3))return;
+ if(!dcc_module_normalize_target_data(dcc, dcc->szParam2, dcc->szParam3))
+ return;
if(!(dcc->szParam4.isUnsignedNum()))
{
if(!dcc->ctcpMsg->msg->haltOutput())
{
dcc->ctcpMsg->msg->console()->output(KVI_OUT_DCCMSG,
- __tr2qs_ctx("The above request is broken: the fourth parameter should be the file size but doesn't appear to be an unsigned number; trying to continue","dcc"),dcc->szParam4.ptr());
+ __tr2qs_ctx("The above request is broken: the fourth parameter should be the file size but doesn't appear to be an unsigned number; trying to continue", "dcc"), dcc->szParam4.ptr());
}
- dcc->szParam4 = __tr2qs_ctx("<unknown size>","dcc");
+ dcc->szParam4 = __tr2qs_ctx("<unknown size>", "dcc");
}
if(dcc->szParam1.contains('/'))
@@ -454,7 +471,7 @@ static void dccModuleParseDccSend(KviDccRequest *dcc)
if(!dcc->ctcpMsg->msg->haltOutput())
{
dcc->ctcpMsg->msg->console()->output(KVI_OUT_DCCMSG,
- __tr2qs_ctx("The above request is broken: the filename contains path components, stripping the leading path and trying to continue","dcc"),dcc->szParam1.ptr());
+ __tr2qs_ctx("The above request is broken: the filename contains path components, stripping the leading path and trying to continue", "dcc"), dcc->szParam1.ptr());
}
dcc->szParam1.cutToLast('/');
}
@@ -464,7 +481,7 @@ static void dccModuleParseDccSend(KviDccRequest *dcc)
if(!dcc->ctcpMsg->msg->haltOutput())
{
dcc->ctcpMsg->msg->console()->output(KVI_OUT_DCCMSG,
- __tr2qs_ctx("The above request is broken: the filename contains path components, stripping the leading path and trying to continue","dcc"),dcc->szParam1.ptr());
+ __tr2qs_ctx("The above request is broken: the filename contains path components, stripping the leading path and trying to continue", "dcc"), dcc->szParam1.ptr());
}
dcc->szParam1.cutToLast("%2F");
}
@@ -472,81 +489,85 @@ static void dccModuleParseDccSend(KviDccRequest *dcc)
KviCString szExtensions = dcc->szType;
szExtensions.cutRight(4); // cut off SEND
- bool bTurboExtension = szExtensions.contains('T',false);
+ bool bTurboExtension = szExtensions.contains('T', false);
#ifdef COMPILE_SSL_SUPPORT
- bool bSSLExtension = szExtensions.contains('S',false);
-#else //!COMPILE_SSL_SUPPORT
- if(szExtensions.contains('S',false))
+ bool bSSLExtension = szExtensions.contains('S', false);
+#else //!COMPILE_SSL_SUPPORT
+ if(szExtensions.contains('S', false))
{
- dcc_module_request_error(dcc,__tr2qs_ctx("This executable has been compiled without SSL support, the SSL extension to DCC SEND is not available","dcc"));
+ dcc_module_request_error(dcc, __tr2qs_ctx("This executable has been compiled without SSL support, the SSL extension to DCC SEND is not available", "dcc"));
return;
}
#endif //!COMPILE_SSL_SUPPORT
DccDescriptor * d = new DccDescriptor(dcc->pConsole);
- d->szNick = dcc->ctcpMsg->pSource->nick();
- d->szUser = dcc->ctcpMsg->pSource->user();
- d->szHost = dcc->ctcpMsg->pSource->host();
- dcc_fill_local_nick_user_host(d,dcc);
+ d->szNick = dcc->ctcpMsg->pSource->nick();
+ d->szUser = dcc->ctcpMsg->pSource->user();
+ d->szHost = dcc->ctcpMsg->pSource->host();
+ dcc_fill_local_nick_user_host(d, dcc);
- d->szIp = dcc->szParam2.ptr();
- d->szPort = dcc->szParam3.ptr();
- d->szFileName = dcc->szParam1.ptr();
- d->szFileSize = dcc->szParam4.ptr();
+ d->szIp = dcc->szParam2.ptr();
+ d->szPort = dcc->szParam3.ptr();
+ d->szFileName = dcc->szParam1.ptr();
+ d->szFileSize = dcc->szParam4.ptr();
- if(d->szPort=="0" && dcc->szParam5.hasData())
+ if(d->szPort == "0" && dcc->szParam5.hasData())
{
if(KVI_OPTION_BOOL(KviOption_boolDccSendFakeAddressByDefault))
{
d->szFakeIp = KVI_OPTION_STRING(KviOption_stringDefaultDccFakeAddress);
- if(d->szFakeIp.isEmpty())KVI_OPTION_BOOL(KviOption_boolDccSendFakeAddressByDefault) = false;
+ if(d->szFakeIp.isEmpty())
+ KVI_OPTION_BOOL(KviOption_boolDccSendFakeAddressByDefault) = false;
}
d->setZeroPortRequestTag(dcc->szParam5.ptr());
QString tmp;
- if(!dcc_kvs_get_listen_ip_address(0,d->console(),tmp))d->szListenIp = "0.0.0.0";
- else d->szListenIp=QString(tmp);
+ if(!dcc_kvs_get_listen_ip_address(0, d->console(), tmp))
+ d->szListenIp = "0.0.0.0";
+ else
+ d->szListenIp = QString(tmp);
d->szListenPort = "0"; // any port is OK
d->bSendRequest = true;
d->szLocalFileSize = d->szFileSize;
}
- d->bActive = !d->isZeroPortRequest(); // we have to connect unless it is a zero port request
+ d->bActive = !d->isZeroPortRequest(); // we have to connect unless it is a zero port request
- d->bResume = false;
- d->bRecvFile = true;
- d->bIsTdcc = bTurboExtension;
- d->bNoAcks = d->bIsTdcc;
+ d->bResume = false;
+ d->bRecvFile = true;
+ d->bIsTdcc = bTurboExtension;
+ d->bNoAcks = d->bIsTdcc;
#ifdef COMPILE_SSL_SUPPORT
- d->bIsSSL = bSSLExtension;
+ d->bIsSSL = bSSLExtension;
#endif
d->bOverrideMinimize = false;
- d->bAutoAccept = KVI_OPTION_BOOL(KviOption_boolAutoAcceptDccSend);
+ d->bAutoAccept = KVI_OPTION_BOOL(KviOption_boolAutoAcceptDccSend);
- d->bIsIncomingAvatar = g_pApp->findPendingAvatarChange(dcc->pConsole,d->szNick,d->szFileName);
- dcc_module_set_dcc_type(d,"RECV");
- if(KVI_OPTION_BOOL(KviOption_boolAutoAcceptIncomingAvatars))d->bAutoAccept = d->bAutoAccept || d->bIsIncomingAvatar;
+ d->bIsIncomingAvatar = g_pApp->findPendingAvatarChange(dcc->pConsole, d->szNick, d->szFileName);
+ dcc_module_set_dcc_type(d, "RECV");
+ if(KVI_OPTION_BOOL(KviOption_boolAutoAcceptIncomingAvatars))
+ d->bAutoAccept = d->bAutoAccept || d->bIsIncomingAvatar;
d->triggerCreationEvent();
g_pDccBroker->recvFileManage(d);
}
-static void dccModuleParseDccAccept(KviDccRequest *dcc)
+static void dccModuleParseDccAccept(KviDccRequest * dcc)
{
// this is usually DCC ACCEPT <filename> <port> <resumesize>
// but may be also
// DCC ACCEPT <filename> 0 <resumesize> <tag>
- if(!g_pDccBroker->handleResumeAccepted(dcc->szParam1.ptr(),dcc->szParam2.ptr(),dcc->szParam4.ptr()))
+ if(!g_pDccBroker->handleResumeAccepted(dcc->szParam1.ptr(), dcc->szParam2.ptr(), dcc->szParam4.ptr()))
{
//#warning "IF KviOption_boolReplyCtcpErrmsgOnInvalidAccept..."
if(!dcc->ctcpMsg->msg->haltOutput())
{
- QString szError = QString(__tr2qs_ctx("Can't proceed with DCC RECV: transfer not initiated for file %1 on port %2","dcc")).arg(dcc->szParam1.ptr()).arg(dcc->szParam2.ptr());
- dcc_module_request_error(dcc,szError);
+ QString szError = QString(__tr2qs_ctx("Can't proceed with DCC RECV: transfer not initiated for file %1 on port %2", "dcc")).arg(dcc->szParam1.ptr()).arg(dcc->szParam2.ptr());
+ dcc_module_request_error(dcc, szError);
}
}
}
-static void dccModuleParseDccResume(KviDccRequest *dcc)
+static void dccModuleParseDccResume(KviDccRequest * dcc)
{
// This is usually RESUME <filename> <port> <resumesize>
@@ -565,24 +586,23 @@ static void dccModuleParseDccResume(KviDccRequest *dcc)
{
if(!dcc->ctcpMsg->msg->haltOutput())
{
- QString szError = QString(__tr2qs_ctx("Invalid resume position argument '%1'","dcc")).arg(dcc->szParam3.ptr());
- dcc_module_request_error(dcc,szError);
+ QString szError = QString(__tr2qs_ctx("Invalid resume position argument '%1'", "dcc")).arg(dcc->szParam3.ptr());
+ dcc_module_request_error(dcc, szError);
}
return;
}
- if(!g_pDccBroker->handleResumeRequest(dcc,dcc->szParam1.ptr(),dcc->szParam2.ptr(),filePos,dcc->szParam4.ptr()))
+ if(!g_pDccBroker->handleResumeRequest(dcc, dcc->szParam1.ptr(), dcc->szParam2.ptr(), filePos, dcc->szParam4.ptr()))
{
//#warning "IF KviOption_boolReplyCtcpErrmsgOnInvalidResume..."
if(!dcc->ctcpMsg->msg->haltOutput())
{
- QString szError = QString(__tr2qs_ctx("Can't proceed with DCC SEND: transfer not initiated for file %1 on port %2, or invalid resume size","dcc")).arg(dcc->szParam1.ptr()).arg(dcc->szParam2.ptr());
- dcc_module_request_error(dcc,szError);
+ QString szError = QString(__tr2qs_ctx("Can't proceed with DCC SEND: transfer not initiated for file %1 on port %2, or invalid resume size", "dcc")).arg(dcc->szParam1.ptr()).arg(dcc->szParam2.ptr());
+ dcc_module_request_error(dcc, szError);
}
}
}
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// RECV
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -590,17 +610,20 @@ static void dccModuleParseDccResume(KviDccRequest *dcc)
static void dccModuleParseDccRecv(KviDccRequest * dcc)
{
// DCC [TS]RECV <filename> <ipaddr> <port> <resume-filesize>
- if(!dcc_module_check_limits(dcc))return;
- if(!dcc_module_check_concurrent_transfers_limit(dcc))return;
+ if(!dcc_module_check_limits(dcc))
+ return;
+ if(!dcc_module_check_concurrent_transfers_limit(dcc))
+ return;
- if(!dcc_module_normalize_target_data(dcc,dcc->szParam2,dcc->szParam3))return;
+ if(!dcc_module_normalize_target_data(dcc, dcc->szParam2, dcc->szParam3))
+ return;
if(!(dcc->szParam4.isUnsignedNum()))
{
if(!dcc->ctcpMsg->msg->haltOutput())
{
dcc->ctcpMsg->msg->console()->outputNoFmt(KVI_OUT_DCCMSG,
- __tr2qs_ctx("The above request has resume file size missing, assuming a resume file size of 0","dcc"));
+ __tr2qs_ctx("The above request has resume file size missing, assuming a resume file size of 0", "dcc"));
}
dcc->szParam4 = "0";
}
@@ -610,7 +633,7 @@ static void dccModuleParseDccRecv(KviDccRequest * dcc)
if(!dcc->ctcpMsg->msg->haltOutput())
{
dcc->ctcpMsg->msg->console()->output(KVI_OUT_DCCMSG,
- __tr2qs_ctx("The above request is broken: the filename contains path components, stripping the leading path and trying to continue","dcc"),dcc->szParam1.ptr());
+ __tr2qs_ctx("The above request is broken: the filename contains path components, stripping the leading path and trying to continue", "dcc"), dcc->szParam1.ptr());
}
dcc->szParam1.cutToLast('/');
}
@@ -618,19 +641,19 @@ static void dccModuleParseDccRecv(KviDccRequest * dcc)
KviCString szExtensions = dcc->szType;
szExtensions.cutRight(4); // cut off RECV
- bool bTurboExtension = szExtensions.contains('T',false);
+ bool bTurboExtension = szExtensions.contains('T', false);
#ifdef COMPILE_SSL_SUPPORT
- bool bSSLExtension = szExtensions.contains('S',false);
-#else //!COMPILE_SSL_SUPPORT
- if(szExtensions.contains('S',false))
+ bool bSSLExtension = szExtensions.contains('S', false);
+#else //!COMPILE_SSL_SUPPORT
+ if(szExtensions.contains('S', false))
{
- dcc_module_request_error(dcc,__tr2qs_ctx("This executable has been compiled without SSL support, the SSL extension to DCC RECV is not available","dcc"));
+ dcc_module_request_error(dcc, __tr2qs_ctx("This executable has been compiled without SSL support, the SSL extension to DCC RECV is not available", "dcc"));
return;
}
#endif //!COMPILE_SSL_SUPPORT
// If we have a file offer for this...do it automatically
- KviSharedFile * o = g_pSharedFilesManager->lookupSharedFile(dcc->szParam1.ptr(),dcc->ctcpMsg->pSource,0);
+ KviSharedFile * o = g_pSharedFilesManager->lookupSharedFile(dcc->szParam1.ptr(), dcc->ctcpMsg->pSource, 0);
if(o)
{
@@ -638,80 +661,81 @@ static void dccModuleParseDccRecv(KviDccRequest * dcc)
if(uResumeSize >= o->fileSize())
{
// senseless request
- QString szError = QString(__tr2qs_ctx("Invalid RECV request: position %1 is larger than file size","dcc")).arg(uResumeSize);
- dcc_module_request_error(dcc,szError);
+ QString szError = QString(__tr2qs_ctx("Invalid RECV request: position %1 is larger than file size", "dcc")).arg(uResumeSize);
+ dcc_module_request_error(dcc, szError);
return;
}
// ok...we have requested this send
-// #warning "Maybe remove this file offer now ?"
+ // #warning "Maybe remove this file offer now ?"
DccDescriptor * d = new DccDescriptor(dcc->pConsole);
- d->szNick = dcc->ctcpMsg->pSource->nick();
- d->szUser = dcc->ctcpMsg->pSource->user();
- d->szHost = dcc->ctcpMsg->pSource->host();
+ d->szNick = dcc->ctcpMsg->pSource->nick();
+ d->szUser = dcc->ctcpMsg->pSource->user();
+ d->szHost = dcc->ctcpMsg->pSource->host();
- d->szFileName = dcc->szParam1.ptr();
- d->szFileSize = dcc->szParam4.ptr();
+ d->szFileName = dcc->szParam1.ptr();
+ d->szFileSize = dcc->szParam4.ptr();
//d->bResume = false; // This is actually useless
- d->szLocalFileName = o->absFilePath();
+ d->szLocalFileName = o->absFilePath();
d->szLocalFileSize.setNum(o->fileSize()); // Should we look it up again ?
+ d->bRecvFile = false;
+ d->bNoAcks = bTurboExtension;
- d->bRecvFile = false;
- d->bNoAcks = bTurboExtension;
-
- d->bAutoAccept = true;
+ d->bAutoAccept = true;
d->bIsIncomingAvatar = false;
- d->bIsTdcc = bTurboExtension;
+ d->bIsTdcc = bTurboExtension;
#ifdef COMPILE_SSL_SUPPORT
- d->bIsSSL = bSSLExtension;
+ d->bIsSSL = bSSLExtension;
#endif
d->bOverrideMinimize = false;
// We know everything
- dcc_fill_local_nick_user_host(d,dcc);
+ dcc_fill_local_nick_user_host(d, dcc);
+ d->bDoTimeout = true;
- d->bDoTimeout = true;
+ d->szIp = dcc->szParam2.ptr();
+ d->szPort = dcc->szParam3.ptr();
- d->szIp = dcc->szParam2.ptr();
- d->szPort = dcc->szParam3.ptr();
-
- d->bActive = true;
- dcc_module_set_dcc_type(d,"SEND");
+ d->bActive = true;
+ dcc_module_set_dcc_type(d, "SEND");
d->triggerCreationEvent();
- g_pDccBroker->sendFileExecute(0,d);
+ g_pDccBroker->sendFileExecute(0, d);
return;
-
- } else {
+ }
+ else
+ {
dcc->ctcpMsg->msg->console()->output(KVI_OUT_DCCMSG,
- __tr2qs_ctx("%Q [%Q@%Q] is ready to receive the file \"%s\"","dcc"),
- &(dcc->ctcpMsg->pSource->nick()),
- &(dcc->ctcpMsg->pSource->user()),
- &(dcc->ctcpMsg->pSource->host()),
- dcc->szParam1.ptr());
+ __tr2qs_ctx("%Q [%Q@%Q] is ready to receive the file \"%s\"", "dcc"),
+ &(dcc->ctcpMsg->pSource->nick()),
+ &(dcc->ctcpMsg->pSource->user()),
+ &(dcc->ctcpMsg->pSource->host()),
+ dcc->szParam1.ptr());
dcc->ctcpMsg->msg->console()->output(KVI_OUT_DCCMSG,
- __tr2qs_ctx("The remote client is listening on interface %s and port %s","dcc"),dcc->szParam2.ptr(),dcc->szParam3.ptr());
+ __tr2qs_ctx("The remote client is listening on interface %s and port %s", "dcc"), dcc->szParam2.ptr(), dcc->szParam3.ptr());
KviCString szSwitches = "-c";
- if(bTurboExtension)szSwitches.prepend("-t ");
+ if(bTurboExtension)
+ szSwitches.prepend("-t ");
#ifdef COMPILE_SSL_SUPPORT
- if(bSSLExtension)szSwitches.prepend("-s ");
+ if(bSSLExtension)
+ szSwitches.prepend("-s ");
#endif
dcc->ctcpMsg->msg->console()->output(KVI_OUT_DCCMSG,
- __tr2qs_ctx("Use %c\r![!dbl]dcc.send %s -i=%s -p=%s %Q\r/dcc.send %s -i=%s -p=%s %Q\r%c to send the file (or double-click on the socket)","dcc"),
- KviControlCodes::Bold,
- szSwitches.ptr(),
- dcc->szParam2.ptr(),dcc->szParam3.ptr(),&(dcc->ctcpMsg->pSource->nick()),
- szSwitches.ptr(),
- dcc->szParam2.ptr(),dcc->szParam3.ptr(),&(dcc->ctcpMsg->pSource->nick()),
- KviControlCodes::Bold);
+ __tr2qs_ctx("Use %c\r![!dbl]dcc.send %s -i=%s -p=%s %Q\r/dcc.send %s -i=%s -p=%s %Q\r%c to send the file (or double-click on the socket)", "dcc"),
+ KviControlCodes::Bold,
+ szSwitches.ptr(),
+ dcc->szParam2.ptr(), dcc->szParam3.ptr(), &(dcc->ctcpMsg->pSource->nick()),
+ szSwitches.ptr(),
+ dcc->szParam2.ptr(), dcc->szParam3.ptr(), &(dcc->ctcpMsg->pSource->nick()),
+ KviControlCodes::Bold);
}
}
@@ -719,27 +743,29 @@ static void dccModuleParseDccRecv(KviDccRequest * dcc)
// RSEND
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-static void dccModuleParseDccRSend(KviDccRequest *dcc)
+static void dccModuleParseDccRSend(KviDccRequest * dcc)
{
// DCC RSEND <filename> <filesize>
-//#warning "Ignore files depending on file type ? (MediaType ?)"
+ //#warning "Ignore files depending on file type ? (MediaType ?)"
//
// We have received a DCC RSEND request in the following form
//
// DCC [ST]RSEND <filename> <filesize>
//
dcc->szParam1 = dcc->pConsole->decodeText(dcc->szParam1);
- if(!dcc_module_check_limits(dcc))return;
- if(!dcc_module_check_concurrent_transfers_limit(dcc))return;
+ if(!dcc_module_check_limits(dcc))
+ return;
+ if(!dcc_module_check_concurrent_transfers_limit(dcc))
+ return;
if(!(dcc->szParam2.isUnsignedNum()))
{
if(!dcc->ctcpMsg->msg->haltOutput())
{
dcc->ctcpMsg->msg->console()->output(KVI_OUT_DCCMSG,
- __tr2qs_ctx("The above request is broken: the fourth parameter should be the file size but doesn't appear to be an unsigned number; trying to continue","dcc"),dcc->szParam2.ptr());
+ __tr2qs_ctx("The above request is broken: the fourth parameter should be the file size but doesn't appear to be an unsigned number; trying to continue", "dcc"), dcc->szParam2.ptr());
}
- dcc->szParam2 = __tr_ctx("<unknown size>","dcc");
+ dcc->szParam2 = __tr_ctx("<unknown size>", "dcc");
}
if(dcc->szParam1.contains('/'))
@@ -747,7 +773,7 @@ static void dccModuleParseDccRSend(KviDccRequest *dcc)
if(!dcc->ctcpMsg->msg->haltOutput())
{
dcc->ctcpMsg->msg->console()->output(KVI_OUT_DCCMSG,
- __tr2qs_ctx("The above request is broken: the filename contains path components, stripping the leading path and trying to continue","dcc"),dcc->szParam1.ptr());
+ __tr2qs_ctx("The above request is broken: the filename contains path components, stripping the leading path and trying to continue", "dcc"), dcc->szParam1.ptr());
}
dcc->szParam1.cutToLast('/');
}
@@ -755,13 +781,13 @@ static void dccModuleParseDccRSend(KviDccRequest *dcc)
KviCString szExtensions = dcc->szType;
szExtensions.cutRight(4); // cut off SEND
- bool bTurboExtension = szExtensions.contains('T',false);
+ bool bTurboExtension = szExtensions.contains('T', false);
#ifdef COMPILE_SSL_SUPPORT
- bool bSSLExtension = szExtensions.contains('S',false);
-#else //!COMPILE_SSL_SUPPORT
- if(szExtensions.contains('S',false))
+ bool bSSLExtension = szExtensions.contains('S', false);
+#else //!COMPILE_SSL_SUPPORT
+ if(szExtensions.contains('S', false))
{
- dcc_module_request_error(dcc,__tr2qs_ctx("This executable has been compiled without SSL support, the SSL extension to DCC RSEND is not available","dcc"));
+ dcc_module_request_error(dcc, __tr2qs_ctx("This executable has been compiled without SSL support, the SSL extension to DCC RSEND is not available", "dcc"));
return;
}
#endif //!COMPILE_SSL_SUPPORT
@@ -769,93 +795,96 @@ static void dccModuleParseDccRSend(KviDccRequest *dcc)
//#warning "When behind a firewall, we should reply an error message and avoid setting up the listening connection"
DccDescriptor * d = new DccDescriptor(dcc->pConsole);
- d->szNick = dcc->ctcpMsg->pSource->nick();
- d->szUser = dcc->ctcpMsg->pSource->user();
- d->szHost = dcc->ctcpMsg->pSource->host();
- d->szIp = __tr2qs_ctx("(unknown)","dcc");
- d->szPort = d->szIp;
+ d->szNick = dcc->ctcpMsg->pSource->nick();
+ d->szUser = dcc->ctcpMsg->pSource->user();
+ d->szHost = dcc->ctcpMsg->pSource->host();
+ d->szIp = __tr2qs_ctx("(unknown)", "dcc");
+ d->szPort = d->szIp;
QString tmp;
- if(!dcc_kvs_get_listen_ip_address(0,d->console(),tmp))
+ if(!dcc_kvs_get_listen_ip_address(0, d->console(), tmp))
{
d->console()->output(KVI_OUT_DCCMSG,
- __tr2qs_ctx("No suitable interface to listen on, trying to continue anyway...","dcc"));
+ __tr2qs_ctx("No suitable interface to listen on, trying to continue anyway...", "dcc"));
d->szListenIp = "0.0.0.0";
- } else
- d->szListenIp=QString(tmp);
-
- d->szListenPort = "0";
- dcc_fill_local_nick_user_host(d,dcc);
+ }
+ else
+ d->szListenIp = QString(tmp);
+ d->szListenPort = "0";
+ dcc_fill_local_nick_user_host(d, dcc);
- d->szFileName = dcc->szParam1.ptr();
- d->szFileSize = dcc->szParam2.ptr();
- d->bActive = false; // we have to listen!
- d->bResume = false;
- d->bRecvFile = true; // we have to receive the file!
+ d->szFileName = dcc->szParam1.ptr();
+ d->szFileSize = dcc->szParam2.ptr();
+ d->bActive = false; // we have to listen!
+ d->bResume = false;
+ d->bRecvFile = true; // we have to receive the file!
#ifdef COMPILE_SSL_SUPPORT
- d->bIsSSL = bSSLExtension;
+ d->bIsSSL = bSSLExtension;
#endif
- d->bIsTdcc = bTurboExtension;
- d->bSendRequest = true; // we have to send the [ST]RECV request back
- d->bNoAcks = d->bIsTdcc;
+ d->bIsTdcc = bTurboExtension;
+ d->bSendRequest = true; // we have to send the [ST]RECV request back
+ d->bNoAcks = d->bIsTdcc;
d->bOverrideMinimize = false;
- d->bAutoAccept = KVI_OPTION_BOOL(KviOption_boolAutoAcceptDccSend);
- d->bIsIncomingAvatar = g_pApp->findPendingAvatarChange(dcc->pConsole,d->szNick.toUtf8().data(),d->szFileName.toUtf8().data());
+ d->bAutoAccept = KVI_OPTION_BOOL(KviOption_boolAutoAcceptDccSend);
+ d->bIsIncomingAvatar = g_pApp->findPendingAvatarChange(dcc->pConsole, d->szNick.toUtf8().data(), d->szFileName.toUtf8().data());
if(KVI_OPTION_BOOL(KviOption_boolDccSendFakeAddressByDefault))
{
d->szFakeIp = KVI_OPTION_STRING(KviOption_stringDefaultDccFakeAddress);
- if(d->szFakeIp.isEmpty())KVI_OPTION_BOOL(KviOption_boolDccSendFakeAddressByDefault) = false;
+ if(d->szFakeIp.isEmpty())
+ KVI_OPTION_BOOL(KviOption_boolDccSendFakeAddressByDefault) = false;
}
- if(KVI_OPTION_BOOL(KviOption_boolAutoAcceptIncomingAvatars))d->bAutoAccept = d->bAutoAccept || d->bIsIncomingAvatar;
+ if(KVI_OPTION_BOOL(KviOption_boolAutoAcceptIncomingAvatars))
+ d->bAutoAccept = d->bAutoAccept || d->bIsIncomingAvatar;
- dcc_module_set_dcc_type(d,"RECV");
+ dcc_module_set_dcc_type(d, "RECV");
d->triggerCreationEvent();
g_pDccBroker->recvFileManage(d);
}
-
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// GET
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-static void dccModuleParseDccGet(KviDccRequest *dcc)
+static void dccModuleParseDccGet(KviDccRequest * dcc)
{
// DCC [TS]GET <filename> [filesize]
// -> DCC [TS]SEND <filename> <ipaddr> <port> <filesize>
// ...
- dcc->szParam1=dcc->pConsole->decodeText(dcc->szParam1);
+ dcc->szParam1 = dcc->pConsole->decodeText(dcc->szParam1);
bool bOk;
unsigned int uSize = dcc->szParam2.toUInt(&bOk);
- if(!bOk)uSize = 0;
+ if(!bOk)
+ uSize = 0;
- if(!dcc_module_check_limits(dcc))return;
- if(!dcc_module_check_concurrent_transfers_limit(dcc))return;
+ if(!dcc_module_check_limits(dcc))
+ return;
+ if(!dcc_module_check_concurrent_transfers_limit(dcc))
+ return;
KviCString szExtensions = dcc->szType;
szExtensions.cutRight(3); // cut off GET
- bool bTurboExtension = szExtensions.contains('T',false);
+ bool bTurboExtension = szExtensions.contains('T', false);
#ifdef COMPILE_SSL_SUPPORT
- bool bSSLExtension = szExtensions.contains('S',false);
-#else //!COMPILE_SSL_SUPPORT
- if(szExtensions.contains('S',false))
+ bool bSSLExtension = szExtensions.contains('S', false);
+#else //!COMPILE_SSL_SUPPORT
+ if(szExtensions.contains('S', false))
{
- dcc_module_request_error(dcc,__tr2qs_ctx("This executable has been compiled without SSL support, the SSL extension to DCC GET is not available","dcc"));
+ dcc_module_request_error(dcc, __tr2qs_ctx("This executable has been compiled without SSL support, the SSL extension to DCC GET is not available", "dcc"));
return;
}
#endif //!COMPILE_SSL_SUPPORT
- KviSharedFile * o = g_pSharedFilesManager->lookupSharedFile(dcc->szParam1.ptr(),dcc->ctcpMsg->pSource,uSize);
+ KviSharedFile * o = g_pSharedFilesManager->lookupSharedFile(dcc->szParam1.ptr(), dcc->ctcpMsg->pSource, uSize);
if(!o)
{
if(!dcc->ctcpMsg->msg->haltOutput())
{
- QString szError = QString(__tr2qs_ctx("No file offer named '%1' (with size %2) available for %3 [%4@%5]","dcc")).arg(dcc->szParam1.ptr()).arg(uSize > 0 ? dcc->szParam2.ptr() : __tr_ctx("\"any\"","dcc")).arg(dcc->ctcpMsg->pSource->nick(),dcc->ctcpMsg->pSource->user(),dcc->ctcpMsg->pSource->host());
- dcc_module_request_error(dcc,szError);
+ QString szError = QString(__tr2qs_ctx("No file offer named '%1' (with size %2) available for %3 [%4@%5]", "dcc")).arg(dcc->szParam1.ptr()).arg(uSize > 0 ? dcc->szParam2.ptr() : __tr_ctx("\"any\"", "dcc")).arg(dcc->ctcpMsg->pSource->nick(), dcc->ctcpMsg->pSource->user(), dcc->ctcpMsg->pSource->host());
+ dcc_module_request_error(dcc, szError);
}
return;
}
@@ -872,7 +901,6 @@ static void dccModuleParseDccGet(KviDccRequest *dcc)
KviCString szSubproto("RSEND");
szSubproto.prepend(szExtensions);
-
QString szFileName = QFileInfo(o->absFilePath()).fileName();
if(o->name() != szFileName)
{
@@ -885,91 +913,93 @@ static void dccModuleParseDccGet(KviDccRequest *dcc)
// now add a file offer, so he we will accept it automatically
// 120 secs is a reasonable timeout
QString szMask;
- dcc->ctcpMsg->pSource->mask(szMask,KviIrcMask::NickUserHost);
+ dcc->ctcpMsg->pSource->mask(szMask, KviIrcMask::NickUserHost);
KviSharedFile * pOld = o;
- o = g_pSharedFilesManager->addSharedFile(szFileName,o->absFilePath(),szMask,120);
- if(!o)o = pOld; // give up (FIXME: should we notify that ?)
+ o = g_pSharedFilesManager->addSharedFile(szFileName, o->absFilePath(), szMask, 120);
+ if(!o)
+ o = pOld; // give up (FIXME: should we notify that ?)
}
if(!dcc->ctcpMsg->msg->haltOutput())
{
dcc->ctcpMsg->msg->console()->output(KVI_OUT_DCCMSG,
- __tr2qs_ctx("Accepting file request from %Q [%Q@%Q] for '%s' (real file: %Q), offering DCC %s since we can't accept incoming connections (user option)","dcc"),
- &(dcc->ctcpMsg->pSource->nick()),
- &(dcc->ctcpMsg->pSource->user()),
- &(dcc->ctcpMsg->pSource->host()),dcc->szParam1.ptr(),
- &(o->absFilePath()),szSubproto.ptr());
+ __tr2qs_ctx("Accepting file request from %Q [%Q@%Q] for '%s' (real file: %Q), offering DCC %s since we can't accept incoming connections (user option)", "dcc"),
+ &(dcc->ctcpMsg->pSource->nick()),
+ &(dcc->ctcpMsg->pSource->user()),
+ &(dcc->ctcpMsg->pSource->host()), dcc->szParam1.ptr(),
+ &(o->absFilePath()), szSubproto.ptr());
}
dcc->pConsole->connection()->sendFmtData("PRIVMSG %s :%cDCC %s %s %s%c",
- dcc->pConsole->connection()->encodeText(dcc->ctcpMsg->pSource->nick()).data(),
- 0x01,szSubproto.ptr(),
- dcc->pConsole->connection()->encodeText(dcc->szParam1.ptr()).data(),
- dcc->pConsole->connection()->encodeText(QString::number(o->fileSize())).data(),
- 0x01);
+ dcc->pConsole->connection()->encodeText(dcc->ctcpMsg->pSource->nick()).data(),
+ 0x01, szSubproto.ptr(),
+ dcc->pConsole->connection()->encodeText(dcc->szParam1.ptr()).data(),
+ dcc->pConsole->connection()->encodeText(QString::number(o->fileSize())).data(),
+ 0x01);
return;
}
-
DccDescriptor * d = new DccDescriptor(dcc->pConsole);
- d->szNick = dcc->ctcpMsg->pSource->nick();
- d->szLocalFileName = o->absFilePath();
- d->szUser = dcc->ctcpMsg->pSource->user();
- d->szHost = dcc->ctcpMsg->pSource->host();
- d->bRecvFile = false;
- dcc_fill_local_nick_user_host(d,dcc);
+ d->szNick = dcc->ctcpMsg->pSource->nick();
+ d->szLocalFileName = o->absFilePath();
+ d->szUser = dcc->ctcpMsg->pSource->user();
+ d->szHost = dcc->ctcpMsg->pSource->host();
+ d->bRecvFile = false;
+ dcc_fill_local_nick_user_host(d, dcc);
QString tmp;
- if(!dcc_kvs_get_listen_ip_address(0,d->console(),tmp))
+ if(!dcc_kvs_get_listen_ip_address(0, d->console(), tmp))
{
d->console()->output(KVI_OUT_DCCMSG,
- __tr2qs_ctx("No suitable interface to listen on, trying to continue anyway...","dcc"));
+ __tr2qs_ctx("No suitable interface to listen on, trying to continue anyway...", "dcc"));
d->szListenIp = "0.0.0.0";
- } else
- d->szListenIp=QString(tmp);
+ }
+ else
+ d->szListenIp = QString(tmp);
//#warning "DO STH WITH THIS PORT (HOW TO SPECIFY IT ?)"
- d->szListenPort = "0"; // any port is ok
+ d->szListenPort = "0"; // any port is ok
if(KVI_OPTION_BOOL(KviOption_boolDccSendFakeAddressByDefault))
{
d->szFakeIp = KVI_OPTION_STRING(KviOption_stringDefaultDccFakeAddress);
- if(d->szFakeIp.isEmpty())KVI_OPTION_BOOL(KviOption_boolDccSendFakeAddressByDefault) = false;
+ if(d->szFakeIp.isEmpty())
+ KVI_OPTION_BOOL(KviOption_boolDccSendFakeAddressByDefault) = false;
}
- d->bDoTimeout = true;
- d->szIp = __tr2qs_ctx("(unknown)","dcc");
- d->szPort = d->szIp;
- d->bActive = false;
- d->bSendRequest = true;
- d->bIsTdcc = bTurboExtension;
+ d->bDoTimeout = true;
+ d->szIp = __tr2qs_ctx("(unknown)", "dcc");
+ d->szPort = d->szIp;
+ d->bActive = false;
+ d->bSendRequest = true;
+ d->bIsTdcc = bTurboExtension;
#ifdef COMPILE_SSL_SUPPORT
- d->bIsSSL = bSSLExtension;
+ d->bIsSSL = bSSLExtension;
#endif
- d->bNoAcks = d->bIsTdcc;
+ d->bNoAcks = d->bIsTdcc;
d->bOverrideMinimize = false;
- dcc_module_set_dcc_type(d,"SEND");
+ dcc_module_set_dcc_type(d, "SEND");
if(!dcc->ctcpMsg->msg->haltOutput())
{
dcc->ctcpMsg->msg->console()->output(KVI_OUT_DCCMSG,
- __tr2qs_ctx("Accepting file request from %Q [%Q@%Q] for '%s' (real file: %Q), offering DCC %Q","dcc"),
- &(dcc->ctcpMsg->pSource->nick()),
- &(dcc->ctcpMsg->pSource->user()),
- &(dcc->ctcpMsg->pSource->host()),
- dcc->szParam1.ptr(),
- &(o->absFilePath()),&(d->szType));
+ __tr2qs_ctx("Accepting file request from %Q [%Q@%Q] for '%s' (real file: %Q), offering DCC %Q", "dcc"),
+ &(dcc->ctcpMsg->pSource->nick()),
+ &(dcc->ctcpMsg->pSource->user()),
+ &(dcc->ctcpMsg->pSource->host()),
+ dcc->szParam1.ptr(),
+ &(o->absFilePath()), &(d->szType));
}
d->triggerCreationEvent();
- g_pDccBroker->sendFileExecute(0,d);
+ g_pDccBroker->sendFileExecute(0, d);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// VOICE
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-static void dccModuleParseDccVoice(KviDccRequest *dcc)
+static void dccModuleParseDccVoice(KviDccRequest * dcc)
{
//
// We have received a DCC VOICE request in the following form:
@@ -980,15 +1010,17 @@ static void dccModuleParseDccVoice(KviDccRequest *dcc)
// ... Easy task :)
//
- if(!dcc_module_check_limits(dcc))return;
+ if(!dcc_module_check_limits(dcc))
+ return;
- if(!dcc_module_normalize_target_data(dcc,dcc->szParam2,dcc->szParam3))return;
+ if(!dcc_module_normalize_target_data(dcc, dcc->szParam2, dcc->szParam3))
+ return;
#ifdef COMPILE_DISABLE_DCC_VOICE
if(!dcc->ctcpMsg->msg->haltOutput())
{
dcc->ctcpMsg->msg->console()->output(KVI_OUT_DCCERROR,
- __tr2qs_ctx("The above request can't be accepted: DCC VOICE support not enabled at compilation time ","dcc"));
+ __tr2qs_ctx("The above request can't be accepted: DCC VOICE support not enabled at compilation time ", "dcc"));
return;
}
#endif
@@ -998,7 +1030,7 @@ static void dccModuleParseDccVoice(KviDccRequest *dcc)
if(!dcc->ctcpMsg->msg->haltOutput())
{
dcc->ctcpMsg->msg->console()->output(KVI_OUT_DCCERROR,
- __tr2qs_ctx("The above request can't be accepted: unsupported codec '%s'","dcc"),dcc->szParam1.ptr());
+ __tr2qs_ctx("The above request can't be accepted: unsupported codec '%s'", "dcc"), dcc->szParam1.ptr());
return;
}
}
@@ -1011,39 +1043,36 @@ static void dccModuleParseDccVoice(KviDccRequest *dcc)
if(!dcc->ctcpMsg->msg->haltOutput())
{
dcc->ctcpMsg->msg->console()->output(KVI_OUT_DCCMSG,
- __tr2qs_ctx("The above request appears to be broken: invalid sample-rate '%s', defaulting to 8000","dcc"),dcc->szParam4.ptr());
+ __tr2qs_ctx("The above request appears to be broken: invalid sample-rate '%s', defaulting to 8000", "dcc"), dcc->szParam4.ptr());
}
iSampleRate = 8000;
}
-
DccDescriptor * d = new DccDescriptor(dcc->pConsole);
- d->szNick = dcc->ctcpMsg->pSource->nick();
- d->szUser = dcc->ctcpMsg->pSource->user();
- d->szHost = dcc->ctcpMsg->pSource->host();
- dcc_fill_local_nick_user_host(d,dcc);
+ d->szNick = dcc->ctcpMsg->pSource->nick();
+ d->szUser = dcc->ctcpMsg->pSource->user();
+ d->szHost = dcc->ctcpMsg->pSource->host();
+ dcc_fill_local_nick_user_host(d, dcc);
-
- d->szIp = dcc->szParam2.ptr();
- d->szPort = dcc->szParam3.ptr();
- d->bActive = true; // we have to connect
- d->bIsTdcc = false;
- d->bNoAcks = false; // this has no meaning in voice
- d->szCodec = dcc->szParam1;
- d->iSampleRate = iSampleRate;
+ d->szIp = dcc->szParam2.ptr();
+ d->szPort = dcc->szParam3.ptr();
+ d->bActive = true; // we have to connect
+ d->bIsTdcc = false;
+ d->bNoAcks = false; // this has no meaning in voice
+ d->szCodec = dcc->szParam1;
+ d->iSampleRate = iSampleRate;
d->bOverrideMinimize = false;
- d->bAutoAccept = KVI_OPTION_BOOL(KviOption_boolAutoAcceptDccVoice);
- dcc_module_set_dcc_type(d,"VOICE");
+ d->bAutoAccept = KVI_OPTION_BOOL(KviOption_boolAutoAcceptDccVoice);
+ dcc_module_set_dcc_type(d, "VOICE");
d->triggerCreationEvent();
g_pDccBroker->activeVoiceManage(d);
}
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// VIDEO
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-static void dccModuleParseDccVideo(KviDccRequest *dcc)
+static void dccModuleParseDccVideo(KviDccRequest * dcc)
{
//
// We have received a DCC VIDEO request in the following form:
@@ -1054,15 +1083,17 @@ static void dccModuleParseDccVideo(KviDccRequest *dcc)
// ... Easy task :)
//
- if(!dcc_module_check_limits(dcc))return;
+ if(!dcc_module_check_limits(dcc))
+ return;
- if(!dcc_module_normalize_target_data(dcc,dcc->szParam2,dcc->szParam3))return;
+ if(!dcc_module_normalize_target_data(dcc, dcc->szParam2, dcc->szParam3))
+ return;
#ifdef COMPILE_DISABLE_DCC_VIDEO
if(!dcc->ctcpMsg->msg->haltOutput())
{
dcc->ctcpMsg->msg->console()->output(KVI_OUT_DCCERROR,
- __tr2qs_ctx("The above request can't be accepted: DCC VIDEO support not enabled at compilation time ","dcc"));
+ __tr2qs_ctx("The above request can't be accepted: DCC VIDEO support not enabled at compilation time ", "dcc"));
return;
}
#else
@@ -1072,42 +1103,40 @@ static void dccModuleParseDccVideo(KviDccRequest *dcc)
if(!dcc->ctcpMsg->msg->haltOutput())
{
dcc->ctcpMsg->msg->console()->output(KVI_OUT_DCCERROR,
- __tr2qs_ctx("The above request can't be accepted: unsupported codec '%s'","dcc"),dcc->szParam1.ptr());
+ __tr2qs_ctx("The above request can't be accepted: unsupported codec '%s'", "dcc"), dcc->szParam1.ptr());
return;
}
}
-// bool bOk;
-
-// int iSampleRate = dcc->szParam4.toInt(&bOk);
-// if(!bOk)
-// {
-// if(!dcc->ctcpMsg->msg->haltOutput())
-// {
-// dcc->ctcpMsg->msg->console()->output(KVI_OUT_DCCMSG,
-// __tr2qs_ctx("The above request appears to be broken: Invalid sample-rate '%s', defaulting to 8000","dcc"),dcc->szParam4.ptr());
-// }
-// iSampleRate = 8000;
-// }
+ // bool bOk;
+ // int iSampleRate = dcc->szParam4.toInt(&bOk);
+ // if(!bOk)
+ // {
+ // if(!dcc->ctcpMsg->msg->haltOutput())
+ // {
+ // dcc->ctcpMsg->msg->console()->output(KVI_OUT_DCCMSG,
+ // __tr2qs_ctx("The above request appears to be broken: Invalid sample-rate '%s', defaulting to 8000","dcc"),dcc->szParam4.ptr());
+ // }
+ // iSampleRate = 8000;
+ // }
DccDescriptor * d = new DccDescriptor(dcc->pConsole);
- d->szNick = dcc->ctcpMsg->pSource->nick();
- d->szUser = dcc->ctcpMsg->pSource->user();
- d->szHost = dcc->ctcpMsg->pSource->host();
- dcc_fill_local_nick_user_host(d,dcc);
+ d->szNick = dcc->ctcpMsg->pSource->nick();
+ d->szUser = dcc->ctcpMsg->pSource->user();
+ d->szHost = dcc->ctcpMsg->pSource->host();
+ dcc_fill_local_nick_user_host(d, dcc);
-
- d->szIp = dcc->szParam2.ptr();
- d->szPort = dcc->szParam3.ptr();
- d->bActive = true; // we have to connect
- d->bIsTdcc = false;
- d->bNoAcks = false; // this has no meaning in voice
- d->szCodec = dcc->szParam1;
-// d->iSampleRate = iSampleRate;
+ d->szIp = dcc->szParam2.ptr();
+ d->szPort = dcc->szParam3.ptr();
+ d->bActive = true; // we have to connect
+ d->bIsTdcc = false;
+ d->bNoAcks = false; // this has no meaning in voice
+ d->szCodec = dcc->szParam1;
+ // d->iSampleRate = iSampleRate;
d->bOverrideMinimize = false;
- d->bAutoAccept = KVI_OPTION_BOOL(KviOption_boolAutoAcceptDccVideo);
- dcc_module_set_dcc_type(d,"VIDEO");
+ d->bAutoAccept = KVI_OPTION_BOOL(KviOption_boolAutoAcceptDccVideo);
+ dcc_module_set_dcc_type(d, "VIDEO");
d->triggerCreationEvent();
g_pDccBroker->activeVideoManage(d);
#endif
@@ -1117,7 +1146,7 @@ static void dccModuleParseDccVideo(KviDccRequest *dcc)
// CANVAS
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-static void dccModuleParseDccCanvas(KviDccRequest *dcc)
+static void dccModuleParseDccCanvas(KviDccRequest * dcc)
{
//
// We have received a DCC CANVAS request in the following form:
@@ -1127,9 +1156,11 @@ static void dccModuleParseDccCanvas(KviDccRequest *dcc)
// This means that we're requested to setup an ACTIVE canvas connection
// ... Easy task :)
//
- if(!dcc_module_check_limits(dcc))return;
+ if(!dcc_module_check_limits(dcc))
+ return;
- if(!dcc_module_normalize_target_data(dcc,dcc->szParam2,dcc->szParam3))return;
+ if(!dcc_module_normalize_target_data(dcc, dcc->szParam2, dcc->szParam3))
+ return;
// Actually unused parameter
// if(!(kvi_strEqualCI("canvas",dcc->szParam1.ptr())))
@@ -1142,20 +1173,19 @@ static void dccModuleParseDccCanvas(KviDccRequest *dcc)
// }
#ifdef COMPILE_DCC_CANVAS
DccDescriptor * d = new DccDescriptor(dcc->pConsole);
- d->szNick = dcc->ctcpMsg->pSource->nick();
- d->szUser = dcc->ctcpMsg->pSource->username();
- d->szHost = dcc->ctcpMsg->pSource->host();
- dcc_fill_local_nick_user_host(d,dcc);
-
+ d->szNick = dcc->ctcpMsg->pSource->nick();
+ d->szUser = dcc->ctcpMsg->pSource->username();
+ d->szHost = dcc->ctcpMsg->pSource->host();
+ dcc_fill_local_nick_user_host(d, dcc);
- d->szIp = dcc->szParam2.ptr();
- d->szPort = dcc->szParam3.ptr();
- d->bActive = true; // we have to connect
- d->bIsTdcc = false;
- d->bNoAcks = false; // this has no meaning in canvas
+ d->szIp = dcc->szParam2.ptr();
+ d->szPort = dcc->szParam3.ptr();
+ d->bActive = true; // we have to connect
+ d->bIsTdcc = false;
+ d->bNoAcks = false; // this has no meaning in canvas
d->bOverrideMinimize = false;
- d->bAutoAccept = KVI_OPTION_BOOL(KviOption_boolAutoAcceptDccCanvas);
- dcc_module_set_dcc_type(d,"CANVAS");
+ d->bAutoAccept = KVI_OPTION_BOOL(KviOption_boolAutoAcceptDccCanvas);
+ dcc_module_set_dcc_type(d, "CANVAS");
d->triggerCreationEvent();
g_pDccBroker->activeCanvasManage(d);
#endif
@@ -1176,8 +1206,7 @@ typedef struct _dccParseProcEntry
#define KVI_NUM_KNOWN_DCC_TYPES 28
-static dccParseProcEntry dccParseProcTable[KVI_NUM_KNOWN_DCC_TYPES]=
-{
+static dccParseProcEntry dccParseProcTable[KVI_NUM_KNOWN_DCC_TYPES] = {
// clang-format off
{ "CHAT" , dccModuleParseDccChat },
{ "SCHAT" , dccModuleParseDccChat },
@@ -1210,18 +1239,16 @@ static dccParseProcEntry dccParseProcTable[KVI_NUM_KNOWN_DCC_TYPES]=
// clang-format on
};
-
-
// We want C linkage on this one: we want to be able to dlsym() it with a simple name
// FIXME: Is this portable enough ? Or is better to have a table entry ?
-KVIMODULEEXPORTFUNC void dccModuleCtcpDccParseRoutine(KviDccRequest *dcc)
+KVIMODULEEXPORTFUNC void dccModuleCtcpDccParseRoutine(KviDccRequest * dcc)
{
dcc->szType.toUpper();
- for(int i=0;i<KVI_NUM_KNOWN_DCC_TYPES;i++)
+ for(int i = 0; i < KVI_NUM_KNOWN_DCC_TYPES; i++)
{
- if(kvi_strEqualCS(dccParseProcTable[i].type,dcc->szType.ptr()))
+ if(kvi_strEqualCS(dccParseProcTable[i].type, dcc->szType.ptr()))
{
(dccParseProcTable[i].proc)(dcc);
return;
@@ -1230,7 +1257,7 @@ KVIMODULEEXPORTFUNC void dccModuleCtcpDccParseRoutine(KviDccRequest *dcc)
// ops...we don't know this dcc type
if(!dcc->ctcpMsg->msg->haltOutput())
{
- QString szError = QString(__tr2qs_ctx("Unknown DCC type '%1'","dcc")).arg(dcc->szType.ptr());
- dcc_module_request_error(dcc,szError);
+ QString szError = QString(__tr2qs_ctx("Unknown DCC type '%1'", "dcc")).arg(dcc->szType.ptr());
+ dcc_module_request_error(dcc, szError);
}
}