void lmcMessageLog::updateFileMessage(FileMode mode, FileOp op, QString fileId) { QString szMessage = getFileStatusMessage(mode, op); QWebFrame* frame = page()->mainFrame(); QWebElement document = frame->documentElement(); QWebElement body = document.findFirst("body"); QString selector = "span#"; QString tempId = (mode == FM_Send) ? "send" : "receive"; tempId.append(fileId); selector.append(tempId); QWebElement span = body.findFirst(selector); span.setPlainText(szMessage); // update the entry in message log for(int index = 0; index < messageLog.count(); index++) { SingleMessage msg = messageLog.at(index); if(tempId.compare(msg.id) == 0) { XmlMessage xmlMessage = msg.message; xmlMessage.removeData(XN_FILEOP); xmlMessage.addData(XN_FILEOP, FileOpNames[op]); msg.message = xmlMessage; break; } } }
// This function is called to display a file request message on chat box void lmcMessageLog::appendFileMessage(MessageType type, QString* lpszUserName, XmlMessage* pMessage, bool bReload) { QString htmlMsg; QString caption; QString fileId = pMessage->data(XN_FILEID); QString tempId; QString szStatus; htmlMsg = themeData.reqMsg; htmlMsg.replace("%iconpath%", "qrc"IDR_FILEMSG); FileOp fileOp = (FileOp) Helper::indexOf(FileOpNames, FO_Max, pMessage->data(XN_FILEOP)); if(type == MT_LocalFile) { tempId = "send" + fileId; caption = tr("Sending '%1' to %2."); htmlMsg.replace("%sender%", caption.arg(pMessage->data(XN_FILENAME), *lpszUserName)); htmlMsg.replace("%message%", ""); htmlMsg.replace("%fileid%", tempId); switch(fileOp) { case FO_Request: sendFileMap.insert(fileId, *pMessage); pMessage->addData(XN_TEMPID, tempId); htmlMsg.replace("%links%", "<a href='lmc://filecancel/" + fileId + "'>" + tr("Cancel") + "</a>"); break; case FO_Cancel: case FO_Accept: case FO_Decline: szStatus = getFileStatusMessage(FM_Send, fileOp); htmlMsg.replace("%links%", szStatus); break; default: return; break; } } else if(type == MT_File) { tempId = "receive" + fileId; if(autoFile) { caption = tr("%1 is sending you a file:"); htmlMsg.replace("%sender%", caption.arg(*lpszUserName)); htmlMsg.replace("%message%", pMessage->data(XN_FILENAME) + " (" + Helper::formatSize(pMessage->data(XN_FILESIZE).toLongLong()) + ")"); htmlMsg.replace("%fileid%", ""); } else { caption = tr("%1 sends you a file:"); htmlMsg.replace("%sender%", caption.arg(*lpszUserName)); htmlMsg.replace("%message%", pMessage->data(XN_FILENAME) + " (" + Helper::formatSize(pMessage->data(XN_FILESIZE).toLongLong()) + ")"); htmlMsg.replace("%fileid%", tempId); } switch(fileOp) { case FO_Request: receiveFileMap.insert(fileId, *pMessage); pMessage->addData(XN_TEMPID, tempId); if(autoFile) { htmlMsg.replace("%links%", tr("File has been accepted automatically.")); } else { htmlMsg.replace("%links%", "<a href='lmc://fileaccept/" + fileId + "'>" + tr("Accept") + "</a> " + "<a href='lmc://filedecline/" + fileId + "'>" + tr("Decline") + "</a>"); } if(autoFile && !bReload) fileOperation(fileId, "fileaccept"); break; case FO_Cancel: case FO_Accept: case FO_Decline: szStatus = getFileStatusMessage(FM_Receive, fileOp); htmlMsg.replace("%links%", szStatus); break; default: return; break; } } QWebFrame* frame = page()->mainFrame(); QWebElement document = frame->documentElement(); QWebElement body = document.findFirst("body"); body.appendInside(htmlMsg); }
// This function is called to display a file request message on chat box void wavrMessageLog::appendFileMessage(MessageType type, QString* lpszUserName, wavrXmlMessage* pMessage, bool bReload) { Q_UNUSED(type); QString htmlMsg; QString caption; QString fileId = pMessage->data(XML_FILEID); QString tempId; QString szStatus; QString fileType; switch(type) { case MT_File: fileType = "file"; break; case MT_Folder: fileType = "folder"; break; default: return; break; } htmlMsg = themeData.reqMsg; htmlMsg.replace("%iconpath%", "qrc"IDR_FILEMSG); FileOp fileOp = (FileOp)wavrHelper::indexOf(FileOpNames, FO_Max, pMessage->data(XML_FILEOP)); FileMode fileMode = (FileMode)wavrHelper::indexOf(FileModeNames, FM_Max, pMessage->data(XML_MODE)); if(fileMode == FM_Send) { qDebug() << "inside fmsend message"; tempId = "send" + fileId; caption = tr("Sending '%1' to %2."); htmlMsg.replace("%sender%", caption.arg(pMessage->data(XML_FILENAME), *lpszUserName)); htmlMsg.replace("%message%", ""); htmlMsg.replace("%fileid%", tempId); switch(fileOp) { case FO_Request: sendFileMap.insert(fileId, *pMessage); pMessage->addData(XML_TEMPID, tempId); htmlMsg.replace("%links%", "<a href='wavr://" + fileType + "/" + cancelOp + "/" + fileId + "'>" + tr("Cancel") + "</a>"); break; case FO_Cancel: case FO_Accept: case FO_Decline: case FO_Error: case FO_Abort: case FO_Complete: szStatus = getFileStatusMessage(FM_Send, fileOp); htmlMsg.replace("%links%", szStatus); break; default: return; break; } } else { tempId = "receive" + fileId; if(autoFile) { if(type == MT_File) caption = tr("%1 is sending you a file:"); else caption = tr("%1 is sending you a folder:"); htmlMsg.replace("%sender%", caption.arg(*lpszUserName)); htmlMsg.replace("%message%", pMessage->data(XML_FILENAME) + " (" + wavrHelper::formatSize(pMessage->data(XML_FILESIZE).toLongLong()) + ")"); htmlMsg.replace("%fileid%", ""); } else { if(type == MT_File) caption = tr("%1 sends you a file:"); else caption = tr("%1 sends you a folder:"); htmlMsg.replace("%sender%", caption.arg(*lpszUserName)); htmlMsg.replace("%message%", pMessage->data(XML_FILENAME) + " (" + wavrHelper::formatSize(pMessage->data(XML_FILESIZE).toLongLong()) + ")"); htmlMsg.replace("%fileid%", tempId); } switch(fileOp) { case FO_Request: receiveFileMap.insert(fileId, *pMessage); pMessage->addData(XML_TEMPID, tempId); if(autoFile) { htmlMsg.replace("%links%", tr("Accepted")); if(!bReload) fileOperation(fileId, acceptOp, fileType); } else { htmlMsg.replace("%links%", "<a href='wavr://" + fileType + "/" + acceptOp + "/" + fileId + "'>" + tr("Accept") + "</a> " + "<a href='wavr://" + fileType + "/" + declineOp + "/" + fileId + "'>" + tr("Decline") + "</a>"); } break; case FO_Cancel: case FO_Accept: case FO_Decline: case FO_Error: case FO_Abort: case FO_Complete: szStatus = getFileStatusMessage(FM_Receive, fileOp); htmlMsg.replace("%links%", szStatus); break; default: return; break; } } QWebFrame* frame = page()->mainFrame(); QWebElement document = frame->documentElement(); QWebElement body = document.findFirst("body"); body.appendInside(htmlMsg); }