Index: trunk/src/VBox/Frontends/VirtualBox4/Makefile.kmk
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/Makefile.kmk	(revision 9385)
+++ trunk/src/VBox/Frontends/VirtualBox4/Makefile.kmk	(revision 9386)
@@ -442,6 +442,6 @@
 	include/QIStateIndicator.h \
 	include/QIMessageBox.h \
-	include/QIRichLabel.h \
-	include/QIRichLabel_p.h \
+	include/QILabel.h \
+	include/QILabel_p.h \
 	include/QIAbstractWizard.h \
 	include/QIListView.h \
@@ -526,5 +526,5 @@
 	src/QIStatusBar.cpp \
 	src/QIMessageBox.cpp \
-	src/QIRichLabel.cpp \
+	src/QILabel.cpp \
 	src/QIAbstractWizard.cpp \
 	src/QIDialog.cpp \
Index: trunk/src/VBox/Frontends/VirtualBox4/include/QIAbstractWizard.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/include/QIAbstractWizard.h	(revision 9385)
+++ trunk/src/VBox/Frontends/VirtualBox4/include/QIAbstractWizard.h	(revision 9386)
@@ -67,20 +67,7 @@
  *  2. Tries to take into account horizontal scrollbar if present to avoid
  *     vertical scrollbar appearing.
+ *
+ * --> uses now global QILabel
  */
-class QILabel : public QLabel
-{
-    Q_OBJECT;
-
-public:
-
-    QILabel (QWidget *aParent);
-
-    QSize sizeHint() const;
-    void updateSizeHint();
-
-private:
-
-    QSize mOwnSizeHint;
-};
 
 /**
Index: trunk/src/VBox/Frontends/VirtualBox4/include/QILabel.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/include/QILabel.h	(revision 9386)
+++ trunk/src/VBox/Frontends/VirtualBox4/include/QILabel.h	(revision 9386)
@@ -0,0 +1,102 @@
+/** @file
+ *
+ * VBox frontends: Qt GUI ("VirtualBox"):
+ * VirtualBox Qt extensions: QILabel class declaration
+ */
+
+/*
+ * Copyright (C) 2006-2008 Sun Microsystems, Inc.
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
+ * Clara, CA 95054 USA or visit http://www.sun.com if you need
+ * additional information or have any questions.
+ */
+
+/*
+ * This class is based on the original QLabel implementation.
+ */
+
+#ifndef __QILabel_h__
+#define __QILabel_h__
+
+/* Qt includes */
+#include <QWidget>
+
+class QILabelPrivate;
+
+class QILabel: public QWidget
+{
+    Q_OBJECT;
+
+public:
+
+    QILabel (QWidget *aParent = NULL, Qt::WindowFlags aFlags = 0);
+    QILabel (const QString &aText, QWidget *aParent = NULL, Qt::WindowFlags aFlags = 0);
+
+    /* QLabel extensions */
+    bool fullSizeSelection () const;
+    void setFullSizeSelection (bool bOn);
+
+    void updateSizeHint();
+
+    /* Default QLabel methods */
+    Qt::Alignment alignment() const;
+    QWidget * buddy() const;
+    bool hasScaledContents() const;
+    int indent() const;
+    int margin() const;
+    QMovie *movie() const;
+    bool openExternalLinks() const;
+    const QPicture *picture() const;
+    const QPixmap *pixmap() const;
+    void setAlignment (Qt::Alignment aAlignment);
+    void setBuddy (QWidget *aBuddy);
+    void setIndent (int aIndent);
+    void setMargin (int aMargin);
+    void setOpenExternalLinks (bool aOpen);
+    void setScaledContents (bool aOn);
+    void setTextFormat (Qt::TextFormat aFormat);
+    void setTextInteractionFlags (Qt::TextInteractionFlags aFlags);
+    void setWordWrap (bool aOn);
+    QString text() const;
+    Qt::TextFormat textFormat() const;
+    Qt::TextInteractionFlags textInteractionFlags() const;
+    bool wordWrap() const;
+
+    /* Default QWidget methods */
+    void setSizePolicy (QSizePolicy aPolicy);
+    void setMinimumSize (const QSize &aSize);
+
+public slots:
+
+    void clear();
+    void setMovie (QMovie *aMovie);
+    void setNum (int aNum);
+    void setNum (double aNum);
+    void setPicture (const QPicture &aPicture);
+    void setPixmap (const QPixmap &aPixmap);
+    void setText (const QString &aText);
+
+signals:
+
+      void linkActivated (const QString &);
+      void linkHovered (const QString &);
+
+protected:
+
+    virtual void init();
+
+    /* Protected member vars */
+    QILabelPrivate *mLabel;
+};
+
+#endif // __QILabel_h__
+
Index: trunk/src/VBox/Frontends/VirtualBox4/include/QILabel_p.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/include/QILabel_p.h	(revision 9386)
+++ trunk/src/VBox/Frontends/VirtualBox4/include/QILabel_p.h	(revision 9386)
@@ -0,0 +1,134 @@
+/** @file
+ *
+ * VBox frontends: Qt GUI ("VirtualBox"):
+ * VirtualBox Qt extensions: QILabelPrivate class declaration
+ */
+
+/*
+ * Copyright (C) 2008 Sun Microsystems, Inc.
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
+ * Clara, CA 95054 USA or visit http://www.sun.com if you need
+ * additional information or have any questions.
+ */
+
+/*
+ * This class is based on the original QLabel implementation.
+ */
+
+#ifndef __QILabel_p_h__
+#define __QILabel_p_h__
+
+/* Qt includes */
+#include <QLabel>
+
+class QILabelPrivate: public QLabel
+{
+    Q_OBJECT;
+
+public:
+
+    QILabelPrivate (QWidget *aParent  = NULL, Qt::WindowFlags aFlags = 0)
+        : QLabel (aParent, aFlags)
+    {
+        init();
+    }
+
+    QILabelPrivate (const QString &aText, QWidget *aParent = NULL, Qt::WindowFlags aFlags = 0)
+        : QLabel (aParent, aFlags)
+    {
+        init();
+        setFullText (aText);
+    }
+
+    void clearAll()
+    {
+        QLabel::clear();
+        setFullText ("");
+    }
+
+    QString fullText () const
+    {
+        return mText;
+    }
+
+    void setFullText (const QString &aText)
+    {
+        mText = aText;
+        updateText();
+    }
+
+    bool fullSizeSelection () const;
+    void setFullSizeSelection (bool bOn);
+
+    void updateSizeHint()
+    {
+        if (minimumWidth() > 0)
+            mOwnSizeHint = QSize (minimumWidth(),
+                                  heightForWidth (minimumWidth()));
+    }
+
+    QSize sizeHint() const
+    {
+        /* If there is an updated sizeHint() present - using it. */
+        return mOwnSizeHint.isValid() ? mOwnSizeHint : QLabel::sizeHint();
+    }
+
+protected:
+
+    void resizeEvent (QResizeEvent *aEvent);
+    void mousePressEvent (QMouseEvent *aEvent);
+    void contextMenuEvent (QContextMenuEvent *aEvent);
+
+protected slots:
+
+    void copy();
+
+private:
+
+    void init();
+
+    void updateText();
+
+    QString removeHtmlTags (QString aText) const
+    {
+        /* Remove all HTML tags from the text and return it. */
+        return QString(aText).remove (mCopyRegExp);
+    }
+
+    Qt::TextElideMode toTextElideMode (const QString& aStr) const
+    {
+        /* Converts a string to a Qt elide mode */
+        Qt::TextElideMode mode = Qt::ElideNone;
+        if (aStr == "start")
+            mode = Qt::ElideLeft;
+        else
+            if (aStr == "middle")
+                mode = Qt::ElideMiddle;
+            else
+                if (aStr == "end")
+                    mode  = Qt::ElideRight;
+        return mode;
+    }
+
+
+    QString compressText (const QString &aText) const;
+
+    /* Private member vars */
+    QString mText;
+    bool mFullSizeSeclection;
+    static const QRegExp mCopyRegExp;
+    static QRegExp mElideRegExp;
+    QSize mOwnSizeHint;
+};
+
+#endif // __QILabel_p_h__
+
Index: trunk/src/VBox/Frontends/VirtualBox4/include/QIMessageBox.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/include/QIMessageBox.h	(revision 9385)
+++ trunk/src/VBox/Frontends/VirtualBox4/include/QIMessageBox.h	(revision 9386)
@@ -31,5 +31,5 @@
 #include <QTextEdit>
 
