Index: trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 71861)
+++ trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 71863)
@@ -440,5 +440,4 @@
 VirtualBox_QT_MOCHDRS = \
 	src/UITakeSnapshotDialog.h \
-	src/extensions/QIAdvancedSlider.h \
 	src/extensions/QIComboBox.h \
 	src/extensions/QIFlowLayout.h \
@@ -651,4 +650,5 @@
 	src/VBoxAboutDlg.h \
 	src/VBoxLicenseViewer.h \
+	src/extensions/QIAdvancedSlider.h \
 	src/extensions/QIArrowButtonPress.h \
 	src/extensions/QIArrowButtonSwitch.h \
@@ -723,4 +723,5 @@
 	src/VBoxAboutDlg.h \
 	src/VBoxLicenseViewer.h \
+	src/extensions/QIAdvancedSlider.h \
 	src/extensions/QIArrowButtonPress.h \
 	src/extensions/QIArrowButtonSwitch.h \
@@ -826,6 +827,7 @@
 ifndef VBOX_GUI_WITH_SHARED_LIBRARY
  VirtualBox_QT_MOCSRCS += \
+	src/extensions/QIAdvancedSlider.cpp \
+	src/extensions/QIArrowSplitter.cpp \
 	src/extensions/QISplitter.cpp \
-	src/extensions/QIArrowSplitter.cpp \
 	src/extradata/UIExtraDataManager.cpp \
 	src/globals/UIActionPool.cpp \
@@ -863,6 +865,7 @@
 #
 VBoxGlobal_QT_MOCSRCS = \
+	src/extensions/QIAdvancedSlider.cpp \
+	src/extensions/QIArrowSplitter.cpp \
 	src/extensions/QISplitter.cpp \
-	src/extensions/QIArrowSplitter.cpp \
 	src/extradata/UIExtraDataManager.cpp \
 	src/globals/UIActionPool.cpp \
@@ -901,5 +904,4 @@
 	src/main.cpp \
 	src/UITakeSnapshotDialog.cpp \
-	src/extensions/QIAdvancedSlider.cpp \
 	src/extensions/QIComboBox.cpp \
 	src/extensions/QIFlowLayout.cpp \
@@ -1145,4 +1147,5 @@
 	src/VBoxAboutDlg.cpp \
 	src/VBoxLicenseViewer.cpp \
+	src/extensions/QIAdvancedSlider.cpp \
 	src/extensions/QIArrowButtonPress.cpp \
 	src/extensions/QIArrowButtonSwitch.cpp \
@@ -1244,4 +1247,5 @@
 	src/VBoxAboutDlg.cpp \
 	src/VBoxLicenseViewer.cpp \
+	src/extensions/QIAdvancedSlider.cpp \
 	src/extensions/QIArrowButtonPress.cpp \
 	src/extensions/QIArrowButtonSwitch.cpp \
Index: trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIAdvancedSlider.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIAdvancedSlider.cpp	(revision 71861)
+++ trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIAdvancedSlider.cpp	(revision 71863)
@@ -1,9 +1,9 @@
 /* $Id$ */
 /** @file
- * VBox Qt GUI - VirtualBox Qt extensions: QIAdvancedSlider class implementation.
+ * VBox Qt GUI - Qt extensions: QIAdvancedSlider class implementation.
  */
 
 /*
- * Copyright (C) 2009-2017 Oracle Corporation
+ * Copyright (C) 2009-2018 Oracle Corporation
  *
  * This file is part of VirtualBox Open Source Edition (OSE), as
@@ -20,130 +20,173 @@
 #else  /* !VBOX_WITH_PRECOMPILED_HEADERS */
 
+/* Qt includes: */
+# include <QPainter>
+# include <QSlider>
+# include <QStyle>
+# include <QVBoxLayout>
+
+/* GUI includes: */
 # include "QIAdvancedSlider.h"
 
-/* Qt includes */
-# include <QVBoxLayout>
-# include <QPainter>
-# include <QStyle>
-
 #endif /* !VBOX_WITH_PRECOMPILED_HEADERS */
 
+/* Qt includes: */
 #include <QStyleOptionSlider>
 
-/* System includes */
+/* External includes: */
 #include <math.h>
 
 
