Index: /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp	(revision 50715)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp	(revision 50716)
@@ -76,4 +76,6 @@
     /** Removes UIMedium wrapped by <i>this</i> item. */
     virtual bool remove() = 0;
+    /** Copy UIMedium wrapped by <i>this</i> item. */
+    virtual bool copy() = 0;
 
     /** Refreshes item fully. */
@@ -168,5 +170,5 @@
     {}
 
-private:
+protected:
 
     /** Removes UIMedium wrapped by <i>this</i> item. */
@@ -199,4 +201,22 @@
         return true;
     }
+
+    /** Copy UIMedium wrapped by <i>this</i> item. */
+    bool copy()
+    {
+        /* Show Clone VD wizard: */
+        UISafePointerWizard pWizard = new UIWizardCloneVD(treeWidget(), medium().medium());
+        pWizard->prepare();
+        pWizard->exec();
+
+        /* Delete if still exists: */
+        if (pWizard)
+            delete pWizard;
+
+        /* True by default: */
+        return true;
+    }
+
+private:
 
     /** Proposes user to remove CMedium storage wrapped by <i>this</i> item. */
@@ -259,5 +279,5 @@
     {}
 
-private:
+protected:
 
     /** Removes UIMedium wrapped by <i>this</i> item. */
@@ -285,4 +305,10 @@
         /* True by default: */
         return true;
+    }
+
+    /** Copy UIMedium wrapped by <i>this</i> item. */
+    bool copy()
+    {
+        AssertMsgFailedReturn(("That functionality in not supported!\n"), false);
     }
 };
@@ -298,5 +324,5 @@
     {}
 
-private:
+protected:
 
     /** Removes UIMedium wrapped by <i>this</i> item. */
@@ -324,4 +350,10 @@
         /* True by default: */
         return true;
+    }
+
+    /** Copy UIMedium wrapped by <i>this</i> item. */
+    bool copy()
+    {
+        AssertMsgFailedReturn(("That functionality in not supported!\n"), false);
     }
 };
@@ -492,5 +524,5 @@
 void UIMediumManager::sltHandleMediumDeleted(const QString &strMediumID)
 {
-    /* Delete UIMediumItem for corresponding 'strMediumID': */
+    /* Make sure corresponding medium-item deleted: */
     deleteMediumItem(strMediumID);
 }
@@ -537,5 +569,5 @@
         return;
 
-    /* Update UIMediumItem for corresponding 'medium': */
+    /* Update medium-item for corresponding medium: */
     updateMediumItem(medium);
 
@@ -563,12 +595,6 @@
     AssertReturnVoid(!pMediumItem->id().isNull());
 
-    /* Show Clone VD wizard: */
-    UISafePointerWizard pWizard = new UIWizardCloneVD(this, pMediumItem->medium().medium());
-    pWizard->prepare();
-    pWizard->exec();
-
-    /* Delete if still exists: */
-    if (pWizard)
-        delete pWizard;
+    /* Copy current medium-item: */
+    pMediumItem->copy();
 }
 