-class QIRichLabel;
+class QILabel;
 class QLabel;
 class QPushButton;
@@ -106,5 +106,5 @@
     int mButton0, mButton1, mButton2, mButtonEsc;
     QLabel *mIconLabel;
-    QIRichLabel *mTextLabel;
+    QILabel *mTextLabel;
     QPushButton *mButton0PB, *mButton1PB, *mButton2PB;
     QCheckBox *mFlagCB, *mFlagCB_Main, *mFlagCB_Details;
@@ -116,2 +116,3 @@
 
 #endif
+
Index: trunk/src/VBox/Frontends/VirtualBox4/include/QIRichLabel.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/include/QIRichLabel.h	(revision 9385)
+++ 	(revision )
@@ -1,95 +1,0 @@
-/** @file
- *
- * VBox frontends: Qt GUI ("VirtualBox"):
- * VirtualBox Qt extensions: QIRichLabel class declaration
- */
-
-/*
- * Copyright (C) 2006-2008 Sun Microsystems, Inc.
- *
- * This file is part of VirtualBox Open Source Edition (OSE), as
- * available from http://www.virtualbox.org. This file is free software;
- * you can redistribute it and/or modify it under the terms of the GNU
- * General Public License (GPL) as published by the Free Software
- * Foundation, in version 2 as it comes in the "COPYING" file of the
- * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
- * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
- * Clara, CA 95054 USA or visit http://www.sun.com if you need
- * additional information or have any questions.
- */
-
-/*
- * This class is based on the original QLabel implementation.
- */
-
-#ifndef __QIRichLabel_h__
-#define __QIRichLabel_h__
-
-/* Qt includes */
-#include <QWidget>
-
-class QILabelPrivate;
-
-class QIRichLabel: public QWidget
-{
-    Q_OBJECT;
-
-public:
-
-    QIRichLabel (QWidget *aParent = NULL, Qt::WindowFlags aFlags = 0);
-    QIRichLabel (const QString &aText, QWidget *aParent = NULL, Qt::WindowFlags aFlags = 0);
-
-    /* QLabel extensions */
-    bool fullSizeSelection () const;
-    void setFullSizeSelection (bool bOn);
-
-    /* Default QLabel methods */
-    Qt::Alignment alignment() const;
-    QWidget * buddy() const;
-    bool hasScaledContents() const;
-    int indent() const;
-    int margin() const;
-    QMovie *movie() const;
-    bool openExternalLinks() const;
-    const QPicture *picture() const;
-    const QPixmap *pixmap() const;
-    void setAlignment (Qt::Alignment aAlignment);
-    void setBuddy (QWidget *aBuddy);
-    void setIndent (int aIndent);
-    void setMargin (int aMargin);
-    void setOpenExternalLinks (bool aOpen);
-    void setScaledContents (bool aOn);
-    void setTextFormat (Qt::TextFormat aFormat);
-    void setTextInteractionFlags (Qt::TextInteractionFlags aFlags);
-    void setWordWrap (bool aOn);
-    QString text() const;
-    Qt::TextFormat textFormat() const;
-    Qt::TextInteractionFlags textInteractionFlags() const;
-    bool wordWrap() const;
-
-public slots:
-
-    void clear();
-    void setMovie (QMovie *aMovie);
-    void setNum (int aNum);
-    void setNum (double aNum);
-    void setPicture (const QPicture &aPicture);
-    void setPixmap (const QPixmap &aPixmap);
-    void setText (const QString &aText);
-
-signals:
-
-      void linkActivated (const QString &);
-      void linkHovered (const QString &);
-
-protected:
-
-    virtual void init();
-
-    /* Protected member vars */
-    QILabelPrivate *mLabel;
-};
-
-#endif // __QIRichLabel_h__
Index: trunk/src/VBox/Frontends/VirtualBox4/include/QIRichLabel_p.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/include/QIRichLabel_p.h	(revision 9385)
+++ 	(revision )
@@ -1,120 +1,0 @@
-/** @file
- *
- * VBox frontends: Qt GUI ("VirtualBox"):
- * VirtualBox Qt extensions: QILabelPrivate class declaration
- */
-
-/*
- * Copyright (C) 2008 Sun Microsystems, Inc.
- *
- * This file is part of VirtualBox Open Source Edition (OSE), as
- * available from http://www.virtualbox.org. This file is free software;
- * you can redistribute it and/or modify it under the terms of the GNU
- * General Public License (GPL) as published by the Free Software
- * Foundation, in version 2 as it comes in the "COPYING" file of the
- * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
- * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
- * Clara, CA 95054 USA or visit http://www.sun.com if you need
- * additional information or have any questions.
- */
-
-/*
- * This class is based on the original QLabel implementation.
- */
-
-#ifndef __QILabel_p_h__
-#define __QILabel_p_h__
-
-/* Qt includes */
-#include <QLabel>
-
-class QILabelPrivate: public QLabel
-{
-    Q_OBJECT;
-
-public:
-
-    QILabelPrivate (QWidget *aParent  = NULL, Qt::WindowFlags aFlags = 0)
-        : QLabel (aParent, aFlags)
-    {
-        init();
-    }
-
-    QILabelPrivate (const QString &aText, QWidget *aParent = NULL, Qt::WindowFlags aFlags = 0)
-        : QLabel (aParent, aFlags)
-    {
-        init();
-        setFullText (aText);
-    }
-
-    void clearAll()
-    {
-        QLabel::clear();
-        setFullText ("");
-    }
-
-    QString fullText () const
-    {
-        return mText;
-    }
-
-    void setFullText (const QString &aText)
-    {
-        mText = aText;
-        updateText();
-    }
-
-    bool fullSizeSelection () const;
-    void setFullSizeSelection (bool bOn);
-
-protected:
-
-    void resizeEvent (QResizeEvent *aEvent);
-    void mousePressEvent (QMouseEvent *aEvent);
-    void contextMenuEvent (QContextMenuEvent *aEvent);
-
-protected slots:
-
-    void copy();
-
-private:
-
-    void init();
-
-    void updateText();
-
-    QString removeHtmlTags (QString aText) const
-    {
-        /* Remove all HTML tags from the text and return it. */
-        return QString(aText).remove (mCopyRegExp);
-    }
-
-    Qt::TextElideMode toTextElideMode (const QString& aStr) const
-    {
-        /* Converts a string to a Qt elide mode */
-        Qt::TextElideMode mode = Qt::ElideNone;
-        if (aStr == "start")
-            mode = Qt::ElideLeft;
-        else
-            if (aStr == "middle")
-                mode = Qt::ElideMiddle;
-            else
-                if (aStr == "end")
-                    mode  = Qt::ElideRight;
-        return mode;
-    }
-
-
-    QString compressText (const QString &aText) const;
-
-    /* Private member vars */
-    QString mText;
-    bool mFullSizeSeclection;
-    static const QRegExp mCopyRegExp;
-    static QRegExp mElideRegExp;
-};
-
-#endif // __QILabel_p_h__
-
Index: trunk/src/VBox/Frontends/VirtualBox4/src/QIAbstractWizard.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/src/QIAbstractWizard.cpp	(revision 9385)
+++ trunk/src/VBox/Frontends/VirtualBox4/src/QIAbstractWizard.cpp	(revision 9386)
@@ -22,4 +22,5 @@
 
 #include "QIAbstractWizard.h"