-
-class CPrivateSlider : public QSlider
-{
+/** QSlider subclass for our private needs. */
+class UIPrivateSlider : public QSlider
+{
+    Q_OBJECT;
+
 public:
-    CPrivateSlider(Qt::Orientation fOrientation, QWidget *pParent = 0)
-      : QSlider(fOrientation, pParent)
-      , m_optColor(0x0, 0xff, 0x0, 0x3c)
-      , m_wrnColor(0xff, 0x54, 0x0, 0x3c)
-      , m_errColor(0xff, 0x0, 0x0, 0x3c)
-      , m_minOpt(-1)
-      , m_maxOpt(-1)
-      , m_minWrn(-1)
-      , m_maxWrn(-1)
-      , m_minErr(-1)
-      , m_maxErr(-1)
-    {
-        /* Make sure ticks *always* positioned below: */
-        setTickPosition(QSlider::TicksBelow);
-    }
-
-    int positionForValue(int val) const
-    {
-        QStyleOptionSlider opt;
-        initStyleOption(&opt);
-        opt.subControls = QStyle::SC_All;
-        int available = opt.rect.width() - style()->pixelMetric(QStyle::PM_SliderLength, &opt, this);
-        return QStyle::sliderPositionFromValue(opt.minimum, opt.maximum, val, available);
-    }
-
-    virtual void paintEvent(QPaintEvent *pEvent)
-    {
-        QPainter p(this);
-
-        QStyleOptionSlider opt;
-        initStyleOption(&opt);
-        opt.subControls = QStyle::SC_All;
-
-        int available = opt.rect.width() - style()->pixelMetric(QStyle::PM_SliderLength, &opt, this);
-        QSize s = size();
-
-        /* We want to acquire SC_SliderTickmarks sub-control rectangle
-         * and fill it with necessary background colors: */
+
+    /** Constructs private-slider passing @a pParent and @a enmOrientation to the base-class. */
+    UIPrivateSlider(Qt::Orientation enmOrientation, QWidget *pParent = 0);
+
+    /** Returns suitable position for @a iValue. */
+    int positionForValue(int iValue) const;
+
+    /** @todo encapsulate below stuff accordingly.. */
+
+    /** Holds the minimum optimal border. */
+    int m_minOpt;
+    /** Holds the maximum optimal border. */
+    int m_maxOpt;
+    /** Holds the minimum warning border. */
+    int m_minWrn;
+    /** Holds the maximum warning border. */
+    int m_maxWrn;
+    /** Holds the minimum error border. */
+    int m_minErr;
+    /** Holds the maximum error border. */
+    int m_maxErr;
+
+protected:
+
+    /** Handles paint @a pEvent. */
+    virtual void paintEvent(QPaintEvent *pEvent);
+
+private:
+
+    /** Holds the optimal color. */
+    QColor m_optColor;
+    /** Holds the warning color. */
+    QColor m_wrnColor;
+    /** Holds the error color. */
+    QColor m_errColor;
+};
+
+
+/*********************************************************************************************************************************
+*   Class UIPrivateSlider implementation.                                                                                        *
+*********************************************************************************************************************************/
+
+UIPrivateSlider::UIPrivateSlider(Qt::Orientation enmOrientation, QWidget *pParent /* = 0 */)
+    : QSlider(enmOrientation, pParent)
+    , m_optColor(0x0, 0xff, 0x0, 0x3c)
+    , m_wrnColor(0xff, 0x54, 0x0, 0x3c)
+    , m_errColor(0xff, 0x0, 0x0, 0x3c)
+    , m_minOpt(-1)
+    , m_maxOpt(-1)
+    , m_minWrn(-1)
+    , m_maxWrn(-1)
+    , m_minErr(-1)
+    , m_maxErr(-1)
+{
+    /* Make sure ticks *always* positioned below: */
+    setTickPosition(QSlider::TicksBelow);
+}
+
+int UIPrivateSlider::positionForValue(int iValue) const
+{
+    QStyleOptionSlider opt;
+    initStyleOption(&opt);
+    opt.subControls = QStyle::SC_All;
+    int iAvailable = opt.rect.width() - style()->pixelMetric(QStyle::PM_SliderLength, &opt, this);
+    return QStyle::sliderPositionFromValue(opt.minimum, opt.maximum, iValue, iAvailable);
+}
+
+void UIPrivateSlider::paintEvent(QPaintEvent *pEvent)
+{
+    QPainter p(this);
+
+    QStyleOptionSlider opt;
+    initStyleOption(&opt);
+    opt.subControls = QStyle::SC_All;
+
+    int iAvailable = opt.rect.width() - style()->pixelMetric(QStyle::PM_SliderLength, &opt, this);
+    QSize s = size();
+
+    /* We want to acquire SC_SliderTickmarks sub-control rectangle
+     * and fill it with necessary background colors: */
 #ifdef VBOX_WS_MAC
-        /* Under MacOS X SC_SliderTickmarks is not fully reliable
-         * source of the information we need, providing us with incorrect width.
-         * So we have to calculate tickmarks rectangle ourself: */
-        QRect ticks = style()->subControlRect(QStyle::CC_Slider, &opt, QStyle::SC_SliderTickmarks, this);
-        ticks.setRect((s.width() - available) / 2, s.height() - ticks.y(), available, ticks.height());
+    // WORKAROUND:
+    // Under MacOS X SC_SliderTickmarks is not fully reliable
+    // source of the information we need, providing us with incorrect width.
+    // So we have to calculate tickmarks rectangle ourself.
+    QRect ticks = style()->subControlRect(QStyle::CC_Slider, &opt, QStyle::SC_SliderTickmarks, this);
+    ticks.setRect((s.width() - iAvailable) / 2, s.height() - ticks.y(), iAvailable, ticks.height());
 #else /* VBOX_WS_MAC */
-        /* Under Windows SC_SliderTickmarks is fully unreliable
-         * source of the information we need, providing us with empty rectangle.
-         * Under X11 SC_SliderTickmarks is not fully reliable
-         * source of the information we need, providing us with different rectangles
-         * (correct or incorrect) under different look&feel styles.
-         * So we have to calculate tickmarks rectangle ourself: */
-        QRect ticks = style()->subControlRect(QStyle::CC_Slider, &opt, QStyle::SC_SliderHandle, this) |
-                      style()->subControlRect(QStyle::CC_Slider, &opt, QStyle::SC_SliderGroove, this);
-        ticks.setRect((s.width() - available) / 2, ticks.bottom() + 1, available, s.height() - ticks.bottom() - 1);
+    // WORKAROUND:
+    // Under Windows SC_SliderTickmarks is fully unreliable
+    // source of the information we need, providing us with empty rectangle.
+    // Under X11 SC_SliderTickmarks is not fully reliable
+    // source of the information we need, providing us with different rectangles
+    // (correct or incorrect) under different look&feel styles.
+    // So we have to calculate tickmarks rectangle ourself.
+    QRect ticks = style()->subControlRect(QStyle::CC_Slider, &opt, QStyle::SC_SliderHandle, this) |
+                  style()->subControlRect(QStyle::CC_Slider, &opt, QStyle::SC_SliderGroove, this);
+    ticks.setRect((s.width() - iAvailable) / 2, ticks.bottom() + 1, iAvailable, s.height() - ticks.bottom() - 1);
 #endif /* VBOX_WS_MAC */
 
-        if ((m_minOpt != -1 &&
-             m_maxOpt != -1) &&
-            m_minOpt != m_maxOpt)
-        {
-            int posMinOpt = QStyle::sliderPositionFromValue(opt.minimum, opt.maximum, m_minOpt, available);
-            int posMaxOpt = QStyle::sliderPositionFromValue(opt.minimum, opt.maximum, m_maxOpt, available);
-            p.fillRect(ticks.x() + posMinOpt, ticks.y(), posMaxOpt - posMinOpt + 1, ticks.height(), m_optColor);
-        }
-        if ((m_minWrn != -1 &&
-             m_maxWrn != -1) &&
-            m_minWrn != m_maxWrn)
-        {
-            int posMinWrn = QStyle::sliderPositionFromValue(opt.minimum, opt.maximum, m_minWrn, available);
-            int posMaxWrn = QStyle::sliderPositionFromValue(opt.minimum, opt.maximum, m_maxWrn, available);
-            p.fillRect(ticks.x() + posMinWrn, ticks.y(), posMaxWrn - posMinWrn + 1, ticks.height(), m_wrnColor);
-        }
-        if ((m_minErr != -1 &&
-             m_maxErr != -1) &&
-            m_minErr != m_maxErr)
-        {
-            int posMinErr = QStyle::sliderPositionFromValue(opt.minimum, opt.maximum, m_minErr, available);
-            int posMaxErr = QStyle::sliderPositionFromValue(opt.minimum, opt.maximum, m_maxErr, available);
-            p.fillRect(ticks.x() + posMinErr, ticks.y(), posMaxErr - posMinErr + 1, ticks.height(), m_errColor);
-        }
-        p.end();
-
-        QSlider::paintEvent(pEvent);
-    }
-
-    QColor m_optColor;
-    QColor m_wrnColor;
-    QColor m_errColor;
-
-    int m_minOpt;
-    int m_maxOpt;
-    int m_minWrn;
-    int m_maxWrn;
-    int m_minErr;
-    int m_maxErr;
-};
+    if ((m_minOpt != -1 &&
+         m_maxOpt != -1) &&
+        m_minOpt != m_maxOpt)
+    {
+        int iPosMinOpt = QStyle::sliderPositionFromValue(opt.minimum, opt.maximum, m_minOpt, iAvailable);
+        int iPosMaxOpt = QStyle::sliderPositionFromValue(opt.minimum, opt.maximum, m_maxOpt, iAvailable);
+        p.fillRect(ticks.x() + iPosMinOpt, ticks.y(), iPosMaxOpt - iPosMinOpt + 1, ticks.height(), m_optColor);
+    }
+    if ((m_minWrn != -1 &&
+         m_maxWrn != -1) &&
+        m_minWrn != m_maxWrn)
+    {
+        int iPosMinWrn = QStyle::sliderPositionFromValue(opt.minimum, opt.maximum, m_minWrn, iAvailable);
+        int iPosMaxWrn = QStyle::sliderPositionFromValue(opt.minimum, opt.maximum, m_maxWrn, iAvailable);
+        p.fillRect(ticks.x() + iPosMinWrn, ticks.y(), iPosMaxWrn - iPosMinWrn + 1, ticks.height(), m_wrnColor);
+    }
+    if ((m_minErr != -1 &&
+         m_maxErr != -1) &&
+        m_minErr != m_maxErr)
+    {
+        int iPosMinErr = QStyle::sliderPositionFromValue(opt.minimum, opt.maximum, m_minErr, iAvailable);
+        int iPosMaxErr = QStyle::sliderPositionFromValue(opt.minimum, opt.maximum, m_maxErr, iAvailable);
+        p.fillRect(ticks.x() + iPosMinErr, ticks.y(), iPosMaxErr - iPosMinErr + 1, ticks.height(), m_errColor);
+    }
+    p.end();
+
+    /* Call to base-class: */
+    QSlider::paintEvent(pEvent);
+}
+
+
+/*********************************************************************************************************************************
+*   Class QIAdvancedSlider implementation.                                                                                       *
+*********************************************************************************************************************************/
 
 QIAdvancedSlider::QIAdvancedSlider(QWidget *pParent /* = 0 */)
   : QWidget(pParent)
 {
-    init();
-}
-
-QIAdvancedSlider::QIAdvancedSlider(Qt::Orientation fOrientation, QWidget *pParent /* = 0 */)
+    prepare();
+}
+
+QIAdvancedSlider::QIAdvancedSlider(Qt::Orientation enmOrientation, QWidget *pParent /* = 0 */)
   : QWidget(pParent)
 {
-    init(fOrientation);
+    prepare(enmOrientation);
 }
 
