Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.h	(revision 74043)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsGroup.h	(revision 74044)
@@ -49,5 +49,5 @@
     UIDetailsGroup(QGraphicsScene *pScene);
     /** Destructs group item. */
-    ~UIDetailsGroup();
+    virtual ~UIDetailsGroup() /* override */;
 
     /** @name Item stuff.
Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsSet.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsSet.cpp	(revision 74043)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsSet.cpp	(revision 74044)
@@ -5,5 +5,5 @@
 
 /*
- * Copyright (C) 2012-2017 Oracle Corporation
+ * Copyright (C) 2012-2018 Oracle Corporation
  *
  * This file is part of VirtualBox Open Source Edition (OSE), as
@@ -24,9 +24,9 @@
 
 /* GUI includes: */
+# include "UIDetailsElements.h"
+# include "UIDetailsModel.h"
 # include "UIDetailsSet.h"
-# include "UIDetailsModel.h"
-# include "UIDetailsElements.h"
+# include "UIVirtualBoxEventHandler.h"
 # include "UIVirtualMachineItem.h"
-# include "UIVirtualBoxEventHandler.h"
 # include "VBoxGlobal.h"
 
@@ -41,7 +41,7 @@
     : UIDetailsItem(pParent)
     , m_pMachineItem(0)
+    , m_fFullSet(true)
     , m_fHasDetails(false)
     , m_configurationAccessLevel(ConfigurationAccessLevel_Null)
-    , m_fFullSet(true)
     , m_pBuildStep(0)
     , m_iLastStepNumber(-1)
@@ -127,12 +127,12 @@
     {
         /* Load details settings: */
-        DetailsElementType elementType = (DetailsElementType)iStepNumber;
+        DetailsElementType enmElementType = (DetailsElementType)iStepNumber;
         /* Should the element be visible? */
-        bool fVisible = m_settings.contains(elementType);
+        bool fVisible = m_settings.contains(enmElementType);
         /* Should the element be opened? */
-        bool fOpen = fVisible && m_settings[elementType];
+        bool fOpen = fVisible && m_settings[enmElementType];
 
         /* Check if element is present already: */
-        UIDetailsElement *pElement = element(elementType);
+        UIDetailsElement *pElement = element(enmElementType);
         if (pElement && fOpen)
             pElement->open(false);
@@ -142,5 +142,5 @@
         {
             fJustCreated = true;
-            pElement = createElement(elementType, fOpen);
+            pElement = createElement(enmElementType, fOpen);
         }
 
@@ -198,47 +198,7 @@
 }
 
-void UIDetailsSet::sltMachineStateChange(QString strId)
-{
-    /* Is this our VM changed? */
-    if (m_machine.GetId() != strId)
-        return;
-
-    /* Update appearance: */
-    rebuildSet();
-}
-
-void UIDetailsSet::sltMachineAttributesChange(QString strId)
-{
-    /* Is this our VM changed? */
-    if (m_machine.GetId() != strId)
-        return;
-
-    /* Update appearance: */
-    rebuildSet();
-}
-
-void UIDetailsSet::sltUpdateAppearance()
-{
-    /* Update appearance: */
-    rebuildSet();
-}
-
 QString UIDetailsSet::description() const
 {
     return tr("Contains the details of virtual machine '%1'").arg(m_pMachineItem->name());
-}
-
-QVariant UIDetailsSet::data(int iKey) const
-{
-    /* Provide other members with required data: */
-    switch (iKey)
-    {
-        /* Layout hints: */
-        case SetData_Margin: return 0;
-        case SetData_Spacing: return QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize) / 5;
-        /* Default: */
-        default: break;
-    }
-    return QVariant();
 }
 
@@ -283,7 +243,7 @@
 }
 
