summaryrefslogtreecommitdiffstats
path: root/ksirc/ksparser.h
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commitbcb704366cb5e333a626c18c308c7e0448a8e69f (patch)
treef0d6ab7d78ecdd9207cf46536376b44b91a1ca71 /ksirc/ksparser.h
downloadtdenetwork-bcb704366cb5e333a626c18c308c7e0448a8e69f.tar.gz
tdenetwork-bcb704366cb5e333a626c18c308c7e0448a8e69f.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdenetwork@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'ksirc/ksparser.h')
-rw-r--r--ksirc/ksparser.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/ksirc/ksparser.h b/ksirc/ksparser.h
new file mode 100644
index 00000000..e7d2647f
--- /dev/null
+++ b/ksirc/ksparser.h
@@ -0,0 +1,43 @@
+/* This file is part of the KDE project
+ Copyright (C) 2001 Simon Hausmann <hausmann@kde.org>
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the Artistic License.
+*/
+#ifndef __ksparser_h__
+#define __ksparser_h__
+
+#include <qstring.h>
+#include <qmap.h>
+#include <qcolor.h>
+#include <qvaluestack.h>
+
+// Helper class to parse IRC colour/style codes and convert them to
+// richtext. The parser maintains an internal stack of the styles
+// applied because the IRC message could contain sequences as
+// (bold)Hello (red)World(endbold)! (blue)blue text
+// which needs to be converted to
+// <b>Hello </b><font color="red"><b>World</b>! </font><font color="blue">blue text</font>
+// to get correctly nested tags. (malte)
+class KSParser
+{
+public:
+ QString parse(const QString &);
+ bool beeped() const { return m_beeped; }
+
+private:
+ QString pushTag(const QString &, const QString & = QString::null);
+ QString popTag(const QString &);
+ QString toggleTag(const QString &, const QString & = QString::null);
+ QString popAll();
+ QColor ircColor(int);
+
+private:
+ QValueStack<QString> m_tags;
+ QMap<QString, QString> m_attributes;
+ bool m_beeped;
+};
+
+#endif
+
+