@@ -153,12 +196,12 @@
 }
 
-void QIAdvancedSlider::setRange(int minV, int maxV)
-{
-    m_pSlider->setRange(minV, maxV);
-}
-
-void QIAdvancedSlider::setMaximum(int val)
-{
-    m_pSlider->setMaximum(val);
+void QIAdvancedSlider::setRange(int iMin, int iMax)
+{
+    m_pSlider->setRange(iMin, iMax);
+}
+
+void QIAdvancedSlider::setMaximum(int iValue)
+{
+    m_pSlider->setMaximum(iValue);
 }
 
@@ -168,7 +211,7 @@
 }
 
-void QIAdvancedSlider::setMinimum(int val)
-{
-    m_pSlider->setMinimum(val);
+void QIAdvancedSlider::setMinimum(int iValue)
+{
+    m_pSlider->setMinimum(iValue);
 }
 
@@ -178,7 +221,7 @@
 }
 
-void QIAdvancedSlider::setPageStep(int val)
-{
-    m_pSlider->setPageStep(val);
+void QIAdvancedSlider::setPageStep(int iValue)
+{
+    m_pSlider->setPageStep(iValue);
 }
 
@@ -188,7 +231,7 @@
 }
 
-void QIAdvancedSlider::setSingleStep(int val)
-{
-    m_pSlider->setSingleStep(val);
+void QIAdvancedSlider::setSingleStep(int iValue)
+{
+    m_pSlider->setSingleStep(iValue);
 }
 
@@ -198,7 +241,7 @@
 }
 
