コード例 #1
0
ファイル: messagelog.cpp プロジェクト: j2doll/lmc-clone
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;
		}
	}
}
コード例 #2
0
ファイル: messagelog.cpp プロジェクト: j2doll/lmc-clone
// 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>&nbsp;&nbsp;" +
					"<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);
}
コード例 #3
0
ファイル: messagelog.cpp プロジェクト: parikshitag/wavr
// 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>&nbsp;&nbsp;" +
                    "<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);
}