Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

ircoutput.cpp

Go to the documentation of this file.
00001 #include <qtopia/stringutil.h>
00002 
00003 #include "ircoutput.h"
00004 
00005 
00006 IRCOutputEscapeSecuences IRCOutput::m_escapeSecuences[] = {
00007     { '\002', "<b>", "</b>"},
00008     { '\037', "<u>", "</u>"},
00009     { 0, 0, 0},
00010 };
00011 
00012 IRCOutput::IRCOutput(IRCOutputType type, QString message) {
00013     m_type = type;
00014     /* Filter color escape sequences, since they aren't implemented yet */
00015     m_message = message.replace(QRegExp("\003[1-9]*,*[1-9]*"), "");
00016 }
00017 
00018 IRCOutputType IRCOutput::type() {
00019     return m_type;
00020 }
00021 
00022 QString IRCOutput::message() {
00023     return m_message;
00024 }
00025 
00026 void IRCOutput::setType(IRCOutputType type) {
00027     m_type = type;
00028 }
00029 
00030 void IRCOutput::setMessage(const QString &message) {
00031     m_message = message;
00032 }
00033 
00034 QString IRCOutput::htmlMessage() {
00035     return toHTML(m_message);
00036 }
00037 
00038 QString IRCOutput::toHTML(const QString &message) {
00039     QString htmlMessage = Qtopia::escapeString(message);
00040     
00041     for(int i=0; m_escapeSecuences[i].escape != 0;++i) {
00042         int pos = 0;
00043         bool isOpen = false;
00044         while( (pos = htmlMessage.find(m_escapeSecuences[i].escape, pos)) != -1) {
00045             htmlMessage.remove(pos, 1);
00046             if(isOpen)
00047                 htmlMessage.insert(pos, m_escapeSecuences[i].close);
00048             else
00049                 htmlMessage.insert(pos, m_escapeSecuences[i].open);
00050         
00051             isOpen = !isOpen;
00052         }
00053         if(isOpen)
00054             htmlMessage.append(m_escapeSecuences[i].close);
00055     }
00056     
00057     htmlMessage = htmlMessage.replace(QRegExp("\n"), "<br>");
00058     return htmlMessage;
00059 }
00060 
00061 void IRCOutput::addParam(void *data) {
00062     m_parameters.append(data);
00063 }
00064 
00065 void *IRCOutput::getParam(int index) {
00066     return m_parameters.at(index);
00067 }
00068 

Generated on Sat Nov 5 16:17:41 2005 for OPIE by  doxygen 1.4.2