-void QIAdvancedSlider::setTickInterval(int val)
-{
-    m_pSlider->setTickInterval(val);
+void QIAdvancedSlider::setTickInterval(int iValue)
+{
+    m_pSlider->setTickInterval(iValue);
 }
 
@@ -223,79 +266,92 @@
 }
 
-void QIAdvancedSlider::setOptimalHint(int min, int max)
-{
-    m_pSlider->m_minOpt = min;
-    m_pSlider->m_maxOpt = max;
+void QIAdvancedSlider::setOptimalHint(int iMin, int iMax)
+{
+    m_pSlider->m_minOpt = iMin;
+    m_pSlider->m_maxOpt = iMax;
 
     update();
 }
 
-void QIAdvancedSlider::setWarningHint(int min, int max)
-{
-    m_pSlider->m_minWrn = min;
-    m_pSlider->m_maxWrn = max;
+void QIAdvancedSlider::setWarningHint(int iMin, int iMax)
+{
+    m_pSlider->m_minWrn = iMin;
+    m_pSlider->m_maxWrn = iMax;
 
     update();
 }
 
-void QIAdvancedSlider::setErrorHint(int min, int max)
-{
-    m_pSlider->m_minErr = min;
-    m_pSlider->m_maxErr = max;
+void QIAdvancedSlider::setErrorHint(int iMin, int iMax)
+{
+    m_pSlider->m_minErr = iMin;
+    m_pSlider->m_maxErr = iMax;
 
     update();
 }
 
-void QIAdvancedSlider::setOrientation(Qt::Orientation fOrientation)
-{
-    m_pSlider->setOrientation(fOrientation);
-}
-
-void QIAdvancedSlider::setValue (int val)
-{
-    m_pSlider->setValue(val);
-}
-
-void QIAdvancedSlider::sltSliderMoved(int val)
-{
-    val = snapValue(val);
-    m_pSlider->setValue(val);
-    emit sliderMoved(val);
-}
-
-void QIAdvancedSlider::init(Qt::Orientation fOrientation /* = Qt::Horizontal */)
+void QIAdvancedSlider::setOrientation(Qt::Orientation enmOrientation)
+{
+    m_pSlider->setOrientation(enmOrientation);
+}
+
+void QIAdvancedSlider::setValue (int iValue)
+{
+    m_pSlider->setValue(iValue);
+}
+
+void QIAdvancedSlider::sltSliderMoved(int iValue)
+{
+    iValue = snapValue(iValue);
+    m_pSlider->setValue(iValue);
+    emit sliderMoved(iValue);
+}
+
+void QIAdvancedSlider::prepare(Qt::Orientation enmOrientation /* = Qt::Horizontal */)
 {
     m_fSnappingEnabled = false;
 
+    /* Create layout: */
     QVBoxLayout *pMainLayout = new QVBoxLayout(this);
-    pMainLayout->setContentsMargins(0, 0, 0, 0);
-    m_pSlider = new CPrivateSlider(fOrientation, this);
-    pMainLayout->addWidget(m_pSlider);
-
-    connect(m_pSlider, &CPrivateSlider::sliderMoved,    this, &QIAdvancedSlider::sltSliderMoved);
-    connect(m_pSlider, &CPrivateSlider::valueChanged,   this, &QIAdvancedSlider::valueChanged);
-    connect(m_pSlider, &CPrivateSlider::sliderPressed,  this, &QIAdvancedSlider::sliderPressed);
-    connect(m_pSlider, &CPrivateSlider::sliderReleased, this, &QIAdvancedSlider::sliderReleased);
-}
-
-int QIAdvancedSlider::snapValue(int val)
+    if (pMainLayout)
+    {
+        /* Configure layout: */
+        pMainLayout->setContentsMargins(0, 0, 0, 0);
+
+        /* Create private-slider: */
+        m_pSlider = new UIPrivateSlider(enmOrientation, this);
+        if (m_pSlider)
+        {
+            connect(m_pSlider, &UIPrivateSlider::sliderMoved,    this, &QIAdvancedSlider::sltSliderMoved);
+            connect(m_pSlider, &UIPrivateSlider::valueChanged,   this, &QIAdvancedSlider::valueChanged);
+            connect(m_pSlider, &UIPrivateSlider::sliderPressed,  this, &QIAdvancedSlider::sliderPressed);
+            connect(m_pSlider, &UIPrivateSlider::sliderReleased, this, &QIAdvancedSlider::sliderReleased);
+
+            /* Add into layout: */
+            pMainLayout->addWidget(m_pSlider);
+        }
+    }
+}
+
+int QIAdvancedSlider::snapValue(int iValue)
 {
     if (m_fSnappingEnabled &&
-        val > 2)
-    {
-        float l2 = log((float)val)/log(2.0);
-        int newVal = (int)pow((float)2, (int)qRound(l2)); /* The value to snap on */
-        int pos = m_pSlider->positionForValue(val); /* Get the relative screen pos for the original value */
-        int newPos = m_pSlider->positionForValue(newVal); /* Get the relative screen pos for the snap value */
-        if (abs(newPos - pos) < 5) /* 10 pixel snapping range */
+        iValue > 2)
+    {
+        float l2 = log((float)iValue)/log(2.0);
+        int iNewVal = (int)pow((float)2, (int)qRound(l2)); /* The value to snap on */
+        int iPos = m_pSlider->positionForValue(iValue); /* Get the relative screen pos for the original value */
+        int iNewPos = m_pSlider->positionForValue(iNewVal); /* Get the relative screen pos for the snap value */
+        if (abs(iNewPos - iPos) < 5) /* 10 pixel snapping range */
         {
-            val = newVal;
-            if (val > m_pSlider->maximum())
-                val = m_pSlider->maximum();
-            else if (val < m_pSlider->minimum())
-                val = m_pSlider->minimum();
+            iValue = iNewVal;
+            if (iValue > m_pSlider->maximum())
+                iValue = m_pSlider->maximum();
+            else if (iValue < m_pSlider->minimum())
+                iValue = m_pSlider->minimum();
         }
     }
-    return val;
-}
-
+    return iValue;
+}
+
+
+#include "QIAdvancedSlider.moc"
Index: trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIAdvancedSlider.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIAdvancedSlider.h	(revision 71861)
+++ trunk/src/VBox/Frontends/VirtualBox/src/extensions/QIAdvancedSlider.h	(revision 71863)
@@ -1,9 +1,9 @@
 /* $Id$ */
 /** @file
- * VBox Qt GUI - Qt extensions: QIAdvancedSlider class implementation
+ * VBox Qt GUI - Qt extensions: QIAdvancedSlider class declaration.
  */
 
 /*
- * Copyright (C) 2009-2017 Oracle Corporation
+ * Copyright (C) 2009-2018 Oracle Corporation
  *
  * This file is part of VirtualBox Open Source Edition (OSE), as
@@ -16,74 +16,115 @@
  */
 
-#ifndef __QIAdvancedSlider_h__
-#define __QIAdvancedSlider_h__
+#ifndef ___QIAdvancedSlider_h___
+#define ___QIAdvancedSlider_h___
 
-/* Qt includes */
-#include <QSlider>
+/* Qt includes: */
+#include <QWidget>
 
-class CPrivateSlider;
+/* GUI includes: */
+#include "UILibraryDefs.h"
 
-class QIAdvancedSlider: public QWidget
+/* Forward declarations: */
+class UIPrivateSlider;
+
+/** QWidget extension providing GUI with advanced QSlider functionality. */
+class SHARED_LIBRARY_STUFF QIAdvancedSlider : public QWidget
 {
     Q_OBJECT;
     Q_PROPERTY(int value READ value WRITE setValue);
 
+signals:
+
+    /** Notifies about value changed to @a iValue. */
+    void valueChanged(int iValue);
+
+    /** Notifies about slider moved to @a iValue. */
+    void sliderMoved(int iValue);
+
+    /** Notifies about slider pressed. */
+    void sliderPressed();
+    /** Notifies about slider released. */
+    void sliderReleased();
+
 public:
+
+    /** Constructs advanced-slider passing @a pParent to the base-class. */
     QIAdvancedSlider(QWidget *pParent = 0);
-    QIAdvancedSlider(Qt::Orientation fOrientation, QWidget *pParent = 0);
+    /** Constructs advanced-slider passing @a pParent to the base-class.
+      * @param  enmOrientation  Brings the slider orientation. */
+    QIAdvancedSlider(Qt::Orientation enmOrientation, QWidget *pParent = 0);
 
+    /** Returns the slider value. */
     int value() const;
 
-    void setRange(int minV, int maxV);
+    /** Defines the slider range to be from @a iMin to @a iMax. */
+    void setRange(int iMin, int iMax);
 
-    void setMaximum(int val);
+    /** Defines the slider @a iMaximum. */
+    void setMaximum(int iMaximum);
+    /** Returns the slider maximum. */
     int maximum() const;
 
-    void setMinimum(int val);
+    /** Defines the slider @a iMinimum. */
+    void setMinimum(int iMinimum);
+    /** Returns the slider minimum. */
     int minimum() const;
 
-    void setPageStep(int val);
+    /** Defines the slider @a iPageStep. */
+    void setPageStep(int iPageStep);
+    /** Returns the slider page step. */
     int pageStep() const;
 
+    /** Defines the slider @a iSingleStep. */
     void setSingleStep(int val);
+    /** Returns the slider single step. */
     int singelStep() const;
 
+    /** Defines the slider @a iTickInterval. */
     void setTickInterval(int val);
+    /** Returns the slider tick interval. */
     int tickInterval() const;
 
+    /** Returns the slider orientation. */
     Qt::Orientation orientation() const;
 
-    void setSnappingEnabled(bool fOn);
+    /** Defines whether snapping is @a fEnabled. */
+    void setSnappingEnabled(bool fEnabled);
+    /** Returns whether snapping is enabled. */
     bool isSnappingEnabled() const;
 
-    void setOptimalHint(int min, int max);
-    void setWarningHint(int min, int max);
-    void setErrorHint(int min, int max);
+    /** Defines the optimal hint to be from @a iMin to @a iMax. */
+    void setOptimalHint(int iMin, int iMax);
+    /** Defines the warning hint to be from @a iMin to @a iMax. */
+    void setWarningHint(int iMin, int iMax);
+    /** Defines the error hint to be from @a iMin to @a iMax. */
+    void setErrorHint(int iMin, int iMax);
 
 public slots:
 
-    void setOrientation(Qt::Orientation fOrientation);
-    void setValue(int val);
+    /** Defines the slider @a enmOrientation. */
+    void setOrientation(Qt::Orientation enmOrientation);
 
-signals:
-    void valueChanged(int);
-    void sliderMoved(int);
-    void sliderPressed();
-    void sliderReleased();
+    /** Defines current slider @a iValue. */
+    void setValue(int iValue);
 
 private slots:
 
-    void sltSliderMoved(int val);
+    /** Handles the slider move to @a iValue. */
+    void sltSliderMoved(int iValue);
 
 private:
 
-    void init(Qt::Orientation fOrientation = Qt::Horizontal);
-    int snapValue(int val);
+    /** Prepares all. */
+    void prepare(Qt::Orientation fOrientation = Qt::Horizontal);
 
-    /* Private member vars */
-    CPrivateSlider *m_pSlider;
-    bool m_fSnappingEnabled;
+    /** Returns snapped value for passed @a iValue. */
+    int snapValue(int iValue);
+
+    /** Holds the private QSlider instance. */
+    UIPrivateSlider *m_pSlider;
+    /** Holds the whether slider snapping is enabled. */
+    bool             m_fSnappingEnabled;
 };
 
-#endif /* __QIAdvancedSlider__ */
-
+#endif /* !___QIAdvancedSlider_h___ */