+#include "QILabel.h"
 
 /* Qt includes */
@@ -67,23 +68,4 @@
     QTextEdit::setText (aText);
     updateSizeHint();
-}
-
-
-QILabel::QILabel (QWidget *aParent)
-    : QLabel (aParent)
-{
-}
-
-QSize QILabel::sizeHint() const
-{
-    /* If there is an updated sizeHint() present - using it. */
-    return mOwnSizeHint.isValid() ? mOwnSizeHint : QLabel::sizeHint();
-}
-
-void QILabel::updateSizeHint()
-{
-    if (minimumWidth() > 0)
-        mOwnSizeHint = QSize (minimumWidth(),
-                              heightForWidth (minimumWidth()));
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox4/src/QILabel.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/src/QILabel.cpp	(revision 9386)
+++ trunk/src/VBox/Frontends/VirtualBox4/src/QILabel.cpp	(revision 9386)
@@ -0,0 +1,378 @@
+/** @file
+ *
+ * VBox frontends: Qt GUI ("VirtualBox"):
+ * VirtualBox Qt extensions: QILabel class implementation
+ */
+
+/*
+ * Copyright (C) 2006-2008 Sun Microsystems, Inc.
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
+ * Clara, CA 95054 USA or visit http://www.sun.com if you need
+ * additional information or have any questions.
+ */
+
+/*
+ * This class is based on the original QLabel implementation.
+ */
+
+#include "QILabel.h"
+#include "QILabel_p.h"
+#include "VBoxGlobal.h"
+
+/* Qt includes */
+#include <QHBoxLayout>
+#include <QClipboard>
+#include <QApplication>
+
+/* @todo: Compare the minimal size behavior in the qt3 & qt4 version. */
+
+QILabel::QILabel (QWidget *aParent /* = NULL */, Qt::WindowFlags aFlags /* = 0 */)
+    : QWidget (aParent, aFlags)
+    , mLabel (NULL)
+{
+    init();
+}
+
+QILabel::QILabel (const QString &aText, QWidget *aParent /* = NULL */, Qt::WindowFlags aFlags /* = 0 */)
+    : QWidget (aParent, aFlags)
+    , mLabel (NULL)
+{
+    init();
+    mLabel->setFullText (aText);
+}
+
+bool QILabel::fullSizeSelection () const
+{
+    return mLabel->fullSizeSelection();
+}
+
+void QILabel::setFullSizeSelection (bool bOn)
+{
+    mLabel->setFullSizeSelection (bOn);
+}
+
+void QILabel::updateSizeHint()
+{
+    mLabel->updateSizeHint();
+}
+
+void QILabel::init()
+{
+    QHBoxLayout *layout = new QHBoxLayout (this);
+    VBoxGlobal::setLayoutMargin (layout, 0);
+    layout->setSpacing (0);
+    mLabel = new QILabelPrivate (this);
+    layout->addWidget (mLabel);
+    connect (mLabel, SIGNAL (linkActivated (const QString &)),
+             this, SIGNAL (linkActivated (const QString &)));
+    connect (mLabel, SIGNAL (linkHovered (const QString &)),
+             this, SIGNAL (linkHovered (const QString &)));
+}
+
+/* Default QLabel methods */
+
+Qt::Alignment QILabel::alignment () const
+{
+    return mLabel->alignment();
+}
+
+QWidget *QILabel::buddy () const
+{
+    return mLabel->buddy();
+}
+
+bool QILabel::hasScaledContents () const
+{
+    return mLabel->hasScaledContents();
+}
+
+int QILabel::indent () const
+{
+    return mLabel->indent();
+}
+
+int QILabel::margin () const
+{
+    return mLabel->margin();
+}
+
+QMovie *QILabel::movie () const
+{
+    return mLabel->movie();
+}
+
+bool QILabel::openExternalLinks () const
+{
+    return mLabel->openExternalLinks();
+}
+
+const QPicture *QILabel::picture () const
+{
+    return mLabel->picture();
+}
+
+const QPixmap *QILabel::pixmap () const
+{
+    return mLabel->pixmap();
+}
+
+void QILabel::setAlignment (Qt::Alignment aAlignment) 
+{ 
+    mLabel->setAlignment (aAlignment); 
+}
+
+void QILabel::setBuddy (QWidget *aBuddy)
+{
+    mLabel->setBuddy (aBuddy);
+}
+
+void QILabel::setIndent (int aIndent)
+{
+    mLabel->setIndent (aIndent);
+}
+
+void QILabel::setMargin (int aMargin)
+{
+    mLabel->setMargin (aMargin);
+}
+
+void QILabel::setOpenExternalLinks (bool aOpen)
+{ 
+    mLabel->setOpenExternalLinks (aOpen); 
+}
+
+void QILabel::setScaledContents (bool aOn)
+{
+    mLabel->setScaledContents (aOn);
+}
+
+void QILabel::setTextFormat (Qt::TextFormat aFormat)
+{
+    mLabel->setTextFormat (aFormat);
+}
+
+void QILabel::setTextInteractionFlags (Qt::TextInteractionFlags aFlags) 
+{ 
+    mLabel->setTextInteractionFlags (aFlags); 
+}
+
+void QILabel::setWordWrap (bool aOn) 
+{ 
+    mLabel->setWordWrap (aOn); 
+}
+
+QString QILabel::text () const
+{
+    return mLabel->fullText();
+}
+
+Qt::TextFormat QILabel::textFormat () const
+{
+    return mLabel->textFormat();
+}
+
+Qt::TextInteractionFlags QILabel::textInteractionFlags () const
+{
+    return mLabel->textInteractionFlags();
+}
+
+bool QILabel::wordWrap () const
+{
+    return mLabel->wordWrap();
+}
+
+void QILabel::setSizePolicy (QSizePolicy aPolicy)
+{
+    mLabel->setSizePolicy (aPolicy);
+    QWidget::setSizePolicy (aPolicy);
+}
+
+void QILabel::setMinimumSize (const QSize &aSize)
+{
+    mLabel->setMinimumSize (aSize);
+    QWidget::setMinimumSize (aSize);
+}
+
+void QILabel::clear()
+{
+    mLabel->clearAll();
+}
+
+void QILabel::setMovie (QMovie *aMovie)
+{
+    mLabel->setMovie (aMovie);
+}
+
+void QILabel::setNum (int aNum)
+{
+    mLabel->setNum (aNum);
+}
+
+void QILabel::setNum (double aNum)
+{
+    mLabel->setNum (aNum);
+}
+
+void QILabel::setPicture (const QPicture &aPicture)
+{
+    mLabel->setPicture (aPicture);
+}
+
+void QILabel::setPixmap (const QPixmap &aPixmap)
+{
+    mLabel->setPixmap (aPixmap);
+}
+
+void QILabel::setText (const QString &aText)
+{
+    mLabel->setFullText (aText);
+}
+
+/* QILabelPrivate implementation: */
+
+/* Some constant predefines */
+const QRegExp QILabelPrivate::mCopyRegExp = QRegExp ("<[^>]*>");
+QRegExp QILabelPrivate::mElideRegExp = QRegExp ("(<compact\\s+elipsis=\"(start|middle|end)\"?>([^<]+)</compact>)");
+
+bool QILabelPrivate::fullSizeSelection () const
+{
+    return mFullSizeSeclection;
+}
+
+void QILabelPrivate::setFullSizeSelection (bool bOn)
+{
+    mFullSizeSeclection = bOn;
+    if (mFullSizeSeclection)
+    {
+        /* Enable mouse interaction only */
+        setTextInteractionFlags (Qt::LinksAccessibleByMouse);
+        /* The label should be able to get the focus */
+        setFocusPolicy (Qt::StrongFocus);
+        /* Change the appearance in focus state a little bit */
+        setStyleSheet (QString("QLabel::focus {\
+                               color: palette(highlighted-text);\
+                               background-color: palette(highlight);\
+                               }"));
+//                                 border: 1px dotted black;
+    }
+    else
+    {
+        /* Text should be selectable/copyable */
+        setTextInteractionFlags (Qt::TextBrowserInteraction);
+        /* No Focus an the label */
+        setFocusPolicy (Qt::NoFocus);
+        /* No focus style change */
+        setStyleSheet ("");
+    }
+}
+
+void QILabelPrivate::resizeEvent (QResizeEvent *aEvent)
+{
+    QLabel::resizeEvent (aEvent);
+    /* Recalculate the elipsis of the text after every resize. */
+    updateText();
+}
+
+void QILabelPrivate::mousePressEvent (QMouseEvent *aEvent)
+{
+    if (aEvent->button() == Qt::LeftButton &&
+        geometry().contains (aEvent->pos()) &&
+        mFullSizeSeclection) 
+    {
+        /* Create a drag object out of the given data. */
+        QDrag *drag = new QDrag (this);
+        QMimeData *mimeData = new QMimeData;
+        mimeData->setText (removeHtmlTags (mText));
+        drag->setMimeData (mimeData);
+        /* Start the dragging */
+        drag->exec();
+    }
+    else
+        QLabel::mousePressEvent (aEvent);
+}
+
+void QILabelPrivate::contextMenuEvent (QContextMenuEvent *aEvent)
+{
+    if (mFullSizeSeclection)
+    {
+        /* Create a context menu for the copy to clipboard action. */
+        QMenu *menu = new QMenu();
+        menu->addAction (tr ("&Copy") + "\t" + QString (QKeySequence (QKeySequence::Copy)), this, SLOT (copy()));
+        menu->exec (aEvent->globalPos());
+    }else
+        QLabel::contextMenuEvent (aEvent);
+}
+
+void QILabelPrivate::copy()
+{
+    QString text = removeHtmlTags (mText);
+    /* Copy the current text to the global and selection clipboard. */
+    QApplication::clipboard()->setText (text, QClipboard::Clipboard);
+    QApplication::clipboard()->setText (text, QClipboard::Selection);
+}
+
+void QILabelPrivate::init()
+{
+    setFullSizeSelection (false);
+    /* Open links with the QDesktopService */
+    setOpenExternalLinks (true);
+}
+
+void QILabelPrivate::updateText()
+{
+    QString comp = compressText (mText);
+
+    QLabel::setText (comp);
+    /* Only set the tooltip if the text is shortened in any way. */
+    if (removeHtmlTags (comp) != removeHtmlTags (mText))
+        setToolTip (mText);
+    else
+        setToolTip ("");
+}
+
+QString QILabelPrivate::compressText (const QString &aText) const
+{
+    QStringList strResult;
+    QFontMetrics fm = fontMetrics();
+    /* Split up any multi line text */
+    QStringList strList = aText.split (QRegExp ("<br */?>"));
+    foreach (QString text, strList)
+    {
+        /* Search for the compact tag */
+        if (mElideRegExp.indexIn (text) > -1)
+        {
+            QString workStr = text;
+            /* Grep out the necessary info of the regexp */
+            QString compactStr = mElideRegExp.cap (1);
+            QString elideModeStr = mElideRegExp.cap (2);
+            QString elideStr = mElideRegExp.cap (3);
+            /* Remove the whole compact tag (also the text) */
+            QString flatStr = removeHtmlTags (QString (workStr).remove (compactStr));
+            /* What size will the text have without the compact text */
+            int flatWidth = fm.width (flatStr);
+            /* Create the shortened text */
+            QString newStr = fm.elidedText (elideStr, toTextElideMode (elideModeStr), width() - flatWidth);
+            /* Replace the compact part with the shortened text in the initial
+             * string */
+            text = QString (workStr).replace (compactStr, newStr);
+            /* For debug */
+//            printf ("%d, %s # %s # %s ## %s\n", pos, 
+//                    qPrintable (compactStr),
+//                    qPrintable (elideModeStr),
+//                    qPrintable (elideStr), 
+//                    qPrintable (newStr));
+        }
+        strResult << text;
+    }
+    return strResult.join ("<br />");
+}
+
Index: trunk/src/VBox/Frontends/VirtualBox4/src/QIMessageBox.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/src/QIMessageBox.cpp	(revision 9385)
+++ trunk/src/VBox/Frontends/VirtualBox4/src/QIMessageBox.cpp	(revision 9386)
@@ -25,5 +25,5 @@
 
 #include "QIMessageBox.h"
-#include "QIRichLabel.h"
+#include "QILabel.h"
 #include "QIDialogButtonBox.h"
 
@@ -82,5 +82,5 @@
     hLayout->addLayout (messageVBoxLayout);
 
-    mTextLabel = new QIRichLabel (aText, NULL);
+    mTextLabel = new QILabel (aText, NULL);
     mTextLabel->setAlignment (Qt::AlignLeft | Qt::AlignTop);
     mTextLabel->setWordWrap (true);
Index: trunk/src/VBox/Frontends/VirtualBox4/src/QIRichLabel.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/src/QIRichLabel.cpp	(revision 9385)
+++ 	(revision )
@@ -1,361 +1,0 @@
-/** @file
- *
- * VBox frontends: Qt GUI ("VirtualBox"):
- * VirtualBox Qt extensions: QIRichLabel class implementation
- */
-
-/*
- * Copyright (C) 2006-2008 Sun Microsystems, Inc.
- *
- * This file is part of VirtualBox Open Source Edition (OSE), as
- * available from http://www.virtualbox.org. This file is free software;
- * you can redistribute it and/or modify it under the terms of the GNU
- * General Public License (GPL) as published by the Free Software
- * Foundation, in version 2 as it comes in the "COPYING" file of the
- * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
- * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
- * Clara, CA 95054 USA or visit http://www.sun.com if you need
- * additional information or have any questions.
- */
-
-/*
- * This class is based on the original QLabel implementation.
- */
-
-#include "QIRichLabel.h"
-#include "QIRichLabel_p.h"
-#include "VBoxGlobal.h"
-
-/* Qt includes */
-#include <QHBoxLayout>
-#include <QClipboard>
-#include <QApplication>
-
-/* @todo: Compare the minimal size behavior in the qt3 & qt4 version. */
-
-QIRichLabel::QIRichLabel (QWidget *aParent /* = NULL */, Qt::WindowFlags aFlags /* = 0 */)
-    : QWidget (aParent, aFlags)
-    , mLabel (NULL)
-{
-    init();
-}
-
-QIRichLabel::QIRichLabel (const QString &aText, QWidget *aParent /* = NULL */, Qt::WindowFlags aFlags /* = 0 */)
-    : QWidget (aParent, aFlags)
-    , mLabel (NULL)
-{
-    init();
-    mLabel->setFullText (aText);
-}
-
-bool QIRichLabel::fullSizeSelection () const
-{
-    mLabel->fullSizeSelection();
-}
-
-void QIRichLabel::setFullSizeSelection (bool bOn)
-{
-    mLabel->setFullSizeSelection (bOn);
-}
-
-void QIRichLabel::init()
-{
-    QHBoxLayout *layout = new QHBoxLayout (this);
-    VBoxGlobal::setLayoutMargin (layout, 0);
-    layout->setSpacing (0);
-    mLabel = new QILabelPrivate (this);
-    layout->addWidget (mLabel);
-    connect (mLabel, SIGNAL (linkActivated (const QString &)),
-             this, SIGNAL (linkActivated (const QString &)));
-    connect (mLabel, SIGNAL (linkHovered (const QString &)),
-             this, SIGNAL (linkHovered (const QString &)));
-}
-
-/* Default QLabel methods */
-
-Qt::Alignment QIRichLabel::alignment () const
-{
-    return mLabel->alignment();
-}
-
-QWidget *QIRichLabel::buddy () const
-{
-    return mLabel->buddy();
-}
-
-bool QIRichLabel::hasScaledContents () const
-{
-    return mLabel->hasScaledContents();
-}
-
-int QIRichLabel::indent () const
-{
-    return mLabel->indent();
-}
-
-int QIRichLabel::margin () const
-{
-    return mLabel->margin();
-}
-
-QMovie *QIRichLabel::movie () const
-{
-    return mLabel->movie();
-}
-
-bool QIRichLabel::openExternalLinks () const
-{
-    return mLabel->openExternalLinks();
-}
-
-const QPicture *QIRichLabel::picture () const
-{
-    return mLabel->picture();
-}
-
-const QPixmap *QIRichLabel::pixmap () const
-{
-    return mLabel->pixmap();
-}
-
-void QIRichLabel::setAlignment (Qt::Alignment aAlignment) 
-{ 
-    mLabel->setAlignment (aAlignment); 
-}
-
-void QIRichLabel::setBuddy (QWidget *aBuddy)
-{
-    mLabel->setBuddy (aBuddy);
-}
-
-void QIRichLabel::setIndent (int aIndent)
-{
-    mLabel->setIndent (aIndent);
-}
-
-void QIRichLabel::setMargin (int aMargin)
-{
-    mLabel->setMargin (aMargin);
-}
-
-void QIRichLabel::setOpenExternalLinks (bool aOpen)
-{ 
-    mLabel->setOpenExternalLinks (aOpen); 
-}
-
-void QIRichLabel::setScaledContents (bool aOn)
-{
-    mLabel->setScaledContents (aOn);
-}
-
-void QIRichLabel::setTextFormat (Qt::TextFormat aFormat)
-{
-    mLabel->setTextFormat (aFormat);
-}
-
-void QIRichLabel::setTextInteractionFlags (Qt::TextInteractionFlags aFlags) 
-{ 
-    mLabel->setTextInteractionFlags (aFlags); 
-}
-
-void QIRichLabel::setWordWrap (bool aOn) 
-{ 
-    mLabel->setWordWrap (aOn); 
-}
-
-QString QIRichLabel::text () const
-{
-    return mLabel->fullText();
-}
-
-Qt::TextFormat QIRichLabel::textFormat () const
-{
-    return mLabel->textFormat();
-}
-
-Qt::TextInteractionFlags QIRichLabel::textInteractionFlags () const
-{
-    return mLabel->textInteractionFlags();
-}
-
-bool QIRichLabel::wordWrap () const
-{
-    return mLabel->wordWrap();
-}
-
-void QIRichLabel::clear()
-{
-    mLabel->clearAll();
-}
-
-void QIRichLabel::setMovie (QMovie *aMovie)
-{
-    mLabel->setMovie (aMovie);
-}
-
-void QIRichLabel::setNum (int aNum)
-{
-    mLabel->setNum (aNum);
-}
-
-void QIRichLabel::setNum (double aNum)
-{
-    mLabel->setNum (aNum);
-}
-
-void QIRichLabel::setPicture (const QPicture &aPicture)
-{
-    mLabel->setPicture (aPicture);
-}
-
-void QIRichLabel::setPixmap (const QPixmap &aPixmap)
-{
-    mLabel->setPixmap (aPixmap);
-}
-
-void QIRichLabel::setText (const QString &aText)
-{
-    mLabel->setFullText (aText);
-}
-
-/* QILabelPrivate implementation: */
-
-/* Some constant predefines */
-const QRegExp QILabelPrivate::mCopyRegExp = QRegExp ("<[^>]*>");
-QRegExp QILabelPrivate::mElideRegExp = QRegExp ("(<compact\\s+elipsis=\"(start|middle|end)\"?>([^<]+)</compact>)");
-
-bool QILabelPrivate::fullSizeSelection () const
-{
-    return mFullSizeSeclection;
-}
-
-void QILabelPrivate::setFullSizeSelection (bool bOn)
-{
-    mFullSizeSeclection = bOn;
-    if (mFullSizeSeclection)
-    {
-        /* Enable mouse interaction only */
-        setTextInteractionFlags (Qt::LinksAccessibleByMouse);
-        /* The label should be able to get the focus */
-        setFocusPolicy (Qt::StrongFocus);
-        /* Change the appearance in focus state a little bit */
-        setStyleSheet (QString("QLabel::focus {\
-                               color: palette(highlighted-text);\
-                               background-color: palette(highlight);\
-                               }"));
-//                                 border: 1px dotted black;
-    }
-    else
-    {
-        /* Text should be selectable/copyable */
-        setTextInteractionFlags (Qt::TextBrowserInteraction);
-        /* No Focus an the label */
-        setFocusPolicy (Qt::NoFocus);
-        /* No focus style change */
-        setStyleSheet ("");
-    }
-}
-
-void QILabelPrivate::resizeEvent (QResizeEvent *aEvent)
-{
-    QLabel::resizeEvent (aEvent);
-    /* Recalculate the elipsis of the text after every resize. */
-    updateText();
-}
-
-void QILabelPrivate::mousePressEvent (QMouseEvent *aEvent)
-{
-    if (aEvent->button() == Qt::LeftButton &&
-        geometry().contains (aEvent->pos()) &&
-        mFullSizeSeclection) 
-    {
-        /* Create a drag object out of the given data. */
-        QDrag *drag = new QDrag (this);
-        QMimeData *mimeData = new QMimeData;
-        mimeData->setText (removeHtmlTags (mText));
-        drag->setMimeData (mimeData);
-        /* Start the dragging */
-        drag->exec();
-    }
-    else
-        QLabel::mousePressEvent (aEvent);
-}
-
-void QILabelPrivate::contextMenuEvent (QContextMenuEvent *aEvent)
-{
-    if (mFullSizeSeclection)
-    {
-        /* Create a context menu for the copy to clipboard action. */
-        QMenu *menu = new QMenu();
-        menu->addAction (tr ("&Copy") + "\t" + QString (QKeySequence (QKeySequence::Copy)), this, SLOT (copy()));
-        menu->exec (aEvent->globalPos());
-    }else
-        QLabel::contextMenuEvent (aEvent);
-}
-
-void QILabelPrivate::copy()
-{
-    QString text = removeHtmlTags (mText);
-    /* Copy the current text to the global and selection clipboard. */
-    QApplication::clipboard()->setText (text, QClipboard::Clipboard);
-    QApplication::clipboard()->setText (text, QClipboard::Selection);
-}
-
-void QILabelPrivate::init()
-{
-    setFullSizeSelection (false);
-    /* Open links with the QDesktopService */
-    setOpenExternalLinks (true);
-}
-
-void QILabelPrivate::updateText()
-{
-    QString comp = compressText (mText);
-
-    QLabel::setText (comp);
-    /* Only set the tooltip if the text is shortened in any way. */
-    if (removeHtmlTags (comp) != removeHtmlTags (mText))
-        setToolTip (mText);
-    else
-        setToolTip ("");
-}
-
-QString QILabelPrivate::compressText (const QString &aText) const
-{
-    QStringList strResult;
-    QFontMetrics fm = fontMetrics();
-    /* Split up any multi line text */
-    QStringList strList = aText.split (QRegExp ("<br */?>"));
-    foreach (QString text, strList)
-    {
-        /* Search for the compact tag */
-        if (mElideRegExp.indexIn (text) > -1)
-        {
-            QString workStr = text;
-            /* Grep out the necessary info of the regexp */
-            QString compactStr = mElideRegExp.cap (1);
-            QString elideModeStr = mElideRegExp.cap (2);
-            QString elideStr = mElideRegExp.cap (3);
-            /* Remove the whole compact tag (also the text) */
-            QString flatStr = removeHtmlTags (QString (workStr).remove (compactStr));
-            /* What size will the text have without the compact text */
-            int flatWidth = fm.width (flatStr);
-            /* Create the shortened text */
-            QString newStr = fm.elidedText (elideStr, toTextElideMode (elideModeStr), width() - flatWidth);
-            /* Replace the compact part with the shortened text in the initial
-             * string */
-            text = QString (workStr).replace (compactStr, newStr);
-            /* For debug */
-//            printf ("%d, %s # %s # %s ## %s\n", pos, 
-//                    qPrintable (compactStr),
-//                    qPrintable (elideModeStr),
-//                    qPrintable (elideStr), 
-//                    qPrintable (newStr));
-        }
-        strResult << text;
-    }
-    return strResult.join ("<br />");
-}
-
Index: trunk/src/VBox/Frontends/VirtualBox4/src/VBoxDiskImageManagerDlg.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/src/VBoxDiskImageManagerDlg.cpp	(revision 9385)
+++ trunk/src/VBox/Frontends/VirtualBox4/src/VBoxDiskImageManagerDlg.cpp	(revision 9386)
@@ -23,5 +23,5 @@
 #include "VBoxDiskImageManagerDlg.h"
 #include "VBoxToolBar.h"
-#include "QIRichLabel.h"
+#include "QILabel.h"
 #include "VBoxNewHDWzd.h"
 #include "VBoxProblemReporter.h"
@@ -192,10 +192,10 @@
 };
 
