Index: trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 72166)
+++ trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 72167)
@@ -1012,5 +1012,4 @@
 	src/medium/UIMediumDetailsWidget.cpp \
 	src/medium/UIMediumManager.cpp \
-	src/objects/UIRichTextString.cpp \
 	src/runtime/UIConsoleEventHandler.cpp \
 	src/runtime/UIFrameBuffer.cpp \
@@ -1235,4 +1234,5 @@
 	src/medium/UIMediumDefs.cpp \
 	src/medium/UIMediumEnumerator.cpp \
+	src/objects/UIRichTextString.cpp \
 	src/runtime/UIActionPoolRuntime.cpp \
 	src/selector/UIActionPoolSelector.cpp \
@@ -1412,4 +1412,5 @@
 	src/medium/UIMediumDefs.cpp \
 	src/medium/UIMediumEnumerator.cpp \
+	src/objects/UIRichTextString.cpp \
 	src/runtime/UIActionPoolRuntime.cpp \
 	src/selector/UIActionPoolSelector.cpp \
Index: trunk/src/VBox/Frontends/VirtualBox/src/objects/UIRichTextString.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/objects/UIRichTextString.cpp	(revision 72166)
+++ trunk/src/VBox/Frontends/VirtualBox/src/objects/UIRichTextString.cpp	(revision 72167)
@@ -5,5 +5,5 @@
 
 /*
- * Copyright (C) 2015-2017 Oracle Corporation
+ * Copyright (C) 2015-2018 Oracle Corporation
  *
  * This file is part of VirtualBox Open Source Edition (OSE), as
@@ -32,10 +32,11 @@
 #endif /* !VBOX_WITH_PRECOMPILED_HEADERS */
 
-const QString UIRichTextString::m_sstrAny = QString("[\\s\\S]*");
-const QMap<UIRichTextString::Type, QString> UIRichTextString::m_sPatterns = populatePatterns();
-const QMap<UIRichTextString::Type, bool> UIRichTextString::m_sPatternHasMeta = populatePatternHasMeta();
-
-UIRichTextString::UIRichTextString(Type type /* = Type_None */)
-    : m_type(type)
+
+const QString UIRichTextString::s_strAny = QString("[\\s\\S]*");
+const QMap<UIRichTextString::Type, QString> UIRichTextString::s_patterns = populatePatterns();
+const QMap<UIRichTextString::Type, bool> UIRichTextString::s_doPatternHasMeta = populatePatternHasMeta();
+
+UIRichTextString::UIRichTextString(Type enmType /* = Type_None */)
+    : m_enmType(enmType)
     , m_strString(QString())
     , m_strStringMeta(QString())
@@ -43,6 +44,6 @@
 }
 
-UIRichTextString::UIRichTextString(const QString &strString, Type type /* = Type_None */, const QString &strStringMeta /* = QString() */)
-    : m_type(type)
+UIRichTextString::UIRichTextString(const QString &strString, Type enmType /* = Type_None */, const QString &strStringMeta /* = QString() */)
+    : m_enmType(enmType)
     , m_strString(strString)
     , m_strStringMeta(strStringMeta)
@@ -82,5 +83,5 @@
     range.start = iShift;
     range.length = toString().size();
-    range.format = textCharFormat(m_type);
+    range.format = textCharFormat(m_enmType);
     /* Enable anchor if present: */
     if (!m_strAnchor.isNull())
@@ -120,8 +121,8 @@
 
     /* Parse the passed QString with all the known patterns: */
