Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp	(revision 45402)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp	(revision 45424)
@@ -349,9 +349,9 @@
 void UIMessageCenter::warnAboutWrongUSBMounted() const
 {
-    alert(mainWindowShown(), MessageType_Warning,
+    alert(0, MessageType_Warning,
           tr("You seem to have the USBFS filesystem mounted at /sys/bus/usb/drivers. "
              "We strongly recommend that you change this, as it is a severe mis-configuration of "
              "your system which could cause USB devices to fail in unexpected ways."),
-          "checkForMountedWrongUSB");
+          "warnAboutWrongUSBMounted");
 }
 #endif /* RT_OS_LINUX */
@@ -411,6 +411,6 @@
           tr("<p>Could not find a language file for the language <b>%1</b> in the directory <b><nobr>%2</nobr></b>.</p>"
              "<p>The language will be temporarily reset to the system default language. "
-             "Please go to the <b>Preferences</b> dialog which you can open from the <b>File</b> menu "
-             "of the main VirtualBox window, and select one of the existing languages on the <b>Language</b> page.</p>")
+             "Please go to the <b>Preferences</b> dialog which you can open from the <b>File</b> menu of the "
+             "VirtualBox Manager window, and select one of the existing languages on the <b>Language</b> page.</p>")
              .arg(strLangId).arg(strNlsPath));
 }
@@ -421,6 +421,6 @@
           tr("<p>Could not load the language file <b><nobr>%1</nobr></b>. "
              "<p>The language will be temporarily reset to English (built-in). "
-             "Please go to the <b>Preferences</b> dialog which you can open from the <b>File</b> menu "
-             "of the main VirtualBox window, and select one of the existing languages on the <b>Language</b> page.</p>")
+             "Please go to the <b>Preferences</b> dialog which you can open from the <b>File</b> menu of the "
+             "VirtualBox Manager window, and select one of the existing languages on the <b>Language</b> page.</p>")
              .arg(strLangFile));
 }
@@ -428,24 +428,18 @@
 void UIMessageCenter::cannotLoadGlobalConfig(const CVirtualBox &vbox, const QString &strError) const
 {
-    /* Preserve error-info: */
-    COMResult res(vbox);
-    /* Show the error: */
     error(0, MessageType_Critical,
           tr("<p>Failed to load the global GUI configuration from <b><nobr>%1</nobr></b>.</p>"
              "<p>The application will now terminate.</p>")
-             .arg(vbox.GetSettingsFilePath()),
-          !res.isOk() ? formatErrorInfo(res) : QString("<!--EOM--><p>%1</p>").arg(vboxGlobal().emphasize(strError)));
+             .arg(CVirtualBox(vbox).GetSettingsFilePath()),
+          !vbox.isOk() ? formatErrorInfo(vbox) : QString("<!--EOM--><p>%1</p>").arg(vboxGlobal().emphasize(strError)));
 }
 
 void UIMessageCenter::cannotSaveGlobalConfig(const CVirtualBox &vbox) const
 {
-    /* Preserve error-info: */
-    COMResult res(vbox);
-    /* Show the error: */
     error(0, MessageType_Critical,
           tr("<p>Failed to save the global GUI configuration to <b><nobr>%1</nobr></b>.</p>"
              "<p>The application will now terminate.</p>")
-             .arg(vbox.GetSettingsFilePath()),
-          formatErrorInfo(res));
+             .arg(CVirtualBox(vbox).GetSettingsFilePath()),
+          formatErrorInfo(vbox));
 }
 
