Index: trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 24001)
+++ trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 24002)
@@ -267,5 +267,4 @@
 	include/QIMessageBox.h \
 	include/QILabel.h \
-	include/QILabel_p.h \
 	include/QILabelSeparator.h \
 	include/QIAbstractWizard.h \
Index: trunk/src/VBox/Frontends/VirtualBox/include/QILabel.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/include/QILabel.h	(revision 24001)
+++ trunk/src/VBox/Frontends/VirtualBox/include/QILabel.h	(revision 24002)
@@ -6,5 +6,5 @@
 
 /*
- * Copyright (C) 2006-2008 Sun Microsystems, Inc.
+ * Copyright (C) 2006-2009 Sun Microsystems, Inc.
  *
  * This file is part of VirtualBox Open Source Edition (OSE), as
@@ -28,10 +28,8 @@
 #define __QILabel_h__
 
-/* Qt includes */
-#include <QFrame>
+/* Global includes */
+#include <QLabel>
 
-class QILabelPrivate;
-
-class QILabel: public QWidget
+class QILabel: public QLabel
 {
     Q_OBJECT;
@@ -39,66 +37,56 @@
 public:
 
-    QILabel (QWidget *aParent = NULL, Qt::WindowFlags aFlags = 0);
-    QILabel (const QString &aText, QWidget *aParent = NULL, Qt::WindowFlags aFlags = 0);
+    QILabel (QWidget *aParent = 0, Qt::WindowFlags aFlags = 0);
+    QILabel (const QString &aText, QWidget *aParent = 0, Qt::WindowFlags aFlags = 0);
 
-    /* QLabel extensions */
-    bool fullSizeSelection () const;
-    void setFullSizeSelection (bool bOn);
+    /* Focusing extensions */
+    bool fullSizeSelection() const;
+    void setFullSizeSelection (bool aEnabled);
 
-    void updateSizeHint();
+    /* Size-Hint extensions */
+    void useSizeHintForWidth (int aWidthHint) const;
+    QSize sizeHint() const;
+    QSize minimumSizeHint() const;
 
     /* Default QLabel methods */
-    Qt::Alignment alignment() const;
-    QWidget * buddy() const;
-    int frameWidth() 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 setFrameShadow (QFrame::Shadow aShadow);
-    void setFrameShape (QFrame::Shape aShape);
-    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);
-    void setMinimumWidth (int aMinWidth);
     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 &);
+    void copy();
 
 protected:
 
-    virtual void init();
+    void resizeEvent (QResizeEvent *aEvent);
+    void mousePressEvent (QMouseEvent *aEvent);
+    void mouseReleaseEvent (QMouseEvent *aEvent);
+    void mouseMoveEvent (QMouseEvent *aEvent);
+    void contextMenuEvent (QContextMenuEvent *aEvent);
+    void focusInEvent (QFocusEvent *aEvent);
+    void focusOutEvent (QFocusEvent *aEvent);
+    void paintEvent (QPaintEvent *aEvent);
 
-    /* Protected member vars */
-    QILabelPrivate *mLabel;
+private:
+
+    void init();
+
+    void updateSizeHint() const;
+    void setFullText (const QString &aText);
+    void updateText();
+    QString removeHtmlTags (QString aText) const;
+    Qt::TextElideMode toTextElideMode (const QString& aStr) const;
+    QString compressText (const QString &aText) const;
+
+    QString mText;
+    bool mFullSizeSelection;
+    static const QRegExp mCopyRegExp;
+    static QRegExp mElideRegExp;
+    mutable bool mIsHintValid;
+    mutable int mWidthHint;
+    mutable QSize mOwnSizeHint;
+    bool mStartDragging;
+    QAction *mCopyAction;
 };
 
Index: trunk/src/VBox/Frontends/VirtualBox/include/QILabel_p.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/include/QILabel_p.h	(revision 24001)
+++ 	(revision )
@@ -1,149 +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 QAction;
-
-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();
-    }
-
-    QSize minimumSizeHint() const
-    {
-        /* If there is an updated minimumSizeHint() present - using it. */
-        return mOwnSizeHint.isValid() ? mOwnSizeHint : QLabel::minimumSizeHint();
-    }
-
-protected:
-
-    void resizeEvent (QResizeEvent *aEvent);
-    void mousePressEvent (QMouseEvent *aEvent);
-    void mouseReleaseEvent (QMouseEvent *aEvent);
-    void mouseMoveEvent (QMouseEvent *aEvent);
-    void contextMenuEvent (QContextMenuEvent *aEvent);
-    void focusInEvent (QFocusEvent *aEvent);
-    void focusOutEvent (QFocusEvent *aEvent);
-    void paintEvent (QPaintEvent *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;
-    bool mStartDragging;
-    QAction *mCopyAction;
-};
-
-#endif // __QILabel_p_h__
-
Index: trunk/src/VBox/Frontends/VirtualBox/src/QIAbstractWizard.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/QIAbstractWizard.cpp	(revision 24001)
+++ trunk/src/VBox/Frontends/VirtualBox/src/QIAbstractWizard.cpp	(revision 24002)
@@ -176,5 +176,5 @@
         findChildren<QILabel*> (QRegExp ("mText.+"));
     for (int i = 0; i < textLabels.count(); ++ i)
