refactor richtext to mirc code conversion to fix some bugs
[quassel.git] / src / uisupport / multilineedit.h
index da44304..f10572b 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-09 by the Quassel Project                          *
+ *   Copyright (C) 2005-2010 by the Quassel Project                        *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -66,6 +66,10 @@ public:
   virtual QSize sizeHint() const;
   virtual QSize minimumSizeHint() const;
 
+  inline QString mircColorFromRGB(QString rgbColor) const { return _mircColorMap.key(rgbColor); }
+  inline QString rgbColorFromMirc(QString mircColor) const { return _mircColorMap[mircColor]; }
+  inline QMap<QString, QString>  mircColorMap() const { return _mircColorMap; }
+
 public slots:
   void setMode(Mode mode);
   void setMinHeight(int numLines);
@@ -95,8 +99,9 @@ private slots:
   void historyMoveForward();
   void historyMoveBack();
 
-  QString convertHtmlToMircCodes(const QString &text);
+  QString convertRichtextToMircCodes();
   QString convertMircCodesToHtml(const QString &text);
+  bool mircCodesChanged(QTextCursor &cursor, QTextCursor &peekcursor);
 
 private:
   QStringList history;
@@ -112,7 +117,7 @@ private:
   QSize _sizeHint;
   qreal _lastDocumentHeight;
 
-  QHash<QString, QString> mircColorMap;
+  QMap<QString, QString> _mircColorMap;
 
   void reset();
   void showHistoryEntry();