@@ -468,5 +462,5 @@
 void UIMessageCenter::cannotOpenSession(const CSession &session) const
 {
-    error(mainWindowShown(), MessageType_Error,
+    error(0, MessageType_Error,
           tr("Failed to create a new session."),
           formatErrorInfo(session));
@@ -475,24 +469,21 @@
 void UIMessageCenter::cannotOpenSession(const CMachine &machine) const
 {
-    /* Preserve error-info: */
-    QString strErrorInfo = formatErrorInfo(machine);
-    /* Show the error: */
-    error(mainWindowShown(), MessageType_Error,
+    error(0, MessageType_Error,
           tr("Failed to open a session for the virtual machine <b>%1</b>.")
-             .arg(machine.GetName()),
-          strErrorInfo);
+             .arg(CMachine(machine).GetName()),
+          formatErrorInfo(machine));
 }
 
 void UIMessageCenter::cannotOpenSession(const CProgress &progress, const QString &strMachineName) const
 {
-    error(mainWindowShown(), MessageType_Error,
+    error(0, MessageType_Error,
           tr("Failed to open a session for the virtual machine <b>%1</b>.")
              .arg(strMachineName),
-          !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
+          formatErrorInfo(progress));
 }
 
 void UIMessageCenter::cannotGetMediaAccessibility(const UIMedium &medium) const
 {
-    error(mainWindowShown(), MessageType_Error,
+    error(0, MessageType_Error,
           tr("Failed to determine the accessibility state of the medium <nobr><b>%1</b></nobr>.")
              .arg(medium.location()),
@@ -502,5 +493,5 @@
 void UIMessageCenter::cannotOpenURL(const QString &strUrl) const
 {
-    alert(mainWindowShown(), MessageType_Error,
+    alert(0, MessageType_Error,
           tr("Failed to open <tt>%1</tt>. "
              "Make sure your desktop environment can properly handle URLs of this type.")
@@ -510,5 +501,5 @@
 void UIMessageCenter::cannotOpenMachine(const CVirtualBox &vbox, const QString &strMachinePath) const
 {
-    error(mainWindowShown(), MessageType_Error,
+    error(0, MessageType_Error,
           tr("Failed to open virtual machine located in %1.")
              .arg(strMachinePath),
@@ -518,21 +509,21 @@
 void UIMessageCenter::cannotReregisterExistingMachine(const QString &strMachinePath, const QString &strMachineName) const
 {
-    alert(mainWindowShown(), MessageType_Error,
+    alert(0, MessageType_Error,
           tr("Failed to add virtual machine <b>%1</b> located in <i>%2</i> because its already present.")
-             .arg(strMachineName).arg(strMachinePath));
-}
-
-void UIMessageCenter::cannotResolveCollisionAutomatically(const QString &strName, const QString &strGroupName) const
-{
-    alert(mainWindowShown(), MessageType_Error,
+             .arg(strMachineName, strMachinePath));
+}
+
+void UIMessageCenter::cannotResolveCollisionAutomatically(const QString &strCollisionName, const QString &strGroupName) const
+{
+    alert(0, MessageType_Error,
           tr("<p>You are trying to move machine <nobr><b>%1</b></nobr> "
              "to group <nobr><b>%2</b></nobr> which already have sub-group <nobr><b>%1</b></nobr>.</p>"
              "<p>Please resolve this name-conflict and try again.</p>")
-             .arg(strName, strGroupName));
+             .arg(strCollisionName, strGroupName));
 }
 
 bool UIMessageCenter::confirmAutomaticCollisionResolve(const QString &strName, const QString &strGroupName) const
 {
-    return questionBinary(mainWindowShown(), MessageType_Question,
+    return questionBinary(0, MessageType_Question,
                           tr("<p>You are trying to move group <nobr><b>%1</b></nobr> "
                              "to group <nobr><b>%2</b></nobr> which already have another item with the same name.</p>"
@@ -545,20 +536,18 @@
 void UIMessageCenter::cannotSetGroups(const CMachine &machine) const
 {
-    /* Preserve error-info: */
-    COMResult res(machine);
     /* Compose machine name: */
-    QString strName = machine.GetName();
+    QString strName = CMachine(machine).GetName();
     if (strName.isEmpty())
-        strName = QFileInfo(machine.GetSettingsFilePath()).baseName();
+        strName = QFileInfo(CMachine(machine).GetSettingsFilePath()).baseName();
     /* Show the error: */
-    error(mainWindowShown(), MessageType_Error,
+    error(0, MessageType_Error,
           tr("Failed to set groups of the virtual machine <b>%1</b>.")
              .arg(strName),
-          formatErrorInfo(res));
+          formatErrorInfo(machine));
 }
 
 bool UIMessageCenter::confirmMachineItemRemoval(const QStringList &names) const
 {
-    return questionBinary(mainWindowShown(), MessageType_Question,
+    return questionBinary(0, MessageType_Question,
                           tr("<p>You are about to remove following virtual machine items from the machine list:</p>"
                              "<p><b>%1</b></p><p>Do you wish to proceed?</p>")
@@ -632,5 +621,5 @@
     /* Prepare message itself: */
     return cInacessibleMachineCount == machines.size() ?
-           message(mainWindowShown(), MessageType_Question,
+           message(0, MessageType_Question,
                    strText, QString(),
                    0 /* auto-confirm id */,
@@ -639,5 +628,5 @@
                    0,
                    tr("Remove")) :
-           message(mainWindowShown(), MessageType_Question,
+           message(0, MessageType_Question,
                    strText, QString(),
                    0 /* auto-confirm id */,
@@ -651,24 +640,21 @@
 void UIMessageCenter::cannotRemoveMachine(const CMachine &machine) const
 {
-    /* Preserve error-info: */
-    COMResult res(machine);
-    /* Show the error: */
-    error(mainWindowShown(), MessageType_Error,
+    error(0, MessageType_Error,
           tr("Failed to remove the virtual machine <b>%1</b>.")
-             .arg(machine.GetName()),
-          !machine.isOk() ? formatErrorInfo(machine) : formatErrorInfo(res));
+             .arg(CMachine(machine).GetName()),
+          formatErrorInfo(machine));
 }
 
 void UIMessageCenter::cannotRemoveMachine(const CMachine &machine, const CProgress &progress) const
 {
-    error(mainWindowShown(), MessageType_Error,
+    error(0, MessageType_Error,
           tr("Failed to remove the virtual machine <b>%1</b>.")
-             .arg(machine.GetName()),
-          !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
+             .arg(CMachine(machine).GetName()),
+          formatErrorInfo(progress));
 }
 
 bool UIMessageCenter::warnAboutInaccessibleMedia() const
 {
-    return questionBinary(mainWindowShown(), MessageType_Warning,
+    return questionBinary(0, MessageType_Warning,
                           tr("<p>One or more virtual hard disks, CD/DVD or "
                              "floppy media are not currently accessible. As a result, you will "
@@ -684,5 +670,5 @@
 bool UIMessageCenter::confirmDiscardSavedState(const QString &strNames) const
 {
-    return questionBinary(mainWindowShown(), MessageType_Question,
+    return questionBinary(0, MessageType_Question,
                           tr("<p>Are you sure you want to discard the saved state of "
                              "the following virtual machines?</p><p><b>%1</b></p>"
@@ -696,5 +682,5 @@
 bool UIMessageCenter::confirmResetMachine(const QString &strNames) const
 {
-    return questionBinary(mainWindowShown(), MessageType_Question,
+    return questionBinary(0, MessageType_Question,
                           tr("<p>Do you really want to reset the following virtual machines?</p>"
                              "<p><b>%1</b></p><p>This will cause any unsaved data "
@@ -707,5 +693,5 @@
 bool UIMessageCenter::confirmACPIShutdownMachine(const QString &strNames) const
 {
-    return questionBinary(mainWindowShown(), MessageType_Question,
+    return questionBinary(0, MessageType_Question,
                           tr("<p>Do you really want to send an ACPI shutdown signal "
                              "to the following virtual machines?</p><p><b>%1</b></p>")
@@ -717,5 +703,5 @@
 bool UIMessageCenter::confirmPowerOffMachine(const QString &strNames) const
 {
-    return questionBinary(mainWindowShown(), MessageType_Question,
+    return questionBinary(0, MessageType_Question,
                           tr("<p>Do you really want to power off the following virtual machines?</p>"
                              "<p><b>%1</b></p><p>This will cause any unsaved data in applications "
@@ -728,83 +714,64 @@
 void UIMessageCenter::cannotPauseMachine(const CConsole &console) const
 {
-    /* Preserve error-info: */
-    COMResult res(console);
-    /* Show the error: */
-    error(mainWindowShown(), MessageType_Error,
+    error(0, MessageType_Error,
           tr("Failed to pause the execution of the virtual machine <b>%1</b>.")
-             .arg(console.GetMachine().GetName()),
-          formatErrorInfo(res));
+             .arg(CConsole(console).GetMachine().GetName()),
+          formatErrorInfo(console));
 }
 
 void UIMessageCenter::cannotResumeMachine(const CConsole &console) const
 {
-    /* Preserve error-info: */
-    COMResult res(console);
-    /* Show the error: */
-    error(mainWindowShown(), MessageType_Error,
+    error(0, MessageType_Error,
           tr("Failed to resume the execution of the virtual machine <b>%1</b>.")
-             .arg(console.GetMachine().GetName()),
-          formatErrorInfo(res));
+             .arg(CConsole(console).GetMachine().GetName()),
+          formatErrorInfo(console));
 }
 
 void UIMessageCenter::cannotDiscardSavedState(const CConsole &console) const
 {
-    /* Preserve error-info: */
-    COMResult res(console);
-    /* Show the error: */
-    error(mainWindowShown(), MessageType_Error,
+    error(0, MessageType_Error,
           tr("Failed to discard the saved state of the virtual machine <b>%1</b>.")
-             .arg(console.GetMachine().GetName()),
-          formatErrorInfo(res));
+             .arg(CConsole(console).GetMachine().GetName()),
+          formatErrorInfo(console));
 }
 
 void UIMessageCenter::cannotSaveMachineState(const CConsole &console)
 {
-    /* Preserve error-info: */
-    COMResult res(console);
-    /* Show the error: */
-    error(mainWindowShown(), MessageType_Error,
+    error(0, MessageType_Error,
           tr("Failed to save the state of the virtual machine <b>%1</b>.")
-             .arg(console.GetMachine().GetName()),
-          formatErrorInfo(res));
-}
-
-void UIMessageCenter::cannotSaveMachineState(const CProgress &progress, const QString &strName)
-{
-    error(mainWindowShown(), MessageType_Error,
+             .arg(CConsole(console).GetMachine().GetName()),
+          formatErrorInfo(console));
+}
+
+void UIMessageCenter::cannotSaveMachineState(const CProgress &progress, const QString &strMachineName)
+{
+    error(0, MessageType_Error,
           tr("Failed to save the state of the virtual machine <b>%1</b>.")
-             .arg(strName),
-          !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
+             .arg(strMachineName),
+          formatErrorInfo(progress));
 }
 
 void UIMessageCenter::cannotACPIShutdownMachine(const CConsole &console) const
 {
-    /* Preserve error-info: */
-    COMResult res(console);
-    /* Show the error: */
-    error(mainWindowShown(), MessageType_Error,
-          tr("Failed to send the ACPI Power Button press event to the "
-             "virtual machine <b>%1</b>.")
-             .arg(console.GetMachine().GetName()),
-          formatErrorInfo(res));
+    error(0, MessageType_Error,
+          tr("Failed to send the ACPI Power Button press event to the virtual machine <b>%1</b>.")
+             .arg(CConsole(console).GetMachine().GetName()),
+          formatErrorInfo(console));
 }
 
 void UIMessageCenter::cannotPowerDownMachine(const CConsole &console) const
 {
-    /* Preserve error-info: */
-    COMResult res(console);
-    /* Show the error: */
-    error(mainWindowShown(), MessageType_Error,
+    error(0, MessageType_Error,
           tr("Failed to stop the virtual machine <b>%1</b>.")
-             .arg(console.GetMachine().GetName()),
-          formatErrorInfo(res));
-}
-
-void UIMessageCenter::cannotPowerDownMachine(const CProgress &progress, const QString &strName) const
-{
-    error(mainWindowShown(), MessageType_Error,
+             .arg(CConsole(console).GetMachine().GetName()),
+          formatErrorInfo(console));
+}
+
+void UIMessageCenter::cannotPowerDownMachine(const CProgress &progress, const QString &strMachineName) const
+{
+    error(0, MessageType_Error,
           tr("Failed to stop the virtual machine <b>%1</b>.")
-              .arg(strName),
-          !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
+             .arg(strMachineName),
+          formatErrorInfo(progress));
 }
 
@@ -812,5 +779,5 @@
 {
     return fAlsoCreateNewSnapshot ?
-           messageWithOption(mainWindowShown(), MessageType_Question,
+           messageWithOption(0, MessageType_Question,
                              tr("<p>You are about to restore snapshot <nobr><b>%1</b></nobr>.</p>"
                                 "<p>You can create a snapshot of the current state of the virtual machine first by checking the box below; "
@@ -823,5 +790,5 @@
                              0 /* 3rd button */,
                              tr("Restore"), tr("Cancel"), QString() /* 3rd button text */) :
-           message(mainWindowShown(), MessageType_Question,
+           message(0, MessageType_Question,
                    tr("<p>Are you sure you want to restore snapshot <nobr><b>%1</b></nobr>?</p>")
                       .arg(strSnapshotName),
@@ -836,5 +803,5 @@
 bool UIMessageCenter::confirmSnapshotRemoval(const QString &strSnapshotName) const
 {
-    return questionBinary(mainWindowShown(), MessageType_Question,
+    return questionBinary(0, MessageType_Question,
                           tr("<p>Deleting the snapshot will cause the state information saved in it to be lost, and disk data spread over "
                              "several image files that VirtualBox has created together with the snapshot will be merged into one file. "
@@ -851,5 +818,5 @@
                                                         const QString &strTargetFileSystemFree) const
 {
-    return questionBinary(mainWindowShown(), MessageType_Question,
+    return questionBinary(0, MessageType_Question,
                           tr("<p>Deleting the snapshot %1 will temporarily need more disk space. In the worst case the size of image %2 will grow by %3, "
                               "however on this filesystem there is only %4 free.</p><p>Running out of disk space during the merge operation can result in "
@@ -874,10 +841,10 @@
           tr("Failed to create a snapshot of the virtual machine <b>%1</b>.")
              .arg(strMachineName),
-          !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
-}
-
-void UIMessageCenter::cannotRestoreSnapshot(const CConsole &console, const QString &strSnapshotName, const QString &strMachineName, QWidget *pParent /*= 0*/) const
-{
-    error(pParent, MessageType_Error,
+          formatErrorInfo(progress));
+}
+
+void UIMessageCenter::cannotRestoreSnapshot(const CConsole &console, const QString &strSnapshotName, const QString &strMachineName) const
+{
+    error(0, MessageType_Error,
           tr("Failed to restore the snapshot <b>%1</b> of the virtual machine <b>%2</b>.")
              .arg(strSnapshotName, strMachineName),
@@ -885,15 +852,15 @@
 }
 
-void UIMessageCenter::cannotRestoreSnapshot(const CProgress &progress, const QString &strSnapshotName, const QString &strMachineName, QWidget *pParent /*= 0*/) const
-{
-    error(pParent, MessageType_Error,
+void UIMessageCenter::cannotRestoreSnapshot(const CProgress &progress, const QString &strSnapshotName, const QString &strMachineName) const
+{
+    error(0, MessageType_Error,
           tr("Failed to restore the snapshot <b>%1</b> of the virtual machine <b>%2</b>.")
              .arg(strSnapshotName, strMachineName),
-          !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
+          formatErrorInfo(progress));
 }
 
 void UIMessageCenter::cannotRemoveSnapshot(const CConsole &console, const QString &strSnapshotName, const QString &strMachineName) const
 {
-    error(mainWindowShown(), MessageType_Error,
+    error(0, MessageType_Error,
           tr("Failed to delete the snapshot <b>%1</b> of the virtual machine <b>%2</b>.")
              .arg(strSnapshotName, strMachineName),
@@ -903,8 +870,8 @@
 void UIMessageCenter::cannotRemoveSnapshot(const CProgress &progress, const QString &strSnapshotName, const QString &strMachineName) const
 {
-    error(mainWindowShown(), MessageType_Error,
+    error(0, MessageType_Error,
           tr("Failed to delete the snapshot <b>%1</b> of the virtual machine <b>%2</b>.")
              .arg(strSnapshotName).arg(strMachineName),
-          !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
+          formatErrorInfo(progress));
 }
 
@@ -936,21 +903,21 @@
     error(pParent, MessageType_Error,
           tr("Failed to create the host network interface."),
-          !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
-}
-
-void UIMessageCenter::cannotRemoveHostInterface(const CHost &host, const QString &strName, QWidget *pParent /*= 0*/)
+          formatErrorInfo(progress));
+}
+
+void UIMessageCenter::cannotRemoveHostInterface(const CHost &host, const QString &strInterfaceName, QWidget *pParent /*= 0*/)
 {
     error(pParent, MessageType_Error,
           tr("Failed to remove the host network interface <b>%1</b>.")
-             .arg(strName),
+             .arg(strInterfaceName),
           formatErrorInfo(host));
 }
 
-void UIMessageCenter::cannotRemoveHostInterface(const CProgress &progress, const QString &strName, QWidget *pParent /*= 0*/)
+void UIMessageCenter::cannotRemoveHostInterface(const CProgress &progress, const QString &strInterfaceName, QWidget *pParent /*= 0*/)
 {
     error(pParent, MessageType_Error,
           tr("Failed to remove the host network interface <b>%1</b>.")
-             .arg(strName),
-          !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
+             .arg(strInterfaceName),
+          formatErrorInfo(progress));
 }
 
@@ -977,5 +944,5 @@
 }
 
-void UIMessageCenter::warnAboutUnsupportedUSB2(const QString &strExtPackName, QWidget *pParent)
+void UIMessageCenter::warnAboutUnsupportedUSB2(const QString &strExtPackName, QWidget *pParent /*= 0*/)
 {
     if (warningShown("warnAboutUnsupportedUSB2"))
@@ -996,14 +963,13 @@
 void UIMessageCenter::warnAboutStateChange(QWidget *pParent /*= 0*/) const
 {
-    /* Do not show this async warning more than one at time: */
     if (warningShown("warnAboutStateChange"))
         return;
     setWarningShown("warnAboutStateChange", true);
-    /* Show the error: */
+
     alert(pParent, MessageType_Warning,
           tr("The virtual machine that you are changing has been started. "
              "Only certain settings can be changed while a machine is running. "
              "All other changes will be lost if you close this window now."));
-    /* Allow to show this async warning: */
+
     setWarningShown("warnAboutStateChange", false);
 }
@@ -1026,6 +992,5 @@
                               .arg(strControllerName),
                            0 /* auto-confirm id */,
-                           tr("Create &new disk", "add attachment routine"),
-                           tr("&Choose existing disk", "add attachment routine"));
+                           tr("Create &new disk"), tr("&Choose existing disk"));
 }
 
@@ -1038,6 +1003,5 @@
                               .arg(strControllerName),
                            0 /* auto-confirm id */,
-                           tr("Leave &empty", "add attachment routine"),
-                           tr("&Choose disk", "add attachment routine"));
+                           tr("Leave &empty"), tr("&Choose disk"));
 }
 
@@ -1050,6 +1014,5 @@
                               .arg(strControllerName),
                            0 /* auto-confirm id */,
-                           tr("Leave &empty", "add attachment routine"),
-                           tr("&Choose disk", "add attachment routine"));
+                           tr("Leave &empty"), tr("&Choose disk"));
 }
 
@@ -1074,5 +1037,5 @@
         {
             strMessage = tr("Failed to attach the hard disk (<nobr><b>%1</b></nobr>) to the slot <i>%2</i> of the machine <b>%3</b>.")
-                           .arg(strLocation).arg(gpConverter->toString(storageSlot)).arg(CMachine(machine).GetName());
+                            .arg(strLocation).arg(gpConverter->toString(storageSlot)).arg(CMachine(machine).GetName());
             break;
         }
@@ -1080,5 +1043,5 @@
         {
             strMessage = tr("Failed to attach the CD/DVD device (<nobr><b>%1</b></nobr>) to the slot <i>%2</i> of the machine <b>%3</b>.")
-                           .arg(strLocation).arg(gpConverter->toString(storageSlot)).arg(CMachine(machine).GetName());
+                            .arg(strLocation).arg(gpConverter->toString(storageSlot)).arg(CMachine(machine).GetName());
             break;
         }
@@ -1086,5 +1049,5 @@
         {
             strMessage = tr("Failed to attach the floppy device (<nobr><b>%1</b></nobr>) to the slot <i>%2</i> of the machine <b>%3</b>.")
-                           .arg(strLocation).arg(gpConverter->toString(storageSlot)).arg(CMachine(machine).GetName());
+                            .arg(strLocation).arg(gpConverter->toString(storageSlot)).arg(CMachine(machine).GetName());
             break;
         }
@@ -1110,29 +1073,23 @@
 }
 
-void UIMessageCenter::cannotCreateSharedFolder(const CMachine &machine, const QString &strMachineName,
-                                               const QString &strName, const QString &strPath,
-                                               QWidget *pParent /*= 0*/)
+void UIMessageCenter::cannotCreateSharedFolder(const CMachine &machine, const QString &strName, const QString &strPath, QWidget *pParent /*= 0*/)
 {
     error(pParent, MessageType_Error,
           tr("Failed to create the shared folder <b>%1</b> (pointing to "
              "<nobr><b>%2</b></nobr>) for the virtual machine <b>%3</b>.")
-             .arg(strName, strPath, strMachineName),
+          .arg(strName, strPath, CMachine(machine).GetName()),
           formatErrorInfo(machine));
 }
 
-void UIMessageCenter::cannotCreateSharedFolder(const CConsole &console, const QString &strMachineName,
-                                               const QString &strName, const QString &strPath,
-                                               QWidget *pParent /*= 0*/)
+void UIMessageCenter::cannotCreateSharedFolder(const CConsole &console, const QString &strName, const QString &strPath, QWidget *pParent /*= 0*/)
 {
     error(pParent, MessageType_Error,
           tr("Failed to create the shared folder <b>%1</b> (pointing to "
              "<nobr><b>%2</b></nobr>) for the virtual machine <b>%3</b>.")
-             .arg(strName, strPath, strMachineName),
+             .arg(strName, strPath, CConsole(console).GetMachine().GetName()),
           formatErrorInfo(console));
 }
 
-void UIMessageCenter::cannotRemoveSharedFolder(const CMachine &machine, const QString &strMachineName,
-                                               const QString &strName, const QString &strPath,
-                                               QWidget *pParent /*= 0*/)
+void UIMessageCenter::cannotRemoveSharedFolder(const CMachine &machine, const QString &strName, const QString &strPath, QWidget *pParent /*= 0*/)
 {
     error(pParent, MessageType_Error,
@@ -1141,11 +1098,9 @@
              "<p>Please close all programs in the guest OS that "
              "may be using this shared folder and try again.</p>")
-             .arg(strName, strPath, strMachineName),
+             .arg(strName, strPath, CMachine(machine).GetName()),
           formatErrorInfo(machine));
 }
 
-void UIMessageCenter::cannotRemoveSharedFolder(const CConsole &console, const QString &strMachineName,
-                                               const QString &strName, const QString &strPath,
-                                               QWidget *pParent /*= 0*/)
+void UIMessageCenter::cannotRemoveSharedFolder(const CConsole &console, const QString &strName, const QString &strPath, QWidget *pParent /*= 0*/)
 {
     error(pParent, MessageType_Error,
@@ -1154,5 +1109,5 @@
              "<p>Please close all programs in the guest OS that "
              "may be using this shared folder and try again.</p>")
-             .arg(strName, strPath, strMachineName),
+             .arg(strName, strPath, CConsole(console).GetMachine().GetName()),
           formatErrorInfo(console));
 }
@@ -1160,15 +1115,11 @@
 void UIMessageCenter::cannotSaveMachineSettings(const CMachine &machine, QWidget *pParent /*= 0*/) const
 {
-    /* Preserve error-info: */
-    COMResult res(machine);
-    /* Show the error: */
     error(pParent, MessageType_Error,
           tr("Failed to save the settings of the virtual machine <b>%1</b> to <b><nobr>%2</nobr></b>.")
-             .arg(machine.GetName(), machine.GetSettingsFilePath()),
-          formatErrorInfo(res));
-}
-
-void UIMessageCenter::cannotChangeMediumType(const CMedium &medium, KMediumType oldMediumType, KMediumType newMediumType,
-                                             QWidget *pParent /*= 0*/) const
+             .arg(machine.GetName(), CMachine(machine).GetSettingsFilePath()),
+          formatErrorInfo(machine));
+}
+
+void UIMessageCenter::cannotChangeMediumType(const CMedium &medium, KMediumType oldMediumType, KMediumType newMediumType, QWidget *pParent /*= 0*/) const
 {
     error(pParent, MessageType_Error,
@@ -1208,5 +1159,6 @@
     return questionBinary(pParent, MessageType_Question,
                           strMessage.arg(medium.location(), strUsage),
-                          0 /* auto-confirm id */, tr("Release", "detach medium"));
+                          0 /* auto-confirm id */,
+                          tr("Release", "detach medium"));
 }
 
@@ -1258,5 +1210,6 @@
     return questionBinary(pParent, MessageType_Question,
                           strMessage.arg(medium.location()),
-                          "confirmMediumRemoval" /* auto-confirm id */, tr("Remove", "medium"));
+                          "confirmMediumRemoval" /* auto-confirm id */,
+                          tr("Remove", "medium"));
 }
 
@@ -1292,11 +1245,9 @@
           tr("Failed to delete the storage unit of the hard disk <b>%1</b>.")
              .arg(strLocation),
-          !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
+          formatErrorInfo(progress));
 }
 
 void UIMessageCenter::cannotDetachDevice(const CMachine &machine, UIMediumType type, const QString &strLocation, const StorageSlot &storageSlot, QWidget *pParent /*= 0*/) const
 {
-    /* Preserve error-info: */
-    QString strErrorInfo = formatErrorInfo(machine);
     /* Prepare the message: */
     QString strMessage;
@@ -1306,5 +1257,5 @@
         {
             strMessage = tr("Failed to detach the hard disk (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>.")
-                            .arg(strLocation).arg(gpConverter->toString(storageSlot)).arg(machine.GetName());
+                            .arg(strLocation, gpConverter->toString(storageSlot), CMachine(machine).GetName());
             break;
         }
@@ -1312,5 +1263,5 @@
         {
             strMessage = tr("Failed to detach the CD/DVD device (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>.")
-                            .arg(strLocation).arg(gpConverter->toString(storageSlot)).arg(machine.GetName());
+                            .arg(strLocation, gpConverter->toString(storageSlot), CMachine(machine).GetName());
             break;
         }
@@ -1318,5 +1269,5 @@
         {
             strMessage = tr("Failed to detach the floppy device (<nobr><b>%1</b></nobr>) from the slot <i>%2</i> of the machine <b>%3</b>.")
-                            .arg(strLocation).arg(gpConverter->toString(storageSlot)).arg(machine.GetName());
+                            .arg(strLocation, gpConverter->toString(storageSlot), CMachine(machine).GetName());
             break;
         }
@@ -1325,12 +1276,9 @@
     }
     /* Show the error: */
-    error(pParent, MessageType_Error,
-          strMessage, strErrorInfo);
+    error(pParent, MessageType_Error, strMessage, formatErrorInfo(machine));
 }
 
 bool UIMessageCenter::cannotRemountMedium(const CMachine &machine, const UIMedium &medium, bool fMount, bool fRetry, QWidget *pParent /*= 0*/) const
 {
-    /* Preserve error-info: */
-    QString strErrorInfo = formatErrorInfo(machine);
     /* Compose the message: */
     QString strMessage;
@@ -1375,11 +1323,11 @@
     if (fRetry)
         return errorWithQuestion(pParent, MessageType_Question,
-                                 strMessage.arg(medium.isHostDrive() ? medium.name() : medium.location()).arg(machine.GetName()),
-                                 strErrorInfo,
+                                 strMessage.arg(medium.isHostDrive() ? medium.name() : medium.location(), CMachine(machine).GetName()),
+                                 formatErrorInfo(machine),
                                  0 /* Auto Confirm ID */,
                                  tr("Force Unmount"));
     error(pParent, MessageType_Error,
-          strMessage.arg(medium.isHostDrive() ? medium.name() : medium.location()).arg(machine.GetName()),
-          strErrorInfo);
+          strMessage.arg(medium.isHostDrive() ? medium.name() : medium.location(), CMachine(machine).GetName()),
+          formatErrorInfo(machine));
     return false;
 }
@@ -1472,11 +1420,8 @@
 void UIMessageCenter::cannotCreateClone(const CMachine &machine, QWidget *pParent /*= 0*/) const
 {
-    /* Preserve error-info: */
-    QString strErrorInfo = formatErrorInfo(machine);
-    /* Show the error: */
     error(pParent, MessageType_Error,
           tr("Failed to clone the virtual machine <b>%1</b>.")
-             .arg(machine.GetName()),
-          strErrorInfo);
+             .arg(CMachine(machine).GetName()),
+          formatErrorInfo(machine));
 }
 
@@ -1486,5 +1431,5 @@
           tr("Failed to clone the virtual machine <b>%1</b>.")
              .arg(strMachineName),
-          !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
+          formatErrorInfo(progress));
 }
 
@@ -1520,14 +1465,13 @@
           tr("Failed to create the hard disk storage <nobr><b>%1</b>.</nobr>")
              .arg(strLocation),
-          !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
+          formatErrorInfo(progress));
 }
 
 void UIMessageCenter::cannotRemoveMachineFolder(const QString &strFolderName, QWidget *pParent /*= 0*/) const
 {
-    QFileInfo fi(strFolderName);
     alert(pParent, MessageType_Critical,
           tr("<p>Cannot remove the machine folder <nobr><b>%1</b>.</nobr></p>"
              "<p>Please check that this folder really exists and that you have permissions to remove it.</p>")
-             .arg(fi.fileName()));
+             .arg(QFileInfo(strFolderName).fileName()));
 }
 
@@ -1572,5 +1516,5 @@
           tr("Failed to import appliance <b>%1</b>.")
              .arg(strPath),
-          !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
+          formatErrorInfo(progress));
 }
 
@@ -1579,5 +1523,5 @@
     error(pParent, MessageType_Error,
           tr("Failed to check files."),
-          !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
+          formatErrorInfo(progress));
 }
 
@@ -1586,5 +1530,5 @@
     error(pParent, MessageType_Error,
           tr("Failed to remove file."),
-          !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
+          formatErrorInfo(progress));
 }
 
@@ -1605,11 +1549,8 @@
 void UIMessageCenter::cannotExportAppliance(const CAppliance &appliance, QWidget *pParent /*= 0*/) const
 {
-    /* Preserve error-info: */
-    QString strErrorInfo = formatErrorInfo(appliance);
-    /* Show the error: */
     error(pParent, MessageType_Error,
           tr("Failed to prepare the export of the appliance <b>%1</b>.")
-             .arg(appliance.GetPath()),
-          strErrorInfo);
+             .arg(CAppliance(appliance).GetPath()),
+          formatErrorInfo(appliance));
 }
 
@@ -1627,5 +1568,5 @@
           tr("Failed to export appliance <b>%1</b>.")
              .arg(strPath),
-          !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
+          formatErrorInfo(progress));
 }
 
@@ -1699,5 +1640,5 @@
     if (type == MessageType_Critical)
     {
-        error(mainWindowShown(), type,
+        error(0, type,
               tr("<p>A fatal error has occurred during virtual machine execution! "
                  "The virtual machine will be powered off. Please copy the following error message "
@@ -1707,5 +1648,5 @@
     else if (type == MessageType_Error)
     {
-        error(mainWindowShown(), type,
+        error(0, type,
               tr("<p>An error has occurred during virtual machine execution! "
                  "The error details are shown below. You may try to correct the error "
@@ -1715,5 +1656,5 @@
     else
     {
-        error(mainWindowShown(), type,
+        error(0, type,
               tr("<p>The virtual machine execution may run into an error condition as described below. "
                  "We suggest that you take an appropriate action to avert the error.</p>"),
@@ -1732,5 +1673,5 @@
 bool UIMessageCenter::remindAboutGuruMeditation(const QString &strLogFolder)
 {
-    return questionBinary(mainWindowShown(), MessageType_GuruMeditation,
+    return questionBinary(0, MessageType_GuruMeditation,
                           tr("<p>A critical error has occurred while running the virtual "
                              "machine and the machine execution has been stopped.</p>"
@@ -1759,5 +1700,5 @@
 {
     if (fHWVirtExSupported)
-        return questionBinary(mainWindowShown(), MessageType_Error,
+        return questionBinary(0, MessageType_Error,
                               tr("<p>VT-x/AMD-V hardware acceleration has been enabled, but is "
                                  "not operational. Your 64-bit guest will fail to detect a "
@@ -1768,5 +1709,5 @@
                               tr("Close VM"), tr("Continue"));
     else
-        return questionBinary(mainWindowShown(), MessageType_Error,
+        return questionBinary(0, MessageType_Error,
                               tr("<p>VT-x/AMD-V hardware acceleration is not available on your system. "
                                  "Your 64-bit guest will fail to detect a 64-bit CPU and will "
@@ -1779,5 +1720,5 @@
 {
     if (fHWVirtExSupported)
-        return questionBinary(mainWindowShown(), MessageType_Error,
+        return questionBinary(0, MessageType_Error,
                               tr("<p>VT-x/AMD-V hardware acceleration has been enabled, but is not operational. "
                                  "Certain guests (e.g. OS/2 and QNX) require this feature.</p>"
@@ -1786,5 +1727,5 @@
                               tr("Close VM"), tr("Continue"));
     else
-        return questionBinary(mainWindowShown(), MessageType_Error,
+        return questionBinary(0, MessageType_Error,
                               tr("<p>VT-x/AMD-V hardware acceleration is not available on your system. "
                                  "Certain guests (e.g. OS/2 and QNX) require this feature and will fail to boot without it.</p>"),
@@ -1795,5 +1736,5 @@
 bool UIMessageCenter::cannotStartWithoutNetworkIf(const QString &strMachineName, const QString &strIfNames) const
 {
-    return questionBinary(mainWindowShown(), MessageType_Error,
+    return questionBinary(0, MessageType_Error,
                           tr("<p>Could not start the machine <b>%1</b> because the following "
                              "physical network interfaces were not found:</p><p><b>%2</b></p>"
@@ -1806,5 +1747,5 @@
 void UIMessageCenter::cannotStartMachine(const CConsole &console, const QString &strName) const
 {
-    error(mainWindowShown(), MessageType_Error,
+    error(0, MessageType_Error,
           tr("Failed to start the virtual machine <b>%1</b>.")
              .arg(strName),
@@ -1814,13 +1755,13 @@
 void UIMessageCenter::cannotStartMachine(const CProgress &progress, const QString &strName) const
 {
-    error(mainWindowShown(), MessageType_Error,
+    error(0, MessageType_Error,
           tr("Failed to start the virtual machine <b>%1</b>.")
              .arg(strName),
-          !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
+          formatErrorInfo(progress));
 }
 
 void UIMessageCenter::cannotSendACPIToMachine() const
 {
-    alert(mainWindowShown(),  MessageType_Warning,
+    alert(0,  MessageType_Warning,
           tr("You are trying to shut down the guest with the ACPI power button. "
              "This is currently not possible because the guest does not support software shutdown."));
@@ -1829,5 +1770,5 @@
 bool UIMessageCenter::confirmInputCapture(bool &fAutoConfirmed) const
 {
-    int rc = question(mainWindowShown(), MessageType_Info,
+    int rc = question(0, MessageType_Info,
                       tr("<p>You have <b>clicked the mouse</b> inside the Virtual Machine display or pressed the <b>host key</b>. "
                          "This will cause the Virtual Machine to <b>capture</b> the host mouse pointer (only if the mouse pointer "
@@ -1854,5 +1795,5 @@
 void UIMessageCenter::remindAboutAutoCapture() const
 {
-    alert(mainWindowShown(), MessageType_Info,
+    alert(0, MessageType_Info,
           tr("<p>You have the <b>Auto capture keyboard</b> option turned on. "
              "This will cause the Virtual Machine to automatically <b>capture</b> "
@@ -1876,5 +1817,4 @@
 void UIMessageCenter::remindAboutMouseIntegration(bool fSupportsAbsolute) const
 {
-    /* Do not show this async warning more than one at time: */
     if (warningShown("remindAboutMouseIntegration"))
         return;
@@ -1889,5 +1829,5 @@
     if (fSupportsAbsolute)
     {
-        alert(mainWindowShown(), MessageType_Info,
+        alert(0, MessageType_Info,
               tr("<p>The Virtual Machine reports that the guest OS supports <b>mouse pointer integration</b>. "
                  "This means that you do not need to <i>capture</i> the mouse pointer to be able to use it in your guest OS -- "
@@ -1903,5 +1843,5 @@
     else
     {
-        alert(mainWindowShown(), MessageType_Info,
+        alert(0, MessageType_Info,
               tr("<p>The Virtual Machine reports that the guest OS does not support <b>mouse pointer integration</b> "
                  "in the current video mode. You need to capture the mouse (by clicking over the VM display "
@@ -1910,5 +1850,4 @@
     }
 
-    /* Allow to show this async warning: */
     setWarningShown("remindAboutMouseIntegration", false);
 }
@@ -1916,5 +1855,5 @@
 void UIMessageCenter::remindAboutPausedVMInput() const
 {
-    alert(mainWindowShown(), MessageType_Info,
+    alert(0, MessageType_Info,
           tr("<p>The Virtual Machine is currently in the <b>Paused</b> state and "
              "not able to see any keyboard or mouse input. If you want to "
@@ -1926,5 +1865,5 @@
 bool UIMessageCenter::confirmGoingFullscreen(const QString &strHotKey) const
 {
-    return questionBinary(mainWindowShown(), MessageType_Info,
+    return questionBinary(0, MessageType_Info,
                           tr("<p>The virtual machine window will be now switched to <b>fullscreen</b> mode. "
                              "You can go back to windowed mode at any time by pressing <b>%1</b>.</p>"
@@ -1939,5 +1878,5 @@
 bool UIMessageCenter::confirmGoingSeamless(const QString &strHotKey) const
 {
-    return questionBinary(mainWindowShown(), MessageType_Info,
+    return questionBinary(0, MessageType_Info,
                           tr("<p>The virtual machine window will be now switched to <b>Seamless</b> mode. "
                              "You can go back to windowed mode at any time by pressing <b>%1</b>.</p>"
@@ -1952,5 +1891,5 @@
 bool UIMessageCenter::confirmGoingScale(const QString &strHotKey) const
 {
-    return questionBinary(mainWindowShown(), MessageType_Info,
+    return questionBinary(0, MessageType_Info,
                           tr("<p>The virtual machine window will be now switched to <b>Scale</b> mode. "
                              "You can go back to windowed mode at any time by pressing <b>%1</b>.</p>"
@@ -1965,5 +1904,5 @@
 bool UIMessageCenter::cannotEnterFullscreenMode(ULONG /* uWidth */, ULONG /* uHeight */, ULONG /* uBpp */, ULONG64 uMinVRAM) const
 {
-    return questionBinary(mainWindowShown(), MessageType_Warning,
+    return questionBinary(0, MessageType_Warning,
                           tr("<p>Could not switch the guest display to fullscreen mode due to insufficient guest video memory.</p>"
                              "<p>You should configure the virtual machine to have at least <b>%1</b> of video memory.</p>"
@@ -1976,5 +1915,5 @@
 void UIMessageCenter::cannotEnterSeamlessMode(ULONG /* uWidth */, ULONG /* uHeight */, ULONG /* uBpp */, ULONG64 uMinVRAM) const
 {
-    alert(mainWindowShown(), MessageType_Error,
+    alert(0, MessageType_Error,
           tr("<p>Could not enter seamless mode due to insufficient guest "
              "video memory.</p>"
@@ -1986,5 +1925,5 @@
 bool UIMessageCenter::cannotSwitchScreenInFullscreen(quint64 uMinVRAM) const
 {
-    return questionBinary(mainWindowShown(), MessageType_Warning,
+    return questionBinary(0, MessageType_Warning,
                           tr("<p>Could not change the guest screen to this host screen due to insufficient guest video memory.</p>"
                              "<p>You should configure the virtual machine to have at least <b>%1</b> of video memory.</p>"
@@ -1997,5 +1936,5 @@
 void UIMessageCenter::cannotSwitchScreenInSeamless(quint64 uMinVRAM) const
 {
-    alert(mainWindowShown(), MessageType_Error,
+    alert(0, MessageType_Error,
           tr("<p>Could not change the guest screen to this host screen "
              "due to insufficient guest video memory.</p>"
@@ -2007,16 +1946,13 @@
 void UIMessageCenter::cannotAttachUSBDevice(const CConsole &console, const QString &strDevice) const
 {
-    /* Preserve error-info: */
-    QString strErrorInfo = formatErrorInfo(console);
-    /* Show the error: */
-    error(mainWindowShown(), MessageType_Error,
+    error(0, MessageType_Error,
           tr("Failed to attach the USB device <b>%1</b> to the virtual machine <b>%2</b>.")
-             .arg(strDevice, console.GetMachine().GetName()),
-          strErrorInfo);
+             .arg(strDevice, CConsole(console).GetMachine().GetName()),
+          formatErrorInfo(console));
 }
 
 void UIMessageCenter::cannotAttachUSBDevice(const CVirtualBoxErrorInfo &errorInfo, const QString &strDevice, const QString &strMachineName) const
 {
-    error(mainWindowShown(), MessageType_Error,
+    error(0, MessageType_Error,
           tr("Failed to attach the USB device <b>%1</b> to the virtual machine <b>%2</b>.")
              .arg(strDevice, strMachineName),
@@ -2026,16 +1962,13 @@
 void UIMessageCenter::cannotDetachUSBDevice(const CConsole &console, const QString &strDevice) const
 {
-    /* Preserve error-info: */
-    QString strErrorInfo = formatErrorInfo(console);
-    /* Show the error: */
-    error(mainWindowShown(), MessageType_Error,
+    error(0, MessageType_Error,
           tr("Failed to detach the USB device <b>%1</b> from the virtual machine <b>%2</b>.")
-             .arg(strDevice, console.GetMachine().GetName()),
-          strErrorInfo);
+             .arg(strDevice, CConsole(console).GetMachine().GetName()),
+          formatErrorInfo(console));
 }
 
 void UIMessageCenter::cannotDetachUSBDevice(const CVirtualBoxErrorInfo &errorInfo, const QString &strDevice, const QString &strMachineName) const
 {
-    error(mainWindowShown(), MessageType_Error,
+    error(0, MessageType_Error,
           tr("Failed to detach the USB device <b>%1</b> from the virtual machine <b>%2</b>.")
              .arg(strDevice, strMachineName),
@@ -2043,7 +1976,7 @@
 }
 
-void UIMessageCenter::remindAboutGuestAdditionsAreNotActive(QWidget *pParent /*= 0*/) const
-{
-    alert(pParent, MessageType_Warning,
+void UIMessageCenter::remindAboutGuestAdditionsAreNotActive() const
+{
+    alert(0, MessageType_Warning,
           tr("<p>The VirtualBox Guest Additions do not appear to be available on this virtual machine, "
              "and shared folders cannot be used without them. To use shared folders inside the virtual machine, "
@@ -2078,14 +2011,13 @@
 void UIMessageCenter::askUserToDownloadExtensionPack(const QString &strExtPackName, const QString &strExtPackVersion, const QString &strVBoxVersion) const
 {
-    alert(mainWindowShown(), MessageType_Info,
+    alert(networkManagerOrMainWindowShown(), MessageType_Info,
           tr("<p>You have version %1 of the <b><nobr>%2</nobr></b> installed.</p>"
              "<p>You should download and install version %3 of this extension pack from Oracle!</p>")
-             .arg(strExtPackVersion).arg(strExtPackName).arg(strVBoxVersion),
-          0 /* auto-confirm id */);
+             .arg(strExtPackVersion).arg(strExtPackName).arg(strVBoxVersion));
 }
 
 bool UIMessageCenter::cannotFindGuestAdditions() const
 {
-    return questionBinary(mainWindowShown(), MessageType_Question,
+    return questionBinary(0, MessageType_Question,
                           tr("<p>Could not find the <b>VirtualBox Guest Additions</b> CD image.</p>"
                              "<p>Do you wish to download this CD image from the Internet?</p>"),
@@ -2096,9 +2028,8 @@
 bool UIMessageCenter::confirmDownloadGuestAdditions(const QString &strUrl, qulonglong uSize) const
 {
-    QLocale loc(VBoxGlobal::languageId());
     return questionBinary(networkManagerOrMainWindowShown(), MessageType_Question,
                           tr("<p>Are you sure you want to download the <b>VirtualBox Guest Additions</b> CD image "
                              "from <nobr><a href=\"%1\">%1</a></nobr> (size %2 bytes)?</p>")
-                             .arg(strUrl, loc.toString(uSize)),
+                             .arg(strUrl, QLocale(VBoxGlobal::languageId()).toString(uSize)),
                           0 /* auto-confirm id */,
                           tr("Download"));
@@ -2129,5 +2060,5 @@
 void UIMessageCenter::cannotMountGuestAdditions(const QString &strMachineName) const
 {
-    alert(mainWindowShown(), MessageType_Error,
+    alert(0, MessageType_Error,
           tr("<p>Could not insert the <b>VirtualBox Guest Additions</b> CD image into the virtual machine <b>%1</b>, "
              "as the machine has no CD/DVD-ROM drives. Please add a drive using the storage page of the "
@@ -2138,13 +2069,13 @@
 void UIMessageCenter::cannotUpdateGuestAdditions(const CProgress &progress) const
 {
-    error(mainWindowShown(), MessageType_Error,
+    error(0, MessageType_Error,
           tr("Failed to update Guest Additions. "
              "The Guest Additions installation image will be mounted to provide a manual installation."),
-          !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
+          formatErrorInfo(progress));
 }
 
 bool UIMessageCenter::cannotFindUserManual(const QString &strMissedLocation) const
 {
-    return questionBinary(mainWindowShown(), MessageType_Question,
+    return questionBinary(0, MessageType_Question,
                           tr("<p>Could not find the <b>VirtualBox User Manual</b> <nobr><b>%1</b>.</nobr></p>"
                              "<p>Do you wish to download this file from the Internet?</p>")
@@ -2156,9 +2087,8 @@
 bool UIMessageCenter::confirmDownloadUserManual(const QString &strURL, qulonglong uSize) const
 {
-    QLocale loc(VBoxGlobal::languageId());
     return questionBinary(networkManagerOrMainWindowShown(), MessageType_Question,
                           tr("<p>Are you sure you want to download the <b>VirtualBox User Manual</b> "
                              "from <nobr><a href=\"%1\">%1</a></nobr> (size %2 bytes)?</p>")
-                             .arg(strURL, loc.toString(uSize)),
+                             .arg(strURL, QLocale(VBoxGlobal::languageId()).toString(uSize)),
                           0 /* auto-confirm id */,
                           tr("Download"));
@@ -2186,6 +2116,5 @@
 bool UIMessageCenter::warAboutOutdatedExtensionPack(const QString &strExtPackName, const QString &strExtPackVersion) const
 {
-    return questionBinary(mainWindowShown(),
-                          MessageType_Question,
+    return questionBinary(networkManagerOrMainWindowShown(), MessageType_Question,
                           tr("<p>You have an old version (%1) of the <b><nobr>%2</nobr></b> installed.</p>"
                              "<p>Do you wish to download latest one from the Internet?</p>")
@@ -2197,9 +2126,8 @@
 bool UIMessageCenter::confirmDownloadExtensionPack(const QString &strExtPackName, const QString &strURL, qulonglong uSize) const
 {
-    QLocale loc(VBoxGlobal::languageId());
     return questionBinary(networkManagerOrMainWindowShown(), MessageType_Question,
                           tr("<p>Are you sure you want to download the <b><nobr>%1</nobr></b> "
                              "from <nobr><a href=\"%2\">%2</a></nobr> (size %3 bytes)?</p>")
-                             .arg(strExtPackName, strURL, loc.toString(uSize)),
+                             .arg(strExtPackName, strURL, QLocale(VBoxGlobal::languageId()).toString(uSize)),
                           0 /* auto-confirm id */,
                           tr("Download"));
@@ -2242,5 +2170,5 @@
                              "</table></p>")
                              .arg(strPackName).arg(strPackVersion).arg(strPackDescription),
-                          0,
+                          0 /* auto-confirm id */,
                           tr("Install", "extension pack"));
 }
@@ -2274,5 +2202,5 @@
                                 "</table></p>")
                                 .arg(strBelehrung).arg(strPackName).arg(strPackVersionNew).arg(strPackVersionOld).arg(strPackDescription),
-                             0,
+                             0 /* auto-confirm id */,
                              tr("&Upgrade"));
     else if (iVerCmp < 0)
@@ -2287,5 +2215,5 @@
                                 "</table></p>")
                                 .arg(strBelehrung).arg(strPackName).arg(strPackVersionNew).arg(strPackVersionOld).arg(strPackDescription),
-                             0,
+                             0 /* auto-confirm id */,
                              tr("&Downgrade"));
     else
@@ -2299,5 +2227,5 @@
                                 "</table></p>")
                                 .arg(strBelehrung).arg(strPackName).arg(strPackVersionOld).arg(strPackDescription),
-                             0,
+                             0 /* auto-confirm id */,
                              tr("&Reinstall"));
     return fRc;
@@ -2310,5 +2238,5 @@
                              "<p>Are you sure you want to proceed?</p>")
                              .arg(strPackName),
-                          0,
+                          0 /* auto-confirm id */,
                           tr("&Remove"));
 }
@@ -2341,5 +2269,5 @@
           tr("Failed to install the Extension Pack <b>%1</b>.")
              .arg(strFilename),
-          !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
+          formatErrorInfo(progress));
 }
 
@@ -2357,5 +2285,5 @@
           tr("Failed to uninstall the Extension Pack <b>%1</b>.")
              .arg(strPackName),
-          !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
+          formatErrorInfo(progress));
 }
 
@@ -2379,5 +2307,5 @@
     error(pParent, MessageType_Error,
           tr("Failed to drop data."),
-          !progress.isOk() ? formatErrorInfo(progress) : formatErrorInfo(progress.GetErrorInfo()));
+          formatErrorInfo(progress));
 }
 #endif /* VBOX_WITH_DRAG_AND_DROP */
@@ -2479,4 +2407,10 @@
 
     return str;
+}
+
+/* static */
+QString UIMessageCenter::formatErrorInfo(const CProgress &progress)
+{
+    return !progress.isOk() ? formatErrorInfo(static_cast<COMBaseWithEI>(progress)) : formatErrorInfo(progress.GetErrorInfo());
 }
 
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h	(revision 45402)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h	(revision 45424)
@@ -186,5 +186,5 @@
     void cannotOpenMachine(const CVirtualBox &vbox, const QString &strMachinePath) const;
     void cannotReregisterExistingMachine(const QString &strMachinePath, const QString &strMachineName) const;
-    void cannotResolveCollisionAutomatically(const QString &strName, const QString &strGroupName) const;
+    void cannotResolveCollisionAutomatically(const QString &strCollisionName, const QString &strGroupName) const;
     bool confirmAutomaticCollisionResolve(const QString &strName, const QString &strGroupName) const;
     void cannotSetGroups(const CMachine &machine) const;
@@ -202,8 +202,8 @@
     void cannotDiscardSavedState(const CConsole &console) const;
     void cannotSaveMachineState(const CConsole &console);
-    void cannotSaveMachineState(const CProgress &progress, const QString &strName);
+    void cannotSaveMachineState(const CProgress &progress, const QString &strMachineName);
     void cannotACPIShutdownMachine(const CConsole &console) const;
     void cannotPowerDownMachine(const CConsole &console) const;
-    void cannotPowerDownMachine(const CProgress &progress, const QString &strName) const;
+    void cannotPowerDownMachine(const CProgress &progress, const QString &strMachineName) const;
 
     /* API: Snapshot warnings: */
@@ -214,6 +214,6 @@
     void cannotTakeSnapshot(const CConsole &console, const QString &strMachineName, QWidget *pParent = 0) const;
     void cannotTakeSnapshot(const CProgress &progress, const QString &strMachineName, QWidget *pParent = 0) const;
-    void cannotRestoreSnapshot(const CConsole &console, const QString &strSnapshotName, const QString &strMachineName, QWidget *pParent = 0) const;
-    void cannotRestoreSnapshot(const CProgress &progress, const QString &strSnapshotName, const QString &strMachineName, QWidget *pParent = 0) const;
+    void cannotRestoreSnapshot(const CConsole &console, const QString &strSnapshotName, const QString &strMachineName) const;
+    void cannotRestoreSnapshot(const CProgress &progress, const QString &strSnapshotName, const QString &strMachineName) const;
     void cannotRemoveSnapshot(const CConsole &console, const QString &strSnapshotName, const QString &strMachineName) const;
     void cannotRemoveSnapshot(const CProgress &progress, const QString &strSnapshotName, const QString &strMachineName) const;
@@ -223,6 +223,6 @@
     void cannotCreateHostInterface(const CHost &host, QWidget *pParent = 0);
     void cannotCreateHostInterface(const CProgress &progress, QWidget *pParent = 0);
-    void cannotRemoveHostInterface(const CHost &host, const QString &strName, QWidget *pParent = 0);
-    void cannotRemoveHostInterface(const CProgress &progress, const QString &strName, QWidget *pParent = 0);
+    void cannotRemoveHostInterface(const CHost &host, const QString &strInterfaceName, QWidget *pParent = 0);
+    void cannotRemoveHostInterface(const CProgress &progress, const QString &strInterfaceName, QWidget *pParent = 0);
     void cannotSetSystemProperties(const CSystemProperties &properties, QWidget *pParent = 0) const;
 
@@ -239,8 +239,8 @@
     void warnAboutIncorrectPort(QWidget *pParent = 0) const;
     bool confirmCancelingPortForwardingDialog(QWidget *pParent = 0) const;
-    void cannotCreateSharedFolder(const CMachine &machine, const QString &strMachineName, const QString &strName, const QString &strPath, QWidget *pParent = 0);
-    void cannotCreateSharedFolder(const CConsole &console, const QString &strMachineName, const QString &strName, const QString &strPath, QWidget *pParent = 0);
-    void cannotRemoveSharedFolder(const CMachine &machine, const QString &strMachineName, const QString &strName, const QString &strPath, QWidget *pParent = 0);
-    void cannotRemoveSharedFolder(const CConsole &console, const QString &strMachineName, const QString &strName, const QString &strPath, QWidget *pParent = 0);
+    void cannotCreateSharedFolder(const CMachine &machine, const QString &strName, const QString &strPath, QWidget *pParent = 0);
+    void cannotCreateSharedFolder(const CConsole &console, const QString &strName, const QString &strPath, QWidget *pParent = 0);
+    void cannotRemoveSharedFolder(const CMachine &machine, const QString &strName, const QString &strPath, QWidget *pParent = 0);
+    void cannotRemoveSharedFolder(const CConsole &console, const QString &strName, const QString &strPath, QWidget *pParent = 0);
     void cannotSaveMachineSettings(const CMachine &machine, QWidget *pParent = 0) const;
 
@@ -304,5 +304,5 @@
     void cannotDetachUSBDevice(const CConsole &console, const QString &strDevice) const;
     void cannotDetachUSBDevice(const CVirtualBoxErrorInfo &errorInfo, const QString &strDevice, const QString &strMachineName) const;
-    void remindAboutGuestAdditionsAreNotActive(QWidget *pParent = 0) const;
+    void remindAboutGuestAdditionsAreNotActive() const;
 
     /* API: Network management warnings: */
@@ -356,4 +356,5 @@
     /* API: Static helpers: */
     static QString formatRC(HRESULT rc);
+    static QString formatErrorInfo(const CProgress &progress);
     static QString formatErrorInfo(const COMErrorInfo &info, HRESULT wrapperRC = S_OK);
     static QString formatErrorInfo(const CVirtualBoxErrorInfo &info);
Index: trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 45402)
+++ trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 45424)
@@ -4809,5 +4809,6 @@
      * otherwise we better show the progress... */
     int iSpawningDuration = 60000;
-    msgCenter().showModalProgressDialog(progress, machine.GetName(), "", msgCenter().mainWindowShown(), iSpawningDuration);
+    msgCenter().showModalProgressDialog(progress, machine.GetName(),
+                                        ":/progress_start_90px.png", 0, iSpawningDuration);
     if (!progress.isOk() || progress.GetResultCode() != 0)
         msgCenter().cannotOpenSession(progress, machine.GetName());
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp	(revision 45402)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp	(revision 45424)
@@ -330,5 +330,5 @@
                 {
                     /* Show machine power down progress: */
-                    msgCenter().showModalProgressDialog(progress, strMachineName, ":/progress_poweroff_90px.png", activeMachineWindow());
+                    msgCenter().showModalProgressDialog(progress, strMachineName, ":/progress_poweroff_90px.png");
                     if (!progress.isOk() || progress.GetResultCode() != 0)
                         msgCenter().cannotPowerDownMachine(progress, strMachineName);
@@ -1034,10 +1034,10 @@
             {
                 /* Show the take-snapshot progress: */
-                msgCenter().showModalProgressDialog(progress, machine.GetName(), ":/progress_snapshot_create_90px.png", activeMachineWindow());
+                msgCenter().showModalProgressDialog(progress, machine.GetName(), ":/progress_snapshot_create_90px.png");
                 if (!progress.isOk() || progress.GetResultCode() != 0)
-                    msgCenter().cannotTakeSnapshot(progress, machine.GetName(), activeMachineWindow());
+                    msgCenter().cannotTakeSnapshot(progress, machine.GetName());
             }
             else
-                msgCenter().cannotTakeSnapshot(console, machine.GetName(), activeMachineWindow());
+                msgCenter().cannotTakeSnapshot(console, machine.GetName());
         }
     }
@@ -1226,5 +1226,5 @@
     /* Do not process if additions are not loaded! */
     if (!uisession()->isGuestAdditionsActive())
-        msgCenter().remindAboutGuestAdditionsAreNotActive(activeMachineWindow());
+        msgCenter().remindAboutGuestAdditionsAreNotActive();
 
     /* Open VM settings : Shared folders page: */
Index: trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp	(revision 45402)
+++ trunk/src/VBox/Frontends/VirtualBox/src/runtime/UISession.cpp	(revision 45424)
@@ -221,5 +221,5 @@
     if (isSaved())
     {
-        msgCenter().showModalProgressDialog(progress, machine.GetName(), ":/progress_state_restore_90px.png", mainMachineWindow(), 0);
+        msgCenter().showModalProgressDialog(progress, machine.GetName(), ":/progress_state_restore_90px.png", 0, 0);
         /* If restoring from saved state, guest MachineView
            should be notified about host MachineWindow geometry change */
@@ -227,5 +227,5 @@
     }
     else
-        msgCenter().showModalProgressDialog(progress, machine.GetName(), ":/progress_start_90px.png", mainMachineWindow());
+        msgCenter().showModalProgressDialog(progress, machine.GetName(), ":/progress_start_90px.png");
 
     /* Check for a progress failure: */
@@ -280,5 +280,5 @@
                     uimachine()->machineLogic()->setPreventAutoClose(true);
                 /* Show the power down progress dialog */
-                msgCenter().showModalProgressDialog(progress, machine.GetName(), ":/progress_poweroff_90px.png", mainMachineWindow());
+                msgCenter().showModalProgressDialog(progress, machine.GetName(), ":/progress_poweroff_90px.png");
                 if (!progress.isOk() || progress.GetResultCode() != 0)
                     msgCenter().cannotPowerDownMachine(progress, machine.GetName());
@@ -320,7 +320,5 @@
     {
         /* Show the saving progress: */
-        msgCenter().showModalProgressDialog(progress, machine.GetName(),
-                                            ":/progress_state_save_90px.png",
-                                            machineLogic()->activeMachineWindow());
+        msgCenter().showModalProgressDialog(progress, machine.GetName(), ":/progress_state_save_90px.png");
         if (!progress.isOk() || progress.GetResultCode() != 0)
         {
@@ -370,7 +368,5 @@
     {
         /* Show the power-off progress: */
-        msgCenter().showModalProgressDialog(progress, machine.GetName(),
-                                            ":/progress_poweroff_90px.png",
-                                            machineLogic()->activeMachineWindow());
+        msgCenter().showModalProgressDialog(progress, machine.GetName(), ":/progress_poweroff_90px.png");
         if (progress.GetResultCode() == 0)
         {
@@ -384,11 +380,9 @@
                 {
                     /* Show the snapshot-discard progress: */
-                    msgCenter().showModalProgressDialog(progress, machine.GetName(),
-                                                        ":/progress_snapshot_discard_90px.png",
-                                                        machineLogic()->activeMachineWindow());
+                    msgCenter().showModalProgressDialog(progress, machine.GetName(), ":/progress_snapshot_discard_90px.png");
                     if (progress.GetResultCode() != 0)
                     {
                         /* Failed in progress: */
-                        msgCenter().cannotRestoreSnapshot(progress, snapshot.GetName(), machine.GetName(), machineLogic()->activeMachineWindow());
+                        msgCenter().cannotRestoreSnapshot(progress, snapshot.GetName(), machine.GetName());
                         return false;
                     }
@@ -397,5 +391,5 @@
                 {
                     /* Failed in console: */
-                    msgCenter().cannotRestoreSnapshot(console, snapshot.GetName(), machine.GetName(), machineLogic()->activeMachineWindow());
+                    msgCenter().cannotRestoreSnapshot(console, snapshot.GetName(), machine.GetName());
                     return false;
                 }
@@ -505,6 +499,7 @@
     if (fResult)
     {
-        msgCenter().showModalProgressDialog(progressInstall, tr("Updating Guest Additions"), ":/progress_install_guest_additions_90px.png",
-                                            machineLogic()->activeMachineWindow(), 500 /* 500ms delay. */);
+        msgCenter().showModalProgressDialog(progressInstall, tr("Updating Guest Additions"),
+                                            ":/progress_install_guest_additions_90px.png",
+                                            0, 500 /* 500ms delay. */);
         if (progressInstall.GetCanceled())
             return;
Index: trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSF.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSF.cpp	(revision 45402)
+++ trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSF.cpp	(revision 45424)
@@ -750,6 +750,4 @@
     if (!sharedFolder.isNull())
     {
-        /* Get machine-name: */
-        QString strMachineName(m_machine.GetName());
         /* Remove existing shared folder: */
         switch(sharedFoldersType)
@@ -763,5 +761,5 @@
                     setFailed(true);
                     /* Show error message: */
-                    msgCenter().cannotRemoveSharedFolder(m_machine, strMachineName, strName, strPath, this);
+                    msgCenter().cannotRemoveSharedFolder(m_machine, strName, strPath, this);
                     /* Finish early: */
                     return false;
@@ -777,5 +775,5 @@
                     setFailed(true);
                     /* Show error message: */
-                    msgCenter().cannotRemoveSharedFolder(m_console, strMachineName, strName, strPath, this);
+                    msgCenter().cannotRemoveSharedFolder(m_console, strName, strPath, this);
                     /* Finish early: */
                     return false;
@@ -809,6 +807,4 @@
     if (sharedFolder.isNull())
     {
-        /* Get machine-name: */
-        QString strMachineName(m_machine.GetName());
         /* Create new shared folder: */
         switch(sharedFoldersType)
@@ -822,5 +818,5 @@
                     setFailed(true);
                     /* Show error message: */
-                    msgCenter().cannotCreateSharedFolder(m_machine, strMachineName, strName, strPath, this);
+                    msgCenter().cannotCreateSharedFolder(m_machine, strName, strPath, this);
                     /* Finish early: */
                     return false;
@@ -837,5 +833,5 @@
                     setFailed(true);
                     /* Show error message: */
-                    msgCenter().cannotCreateSharedFolder(m_console, strMachineName, strName, strPath, this);
+                    msgCenter().cannotCreateSharedFolder(m_console, strName, strPath, this);
                     /* Finish early: */
                     return false;
Index: trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIApplianceImportEditorWidget.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIApplianceImportEditorWidget.cpp	(revision 45402)
+++ trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIApplianceImportEditorWidget.cpp	(revision 45424)
@@ -67,5 +67,5 @@
             {
                 /* Show some progress, so the user know whats going on */
-                msgCenter().showModalProgressDialog(progress, tr("Reading Appliance ..."), "", this);
+                msgCenter().showModalProgressDialog(progress, tr("Reading Appliance ..."), ":/shared_folder_32px.png", this);
                 if (!progress.isOk() || progress.GetResultCode() != 0)
                     fResult = false;
Index: trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportApp.cpp
===================================================================
--- trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportApp.cpp	(revision 45402)
+++ trunk/src/VBox/Frontends/VirtualBox/src/wizards/exportappliance/UIWizardExportApp.cpp	(revision 45424)
@@ -86,5 +86,6 @@
     {
         /* Show some progress, so the user know whats going on: */
-        msgCenter().showModalProgressDialog(progress, QApplication::translate("UIWizardExportApp", "Checking files ..."), "", this);
+        msgCenter().showModalProgressDialog(progress, QApplication::translate("UIWizardExportApp", "Checking files ..."),
+                                            ":/refresh_32px.png", this);
         if (progress.GetCanceled())
             return false;
@@ -107,5 +108,6 @@
         {
             /* Show some progress, so the user know whats going on: */
-            msgCenter().showModalProgressDialog(progress1, QApplication::translate("UIWizardExportApp", "Removing files ..."), "", this);
+            msgCenter().showModalProgressDialog(progress1, QApplication::translate("UIWizardExportApp", "Removing files ..."),
+                                                ":/vm_delete_32px.png", this);
             if (progress1.GetCanceled())
                 return false;