-class InfoPaneLabel : public QIRichLabel
+class InfoPaneLabel : public QILabel
 {
 public:
 
     InfoPaneLabel (QWidget *aParent, QLabel *aLabel = 0)
-        : QIRichLabel (aParent), mLabel (aLabel) {}
+        : QILabel (aParent), mLabel (aLabel) {}
 
     QLabel* label() const { return mLabel; }
Index: trunk/src/VBox/Frontends/VirtualBox4/src/VBoxRegistrationDlg.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/src/VBoxRegistrationDlg.cpp	(revision 9385)
+++ trunk/src/VBox/Frontends/VirtualBox4/src/VBoxRegistrationDlg.cpp	(revision 9386)
@@ -244,7 +244,4 @@
              this, SLOT (revalidate (QIWidgetValidator *)));
     connect (mTimeout, SIGNAL (timeout()), this, SLOT (processTimeout()));
-    /* TODO: Implement mouse on link click for QILabel:
-     * connect (mTextRegInfo, SIGNAL (clickedOnLink (const QString &)),
-     *          &vboxGlobal(), SLOT (openURL (const QString &))); */
 
     /* Setup initial dialog parameters. */
Index: trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxGlobalSettingsDlg.ui
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxGlobalSettingsDlg.ui	(revision 9385)
+++ trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxGlobalSettingsDlg.ui	(revision 9386)
@@ -1308,9 +1308,9 @@
     <include location="local" impldecl="in implementation">VBoxProblemReporter.h</include>
     <include location="local" impldecl="in implementation">VBoxUSBFilterSettings.h</include>
