Index: /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp	(revision 50326)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp	(revision 50327)
@@ -399,5 +399,5 @@
 {
     /* Get current-item: */
-    UIMediumItem *pMediumItem = toMediumItem(currentTreeWidget()->currentItem());
+    UIMediumItem *pMediumItem = currentMediumItem();
 
     /* Show Clone VD wizard: */
@@ -414,5 +414,5 @@
 {
     /* Get current-item: */
-    UIMediumItem *pMediumItem = toMediumItem(currentTreeWidget()->currentItem());
+    UIMediumItem *pMediumItem = currentMediumItem();
 
     /* Show Modify VD dialog: */
@@ -434,5 +434,5 @@
 {
     /* Get current medium-item: */
-    UIMediumItem *pMediumItem = toMediumItem(currentTreeWidget()->currentItem());
+    UIMediumItem *pMediumItem = currentMediumItem();
     AssertMsgReturnVoid(pMediumItem, ("Current item must not be null"));
 
@@ -532,5 +532,5 @@
 {
     /* Get current medium-item: */
-    UIMediumItem *pMediumItem = toMediumItem(currentTreeWidget()->currentItem());
+    UIMediumItem *pMediumItem = currentMediumItem();
     AssertMsgReturnVoid(pMediumItem, ("Current item must not be null"));
     AssertReturnVoid(!pMediumItem->id().isNull());
@@ -645,5 +645,5 @@
 {
     /* Call for modify-action if hard-disk double-clicked: */
-    if (currentTreeWidgetType() == UIMediumType_HardDisk)
+    if (currentMediumType() == UIMediumType_HardDisk)
         sltModifyMedium();
 }
@@ -1080,11 +1080,11 @@
 {
     /* Get current-item: */
-    UIMediumItem *pCurrentItem = toMediumItem(currentTreeWidget()->currentItem());
+    UIMediumItem *pCurrentItem = currentMediumItem();
 
     /* Calculate actions accessibility: */
     bool fNotInEnumeration = !vboxGlobal().isMediumEnumerationInProgress();
-    bool fActionEnabledCopy = currentTreeWidgetType() == UIMediumType_HardDisk &&
+    bool fActionEnabledCopy = currentMediumType() == UIMediumType_HardDisk &&
                               fNotInEnumeration && pCurrentItem && checkMediumFor(pCurrentItem, Action_Copy);
-    bool fActionEnabledModify = currentTreeWidgetType() == UIMediumType_HardDisk &&
+    bool fActionEnabledModify = currentMediumType() == UIMediumType_HardDisk &&
                                 fNotInEnumeration && pCurrentItem && checkMediumFor(pCurrentItem, Action_Modify);
     bool fActionEnabledRemove = fNotInEnumeration && pCurrentItem && checkMediumFor(pCurrentItem, Action_Remove);
@@ -1417,7 +1417,21 @@
 }
 
+UIMediumType UIMediumManager::currentMediumType() const
+{
+    /* Return current medium type: */
+    switch (mTabWidget->currentIndex())
+    {
+        case HDTab: return UIMediumType_HardDisk;
+        case CDTab: return UIMediumType_DVD;
+        case FDTab: return UIMediumType_Floppy;
+        default: AssertMsgFailed(("Unknown page type: %d\n", mTabWidget->currentIndex())); break;
+    }
+    /* Invalid by default: */
+    return UIMediumType_Invalid;
+}
+
 QTreeWidget* UIMediumManager::treeWidget(UIMediumType type) const
 {
-    /* Return corresponding tree-widget: */
+    /* Return corresponding tree-widget for known medium types: */
     switch (type)
     {
@@ -1425,5 +1439,5 @@
         case UIMediumType_DVD:      return mTwCD;
         case UIMediumType_Floppy:   return mTwFD;
-        default: AssertMsgFailed(("Medium-type unknown: %d\n", type)); break;
+        default: AssertMsgFailed(("Unknown medium type: %d\n", type)); break;
     }
     /* Null by default: */
@@ -1431,21 +1445,22 @@
 }
 
-UIMediumType UIMediumManager::currentTreeWidgetType() const
-{
-    /* Return corresponding medium-type: */
-    switch (mTabWidget->currentIndex())
-    {
-        case HDTab: return UIMediumType_HardDisk;
-        case CDTab: return UIMediumType_DVD;
-        case FDTab: return UIMediumType_Floppy;
-        default: AssertMsgFailed(("Page-type unknown: %d\n", mTabWidget->currentIndex())); break;
-    }
-    /* Invalid by default: */
-    return UIMediumType_Invalid;
-}
-
 QTreeWidget* UIMediumManager::currentTreeWidget() const
 {
-    return treeWidget(currentTreeWidgetType());
+    /* Return current tree-widget: */
+    return treeWidget(currentMediumType());
+}
+
+UIMediumItem* UIMediumManager::mediumItem(UIMediumType type) const
+{
+    /* Get corresponding tree-widget: */
+    QTreeWidget *pTreeWidget = treeWidget(type);
+    /* Return corresponding medium-item: */
+    return pTreeWidget ? toMediumItem(pTreeWidget->currentItem()) : 0;
+}
+
+UIMediumItem* UIMediumManager::currentMediumItem() const
+{
+    /* Return current medium-item: */
+    return mediumItem(currentMediumType());
 }
 
@@ -1461,13 +1476,4 @@
     else
         sltHandleCurrentTabChanged();
-}
-
-UIMediumItem* UIMediumManager::toMediumItem(QTreeWidgetItem *pItem) const
-{
-    /* Return UIMediumItem based on QTreeWidgetItem if it is valid: */
-    if (pItem && pItem->type() == UIMediumItem::Type)
-        return static_cast<UIMediumItem*>(pItem);
-    /* Null by default: */
-    return 0;
 }
 
@@ -1709,11 +1715,11 @@
     /* Store the current list selections: */
     UIMediumItem *pMediumItem = 0;
-    pMediumItem = toMediumItem(mTwHD->currentItem());
+    pMediumItem = mediumItem(UIMediumType_HardDisk);
     if (m_strSelectedIdHD.isNull())
         m_strSelectedIdHD = pMediumItem ? pMediumItem->id() : QString();
-    pMediumItem = toMediumItem(mTwCD->currentItem());
+    pMediumItem = mediumItem(UIMediumType_DVD);
     if (m_strSelectedIdCD.isNull())
         m_strSelectedIdCD = pMediumItem ? pMediumItem->id() : QString();
-    pMediumItem = toMediumItem(mTwFD->currentItem());
+    pMediumItem = mediumItem(UIMediumType_Floppy);
     if (m_strSelectedIdFD.isNull())
         m_strSelectedIdFD = pMediumItem ? pMediumItem->id() : QString();
@@ -1735,4 +1741,11 @@
 
 /* static */
+UIMediumItem* UIMediumManager::toMediumItem(QTreeWidgetItem *pItem)
+{
+    /* Cast passed QTreeWidgetItem to UIMediumItem if possible: */
+    return pItem && pItem->type() == UIMediumItem::Type ? static_cast<UIMediumItem*>(pItem) : 0;
+}
+
+/* static */
 QString UIMediumManager::formatPaneText(const QString &strText, bool fCompact /* = true */,
                                         const QString &strElipsis /* = "middle" */)
Index: /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.h	(revision 50326)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.h	(revision 50327)
@@ -121,5 +121,5 @@
     void populateTreeWidgets();
 
-    /** Creates UIMediumItem for corresponding UIMedium. */
+    /** Update actions according currently chosen medium-item. */
     void updateActions();
 
@@ -144,10 +144,20 @@
     bool releaseFloppyDiskFrom(const UIMedium &medium, CMachine &machine);
 
-    /* Internal API: Tree-widget access stuff: */
+    /** Returns current medium type. */
+    UIMediumType currentMediumType() const;
+
+    /** Returns tree-widget for passed medium @a type. */
     QTreeWidget* treeWidget(UIMediumType type) const;
-    UIMediumType currentTreeWidgetType() const;
+    /** Returns current tree-widget. */
     QTreeWidget* currentTreeWidget() const;
+
+    /** Returns medium-item for passed medium @a type. */
+    UIMediumItem* mediumItem(UIMediumType type) const;
+    /** Returns current medium-item. */
+    UIMediumItem* currentMediumItem() const;
+
+    /** Defines <i>current-item</i> for passed @a pTree as @a pItem. */
     void setCurrentItem(QTreeWidget *pTree, QTreeWidgetItem *pItem);
-    UIMediumItem* toMediumItem(QTreeWidgetItem *pItem) const;
+
     UIMediumItem* searchItem(QTreeWidget *pTree, const CheckIfSuitableBy &functor) const;
     UIMediumItem* searchItem(QTreeWidgetItem *pParentItem, const CheckIfSuitableBy &functor) const;
@@ -161,4 +171,7 @@
     void clearInfoPanes();
     void prepareToRefresh(int iTotal = 0);
+
+    /** Casts passed QTreeWidgetItem @a pItem to UIMediumItem if possible. */
+    static UIMediumItem* toMediumItem(QTreeWidgetItem *pItem);
 
     /* Static helper: Formatting stuff: */