-        textLabels [i]->updateSizeHint();
+        textLabels [i]->useSizeHintForWidth (400);
 
     /* Update sizeHint() of summary viewer of inherited dialog.
@@ -183,5 +183,8 @@
     QITextEdit *teSummary = findChild<QITextEdit*> ("mTeSummary");
     if (teSummary)
+    {
+        teSummary->setMinimumWidth (400);
         teSummary->updateSizeHint();
+    }
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/QILabel.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/QILabel.cpp	(revision 24001)
+++ trunk/src/VBox/Frontends/VirtualBox/src/QILabel.cpp	(revision 24002)
@@ -25,270 +25,46 @@
  */
 
-#include "QILabel.h"
-#include "QILabel_p.h"
-#include "VBoxGlobal.h"
-
-/* Qt includes */
-#include <QHBoxLayout>
+/* Global includes */
+#include <QApplication>
 #include <QClipboard>
-#include <QApplication>
+#include <QContextMenuEvent>
+#include <QFocusEvent>
+#include <QMenu>
+#include <QMimeData>
+#include <QMouseEvent>
 #include <QPainter>
 #include <QStyleOptionFocusRect>
-#include <QMouseEvent>
-#include <QMimeData>
-#include <QContextMenuEvent>
-#include <QFocusEvent>
-
-/* @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)
+
+/* Local inclused */
+#include "QILabel.h"
+
+/* Some constant predefines */
+const QRegExp QILabel::mCopyRegExp = QRegExp ("<[^>]*>");
+QRegExp QILabel::mElideRegExp = QRegExp ("(<compact\\s+elipsis=\"(start|middle|end)\"?>([^<]*)</compact>)");
+
+#define HOR_PADDING 1
+
+QILabel::QILabel (QWidget *aParent /* = 0 */, Qt::WindowFlags aFlags /* = 0 */)
+    : QLabel (aParent, aFlags)
 {
     init();
 }
 
-QILabel::QILabel (const QString &aText, QWidget *aParent /* = NULL */, Qt::WindowFlags aFlags /* = 0 */)
-    : QWidget (aParent, aFlags)
-    , mLabel (NULL)
+QILabel::QILabel (const QString &aText, QWidget *aParent /* = 0 */, Qt::WindowFlags aFlags /* = 0 */)
+    : QLabel (aParent, aFlags)
 {
     init();
-    mLabel->setFullText (aText);
+    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();
-}
-
-int QILabel::frameWidth() const
-{
-    return mLabel->frameWidth();
-}
-
-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::setFrameShadow (QFrame::Shadow aShadow)
-{
-    mLabel->setFrameShadow (aShadow);
-}
-
-void QILabel::setFrameShape (QFrame::Shape aShape)
-{
-    mLabel->setFrameShape (aShape);
-}
-
-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);
-}
-
-void QILabel::setMinimumWidth (int aMinWidth)
-{
-    mLabel->setMinimumWidth (aMinWidth);
-    QWidget::setMinimumWidth (aMinWidth);
-}
-
-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);
-
-    /* If QILabel forced to be fixed vertically */
-    if (minimumHeight() == maximumHeight())
-    {
-        /* Check if new text requires label growing */
-        QSize sh (mLabel->width(), mLabel->heightForWidth (mLabel->width()));
-        if (sh.height() > minimumHeight())
-            setFixedHeight (sh.height());
-    }
-}
-
-/* QILabelPrivate implementation: */
-
-/* Some constant predefines */
-const QRegExp QILabelPrivate::mCopyRegExp = QRegExp ("<[^>]*>");
-QRegExp QILabelPrivate::mElideRegExp = QRegExp ("(<compact\\s+elipsis=\"(start|middle|end)\"?>([^<]*)</compact>)");
-
-#define HOR_PADDING 1
-
-bool QILabelPrivate::fullSizeSelection () const
-{
-    return mFullSizeSeclection;
-}
-
-void QILabelPrivate::setFullSizeSelection (bool bOn)
-{
-    mFullSizeSeclection = bOn;
-    if (mFullSizeSeclection)
+    return mFullSizeSelection;
+}
+
+void QILabel::setFullSizeSelection (bool aEnabled)
+{
+    mFullSizeSelection = aEnabled;
+    if (mFullSizeSelection)
     {
         /* Enable mouse interaction only */
@@ -303,10 +79,10 @@
          * around the label. So this is done manually in the paintEvent. Not
          * sure if the stylesheet stuff is ready for production environments. */
-        setStyleSheet (QString("QLabel::focus {\
-                               background-color: palette(highlight);\
-                               }\
-                               QLabel {\
-                               padding: 0px %1px 0px %1px;\
-                               }").arg (HOR_PADDING));
+        setStyleSheet (QString ("QLabel::focus {\
+                                background-color: palette(highlight);\
+                                }\
+                                QLabel {\
+                                padding: 0px %1px 0px %1px;\
+                                }").arg (HOR_PADDING));
     }
     else
@@ -321,5 +97,62 @@
 }
 