-    foreach (const Type &enmPattern, m_sPatterns.keys())
+    foreach (const Type &enmPattern, s_patterns.keys())
     {
         /* Get the current pattern: */
-        const QString strPattern = m_sPatterns.value(enmPattern);
+        const QString strPattern = s_patterns.value(enmPattern);
 
         /* Recursively parse the string: */
@@ -148,5 +149,5 @@
                     m_strString.remove(iPosition, regExp.cap(0).size());
                     /* And paste that string as our child: */
-                    const bool fPatterHasMeta = m_sPatternHasMeta.value(enmPattern);
+                    const bool fPatterHasMeta = s_doPatternHasMeta.value(enmPattern);
                     const QString strSubString = !fPatterHasMeta ? regExp.cap(1) : regExp.cap(2);
                     const QString strSubMeta   = !fPatterHasMeta ? QString()     : regExp.cap(1);
@@ -183,9 +184,9 @@
                                         const QString &strCurrentPattern, int iCurrentLevel /* = 0 */)
 {
-    QRegExp regExp(strCurrentPattern.arg(m_sstrAny));
+    QRegExp regExp(strCurrentPattern.arg(s_strAny));
     regExp.setMinimal(true);
     if (regExp.indexIn(strString) != -1)
         return searchForMaxLevel(strString, strPattern,
-                                 strCurrentPattern.arg(m_sstrAny + strPattern + m_sstrAny),
+                                 strCurrentPattern.arg(s_strAny + strPattern + s_strAny),
                                  iCurrentLevel + 1);
     return iCurrentLevel;
@@ -198,14 +199,14 @@
     if (iCurrentLevel > 1)
         return composeFullPattern(strPattern,
-                                  strCurrentPattern.arg(m_sstrAny + strPattern + m_sstrAny),
+                                  strCurrentPattern.arg(s_strAny + strPattern + s_strAny),
                                   iCurrentLevel - 1);
-    return strCurrentPattern.arg(m_sstrAny);
-}
-
-/* static */
-QTextCharFormat UIRichTextString::textCharFormat(Type type)
+    return strCurrentPattern.arg(s_strAny);
+}
+
+/* static */
+QTextCharFormat UIRichTextString::textCharFormat(Type enmType)
 {
     QTextCharFormat format;
-    switch (type)
+    switch (enmType)
     {
         case Type_Anchor:
@@ -233,3 +234,2 @@
     return format;
 }
-
Index: trunk/src/VBox/Frontends/VirtualBox/src/objects/UIRichTextString.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/objects/UIRichTextString.h	(revision 72166)
+++ trunk/src/VBox/Frontends/VirtualBox/src/objects/UIRichTextString.h	(revision 72167)
@@ -5,5 +5,5 @@
 
 /*
- * Copyright (C) 2015-2017 Oracle Corporation
+ * Copyright (C) 2015-2018 Oracle Corporation
  *
  * This file is part of VirtualBox Open Source Edition (OSE), as
@@ -22,7 +22,10 @@
 #include <QTextLayout>
 
+/* GUI includes: */
+#include "UILibraryDefs.h"
+
 /** Rich text string implementation which parses the passed QString
   * and holds it as the tree of the formatted rich text blocks. */
-class UIRichTextString
+class SHARED_LIBRARY_STUFF UIRichTextString
 {
 public:
@@ -37,15 +40,16 @@
     };
 
-    /** Default (empty) constructor. */
-    UIRichTextString(Type type = Type_None);
+    /** Constructs empty rich text string.
+      * @param  enmType        Brings the type of <i>this</i> rich text block. */
+    UIRichTextString(Type enmType = Type_None);
 
-    /** Constructor taking passed QString.
-      * @param strString     holds the string being parsed and held as the tree of rich text blocks,
-      * @param type          holds the type of <i>this</i> rich text block,
-      * @param strStringMeta holds the string containing meta data describing <i>this</i> rich text block. */
-    UIRichTextString(const QString &strString, Type type = Type_None, const QString &strStringMeta = QString());
+    /** Constructs rich text string.
+      * @param  strString      Brings the string being parsed and held as the tree of rich text blocks.
+      * @param  enmType        Brings the type of <i>this</i> rich text block.
+      * @param  strStringMeta  Brings the string containing meta data describing <i>this</i> rich text block. */
+    UIRichTextString(const QString &strString, Type enmType = Type_None, const QString &strStringMeta = QString());
 
-    /** Destructor. */
-    ~UIRichTextString();
+    /** Destructor rich text string. */
+    virtual ~UIRichTextString() /* override */;
 
     /** Returns the QString representation. */
@@ -53,5 +57,5 @@
 
     /** Returns the list of existing format ranges appropriate for QTextLayout.
-      * @param iShift holds the shift of <i>this</i> rich text block accordig to it's root. */
+      * @param  iShift  Brings the shift of <i>this</i> rich text block accordig to it's root. */
     QList<QTextLayout::FormatRange> formatRanges(int iShift = 0) const;
 
@@ -65,50 +69,49 @@
 
     /** Used to populate const static map of known patterns.
-      * @note Keep it sync with the method below - #populatePatternHasMeta(). */
+      * @note  Keep it sync with the method below - #populatePatternHasMeta(). */
     static QMap<Type, QString> populatePatterns();
     /** Used to populate const static map of meta flags for the known patterns.
-      * @note Keep it sync with the method above - #populatePatterns(). */
+      * @note  Keep it sync with the method above - #populatePatterns(). */
     static QMap<Type, bool> populatePatternHasMeta();
 
     /** Recursively searching for the maximum level of the passed pattern.
-      * @param strString         holds the string to check for the current (recursively advanced) pattern in,
-      * @param strPattern        holds the etalon pattern to recursively advance the current pattern with,
-      * @param strCurrentPattern holds the current (recursively advanced) pattern to check for the presence of,
-      * @param iCurrentLevel     holds the current level of the recursively advanced pattern. */
+      * @param  strString          Brings the string to check for the current (recursively advanced) pattern in,
+      * @param  strPattern         Brings the etalon pattern to recursively advance the current pattern with,
+      * @param  strCurrentPattern  Brings the current (recursively advanced) pattern to check for the presence of,
+      * @param  iCurrentLevel      Brings the current level of the recursively advanced pattern. */
     static int searchForMaxLevel(const QString &strString, const QString &strPattern,
                                  const QString &strCurrentPattern, int iCurrentLevel = 0);
 
     /** Recursively composing the pattern of the maximum level.
-      * @param strPattern        holds the etalon pattern to recursively update the current pattern with,
-      * @param strCurrentPattern holds the current (recursively advanced) pattern,
-      * @param iCurrentLevel     holds the amount of the levels left to recursively advance current pattern. */
+      * @param  strPattern         Brings the etalon pattern to recursively update the current pattern with,
+      * @param  strCurrentPattern  Brings the current (recursively advanced) pattern,
+      * @param  iCurrentLevel      Brings the amount of the levels left to recursively advance current pattern. */
     static QString composeFullPattern(const QString &strPattern,
                                       const QString &strCurrentPattern, int iCurrentLevel);
 
-    /** Composes the QTextCharFormat correpoding to passed @a type. */
-    static QTextCharFormat textCharFormat(Type type);
+    /** Composes the QTextCharFormat correpoding to passed @a enmType. */
+    static QTextCharFormat textCharFormat(Type enmType);
 
     /** Holds the type of <i>this</i> rich text block. */
-    Type m_type;
+    Type                          m_enmType;
     /** Holds the string of <i>this</i> rich text block. */
-    QString m_strString;
+    QString                       m_strString;
     /** Holds the string meta data of <i>this</i> rich text block. */
-    QString m_strStringMeta;
+    QString                       m_strStringMeta;
     /** Holds the children of <i>this</i> rich text block. */
-    QMap<int, UIRichTextString*> m_strings;
+    QMap<int, UIRichTextString*>  m_strings;
 
     /** Holds the anchor of <i>this</i> rich text block. */
-    QString m_strAnchor;
+    QString  m_strAnchor;
     /** Holds the anchor to highlight in <i>this</i> rich text block and in it's children. */
-    QString m_strHoveredAnchor;
+    QString  m_strHoveredAnchor;
 
     /** Holds the <i>any</i> string pattern. */
-    static const QString m_sstrAny;
+    static const QString              s_strAny;
     /** Holds the map of known patterns. */
-    static const QMap<Type, QString> m_sPatterns;
+    static const QMap<Type, QString>  s_patterns;
     /** Holds the map of meta flags for the known patterns. */
-    static const QMap<Type, bool> m_sPatternHasMeta;
+    static const QMap<Type, bool>     s_doPatternHasMeta;
 };
 
 #endif /* !___UIRichTextString_h___ */
-
