void TabSupervisor::retranslateUi() { QList<Tab *> tabs; tabs.append(tabServer); tabs.append(tabReplays); tabs.append(tabDeckStorage); tabs.append(tabAdmin); tabs.append(tabUserLists); tabs.append(tabLog); QMapIterator<int, TabRoom *> roomIterator(roomTabs); while (roomIterator.hasNext()) tabs.append(roomIterator.next().value()); QMapIterator<int, TabGame *> gameIterator(gameTabs); while (gameIterator.hasNext()) tabs.append(gameIterator.next().value()); QListIterator<TabGame *> replayIterator(replayTabs); while (replayIterator.hasNext()) tabs.append(replayIterator.next()); QListIterator<TabDeckEditor *> deckEditorIterator(deckEditorTabs); while (deckEditorIterator.hasNext()) tabs.append(deckEditorIterator.next()); QMapIterator<QString, TabMessage *> messageIterator(messageTabs); while (messageIterator.hasNext()) tabs.append(messageIterator.next().value()); for (int i = 0; i < tabs.size(); ++i) if (tabs[i]) { int idx = indexOf(tabs[i]); QString tabText = tabs[i]->getTabText(); setTabText(idx, sanitizeTabName(tabText)); setTabToolTip(idx, sanitizeHtml(tabText)); tabs[i]->retranslateUi(); } }
void TabMessage::processUserLeft(const QString &name) { if (userName == name) { textEdit->append("<font color=\"blue\">" + tr("%1 has left the server.").arg(sanitizeHtml(name)) + "</font>"); sayEdit->setEnabled(false); } }
int TabSupervisor::myAddTab(Tab *tab) { connect(tab, SIGNAL(userEvent(bool)), this, SLOT(tabUserEvent(bool))); connect(tab, SIGNAL(tabTextChanged(Tab *, QString)), this, SLOT(updateTabText(Tab *, QString))); QString tabText = tab->getTabText(); int idx = addTab(tab, sanitizeTabName(tabText)); setTabToolTip(idx, sanitizeHtml(tabText)); return idx; }
/* * Initialize from an incoming libPurple callback parameters * * payload form: (Sprint) * { "serviceName": "gmail", "username": "******", "usernameFrom": "*****@*****.**", "messageText": "<body>test reply to phone<\/body>" } * { "serviceName": "aol", "username": "******", "usernameFrom": "palm", "messageText": "test incoming message" } * * */ MojErr IMMessage::initFromCallback(const char* serviceName, const char* username, const char* usernameFrom, const char* message) { MojErr err; // unescape, strip html // #/tmp/testsanitize "<a>foo</a>" // sanitized: <a>foo</a> // unsanitized: <a>foo</a> // removed: foo // first unescape since gtalk sends everything escaped // message is const char* - need a char* version char *unescapedMessage = unsanitizeHtml((char*)message); // now remove offending html // char * sanitizeHtml(const char *input, char **except, bool remove); // remove set to true if you want the the tags to actually be removed vs just "escaped". // except is an array of char* containing tags to ignore when sanitizing. The // last element must be a null. You need to include both beginning and ending // tag if you want both removed (i.e. "b", "/b", "i", "/i") char *sanitizedMessage = sanitizeHtml(unescapedMessage, (char**)IMMessage::trustedTags, true); // can't keep this log... //MojLogInfo(IMServiceApp::s_log, _T("original message: %s, unescaped message: %s, sanitized message: %s"), message, unescapedMessage, sanitizedMessage); err = msgText.assign(sanitizedMessage); MojErrCheck(err); // cleanup free(unescapedMessage); free(sanitizedMessage); // remove blanks and convert to lowercase // for AOL, this is screen name with no "@aol.com"... MojString formattedUserName; err = formattedUserName.assign(usernameFrom); MojErrCheck(err); err = unformatFromAddress(formattedUserName, fromAddress); MojErrCheck(err); err = toAddress.assign(username); MojErrCheck(err); err = msgType.assign(serviceName); MojErrCheck(err); // set time stamp to current time - seconds since 1/1/1970 // for some reason multiplying a time_t by 1000 doesn't work - you have to convert to a long first... //deviceTimestamp = time (NULL) * 1000; MojInt64 sec = time (NULL); deviceTimestamp = sec * 1000; // server timestamp is new Date().getTime() serverTimestamp = sec * 1000; return MojErrNone; }
void TabMessage::processMessageEvent(Event_Message *event) { textEdit->append(QString("<font color=\"") + (event->getSenderName() == userName ? "#0000fe" : "red") + QString("\">%1:</font> %2").arg(sanitizeHtml(event->getSenderName())).arg(sanitizeHtml(event->getText()))); emit userEvent(); }