-void QILabelPrivate::resizeEvent (QResizeEvent *aEvent)
+void QILabel::useSizeHintForWidth (int aWidthHint) const
+{
+    mWidthHint = aWidthHint;
+    updateSizeHint();
+}
+
+QSize QILabel::sizeHint() const
+{
+    if (!mIsHintValid)
+        updateSizeHint();
+
+    /* If there is an updated sizeHint() present - using it. */
+    return mOwnSizeHint.isValid() ? mOwnSizeHint : QLabel::sizeHint();
+}
+
+QSize QILabel::minimumSizeHint() const
+{
+    if (!mIsHintValid)
+        updateSizeHint();
+
+    /* If there is an updated minimumSizeHint() present - using it. */
+    return mOwnSizeHint.isValid() ? mOwnSizeHint : QLabel::minimumSizeHint();
+}
+
+QString QILabel::text() const
+{
+    return mText;
+}
+
+void QILabel::clear()
+{
+    QLabel::clear();
+    setFullText ("");
+}
+
+void QILabel::setText (const QString &aText)
+{
+    setFullText (aText);
+
+    /* If QILabel forced to be fixed vertically */
+    if (minimumHeight() == maximumHeight())
+    {
+        /* Check if new text requires label growing */
+        QSize sh (width(), heightForWidth (width()));
+        if (sh.height() > minimumHeight())
+            setFixedHeight (sh.height());
+    }
+}
+
+void QILabel::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 QILabel::resizeEvent (QResizeEvent *aEvent)
 {
     QLabel::resizeEvent (aEvent);
@@ -328,9 +161,7 @@
 }
 