-    <include location="local" impldecl="in implementation">QIRichLabel.h</include>
+    <include location="local" impldecl="in implementation">QILabel.h</include>
 </includes>
 <forwards>
     <forward>class VBoxUSBMenu</forward>
-    <forward>class QIRichLabel</forward>
+    <forward>class QILabel</forward>
 </forwards>
 <variables>
@@ -1327,5 +1327,5 @@
     <variable access="private">VBoxUSBMenu *usbDevicesMenu;</variable>
     <variable access="private">bool mLanguageChanged;</variable>
-    <variable access="private">QIRichLabel *whatsThisLabel;</variable>
+    <variable access="private">QILabel *whatsThisLabel;</variable>
 </variables>
 <slots>
Index: trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxGlobalSettingsDlg.ui.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxGlobalSettingsDlg.ui.h	(revision 9385)
+++ trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxGlobalSettingsDlg.ui.h	(revision 9386)
@@ -30,4 +30,6 @@
 *****************************************************************************/
 
+#include "QILabel.h"
+
 #include <iprt/err.h>
 #include <iprt/param.h>
@@ -303,5 +305,5 @@
 
 #warning port me
-    whatsThisLabel = new QIRichLabel (this);
+    whatsThisLabel = new QILabel (this);
 //    VBoxGlobalSettingsDlgLayout->addWidget (whatsThisLabel, 2, 1);
 