-QList<UIDetailsItem*> UIDetailsSet::items(UIDetailsItemType type /* = UIDetailsItemType_Element */) const
-{
-    switch (type)
+QList<UIDetailsItem*> UIDetailsSet::items(UIDetailsItemType enmType /* = UIDetailsItemType_Element */) const
+{
+    switch (enmType)
     {
         case UIDetailsItemType_Element: return m_elements.values();
@@ -294,7 +254,7 @@
 }
 
-bool UIDetailsSet::hasItems(UIDetailsItemType type /* = UIDetailsItemType_Element */) const
-{
-    switch (type)
+bool UIDetailsSet::hasItems(UIDetailsItemType enmType /* = UIDetailsItemType_Element */) const
+{
+    switch (enmType)
     {
         case UIDetailsItemType_Element: return !m_elements.isEmpty();
@@ -305,7 +265,7 @@
 }
 
-void UIDetailsSet::clearItems(UIDetailsItemType type /* = UIDetailsItemType_Element */)
-{
-    switch (type)
+void UIDetailsSet::clearItems(UIDetailsItemType enmType /* = UIDetailsItemType_Element */)
+{
+    switch (enmType)
     {
         case UIDetailsItemType_Element:
@@ -329,146 +289,10 @@
 }
 
-UIDetailsElement* UIDetailsSet::element(DetailsElementType elementType) const
-{
-    UIDetailsItem *pItem = m_elements.value(elementType, 0);
+UIDetailsElement *UIDetailsSet::element(DetailsElementType enmElementType) const
+{
+    UIDetailsItem *pItem = m_elements.value(enmElementType, 0);
     if (pItem)
         return pItem->toElement();
     return 0;
-}
-
-void UIDetailsSet::prepareSet()
-{
-    /* Setup size-policy: */
-    setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
-}
-
-void UIDetailsSet::prepareConnections()
-{
-    /* Global-events connections: */
-    connect(gVBoxEvents, SIGNAL(sigMachineStateChange(QString, KMachineState)), this, SLOT(sltMachineStateChange(QString)));
-    connect(gVBoxEvents, SIGNAL(sigMachineDataChange(QString)), this, SLOT(sltMachineAttributesChange(QString)));
-    connect(gVBoxEvents, SIGNAL(sigSessionStateChange(QString, KSessionState)), this, SLOT(sltMachineAttributesChange(QString)));
-    connect(gVBoxEvents, SIGNAL(sigSnapshotTake(QString, QString)), this, SLOT(sltMachineAttributesChange(QString)));
-    connect(gVBoxEvents, SIGNAL(sigSnapshotDelete(QString, QString)), this, SLOT(sltMachineAttributesChange(QString)));
-    connect(gVBoxEvents, SIGNAL(sigSnapshotChange(QString, QString)), this, SLOT(sltMachineAttributesChange(QString)));
-    connect(gVBoxEvents, SIGNAL(sigSnapshotRestore(QString, QString)), this, SLOT(sltMachineAttributesChange(QString)));
-
-    /* Meidum-enumeration connections: */
-    connect(&vboxGlobal(), SIGNAL(sigMediumEnumerationStarted()), this, SLOT(sltUpdateAppearance()));
-    connect(&vboxGlobal(), SIGNAL(sigMediumEnumerationFinished()), this, SLOT(sltUpdateAppearance()));
-}
-
-int UIDetailsSet::minimumWidthHint() const
-{
-    /* Zero if has no details: */
-    if (!hasDetails())
-        return 0;
-
-    /* Prepare variables: */
-    int iMargin = data(SetData_Margin).toInt();
-    int iSpacing = data(SetData_Spacing).toInt();
-    int iMinimumWidthHint = 0;
-
-    /* Take into account all the elements: */
-    foreach (UIDetailsItem *pItem, items())
-    {
-        /* Skip hidden: */
-        if (!pItem->isVisible())
-            continue;
-
-        /* For each particular element: */
-        UIDetailsElement *pElement = pItem->toElement();
-        switch (pElement->elementType())
-        {
-            case DetailsElementType_General:
-            case DetailsElementType_System:
-            case DetailsElementType_Display:
-            case DetailsElementType_Storage:
-            case DetailsElementType_Audio:
-            case DetailsElementType_Network:
-            case DetailsElementType_Serial:
-            case DetailsElementType_USB:
-            case DetailsElementType_SF:
-            case DetailsElementType_UI:
-            case DetailsElementType_Description:
-            {
-                iMinimumWidthHint = qMax(iMinimumWidthHint, pItem->minimumWidthHint());
-                break;
-            }
-            case DetailsElementType_Preview:
-            {
-                UIDetailsItem *pGeneralItem = element(DetailsElementType_General);
-                UIDetailsItem *pSystemItem = element(DetailsElementType_System);
-                int iGeneralElementWidth = pGeneralItem ? pGeneralItem->minimumWidthHint() : 0;
-                int iSystemElementWidth = pSystemItem ? pSystemItem->minimumWidthHint() : 0;
-                int iFirstColumnWidth = qMax(iGeneralElementWidth, iSystemElementWidth);
-                iMinimumWidthHint = qMax(iMinimumWidthHint, iFirstColumnWidth + iSpacing + pItem->minimumWidthHint());
-                break;
-            }
-            case DetailsElementType_Invalid: AssertFailed(); break; /* Shut up, MSC! */
-        }
-    }
-
-    /* And two margins finally: */
-    iMinimumWidthHint += 2 * iMargin;
-
-    /* Return result: */
-    return iMinimumWidthHint;
-}
-
-int UIDetailsSet::minimumHeightHint() const
-{
-    /* Zero if has no details: */
-    if (!hasDetails())
-        return 0;
-
-    /* Prepare variables: */
-    int iMargin = data(SetData_Margin).toInt();
-    int iSpacing = data(SetData_Spacing).toInt();
-    int iMinimumHeightHint = 0;
-
-    /* Take into account all the elements: */
-    foreach (UIDetailsItem *pItem, items())
-    {
-        /* Skip hidden: */
-        if (!pItem->isVisible())
-            continue;
-
-        /* For each particular element: */
-        UIDetailsElement *pElement = pItem->toElement();
-        switch (pElement->elementType())
-        {
-            case DetailsElementType_General:
-            case DetailsElementType_System:
-            case DetailsElementType_Display:
-            case DetailsElementType_Storage:
-            case DetailsElementType_Audio:
-            case DetailsElementType_Network:
-            case DetailsElementType_Serial:
-            case DetailsElementType_USB:
-            case DetailsElementType_SF:
-            case DetailsElementType_UI:
-            case DetailsElementType_Description:
-            {
-                iMinimumHeightHint += (pItem->minimumHeightHint() + iSpacing);
-                break;
-            }
-            case DetailsElementType_Preview:
-            {
-                iMinimumHeightHint = qMax(iMinimumHeightHint, pItem->minimumHeightHint() + iSpacing);
-                break;
-            }
-            case DetailsElementType_Invalid: AssertFailed(); break; /* Shut up, MSC! */
-        }
-    }
-
-    /* Minus last spacing: */
-    iMinimumHeightHint -= iSpacing;
-
-    /* And two margins finally: */
-    iMinimumHeightHint += 2 * iMargin;
-
-    /* Return result: */
-    return iMinimumHeightHint;
 }
 
@@ -553,4 +377,180 @@
 }
 
+int UIDetailsSet::minimumWidthHint() const
+{
+    /* Zero if has no details: */
+    if (!hasDetails())
+        return 0;
+
+    /* Prepare variables: */
+    int iMargin = data(SetData_Margin).toInt();
+    int iSpacing = data(SetData_Spacing).toInt();
+    int iMinimumWidthHint = 0;
+
+    /* Take into account all the elements: */
+    foreach (UIDetailsItem *pItem, items())
+    {
+        /* Skip hidden: */
+        if (!pItem->isVisible())
+            continue;
+
+        /* For each particular element: */
+        UIDetailsElement *pElement = pItem->toElement();
+        switch (pElement->elementType())
+        {
+            case DetailsElementType_General:
+            case DetailsElementType_System:
+            case DetailsElementType_Display:
+            case DetailsElementType_Storage:
+            case DetailsElementType_Audio:
+            case DetailsElementType_Network:
+            case DetailsElementType_Serial:
+            case DetailsElementType_USB:
+            case DetailsElementType_SF:
+            case DetailsElementType_UI:
+            case DetailsElementType_Description:
+            {
+                iMinimumWidthHint = qMax(iMinimumWidthHint, pItem->minimumWidthHint());
+                break;
+            }
+            case DetailsElementType_Preview:
+            {
+                UIDetailsItem *pGeneralItem = element(DetailsElementType_General);
+                UIDetailsItem *pSystemItem = element(DetailsElementType_System);
+                int iGeneralElementWidth = pGeneralItem ? pGeneralItem->minimumWidthHint() : 0;
+                int iSystemElementWidth = pSystemItem ? pSystemItem->minimumWidthHint() : 0;
+                int iFirstColumnWidth = qMax(iGeneralElementWidth, iSystemElementWidth);
+                iMinimumWidthHint = qMax(iMinimumWidthHint, iFirstColumnWidth + iSpacing + pItem->minimumWidthHint());
+                break;
+            }
+            case DetailsElementType_Invalid: AssertFailed(); break; /* Shut up, MSC! */
+        }
+    }
+
+    /* And two margins finally: */
+    iMinimumWidthHint += 2 * iMargin;
+
+    /* Return result: */
+    return iMinimumWidthHint;
+}
+
+int UIDetailsSet::minimumHeightHint() const
+{
+    /* Zero if has no details: */
+    if (!hasDetails())
+        return 0;
+
+    /* Prepare variables: */
+    int iMargin = data(SetData_Margin).toInt();
+    int iSpacing = data(SetData_Spacing).toInt();
+    int iMinimumHeightHint = 0;
+
+    /* Take into account all the elements: */
+    foreach (UIDetailsItem *pItem, items())
+    {
+        /* Skip hidden: */
+        if (!pItem->isVisible())
+            continue;
+
+        /* For each particular element: */
+        UIDetailsElement *pElement = pItem->toElement();
+        switch (pElement->elementType())
+        {
+            case DetailsElementType_General:
+            case DetailsElementType_System:
+            case DetailsElementType_Display:
+            case DetailsElementType_Storage:
+            case DetailsElementType_Audio:
+            case DetailsElementType_Network:
+            case DetailsElementType_Serial:
+            case DetailsElementType_USB:
+            case DetailsElementType_SF:
+            case DetailsElementType_UI:
+            case DetailsElementType_Description:
+            {
+                iMinimumHeightHint += (pItem->minimumHeightHint() + iSpacing);
+                break;
+            }
+            case DetailsElementType_Preview:
+            {
+                iMinimumHeightHint = qMax(iMinimumHeightHint, pItem->minimumHeightHint() + iSpacing);
+                break;
+            }
+            case DetailsElementType_Invalid: AssertFailed(); break; /* Shut up, MSC! */
+        }
+    }
+
+    /* Minus last spacing: */
+    iMinimumHeightHint -= iSpacing;
+
+    /* And two margins finally: */
+    iMinimumHeightHint += 2 * iMargin;
+
+    /* Return result: */
+    return iMinimumHeightHint;
+}
+
+void UIDetailsSet::sltMachineStateChange(QString strId)
+{
+    /* Is this our VM changed? */
+    if (m_machine.GetId() != strId)
+        return;
+
+    /* Update appearance: */
+    rebuildSet();
+}
+
+void UIDetailsSet::sltMachineAttributesChange(QString strId)
+{
+    /* Is this our VM changed? */
+    if (m_machine.GetId() != strId)
+        return;
+
+    /* Update appearance: */
+    rebuildSet();
+}
+
+void UIDetailsSet::sltUpdateAppearance()
+{
+    /* Update appearance: */
+    rebuildSet();
+}
+
+void UIDetailsSet::prepareSet()
+{
+    /* Setup size-policy: */
+    setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Fixed);
+}
+
+void UIDetailsSet::prepareConnections()
+{
+    /* Global-events connections: */
+    connect(gVBoxEvents, SIGNAL(sigMachineStateChange(QString, KMachineState)), this, SLOT(sltMachineStateChange(QString)));
+    connect(gVBoxEvents, SIGNAL(sigMachineDataChange(QString)), this, SLOT(sltMachineAttributesChange(QString)));
+    connect(gVBoxEvents, SIGNAL(sigSessionStateChange(QString, KSessionState)), this, SLOT(sltMachineAttributesChange(QString)));
+    connect(gVBoxEvents, SIGNAL(sigSnapshotTake(QString, QString)), this, SLOT(sltMachineAttributesChange(QString)));
+    connect(gVBoxEvents, SIGNAL(sigSnapshotDelete(QString, QString)), this, SLOT(sltMachineAttributesChange(QString)));
+    connect(gVBoxEvents, SIGNAL(sigSnapshotChange(QString, QString)), this, SLOT(sltMachineAttributesChange(QString)));
+    connect(gVBoxEvents, SIGNAL(sigSnapshotRestore(QString, QString)), this, SLOT(sltMachineAttributesChange(QString)));
+
+    /* Meidum-enumeration connections: */
+    connect(&vboxGlobal(), SIGNAL(sigMediumEnumerationStarted()), this, SLOT(sltUpdateAppearance()));
+    connect(&vboxGlobal(), SIGNAL(sigMediumEnumerationFinished()), this, SLOT(sltUpdateAppearance()));
+}
+
+QVariant UIDetailsSet::data(int iKey) const
+{
+    /* Provide other members with required data: */
+    switch (iKey)
+    {
+        /* Layout hints: */
+        case SetData_Margin: return 0;
+        case SetData_Spacing: return QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize) / 5;
+        /* Default: */
+        default: break;
+    }
+    return QVariant();
+}
+
 void UIDetailsSet::rebuildSet()
 {
@@ -573,8 +573,8 @@
 }
 
-UIDetailsElement* UIDetailsSet::createElement(DetailsElementType elementType, bool fOpen)
+UIDetailsElement *UIDetailsSet::createElement(DetailsElementType enmElementType, bool fOpen)
 {
     /* Element factory: */
-    switch (elementType)
+    switch (enmElementType)
     {
         case DetailsElementType_General:     return new UIDetailsElementGeneral(this, fOpen);
@@ -594,3 +594,2 @@
     return 0;
 }
-
Index: /trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsSet.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsSet.h	(revision 74043)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/manager/details/UIDetailsSet.h	(revision 74044)
@@ -5,5 +5,5 @@
 
 /*
- * Copyright (C) 2012-2017 Oracle Corporation
+ * Copyright (C) 2012-2018 Oracle Corporation
  *
  * This file is part of VirtualBox Open Source Edition (OSE), as
@@ -16,6 +16,6 @@
  */
 
-#ifndef __UIDetailsSet_h__
-#define __UIDetailsSet_h__
+#ifndef ___UIDetailsSet_h___
+#define ___UIDetailsSet_h___
 
 /* GUI includes: */
@@ -34,6 +34,5 @@
 using namespace UISettingsDefs;
 
-/* Details set
- * for graphics details model/view architecture: */
+/** UIDetailsItem extension implementing group item. */
 class UIDetailsSet : public UIDetailsItem
 {
@@ -42,37 +41,96 @@
 public:
 
-    /* Graphics-item type: */
+    /** RTTI item type. */
     enum { Type = UIDetailsItemType_Set };
-    int type() const { return Type; }
 
-    /* Constructor/destructor: */
+    /** Constructs set item, passing pParent to the base-class. */
     UIDetailsSet(UIDetailsItem *pParent);
-    ~UIDetailsSet();
+    /** Destructs set item. */
+    virtual ~UIDetailsSet() /* override */;
 
-    /* API: Build stuff: */
-    void buildSet(UIVirtualMachineItem *pMachineItem, bool fFullSet, const QMap<DetailsElementType, bool> &settings);
+    /** @name Item stuff.
+      * @{ */
+        /** Builds set based on passed @a pMachineItem.
+          * @param  fFullSet  Brigns whether full set should be built.
+          * @param  settings  Brings details related settings. */
+        void buildSet(UIVirtualMachineItem *pMachineItem, bool fFullSet, const QMap<DetailsElementType, bool> &settings);
 
-    /* API: Machine stuff: */
-    const CMachine& machine() const { return m_machine; }
-    bool hasDetails() const { return m_fHasDetails; }
+        /** Returns cached machine. */
+        const CMachine &machine() const { return m_machine; }
+        /** Returns whether set has cached details. */
+        bool hasDetails() const { return m_fHasDetails; }
+        /** Returns configuration access level. */
+        ConfigurationAccessLevel configurationAccessLevel() const { return m_configurationAccessLevel; }
+    /** @} */
 
-    /** Returns configuration access level. */
-    ConfigurationAccessLevel configurationAccessLevel() const { return m_configurationAccessLevel; }
+protected slots:
+
+    /** @name Item stuff.
+      * @{ */
+        /** Handles request about starting step build.
+          * @param  strStepId    Brings the step ID.
+          * @param  iStepNumber  Brings the step number. */
+    /** @} */
+    virtual void sltBuildStep(QString strStepId, int iStepNumber) /* override */;
+
+protected:
+
+    /** @name Item stuff.
+      * @{ */
+        /** Returns RTTI item type. */
+        virtual int type() const /* override */ { return Type; }
+
+        /** Returns the description of the item. */
+        virtual QString description() const /* override */;
+    /** @} */
+
+    /** @name Children stuff.
+      * @{ */
+        /** Adds child @a pItem. */
+        void addItem(UIDetailsItem *pItem);
+        /** Removes child @a pItem. */
+        void removeItem(UIDetailsItem *pItem);
+
+        /** Returns children items of certain @a enmType. */
+        QList<UIDetailsItem*> items(UIDetailsItemType type = UIDetailsItemType_Element) const;
+        /** Returns whether there are children items of certain @a enmType. */
+        bool hasItems(UIDetailsItemType type = UIDetailsItemType_Element) const;
+        /** Clears children items of certain @a enmType. */
+        void clearItems(UIDetailsItemType type = UIDetailsItemType_Element);
+
+        /** Returns details element of certain @a enmElementType. */
+        UIDetailsElement *element(DetailsElementType enmElementType) const;
+    /** @} */
+
+    /** @name Layout stuff.
+      * @{ */
+        /** Updates layout. */
+        void updateLayout();
+
+        /** Returns minimum width-hint. */
+        int minimumWidthHint() const;
+        /** Returns minimum height-hint. */
+        int minimumHeightHint() const;
+    /** @} */
 
 private slots:
 
-    /* Handler: Build stuff: */
-    void sltBuildStep(QString strStepId, int iStepNumber);
+    /** @name Event-handling stuff.
+      * @{ */
+        /** Handles machine-state change for item with @a strId. */
+        void sltMachineStateChange(QString strId);
+        /** Handles machine-attribute change for item with @a strId. */
+        void sltMachineAttributesChange(QString strId);
+    /** @} */
 
-    /* Handlers: Global event stuff: */
-    void sltMachineStateChange(QString strId);
-    void sltMachineAttributesChange(QString strId);
-
-    /* Handler: Update stuff: */
-    void sltUpdateAppearance();
+    /** @name Item stuff.
+      * @{ */
+        /** Updates item appearance. */
+        void sltUpdateAppearance();
+    /** @} */
 
 private:
 
-    /* Data enumerator: */
+    /** Data field types. */
     enum SetItemData
     {
@@ -82,50 +140,54 @@
     };
 
-    /** Returns the description of the item. */
-    virtual QString description() const /* override */;
+    /** @name Prepare/cleanup cascade.
+      * @{ */
+        /** Prepares set. */
+        void prepareSet();
+        /** Prepares connections. */
+        void prepareConnections();
+    /** @} */
 
-    /* Data provider: */
-    QVariant data(int iKey) const;
+    /** @name Item stuff.
+      * @{ */
+        /** Returns abstractly stored data value for certain @a iKey. */
+        QVariant data(int iKey) const;
 
-    /* Hidden API: Children stuff: */
-    void addItem(UIDetailsItem *pItem);
-    void removeItem(UIDetailsItem *pItem);
-    QList<UIDetailsItem*> items(UIDetailsItemType type = UIDetailsItemType_Element) const;
-    bool hasItems(UIDetailsItemType type = UIDetailsItemType_Element) const;
-    void clearItems(UIDetailsItemType type = UIDetailsItemType_Element);
-    UIDetailsElement* element(DetailsElementType elementType) const;
+        /** Rebuilds set based on cached machine item. */
+        void rebuildSet();
 
-    /* Helpers: Prepare stuff: */
-    void prepareSet();
-    void prepareConnections();
+        /** Creates element of specified @a enmElementType in @a fOpen state. */
+        UIDetailsElement *createElement(DetailsElementType enmElementType, bool fOpen);
+    /** @} */
 
-    /* Helpers: Layout stuff: */
-    int minimumWidthHint() const;
-    int minimumHeightHint() const;
-    void updateLayout();
+    /** @name Item stuff.
+      * @{ */
+        /** Holds the machine-item this set is built for. */
+        UIVirtualMachineItem           *m_pMachineItem;
+        /** Holds whether whether full set should be built. */
+        bool                            m_fFullSet;
+        /** Holds the details related settings. */
+        QMap<DetailsElementType, bool>  m_settings;
 
-    /* Helpers: Build stuff: */
-    void rebuildSet();
-    UIDetailsElement* createElement(DetailsElementType elementType, bool fOpen);
+        /** Holds the machine reference. */
+        CMachine                  m_machine;
+        /** Holds whether set has details. */
+        bool                      m_fHasDetails;
+        /** Holds configuration access level. */
+        ConfigurationAccessLevel  m_configurationAccessLevel;
 
-    /** Machine-item this set built for. */
-    UIVirtualMachineItem *m_pMachineItem;
+        /** Holds the build step instance. */
+        UIPrepareStep *m_pBuildStep;
+        /** Holds the last step number. */
+        int            m_iLastStepNumber;
+        /** Holds the generated set ID. */
+        QString        m_strSetId;
+    /** @} */
 
-    /* Main variables: */
-    CMachine m_machine;
-    QMap<int, UIDetailsItem*> m_elements;
-    bool m_fHasDetails;
-
-    /** Holds configuration access level. */
-    ConfigurationAccessLevel m_configurationAccessLevel;
-
-    /* Prepare variables: */
-    bool m_fFullSet;
-    UIPrepareStep *m_pBuildStep;
-    int m_iLastStepNumber;
-    QString m_strSetId;
-    QMap<DetailsElementType, bool> m_settings;
+    /** @name Children stuff.
+      * @{ */
+        /** Holds the map of generated detail elements. */
+        QMap<int, UIDetailsItem*>  m_elements;
+    /** @} */
 };
 
-#endif /* __UIDetailsSet_h__ */
-
+#endif /* !___UIDetailsSet_h___ */
