Пример #1
0
CTrueTypeFont::CTrueTypeFont(const JsonNode & fontConfig):
    data(loadData(fontConfig)),
    font(loadFont(fontConfig), TTF_CloseFont),
    blended(fontConfig["blend"].Bool())
{
    assert(font);

    TTF_SetFontStyle(font.get(), getFontStyle(fontConfig));
}
Пример #2
0
void lmcMessageLog::appendPublicMessage(QString* lpszUserId, QString* lpszUserName, QString* lpszMessage,
										QDateTime *pTime, QFont *pFont, QColor *pColor) {
	QString html = QString::null;
	bool localUser = (lpszUserId->compare(localId) == 0);

	decodeMessage(lpszMessage);

	QString fontStyle = getFontStyle(pFont, pColor, localUser);

	if(lpszUserId->compare(lastId) != 0) {
		outStyle = !outStyle;
		html = outStyle ? themeData.outMsg : themeData.inMsg;

		//	get the avatar image for this user from the cache folder
		QString filePath = participantAvatars.value(*lpszUserId);
		//	if image not found, use the default avatar image for this user
		QString iconPath = QFile::exists(filePath) ? QUrl::fromLocalFile(filePath).toString() : "qrc"AVT_DEFAULT;

		html.replace("%iconpath%", iconPath);
		html.replace("%sender%", *lpszUserName);
		html.replace("%time%", getTimeString(pTime));
		html.replace("%style%", fontStyle);
		html.replace("%message%", *lpszMessage);

		QWebFrame* frame = page()->mainFrame();
		QWebElement document = frame->documentElement();
		QWebElement body = document.findFirst("body");
		body.appendInside(html);
	} else {
		html = outStyle ? themeData.outNextMsg : themeData.inNextMsg;
		html.replace("%time%", getTimeString(pTime));
		html.replace("%style%", fontStyle);
		html.replace("%message%", *lpszMessage);

		QWebFrame* frame = page()->mainFrame();
		QWebElement document = frame->documentElement();
		QWebElement body = document.findFirst("body");
		QWebElement last = body.lastChild();
		QWebElement insert = last.findFirst("div#insert");
		insert.replace(html);
	}

	hasData = true;
}
Пример #3
0
void RGLView::setFontUseFreeType(bool useFreeType)
{
  setDefaultFont(getFontFamily(), getFontStyle(), getFontCex(), useFreeType);
}
Пример #4
0
void RGLView::setFontCex(double cex)
{
  setDefaultFont(getFontFamily(), getFontStyle(), cex, getFontUseFreeType());
}
Пример #5
0
void RGLView::setFontFamily(const char *family)
{
  setDefaultFont(family, getFontStyle(), getFontCex(), getFontUseFreeType());
}
Пример #6
0
void lmcMessageLog::appendMessageLog(
        MessageType type,
        QString* lpszUserId,
        QString* lpszUserName,
        XmlMessage* pMessage,
        bool bReload)
{

	if(!pMessage && type != MT_Error)
		return;

	QString message;
	QString html;
	QString caption;
	QDateTime time;
	QFont font;
	QColor color;
	QString fontStyle;
	QString id = QString::null;
	bool addToLog = true;

	removeMessageLog("_lmc_statediv");

	switch(type) {
	case MT_Message:
		time.setMSecsSinceEpoch(pMessage->header(XN_TIME).toLongLong());
		message = pMessage->data(XN_MESSAGE);
		font.fromString(pMessage->data(XN_FONT));
		color.setNamedColor(pMessage->data(XN_COLOR));
		appendMessage(lpszUserId, lpszUserName, &message, &time, &font, &color);
		lastId = *lpszUserId;
		break;
	case MT_PublicMessage:
	case MT_GroupMessage:
		time.setMSecsSinceEpoch(pMessage->header(XN_TIME).toLongLong());
		message = pMessage->data(XN_MESSAGE);
		font.fromString(pMessage->data(XN_FONT));
		color.setNamedColor(pMessage->data(XN_COLOR));
		appendPublicMessage(lpszUserId, lpszUserName, &message, &time, &font, &color);
		lastId = *lpszUserId;
		break;
	case MT_Broadcast:
		time.setMSecsSinceEpoch(pMessage->header(XN_TIME).toLongLong());
		message = pMessage->data(XN_BROADCAST);
		appendBroadcast(lpszUserId, lpszUserName, &message, &time);
		lastId  = QString::null;
		break;
	case MT_ChatState:
		message = pMessage->data(XN_CHATSTATE);
        caption = getChatStateMessage((ChatState) Helper::indexOf(ChatStateNames, CS_Max, message));
		if(!caption.isNull()) {
			html = themeData.stateMsg;
			html.replace("%iconpath%", "qrc"IDR_BLANK);
			html.replace("%sender%", caption.arg(*lpszUserName));
			html.replace("%message%", "");
			appendMessageLog(&html);
		}
		addToLog = false;
		break;
	case MT_Failed:
		message = pMessage->data(XN_MESSAGE);
		font.fromString(pMessage->data(XN_FONT));
		color.setNamedColor(pMessage->data(XN_COLOR));
		html = themeData.sysMsg;
		caption = tr("This message was not delivered to %1:");
		fontStyle = getFontStyle(&font, &color, true);
		decodeMessage(&message);
		html.replace("%iconpath%", "qrc"IDR_CRITICALMSG);
		html.replace("%sender%", caption.arg(*lpszUserName));
		html.replace("%style%", fontStyle);
		html.replace("%message%", message);
		appendMessageLog(&html);
		lastId  = QString::null;
		break;
	case MT_Error:
		html = themeData.sysMsg;
		html.replace("%iconpath%", "qrc"IDR_CRITICALMSG);
		html.replace("%sender%", tr("Your message was not sent."));
		html.replace("%message%", "");
		appendMessageLog(&html);
		lastId  = QString::null;
		addToLog = false;
		break;
	case MT_File:
	case MT_LocalFile:
		appendFileMessage(type, lpszUserName, pMessage, bReload);
		id = pMessage->data(XN_TEMPID);
		pMessage->removeData(XN_TEMPID);
		lastId = QString::null;
		break;
	case MT_Join:
	case MT_Leave:
		message = pMessage->data(XN_GROUPMSGOP);
        caption = getChatRoomMessage((GroupMsgOp) Helper::indexOf(GroupMsgOpNames, GMO_Max, message));
		if(!caption.isNull()) {
			html = themeData.sysMsg;
			html.replace("%iconpath%", "qrc"IDR_BLANK);
			html.replace("%sender%", caption.arg(*lpszUserName));
			html.replace("%message%", "");
			appendMessageLog(&html);
		}
		lastId = QString::null;
	default:
		break;
	}

	if(!bReload && addToLog && pMessage) {
		XmlMessage xmlMessage = pMessage->clone();
		QString userId = lpszUserId ? *lpszUserId : QString::null;
		QString userName = lpszUserName ? *lpszUserName : QString::null;
		messageLog.append(SingleMessage(type, userId, userName, xmlMessage, id));
	}
}