-void QILabelPrivate::mousePressEvent (QMouseEvent *aEvent)
-{
-    if (aEvent->button() == Qt::LeftButton &&
-        geometry().contains (aEvent->pos()) &&
-        mFullSizeSeclection)
+void QILabel::mousePressEvent (QMouseEvent *aEvent)
+{
+    if (aEvent->button() == Qt::LeftButton && geometry().contains (aEvent->pos()) && mFullSizeSelection)
         mStartDragging = true;
     else
@@ -338,5 +169,5 @@
 }
 
-void QILabelPrivate::mouseReleaseEvent (QMouseEvent *aEvent)
+void QILabel::mouseReleaseEvent (QMouseEvent *aEvent)
 {
     mStartDragging = false;
@@ -344,5 +175,5 @@
 }
 
-void QILabelPrivate::mouseMoveEvent (QMouseEvent *aEvent)
+void QILabel::mouseMoveEvent (QMouseEvent *aEvent)
 {
     if (mStartDragging)
@@ -365,7 +196,7 @@
 }
 
-void QILabelPrivate::contextMenuEvent (QContextMenuEvent *aEvent)
-{
-    if (mFullSizeSeclection)
+void QILabel::contextMenuEvent (QContextMenuEvent *aEvent)
+{
+    if (mFullSizeSelection)
     {
         /* Create a context menu for the copy to clipboard action. */
@@ -374,11 +205,12 @@
         menu.addAction (mCopyAction);
         menu.exec (aEvent->globalPos());
-    } else
+    }
+    else
         QLabel::contextMenuEvent (aEvent);
 }
 
-void QILabelPrivate::focusInEvent (QFocusEvent * /* aEvent */)
-{
-    if (mFullSizeSeclection)
+void QILabel::focusInEvent (QFocusEvent * /* aEvent */)
+{
+    if (mFullSizeSelection)
     {
         /* Set the text color to the current used highlight text color. */
@@ -389,18 +221,16 @@
 }
 
-void QILabelPrivate::focusOutEvent (QFocusEvent *aEvent)
+void QILabel::focusOutEvent (QFocusEvent *aEvent)
 {
     /* Reset to the default palette */
-    if (mFullSizeSeclection &&
-        aEvent->reason() != Qt::PopupFocusReason) /* For right mouse click */
+    if (mFullSizeSelection && aEvent->reason() != Qt::PopupFocusReason)
         setPalette (qApp->palette());
 }
 
-void QILabelPrivate::paintEvent (QPaintEvent *aEvent)
+void QILabel::paintEvent (QPaintEvent *aEvent)
 {
     QLabel::paintEvent (aEvent);
 
-    if (mFullSizeSeclection &&
-        hasFocus())
+    if (mFullSizeSelection && hasFocus())
     {
         QPainter painter (this);
@@ -412,18 +242,11 @@
 }
 
-
-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()
-{
+void QILabel::init()
+{
+    /* Initial setup */
+    mIsHintValid = false;
+    mWidthHint = -1;
     mStartDragging = false;
     setFullSizeSelection (false);
-    /* Open links with the QDesktopService */
     setOpenExternalLinks (true);
 
@@ -436,5 +259,22 @@
 }
 
-void QILabelPrivate::updateText()
+void QILabel::updateSizeHint() const
+{
+    mOwnSizeHint = mWidthHint == -1 ? QSize() : QSize (mWidthHint, heightForWidth (mWidthHint));
+    mIsHintValid = true;
+}
+
+void QILabel::setFullText (const QString &aText)
+{
+    QSizePolicy sp = sizePolicy();
+    sp.setHeightForWidth (wordWrap());
+    setSizePolicy (sp);
+    mIsHintValid = false;
+
+    mText = aText;
+    updateText();
+}
+
+void QILabel::updateText()
 {
     QString comp = compressText (mText);
@@ -448,5 +288,24 @@
 }
 
-QString QILabelPrivate::compressText (const QString &aText) const
+QString QILabel::removeHtmlTags (QString aText) const
+{
+    /* Remove all HTML tags from the text and return it. */
+    return QString(aText).remove (mCopyRegExp);
+}
+
+Qt::TextElideMode QILabel::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 QILabel::compressText (const QString &aText) const
 {
     QStringList strResult;
@@ -470,13 +329,6 @@
             /* Create the shortened text */
             QString newStr = fm.elidedText (elideStr, toTextElideMode (elideModeStr), width() - (2 * HOR_PADDING) - flatWidth);
-            /* Replace the compact part with the shortened text in the initial
-             * string */
+            /* 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;
@@ -484,3 +336,2 @@
     return strResult.join ("<br />");
 }
-
Index: trunk/src/VBox/Frontends/VirtualBox/src/QIMessageBox.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/QIMessageBox.cpp	(revision 24001)
+++ trunk/src/VBox/Frontends/VirtualBox/src/QIMessageBox.cpp	(revision 24002)
@@ -363,6 +363,6 @@
         resize (minimumSizeHint());
         qApp->processEvents();
-        mTextLabel->setMinimumWidth (mTextLabel->width());
-        mTextLabel->updateSizeHint();
+        mTextLabel->useSizeHintForWidth (mTextLabel->width());
+        mTextLabel->updateGeometry();
         qApp->processEvents();
         setFixedWidth (width());
@@ -378,5 +378,4 @@
     /* Update message text iteself */
     mTextLabel->setText (mText + mDetailsList [mDetailsIndex].first);
-    mTextLabel->updateSizeHint();
     /* Update details table */
     mDetailsText->setText (mDetailsList [mDetailsIndex].second);
Index: trunk/src/VBox/Frontends/VirtualBox/src/VBoxGLSettingsLanguage.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/VBoxGLSettingsLanguage.cpp	(revision 24001)
+++ trunk/src/VBox/Frontends/VirtualBox/src/VBoxGLSettingsLanguage.cpp	(revision 24002)
@@ -193,5 +193,4 @@
              this, SLOT (mTwLanguageChanged (QTreeWidgetItem *, QTreeWidgetItem *)));
 
-    mTxName->setMinimumHeight (fontMetrics().height() * 4);
     /* Applying language settings */
     retranslateUi();
@@ -202,4 +201,5 @@
 {
     reload (aGs.languageId());
+    mTxName->setFixedHeight (fontMetrics().height() * 4);
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/ui/VBoxGLSettingsLanguage.ui
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/ui/VBoxGLSettingsLanguage.ui	(revision 24001)
+++ trunk/src/VBox/Frontends/VirtualBox/ui/VBoxGLSettingsLanguage.ui	(revision 24002)
@@ -113,5 +113,5 @@
    </item>
    <item row="2" column="2" >
-    <widget class="QLabel" name="mTxName" >
+    <widget class="QILabel" name="mTxName" >
      <property name="sizePolicy" >
       <sizepolicy vsizetype="Minimum" hsizetype="Expanding" >
@@ -136,4 +136,9 @@
    <header>QITreeWidget.h</header>
   </customwidget>
+  <customwidget>
+   <class>QILabel</class>
+   <extends>QLabel</extends>
+   <header>QILabel.h</header>
+  </customwidget>
  </customwidgets>
  <resources/>
