Index: trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 90299)
+++ trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 90300)
@@ -846,4 +846,5 @@
 	src/notificationcenter/UINotificationObject.h \
 	src/notificationcenter/UINotificationObjectItem.h \
+	src/notificationcenter/UINotificationObjects.h \
 	src/notificationcenter/UINotificationProgressTask.h \
 	src/settings/UISettingsDialog.h \
@@ -1396,4 +1397,5 @@
 	src/notificationcenter/UINotificationObject.cpp \
 	src/notificationcenter/UINotificationObjectItem.cpp \
+	src/notificationcenter/UINotificationObjects.cpp \
 	src/notificationcenter/UINotificationProgressTask.cpp \
 	src/objects/UIRichTextString.cpp \
Index: trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumItem.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumItem.cpp	(revision 90299)
+++ trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumItem.cpp	(revision 90300)
@@ -28,4 +28,5 @@
 #include "UIMediumItem.h"
 #include "UIMessageCenter.h"
+#include "UINotificationCenter.h"
 
 /* COM includes: */
@@ -78,38 +79,11 @@
         return false;
 
-    /* Try to assign new medium location: */
-    if (   comMedium.isOk()
-        && strFileName != location())
-    {
-        /* Prepare move storage progress: */
-        CProgress comProgress = comMedium.MoveTo(strFileName);
-
-        /* Show error message if necessary: */
-        if (!comMedium.isOk())
-        {
-            msgCenter().cannotMoveMediumStorage(comMedium, location(),
-                                                strFileName, treeWidget());
-            /* Negative if failed: */
-            return false;
-        }
-        else
-        {
-            /* Show move storage progress: */
-            msgCenter().showModalProgressDialog(comProgress, tr("Moving medium ..."),
-                                                ":/progress_media_move_90px.png", treeWidget());
-
-            /* Show error message if necessary: */
-            if (!comProgress.isOk() || comProgress.GetResultCode() != 0)
-            {
-                msgCenter().cannotMoveMediumStorage(comProgress, location(),
-                                                    strFileName, treeWidget());
-                /* Negative if failed: */
-                return false;
-            }
-        }
-    }
-
-    /* Recache item: */
-    refreshAll();
+    /* Assign new medium location: */
+    UINotificationProgressMediumMove *pNotification = new UINotificationProgressMediumMove(comMedium,
+                                                                                           location(),
+                                                                                           strFileName);
+    connect(pNotification, &UINotificationProgressMediumMove::sigProgressFinished,
+            this, &UIMediumItem::sltHandleMoveProgressFinished);
+    notificationCenter().append(pNotification);
 
     /* Positive: */
@@ -262,4 +236,10 @@
 }
 
+void UIMediumItem::sltHandleMoveProgressFinished()
+{
+    /* Recache item: */
+    refreshAll();
+}
+
 void UIMediumItem::refresh()
 {
Index: trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumItem.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumItem.h	(revision 90299)
+++ trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumItem.h	(revision 90300)
@@ -119,4 +119,9 @@
     /** Returns default text. */
     virtual QString defaultText() const /* override */;
+
+protected slots:
+
+    /** Handles medium move progress result. */
+    void sltHandleMoveProgressFinished();
 
 private:
Index: trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationCenter.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationCenter.h	(revision 90299)
+++ trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationCenter.h	(revision 90300)
@@ -28,4 +28,5 @@
 /* GUI includes: */
 #include "UILibraryDefs.h"
+#include "UINotificationObjects.h"
 
 /* Forward declarations: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.cpp	(revision 90300)
+++ trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.cpp	(revision 90300)
@@ -0,0 +1,49 @@
+/* $Id$ */
+/** @file
+ * VBox Qt GUI - Various UINotificationObjects implementations.
+ */
+
+/*
+ * Copyright (C) 2021 Oracle Corporation
+ *
+ * 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.
+ */
+
+/* GUI includes: */
+#include "UINotificationObjects.h"
+
+
+UINotificationProgressMediumMove::UINotificationProgressMediumMove(const CMedium &comMedium,
+                                                                   const QString &strFrom,
+                                                                   const QString &strTo)
+    : m_comMedium(comMedium)
+    , m_strFrom(strFrom)
+    , m_strTo(strTo)
+{
+}
+
+QString UINotificationProgressMediumMove::name() const
+{
+    return UINotificationProgress::tr("Moving medium ...");
+}
+
+QString UINotificationProgressMediumMove::details() const
+{
+    return UINotificationProgress::tr("<b>From</b>: %1<br><b>To</b>: %2").arg(m_strFrom, m_strTo);
+}
+
+CProgress UINotificationProgressMediumMove::createProgress(COMResult &comResult)
+{
+    /* Initialize progress-wrapper: */
+    CProgress comProgress = m_comMedium.MoveTo(m_strTo);
+    /* Store COM result: */
+    comResult = m_comMedium;
+    /* Return progress-wrapper: */
+    return comProgress;
+}
Index: trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.h	(revision 90300)
+++ trunk/src/VBox/Frontends/VirtualBox/src/notificationcenter/UINotificationObjects.h	(revision 90300)
@@ -0,0 +1,65 @@
+/* $Id$ */
+/** @file
+ * VBox Qt GUI - Various UINotificationObjects declarations.
+ */
+
+/*
+ * Copyright (C) 2021 Oracle Corporation
+ *
+ * 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.
+ */
+
+#ifndef FEQT_INCLUDED_SRC_notificationcenter_UINotificationObjects_h
+#define FEQT_INCLUDED_SRC_notificationcenter_UINotificationObjects_h
+#ifndef RT_WITHOUT_PRAGMA_ONCE
+# pragma once
+#endif
+
+/* GUI includes: */
+#include "UINotificationObject.h"
+
+/* COM includes: */
+#include "COMEnums.h"
+#include "CMedium.h"
+
+/** UINotificationProgress extension for medium move functionality. */
+class SHARED_LIBRARY_STUFF UINotificationProgressMediumMove : public UINotificationProgress
+{
+    Q_OBJECT;
+
+public:
+
+    /** Constructs medium move notification-progress.
+      * @param  comMedium  Brings the medium being moved.
+      * @param  strFrom    Brings the initial location.
+      * @param  strTo      Brings the final location. */
+    UINotificationProgressMediumMove(const CMedium &comMedium,
+                                     const QString &strFrom,
+                                     const QString &strTo);
+
+protected:
+
+    /** Returns object name. */
+    virtual QString name() const /* override final */;
+    /** Returns object details. */
+    virtual QString details() const /* override final */;
+    /** Creates and returns started progress-wrapper. */
+    virtual CProgress createProgress(COMResult &comResult) /* override final */;
+
+private:
+
+    /** Holds the medium being moved. */
+    CMedium  m_comMedium;
+    /** Holds the initial location. */
+    QString  m_strFrom;
+    /** Holds the final location. */
+    QString  m_strTo;
+};
+
+#endif /* !FEQT_INCLUDED_SRC_notificationcenter_UINotificationObjects_h */