Index: trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxNewHDWzd.ui
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxNewHDWzd.ui	(revision 9385)
+++ trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxNewHDWzd.ui	(revision 9386)
@@ -948,5 +948,5 @@
    <class>QILabel</class>
    <extends>QLabel</extends>
-   <header>QIAbstractWizard.h</header>
+   <header>QILabel.h</header>
   </customwidget>
   <customwidget>
Index: trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxNewVMWzd.ui
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxNewVMWzd.ui	(revision 9385)
+++ trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxNewVMWzd.ui	(revision 9386)
@@ -1213,5 +1213,5 @@
    <class>QILabel</class>
    <extends>QLabel</extends>
-   <header>QIAbstractWizard.h</header>
+   <header>QILabel.h</header>
   </customwidget>
   <customwidget>
Index: trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxRegistrationDlg.ui
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxRegistrationDlg.ui	(revision 9385)
+++ trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxRegistrationDlg.ui	(revision 9386)
@@ -255,5 +255,5 @@
    <class>QILabel</class>
    <extends>QLabel</extends>
-   <header>QIAbstractWizard.h</header>
+   <header>QILabel.h</header>
   </customwidget>
  </customwidgets>
Index: trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxVMFirstRunWzd.ui
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxVMFirstRunWzd.ui	(revision 9385)
+++ trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxVMFirstRunWzd.ui	(revision 9386)
@@ -849,5 +849,5 @@
    <class>QILabel</class>
    <extends>QLabel</extends>
-   <header>QIAbstractWizard.h</header>
+   <header>QILabel.h</header>
   </customwidget>
   <customwidget>
