Index: /trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 68434)
+++ /trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk	(revision 68435)
@@ -640,4 +640,5 @@
 	src/globals/UIMainEventListener.cpp \
 	src/globals/UIMessageCenter.cpp \
+	src/globals/UIErrorString.cpp \
 	src/globals/UIModalWindowManager.cpp \
 	src/globals/UIPopupCenter.cpp \
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIErrorString.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIErrorString.cpp	(revision 68435)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIErrorString.cpp	(revision 68435)
@@ -0,0 +1,239 @@
+/* $Id$ */
+/** @file
+ * VBox Qt GUI - UIErrorString class implementation.
+ */
+
+/*
+ * Copyright (C) 2006-2017 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.
+ */
+
+#ifdef VBOX_WITH_PRECOMPILED_HEADERS
+# include <precomp.h>
+#else  /* !VBOX_WITH_PRECOMPILED_HEADERS */
+
+/* Qt includes: */
+#include <QObject>
+
+/* GUI includes: */
+#include "UIErrorString.h"
+#include "VBoxGlobal.h"
+
+/* COM includes: */
+#include "COMDefs.h"
+#include "CProgress.h"
+#include "CVirtualBoxErrorInfo.h"
+
+#endif /* !VBOX_WITH_PRECOMPILED_HEADERS */
+
+
+/* static */
+QString UIErrorString::formatRC(HRESULT rc)
+{
+    QString str;
+
+    PCRTCOMERRMSG msg = NULL;
+    const char *pErrMsg = NULL;
+
+    /* First, try as is (only set bit 31 bit for warnings): */
+    if (SUCCEEDED_WARNING(rc))
+        msg = RTErrCOMGet(rc | 0x80000000);
+    else
+        msg = RTErrCOMGet(rc);
+
+    if (msg != NULL)
+        pErrMsg = msg->pszDefine;
+
+#ifdef VBOX_WS_WIN
+    PCRTWINERRMSG winMsg = NULL;
+
+    /* If not found, try again using RTErrWinGet with masked off top 16bit: */
+    if (msg == NULL)
+    {
+        winMsg = RTErrWinGet(rc & 0xFFFF);
+
+        if (winMsg != NULL)
+            pErrMsg = winMsg->pszDefine;
+    }
+#endif /* VBOX_WS_WIN */
+
+    if (pErrMsg != NULL && *pErrMsg != '\0')
+        str.sprintf("%s", pErrMsg);
+
+    return str;
+}
+
+/* static */
+QString UIErrorString::formatRCFull(HRESULT rc)
+{
+    QString str;
+
+    PCRTCOMERRMSG msg = NULL;
+    const char *pErrMsg = NULL;
+
+    /* First, try as is (only set bit 31 bit for warnings): */
+    if (SUCCEEDED_WARNING(rc))
+        msg = RTErrCOMGet(rc | 0x80000000);
+    else
+        msg = RTErrCOMGet(rc);
+
+    if (msg != NULL)
+        pErrMsg = msg->pszDefine;
+
+#ifdef VBOX_WS_WIN
+    PCRTWINERRMSG winMsg = NULL;
+
+    /* If not found, try again using RTErrWinGet with masked off top 16bit: */
+    if (msg == NULL)
+    {
+        winMsg = RTErrWinGet(rc & 0xFFFF);
+
+        if (winMsg != NULL)
+            pErrMsg = winMsg->pszDefine;
+    }
+#endif /* VBOX_WS_WIN */
+
+    if (pErrMsg != NULL && *pErrMsg != '\0')
+        str.sprintf("%s (0x%08X)", pErrMsg, rc);
+    else
+        str.sprintf("0x%08X", rc);
+
+    return str;
+}
+
+/* static */
+QString UIErrorString::formatErrorInfo(const CProgress &comProgress)
+{
+    /* Check for API errors first: */
+    if (!comProgress.isOk())
+        return formatErrorInfo(static_cast<COMBaseWithEI>(comProgress));
+
+    /* For progress errors otherwise: */
+    CVirtualBoxErrorInfo comErrorInfo = comProgress.GetErrorInfo();
+    /* Handle valid error-info first: */
+    if (!comErrorInfo.isNull())
+        return formatErrorInfo(comErrorInfo);
+    /* Handle NULL error-info otherwise: */
+    return QString("<table bgcolor=#EEEEEE border=0 cellspacing=5 cellpadding=0 width=100%>"
+                   "<tr><td>%1</td><td><tt>%2</tt></td></tr></table>")
+                   .arg(QObject::tr("Result&nbsp;Code: ", "error info"))
+                   .arg(formatRCFull(comProgress.GetResultCode()))
+                   .prepend("<!--EOM-->") /* move to details */;
+}
+
+/* static */
+QString UIErrorString::formatErrorInfo(const COMErrorInfo &comInfo, HRESULT wrapperRC /* = S_OK */)
+{
+    return QString("<qt>%1</qt>").arg(UIErrorString::errorInfoToString(comInfo, wrapperRC));
+}
+
+/* static */
+QString UIErrorString::formatErrorInfo(const CVirtualBoxErrorInfo &comInfo)
+{
+    return formatErrorInfo(COMErrorInfo(comInfo));
+}
+
+/* static */
+QString UIErrorString::formatErrorInfo(const COMBaseWithEI &comWrapper)
+{
+    Assert(comWrapper.lastRC() != S_OK);
+    return formatErrorInfo(comWrapper.errorInfo(), comWrapper.lastRC());
+}
+
+/* static */
+QString UIErrorString::formatErrorInfo(const COMResult &comRc)
+{
+    Assert(comRc.rc() != S_OK);
+    return formatErrorInfo(comRc.errorInfo(), comRc.rc());
+}
+
+/* static */
+QString UIErrorString::errorInfoToString(const COMErrorInfo &comInfo, HRESULT wrapperRC)
+{
+    /* Compose complex details string with internal <!--EOM--> delimiter to
+     * make it possible to split string into info & details parts which will
+     * be used separately in QIMessageBox. */
+    QString strFormatted;
+
+    /* Check if details text is NOT empty: */
+    const QString strDetailsInfo = comInfo.text();
+    if (!strDetailsInfo.isEmpty())
+    {
+        /* Check if details text written in English (latin1) and translated: */
+        if (   strDetailsInfo == QString::fromLatin1(strDetailsInfo.toLatin1())
+            && strDetailsInfo != QObject::tr(strDetailsInfo.toLatin1().constData()))
+            strFormatted += QString("<p>%1.</p>").arg(vboxGlobal().emphasize(QObject::tr(strDetailsInfo.toLatin1().constData())));
+        else
+            strFormatted += QString("<p>%1.</p>").arg(vboxGlobal().emphasize(strDetailsInfo));
+    }
+
+    strFormatted += "<!--EOM--><table bgcolor=#EEEEEE border=0 cellspacing=5 "
+                    "cellpadding=0 width=100%>";
+
+    bool fHaveResultCode = false;
+
+    if (comInfo.isBasicAvailable())
+    {
+#ifdef VBOX_WS_WIN
+        fHaveResultCode = comInfo.isFullAvailable();
+        bool fHaveComponent = true;
+        bool fHaveInterfaceID = true;
+#else /* !VBOX_WS_WIN */
+        fHaveResultCode = true;
+        bool fHaveComponent = comInfo.isFullAvailable();
+        bool fHaveInterfaceID = comInfo.isFullAvailable();
+#endif
+
+        if (fHaveResultCode)
+        {
+            strFormatted += QString("<tr><td>%1</td><td><tt>%2</tt></td></tr>")
+                .arg(QObject::tr("Result&nbsp;Code: ", "error info"))
+                .arg(formatRCFull(comInfo.resultCode()));
+        }
+
+        if (fHaveComponent)
+            strFormatted += QString("<tr><td>%1</td><td>%2</td></tr>")
+                .arg(QObject::tr("Component: ", "error info"), comInfo.component());
+
+        if (fHaveInterfaceID)
+        {
+            QString s = comInfo.interfaceID().toString();
+            if (!comInfo.interfaceName().isEmpty())
+                s = comInfo.interfaceName() + ' ' + s;
+            strFormatted += QString("<tr><td>%1</td><td>%2</td></tr>")
+                .arg(QObject::tr("Interface: ", "error info"), s);
+        }
+
+        if (!comInfo.calleeIID().isNull() && comInfo.calleeIID() != comInfo.interfaceID())
+        {
+            QString s = comInfo.calleeIID().toString();
+            if (!comInfo.calleeName().isEmpty())
+                s = comInfo.calleeName() + ' ' + s;
+            strFormatted += QString("<tr><td>%1</td><td>%2</td></tr>")
+                .arg(QObject::tr("Callee: ", "error info"), s);
+        }
+    }
+
+    if (   FAILED(wrapperRC)
+        && (!fHaveResultCode || wrapperRC != comInfo.resultCode()))
+    {
+        strFormatted += QString("<tr><td>%1</td><td><tt>%2</tt></td></tr>")
+            .arg(QObject::tr("Callee&nbsp;RC: ", "error info"))
+            .arg(formatRCFull(wrapperRC));
+    }
+
+    strFormatted += "</table>";
+
+    if (comInfo.next())
+        strFormatted = strFormatted + "<!--EOP-->" + errorInfoToString(*comInfo.next());
+
+    return strFormatted;
+}
+
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIErrorString.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIErrorString.h	(revision 68435)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIErrorString.h	(revision 68435)
@@ -0,0 +1,62 @@
+/* $Id$ */
+/** @file
+ * VBox Qt GUI - UIErrorString class declaration.
+ */
+
+/*
+ * Copyright (C) 2006-2017 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 ___UIErrorString_h___
+#define ___UIErrorString_h___
+
+/* Qt includes: */
+#include <QString>
+
+/* Other VBox includes: */
+#include <VBox/com/defs.h>
+
+/* Forward declarations: */
+class COMBaseWithEI;
+class COMErrorInfo;
+class COMResult;
+class CProgress;
+class CVirtualBoxErrorInfo;
+
+
+/** Namespace simplifying COM error formatting. */
+class UIErrorString
+{
+public:
+
+    /** Returns formatted @a rc information. */
+    static QString formatRC(HRESULT rc);
+    /** Returns full formatted @a rc information. */
+    static QString formatRCFull(HRESULT rc);
+    /** Returns formatted error information for passed @a comProgress. */
+    static QString formatErrorInfo(const CProgress &comProgress);
+    /** Returns formatted error information for passed @a comInfo and @a wrapperRC. */
+    static QString formatErrorInfo(const COMErrorInfo &comInfo, HRESULT wrapperRC = S_OK);
+    /** Returns formatted error information for passed @a comInfo. */
+    static QString formatErrorInfo(const CVirtualBoxErrorInfo &comInfo);
+    /** Returns formatted error information for passed @a comWrapper. */
+    static QString formatErrorInfo(const COMBaseWithEI &comWrapper);
+    /** Returns formatted error information for passed @a comRc. */
+    static QString formatErrorInfo(const COMResult &comRc);
+
+private:
+
+    /** Converts passed @a comInfo and @a wrapperRC to string. */
+    static QString errorInfoToString(const COMErrorInfo &comInfo, HRESULT wrapperRC = S_OK);
+};
+
+#endif /* !___UIErrorString_h___ */
+
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp	(revision 68434)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.cpp	(revision 68435)
@@ -36,4 +36,5 @@
 # include "UISelectorWindow.h"
 # include "UIProgressDialog.h"
+# include "UIErrorString.h"
 # ifdef VBOX_GUI_WITH_NETWORK_MANAGER
 #  include "UINetworkManager.h"
@@ -430,5 +431,5 @@
              "<p>The application will now terminate.</p>")
              .arg(strUserHome),
-          formatErrorInfo(COMErrorInfo()));
+          UIErrorString::formatErrorInfo(COMErrorInfo()));
 }
 
@@ -439,5 +440,5 @@
              "Most likely, the VirtualBox server is not running or failed to start.</p>"
              "<p>The application will now terminate.</p>"),
-          formatErrorInfo(COMErrorInfo(), rc));
+          UIErrorString::formatErrorInfo(COMErrorInfo(), rc));
 }
 
@@ -447,5 +448,5 @@
           tr("<p>Failed to create the VirtualBoxClient COM object.</p>"
              "<p>The application will now terminate.</p>"),
-          formatErrorInfo(client));
+          UIErrorString::formatErrorInfo(client));
 }
 
@@ -460,5 +461,5 @@
                   "<font color=blue>'/tmp'</font> and <font color=blue>'/tmp/.vbox-*-ipc/'</font></p>");
 #endif
-    error(0, MessageType_Critical, err, formatErrorInfo(client));
+    error(0, MessageType_Critical, err, UIErrorString::formatErrorInfo(client));
 }
 
@@ -488,5 +489,5 @@
           tr("There is no virtual machine named <b>%1</b>.")
              .arg(strName),
-          formatErrorInfo(vbox));
+          UIErrorString::formatErrorInfo(vbox));
 }
 
@@ -496,5 +497,5 @@
           tr("There is no virtual machine with the identifier <b>%1</b>.")
              .arg(strId),
-          formatErrorInfo(vbox));
+          UIErrorString::formatErrorInfo(vbox));
 }
 
@@ -503,5 +504,5 @@
     error(0, MessageType_Error,
           tr("Failed to create a new session."),
-          formatErrorInfo(session));
+          UIErrorString::formatErrorInfo(session));
 }
 
@@ -511,5 +512,5 @@
           tr("Failed to open a session for the virtual machine <b>%1</b>.")
              .arg(CMachine(machine).GetName()),
-          formatErrorInfo(machine));
+          UIErrorString::formatErrorInfo(machine));
 }
 
@@ -519,5 +520,5 @@
           tr("Failed to open a session for the virtual machine <b>%1</b>.")
              .arg(strMachineName),
-          formatErrorInfo(progress));
+          UIErrorString::formatErrorInfo(progress));
 }
 
@@ -527,5 +528,5 @@
           tr("Failed to access the disk image file <nobr><b>%1</b></nobr>.")
              .arg(medium.location()),
-          formatErrorInfo(medium.result()));
+          UIErrorString::formatErrorInfo(medium.result()));
 }
 
@@ -543,5 +544,5 @@
           tr("Failed to set the global VirtualBox extra data for key <i>%1</i> to value <i>{%2}</i>.")
              .arg(strKey, strValue),
-          formatErrorInfo(vbox));
+          UIErrorString::formatErrorInfo(vbox));
 }
 
@@ -551,5 +552,5 @@
           tr("Failed to set the extra data for key <i>%1</i> of machine <i>%2</i> to value <i>{%3}</i>.")
              .arg(strKey, CMachine(machine).GetName(), strValue),
-          formatErrorInfo(machine));
+          UIErrorString::formatErrorInfo(machine));
 }
 
@@ -566,5 +567,5 @@
           tr("Failed to open virtual machine located in %1.")
              .arg(strMachinePath),
-          formatErrorInfo(vbox));
+          UIErrorString::formatErrorInfo(vbox));
 }
 
@@ -606,5 +607,5 @@
           tr("Failed to set groups of the virtual machine <b>%1</b>.")
              .arg(strName),
-          formatErrorInfo(machine));
+          UIErrorString::formatErrorInfo(machine));
 }
 
@@ -707,5 +708,5 @@
           tr("Failed to remove the virtual machine <b>%1</b>.")
              .arg(CMachine(machine).GetName()),
-          formatErrorInfo(machine));
+          UIErrorString::formatErrorInfo(machine));
 }
 
@@ -715,5 +716,5 @@
           tr("Failed to remove the virtual machine <b>%1</b>.")
              .arg(CMachine(machine).GetName()),
-          formatErrorInfo(progress));
+          UIErrorString::formatErrorInfo(progress));
 }
 
@@ -780,5 +781,5 @@
           tr("Failed to pause the execution of the virtual machine <b>%1</b>.")
              .arg(CConsole(console).GetMachine().GetName()),
-          formatErrorInfo(console));
+          UIErrorString::formatErrorInfo(console));
 }
 
@@ -788,5 +789,5 @@
           tr("Failed to resume the execution of the virtual machine <b>%1</b>.")
              .arg(CConsole(console).GetMachine().GetName()),
-          formatErrorInfo(console));
+          UIErrorString::formatErrorInfo(console));
 }
 
@@ -796,5 +797,5 @@
           tr("Failed to discard the saved state of the virtual machine <b>%1</b>.")
              .arg(machine.GetName()),
-          formatErrorInfo(machine));
+          UIErrorString::formatErrorInfo(machine));
 }
 
@@ -804,5 +805,5 @@
           tr("Failed to save the state of the virtual machine <b>%1</b>.")
              .arg(machine.GetName()),
-          formatErrorInfo(machine));
+          UIErrorString::formatErrorInfo(machine));
 }
 
@@ -812,5 +813,5 @@
           tr("Failed to save the state of the virtual machine <b>%1</b>.")
              .arg(strMachineName),
-          formatErrorInfo(progress));
+          UIErrorString::formatErrorInfo(progress));
 }
 
@@ -820,5 +821,5 @@
           tr("Failed to send the ACPI Power Button press event to the virtual machine <b>%1</b>.")
              .arg(CConsole(console).GetMachine().GetName()),
-          formatErrorInfo(console));
+          UIErrorString::formatErrorInfo(console));
 }
 
@@ -828,5 +829,5 @@
           tr("Failed to stop the virtual machine <b>%1</b>.")
              .arg(CConsole(console).GetMachine().GetName()),
-          formatErrorInfo(console));
+          UIErrorString::formatErrorInfo(console));
 }
 
@@ -836,5 +837,5 @@
           tr("Failed to stop the virtual machine <b>%1</b>.")
              .arg(strMachineName),
-          formatErrorInfo(progress));
+          UIErrorString::formatErrorInfo(progress));
 }
 
@@ -909,5 +910,5 @@
           tr("Failed to create a snapshot of the virtual machine <b>%1</b>.")
              .arg(strMachineName),
-          formatErrorInfo(machine));
+          UIErrorString::formatErrorInfo(machine));
 }
 
@@ -917,5 +918,5 @@
           tr("Failed to create a snapshot of the virtual machine <b>%1</b>.")
              .arg(strMachineName),
-          formatErrorInfo(progress));
+          UIErrorString::formatErrorInfo(progress));
 }
 
@@ -925,5 +926,5 @@
           tr("Failed to restore the snapshot <b>%1</b> of the virtual machine <b>%2</b>.")
              .arg(strSnapshotName, strMachineName),
-          formatErrorInfo(machine));
+          UIErrorString::formatErrorInfo(machine));
     return false;
 }
@@ -934,5 +935,5 @@
           tr("Failed to restore the snapshot <b>%1</b> of the virtual machine <b>%2</b>.")
              .arg(strSnapshotName, strMachineName),
-          formatErrorInfo(progress));
+          UIErrorString::formatErrorInfo(progress));
     return false;
 }
@@ -943,5 +944,5 @@
           tr("Failed to delete the snapshot <b>%1</b> of the virtual machine <b>%2</b>.")
              .arg(strSnapshotName, strMachineName),
-          formatErrorInfo(machine));
+          UIErrorString::formatErrorInfo(machine));
 }
 
@@ -951,5 +952,5 @@
           tr("Failed to delete the snapshot <b>%1</b> of the virtual machine <b>%2</b>.")
              .arg(strSnapshotName).arg(strMachineName),
-          formatErrorInfo(progress));
+          UIErrorString::formatErrorInfo(progress));
 }
 
@@ -961,5 +962,5 @@
           tr("Can't find snapshot named <b>%1</b>.")
              .arg(strName),
-          formatErrorInfo(comMachine));
+          UIErrorString::formatErrorInfo(comMachine));
 }
 
@@ -971,5 +972,5 @@
           tr("Can't find snapshot with ID=<b>%1</b>.")
              .arg(strId),
-          formatErrorInfo(comMachine));
+          UIErrorString::formatErrorInfo(comMachine));
 }
 
@@ -979,5 +980,5 @@
     error(pParent, MessageType_Error,
           tr("Can't acquire snapshot attributes."),
-          formatErrorInfo(comSnapshot));
+          UIErrorString::formatErrorInfo(comSnapshot));
 }
 
@@ -1009,5 +1010,5 @@
     error(pParent, MessageType_Critical,
           tr("Failed to set global VirtualBox properties."),
-          formatErrorInfo(properties));
+          UIErrorString::formatErrorInfo(properties));
 }
 
@@ -1023,5 +1024,5 @@
     error(pParent, res.isWarning() ? MessageType_Warning : MessageType_Error,
           tr("Failed to access the USB subsystem."),
-          formatErrorInfo(res),
+          UIErrorString::formatErrorInfo(res),
           "warnAboutUnaccessibleUSB");
 }
@@ -1124,5 +1125,5 @@
     }
     error(pParent, MessageType_Error,
-          strMessage, formatErrorInfo(machine));
+          strMessage, UIErrorString::formatErrorInfo(machine));
 }
 
@@ -1183,5 +1184,5 @@
           tr("Failed to save the settings of the virtual machine <b>%1</b> to <b><nobr>%2</nobr></b>.")
              .arg(machine.GetName(), CMachine(machine).GetSettingsFilePath()),
-          formatErrorInfo(machine));
+          UIErrorString::formatErrorInfo(machine));
 }
 
@@ -1191,5 +1192,5 @@
           tr("<p>Error changing disk image mode from <b>%1</b> to <b>%2</b>.</p>")
              .arg(gpConverter->toString(oldMediumType)).arg(gpConverter->toString(newMediumType)),
-          formatErrorInfo(medium));
+          UIErrorString::formatErrorInfo(medium));
 }
 
@@ -1199,5 +1200,5 @@
           tr("Failed to move the storage unit of the disk image <b>%1</b> to <b>%2</b>.")
              .arg(strLocationOld, strLocationNew),
-          formatErrorInfo(comMedium));
+          UIErrorString::formatErrorInfo(comMedium));
 }
 
@@ -1207,5 +1208,5 @@
           tr("Failed to move the storage unit of the disk image <b>%1</b> to <b>%2</b>.")
              .arg(strLocationOld, strLocationNew),
-          formatErrorInfo(comProgress));
+          UIErrorString::formatErrorInfo(comProgress));
 }
 
@@ -1215,5 +1216,5 @@
           tr("<p>Error changing the description of the disk image <b>%1</b>.</p>")
              .arg(strLocation),
-          formatErrorInfo(comMedium));
+          UIErrorString::formatErrorInfo(comMedium));
 }
 
@@ -1315,5 +1316,5 @@
           tr("Failed to delete the storage unit of the hard disk <b>%1</b>.")
              .arg(strLocation),
-          formatErrorInfo(medium));
+          UIErrorString::formatErrorInfo(medium));
 }
 
@@ -1323,5 +1324,5 @@
           tr("Failed to delete the storage unit of the hard disk <b>%1</b>.")
              .arg(strLocation),
-          formatErrorInfo(progress));
+          UIErrorString::formatErrorInfo(progress));
 }
 
@@ -1331,5 +1332,5 @@
           tr("Failed to resize the storage unit of the hard disk <b>%1</b> from <b>%2</b> to <b>%3</b>.")
              .arg(strLocation, strSizeOld, strSizeNew),
-          formatErrorInfo(comMedium));
+          UIErrorString::formatErrorInfo(comMedium));
 }
 
@@ -1339,5 +1340,5 @@
           tr("Failed to resize the storage unit of the hard disk <b>%1</b> from <b>%2</b> to <b>%3</b>.")
              .arg(strLocation, strSizeOld, strSizeNew),
-          formatErrorInfo(comProgress));
+          UIErrorString::formatErrorInfo(comProgress));
 }
 
@@ -1370,5 +1371,5 @@
     }
     /* Show the error: */
-    error(pParent, MessageType_Error, strMessage, formatErrorInfo(machine));
+    error(pParent, MessageType_Error, strMessage, UIErrorString::formatErrorInfo(machine));
 }
 
@@ -1418,10 +1419,10 @@
         return errorWithQuestion(pParent, MessageType_Question,
                                  strMessage.arg(medium.isHostDrive() ? medium.name() : medium.location(), CMachine(machine).GetName()),
-                                 formatErrorInfo(machine),
+                                 UIErrorString::formatErrorInfo(machine),
                                  0 /* Auto Confirm ID */,
                                  tr("Force Unmount"));
     error(pParent, MessageType_Error,
           strMessage.arg(medium.isHostDrive() ? medium.name() : medium.location(), CMachine(machine).GetName()),
-          formatErrorInfo(machine));
+          UIErrorString::formatErrorInfo(machine));
     return false;
 }
@@ -1431,5 +1432,5 @@
     /* Show the error: */
     error(pParent, MessageType_Error,
-          tr("Failed to open the disk image file <nobr><b>%1</b></nobr>.").arg(strLocation), formatErrorInfo(vbox));
+          tr("Failed to open the disk image file <nobr><b>%1</b></nobr>.").arg(strLocation), UIErrorString::formatErrorInfo(vbox));
 }
 
@@ -1438,5 +1439,5 @@
     /* Show the error: */
     error(pParent, MessageType_Error,
-          tr("Failed to close the disk image file <nobr><b>%1</b></nobr>.").arg(medium.location()), formatErrorInfo(rc));
+          tr("Failed to close the disk image file <nobr><b>%1</b></nobr>.").arg(medium.location()), UIErrorString::formatErrorInfo(rc));
 }
 
@@ -1463,5 +1464,5 @@
     error(pParent, MessageType_Error,
           tr("Failed to acquire host network interfaces."),
-          formatErrorInfo(comHost));
+          UIErrorString::formatErrorInfo(comHost));
 }
 
@@ -1471,5 +1472,5 @@
           tr("Unable to find the host network interface <b>%1</b>.")
              .arg(strInterfaceName),
-          formatErrorInfo(comHost));
+          UIErrorString::formatErrorInfo(comHost));
 }
 
@@ -1478,5 +1479,5 @@
     error(pParent, MessageType_Error,
           tr("Failed to create a host network interface."),
-          formatErrorInfo(comHost));
+          UIErrorString::formatErrorInfo(comHost));
 }
 
@@ -1485,5 +1486,5 @@
     error(pParent, MessageType_Error,
           tr("Failed to create a host network interface."),
-          formatErrorInfo(progress));
+          UIErrorString::formatErrorInfo(progress));
 }
 
@@ -1493,5 +1494,5 @@
           tr("Failed to remove the host network interface <b>%1</b>.")
              .arg(strInterfaceName),
-          formatErrorInfo(comHost));
+          UIErrorString::formatErrorInfo(comHost));
 }
 
@@ -1501,5 +1502,5 @@
           tr("Failed to remove the host network interface <b>%1</b>.")
              .arg(strInterfaceName),
-          formatErrorInfo(progress));
+          UIErrorString::formatErrorInfo(progress));
 }
 
@@ -1508,5 +1509,5 @@
     error(pParent, MessageType_Error,
           tr("Failed to acquire host network interface parameter."),
-          formatErrorInfo(comInterface));
+          UIErrorString::formatErrorInfo(comInterface));
 }
 
@@ -1515,5 +1516,5 @@
     error(pParent, MessageType_Error,
           tr("Failed to save host network interface parameter."),
-          formatErrorInfo(comInterface));
+          UIErrorString::formatErrorInfo(comInterface));
 }
 
@@ -1523,5 +1524,5 @@
           tr("Failed to create a DHCP server for the network interface <b>%1</b>.")
              .arg(strInterfaceName),
-          formatErrorInfo(comVBox));
+          UIErrorString::formatErrorInfo(comVBox));
 }
 
@@ -1531,5 +1532,5 @@
           tr("Failed to remove the DHCP server for the network interface <b>%1</b>.")
              .arg(strInterfaceName),
-          formatErrorInfo(comVBox));
+          UIErrorString::formatErrorInfo(comVBox));
 }
 
@@ -1538,5 +1539,5 @@
     error(pParent, MessageType_Error,
           tr("Failed to acquire DHCP server parameter."),
-          formatErrorInfo(comServer));
+          UIErrorString::formatErrorInfo(comServer));
 }
 
@@ -1545,5 +1546,5 @@
     error(pParent, MessageType_Error,
           tr("Failed to save DHCP server parameter."),
-          formatErrorInfo(comServer));
+          UIErrorString::formatErrorInfo(comServer));
 }
 
@@ -1564,5 +1565,5 @@
     error(pParent, MessageType_Error,
           tr("Failed to create a new virtual machine."),
-          formatErrorInfo(vbox));
+          UIErrorString::formatErrorInfo(vbox));
 }
 
@@ -1572,5 +1573,5 @@
           tr("Failed to register the virtual machine <b>%1</b>.")
              .arg(strMachineName),
-          formatErrorInfo(vbox));
+          UIErrorString::formatErrorInfo(vbox));
 }
 
@@ -1580,5 +1581,5 @@
           tr("Failed to clone the virtual machine <b>%1</b>.")
              .arg(CMachine(machine).GetName()),
-          formatErrorInfo(machine));
+          UIErrorString::formatErrorInfo(machine));
 }
 
@@ -1588,5 +1589,5 @@
           tr("Failed to clone the virtual machine <b>%1</b>.")
              .arg(strMachineName),
-          formatErrorInfo(progress));
+          UIErrorString::formatErrorInfo(progress));
 }
 
@@ -1606,5 +1607,5 @@
           tr("Failed to create the hard disk storage <nobr><b>%1</b>.</nobr>")
              .arg(strLocation),
-          formatErrorInfo(vbox));
+          UIErrorString::formatErrorInfo(vbox));
 }
 
@@ -1614,5 +1615,5 @@
           tr("Failed to create the hard disk storage <nobr><b>%1</b>.</nobr>")
              .arg(strLocation),
-          formatErrorInfo(medium));
+          UIErrorString::formatErrorInfo(medium));
 }
 
@@ -1622,5 +1623,5 @@
           tr("Failed to create the hard disk storage <nobr><b>%1</b>.</nobr>")
              .arg(strLocation),
-          formatErrorInfo(progress));
+          UIErrorString::formatErrorInfo(progress));
 }
 
@@ -1654,5 +1655,5 @@
 {
     /* Preserve error-info: */
-    QString strErrorInfo = formatErrorInfo(appliance);
+    QString strErrorInfo = UIErrorString::formatErrorInfo(appliance);
     /* Add the warnings in the case of an early error: */
     QString strWarningInfo;
@@ -1673,5 +1674,5 @@
           tr("Failed to import appliance <b>%1</b>.")
              .arg(strPath),
-          formatErrorInfo(progress));
+          UIErrorString::formatErrorInfo(progress));
 }
 
@@ -1680,5 +1681,5 @@
     error(pParent, MessageType_Error,
           tr("Failed to check files."),
-          formatErrorInfo(progress));
+          UIErrorString::formatErrorInfo(progress));
 }
 
@@ -1687,5 +1688,5 @@
     error(pParent, MessageType_Error,
           tr("Failed to remove file."),
-          formatErrorInfo(progress));
+          UIErrorString::formatErrorInfo(progress));
 }
 
@@ -1709,5 +1710,5 @@
           tr("Failed to prepare the export of the appliance <b>%1</b>.")
              .arg(CAppliance(appliance).GetPath()),
-          formatErrorInfo(appliance));
+          UIErrorString::formatErrorInfo(appliance));
 }
 
@@ -1717,5 +1718,5 @@
           tr("Failed to prepare the export of the appliance <b>%1</b>.")
              .arg(strPath),
-          formatErrorInfo(machine));
+          UIErrorString::formatErrorInfo(machine));
 }
 
@@ -1725,5 +1726,5 @@
           tr("Failed to export appliance <b>%1</b>.")
              .arg(strPath),
-          formatErrorInfo(progress));
+          UIErrorString::formatErrorInfo(progress));
 }
 
@@ -1732,5 +1733,5 @@
     error(pParent, MessageType_Error,
           tr("Bad password or authentication failure."),
-          formatErrorInfo(appliance));
+          UIErrorString::formatErrorInfo(appliance));
 }
 
@@ -1924,5 +1925,5 @@
           tr("Failed to start the virtual machine <b>%1</b>.")
              .arg(strName),
-          formatErrorInfo(console));
+          UIErrorString::formatErrorInfo(console));
 }
 
@@ -1932,5 +1933,5 @@
           tr("Failed to start the virtual machine <b>%1</b>.")
              .arg(strName),
-          formatErrorInfo(progress));
+          UIErrorString::formatErrorInfo(progress));
 }
 
@@ -2046,5 +2047,5 @@
           tr("Failed to attach the USB device <b>%1</b> to the virtual machine <b>%2</b>.")
              .arg(strDevice, CConsole(console).GetMachine().GetName()),
-          formatErrorInfo(console));
+          UIErrorString::formatErrorInfo(console));
 }
 
@@ -2054,5 +2055,5 @@
           tr("Failed to attach the USB device <b>%1</b> to the virtual machine <b>%2</b>.")
              .arg(strDevice, strMachineName),
-          formatErrorInfo(errorInfo));
+          UIErrorString::formatErrorInfo(errorInfo));
 }
 
@@ -2062,5 +2063,5 @@
           tr("Failed to detach the USB device <b>%1</b> from the virtual machine <b>%2</b>.")
              .arg(strDevice, CConsole(console).GetMachine().GetName()),
-          formatErrorInfo(console));
+          UIErrorString::formatErrorInfo(console));
 }
 
@@ -2070,5 +2071,5 @@
           tr("Failed to detach the USB device <b>%1</b> from the virtual machine <b>%2</b>.")
              .arg(strDevice, strMachineName),
-          formatErrorInfo(errorInfo));
+          UIErrorString::formatErrorInfo(errorInfo));
 }
 
@@ -2078,5 +2079,5 @@
           tr("Failed to attach the webcam <b>%1</b> to the virtual machine <b>%2</b>.")
              .arg(strWebCamName, strMachineName),
-          formatErrorInfo(dispatcher));
+          UIErrorString::formatErrorInfo(dispatcher));
 }
 
@@ -2086,5 +2087,5 @@
           tr("Failed to detach the webcam <b>%1</b> from the virtual machine <b>%2</b>.")
              .arg(strWebCamName, strMachineName),
-          formatErrorInfo(dispatcher));
+          UIErrorString::formatErrorInfo(dispatcher));
 }
 
@@ -2097,5 +2098,5 @@
               tr("Failed to enable video capturing for the virtual machine <b>%1</b>.").arg(strMachineName) :
               tr("Failed to disable video capturing for the virtual machine <b>%1</b>.").arg(strMachineName),
-          formatErrorInfo(machine));
+          UIErrorString::formatErrorInfo(machine));
 }
 
@@ -2106,5 +2107,5 @@
               tr("Failed to enable the remote desktop server for the virtual machine <b>%1</b>.").arg(strMachineName) :
               tr("Failed to disable the remote desktop server for the virtual machine <b>%1</b>.").arg(strMachineName),
-          formatErrorInfo(server));
+          UIErrorString::formatErrorInfo(server));
 }
 
@@ -2115,5 +2116,5 @@
               tr("Failed to connect the network adapter cable of the virtual machine <b>%1</b>.").arg(strMachineName) :
               tr("Failed to disconnect the network adapter cable of the virtual machine <b>%1</b>.").arg(strMachineName),
-          formatErrorInfo(adapter));
+          UIErrorString::formatErrorInfo(adapter));
 }
 
@@ -2142,5 +2143,5 @@
     error(0, MessageType_Error,
           tr("Bad password or authentication failure."),
-          formatErrorInfo(console));
+          UIErrorString::formatErrorInfo(console));
 }
 
@@ -2233,5 +2234,5 @@
           tr("Failed to update Guest Additions. "
              "The Guest Additions disk image file will be inserted for user installation."),
-          formatErrorInfo(progress));
+          UIErrorString::formatErrorInfo(progress));
 }
 
@@ -2439,5 +2440,5 @@
     error(pParent, MessageType_Error,
           tr("Failed to open the Extension Pack <b>%1</b>.").arg(strFilename),
-          formatErrorInfo(extPackManager));
+          UIErrorString::formatErrorInfo(extPackManager));
 }
 
@@ -2454,5 +2455,5 @@
           tr("Failed to install the Extension Pack <b>%1</b>.")
              .arg(strFilename),
-          formatErrorInfo(extPackFile));
+          UIErrorString::formatErrorInfo(extPackFile));
 }
 
@@ -2462,5 +2463,5 @@
           tr("Failed to install the Extension Pack <b>%1</b>.")
              .arg(strFilename),
-          formatErrorInfo(progress));
+          UIErrorString::formatErrorInfo(progress));
 }
 
@@ -2470,5 +2471,5 @@
           tr("Failed to uninstall the Extension Pack <b>%1</b>.")
              .arg(strPackName),
-          formatErrorInfo(extPackManager));
+          UIErrorString::formatErrorInfo(extPackManager));
 }
 
@@ -2478,5 +2479,5 @@
           tr("Failed to uninstall the Extension Pack <b>%1</b>.")
              .arg(strPackName),
-          formatErrorInfo(progress));
+          UIErrorString::formatErrorInfo(progress));
 }
 
@@ -2493,5 +2494,5 @@
     error(pParent, MessageType_Error,
           tr("Drag and drop operation from host to guest failed."),
-          formatErrorInfo(dndTarget));
+          UIErrorString::formatErrorInfo(dndTarget));
 }
 
@@ -2500,5 +2501,5 @@
     error(pParent, MessageType_Error,
           tr("Drag and drop operation from host to guest failed."),
-          formatErrorInfo(progress));
+          UIErrorString::formatErrorInfo(progress));
 }
 
@@ -2507,5 +2508,5 @@
     error(pParent, MessageType_Error,
           tr("Unable to cancel host to guest drag and drop operation."),
-          formatErrorInfo(dndTarget));
+          UIErrorString::formatErrorInfo(dndTarget));
 }
 
@@ -2514,5 +2515,5 @@
     error(pParent, MessageType_Error,
           tr("Drag and drop operation from guest to host failed."),
-          formatErrorInfo(dndSource));
+          UIErrorString::formatErrorInfo(dndSource));
 }
 
@@ -2521,5 +2522,5 @@
     error(pParent, MessageType_Error,
           tr("Drag and drop operation from guest to host failed."),
-          formatErrorInfo(progress));
+          UIErrorString::formatErrorInfo(progress));
 }
 #endif /* VBOX_WITH_DRAG_AND_DROP */
@@ -2589,125 +2590,4 @@
     else
         return true;
-}
-
-/* static */
-QString UIMessageCenter::formatRC(HRESULT rc)
-{
-    QString str;
-
-    PCRTCOMERRMSG msg = NULL;
-    const char *errMsg = NULL;
-
-    /* First, try as is (only set bit 31 bit for warnings): */
-    if (SUCCEEDED_WARNING(rc))
-        msg = RTErrCOMGet(rc | 0x80000000);
-    else
-        msg = RTErrCOMGet(rc);
-
-    if (msg != NULL)
-        errMsg = msg->pszDefine;
-
-#ifdef VBOX_WS_WIN
-    PCRTWINERRMSG winMsg = NULL;
-
-    /* If not found, try again using RTErrWinGet with masked off top 16bit: */
-    if (msg == NULL)
-    {
-        winMsg = RTErrWinGet(rc & 0xFFFF);
-
-        if (winMsg != NULL)
-            errMsg = winMsg->pszDefine;
-    }
-#endif /* VBOX_WS_WIN */
-
-    if (errMsg != NULL && *errMsg != '\0')
-        str.sprintf("%s", errMsg);
-
-    return str;
-}
-
-/* static */
-QString UIMessageCenter::formatRCFull(HRESULT rc)
-{
-    QString str;
-
-    PCRTCOMERRMSG msg = NULL;
-    const char *errMsg = NULL;
-
-    /* First, try as is (only set bit 31 bit for warnings): */
-    if (SUCCEEDED_WARNING(rc))
-        msg = RTErrCOMGet(rc | 0x80000000);
-    else
-        msg = RTErrCOMGet(rc);
-
-    if (msg != NULL)
-        errMsg = msg->pszDefine;
-
-#ifdef VBOX_WS_WIN
-    PCRTWINERRMSG winMsg = NULL;
-
-    /* If not found, try again using RTErrWinGet with masked off top 16bit: */
-    if (msg == NULL)
-    {
-        winMsg = RTErrWinGet(rc & 0xFFFF);
-
-        if (winMsg != NULL)
-            errMsg = winMsg->pszDefine;
-    }
-#endif /* VBOX_WS_WIN */
-
-    if (errMsg != NULL && *errMsg != '\0')
-        str.sprintf("%s (0x%08X)", errMsg, rc);
-    else
-        str.sprintf("0x%08X", rc);
-
-    return str;
-}
-
-/* static */
-QString UIMessageCenter::formatErrorInfo(const CProgress &progress)
-{
-    /* Check for API errors first: */
-    if (!progress.isOk())
-        return formatErrorInfo(static_cast<COMBaseWithEI>(progress));
-
-    /* For progress errors otherwise: */
-    CVirtualBoxErrorInfo errorInfo = progress.GetErrorInfo();
-    /* Handle valid error-info first: */
-    if (!errorInfo.isNull())
-        return formatErrorInfo(errorInfo);
-    /* Handle NULL error-info otherwise: */
-    return QString("<table bgcolor=#EEEEEE border=0 cellspacing=5 cellpadding=0 width=100%>"
-                   "<tr><td>%1</td><td><tt>%2</tt></td></tr></table>")
-                   .arg(tr("Result&nbsp;Code: ", "error info"))
-                   .arg(formatRCFull(progress.GetResultCode()))
-                   .prepend("<!--EOM-->") /* move to details */;
-}
-
-/* static */
-QString UIMessageCenter::formatErrorInfo(const COMErrorInfo &info, HRESULT wrapperRC /* = S_OK */)
-{
-    QString formatted = errorInfoToString(info, wrapperRC);
-    return QString("<qt>%1</qt>").arg(formatted);
-}
-
-/* static */
-QString UIMessageCenter::formatErrorInfo(const CVirtualBoxErrorInfo &info)
-{
-    return formatErrorInfo(COMErrorInfo(info));
-}
-
-/* static */
-QString UIMessageCenter::formatErrorInfo(const COMBaseWithEI &wrapper)
-{
-    Assert(wrapper.lastRC() != S_OK);
-    return formatErrorInfo(wrapper.errorInfo(), wrapper.lastRC());
-}
-
-/* static */
-QString UIMessageCenter::formatErrorInfo(const COMResult &rc)
-{
-    Assert(rc.rc() != S_OK);
-    return formatErrorInfo(rc.errorInfo(), rc.rc());
 }
 
@@ -2877,87 +2757,4 @@
 {
      /* Nothing for now... */
-}
-
-QString UIMessageCenter::errorInfoToString(const COMErrorInfo &info,
-                                           HRESULT wrapperRC /* = S_OK */)
-{
-    /* Compose complex details string with internal <!--EOM--> delimiter to
-     * make it possible to split string into info & details parts which will
-     * be used separately in QIMessageBox */
-    QString formatted;
-
-    /* Check if details text is NOT empty: */
-    QString strDetailsInfo = info.text();
-    if (!strDetailsInfo.isEmpty())
-    {
-        /* Check if details text written in English (latin1) and translated: */
-        if (strDetailsInfo == QString::fromLatin1(strDetailsInfo.toLatin1()) &&
-            strDetailsInfo != tr(strDetailsInfo.toLatin1().constData()))
-            formatted += QString("<p>%1.</p>").arg(vboxGlobal().emphasize(tr(strDetailsInfo.toLatin1().constData())));
-        else
-            formatted += QString("<p>%1.</p>").arg(vboxGlobal().emphasize(strDetailsInfo));
-    }
-
-    formatted += "<!--EOM--><table bgcolor=#EEEEEE border=0 cellspacing=5 "
-                 "cellpadding=0 width=100%>";
-
-    bool haveResultCode = false;
-
-    if (info.isBasicAvailable())
-    {
-#if defined (VBOX_WS_WIN)
-        haveResultCode = info.isFullAvailable();
-        bool haveComponent = true;
-        bool haveInterfaceID = true;
-#else /* defined (VBOX_WS_WIN) */
-        haveResultCode = true;
-        bool haveComponent = info.isFullAvailable();
-        bool haveInterfaceID = info.isFullAvailable();
-#endif
-
-        if (haveResultCode)
-        {
-            formatted += QString("<tr><td>%1</td><td><tt>%2</tt></td></tr>")
-                .arg(tr("Result&nbsp;Code: ", "error info"))
-                .arg(formatRCFull(info.resultCode()));
-        }
-
-        if (haveComponent)
-            formatted += QString("<tr><td>%1</td><td>%2</td></tr>")
-                .arg(tr("Component: ", "error info"), info.component());
-
-        if (haveInterfaceID)
-        {
-            QString s = info.interfaceID().toString();
-            if (!info.interfaceName().isEmpty())
-                s = info.interfaceName() + ' ' + s;
-            formatted += QString("<tr><td>%1</td><td>%2</td></tr>")
-                .arg(tr("Interface: ", "error info"), s);
-        }
-
-        if (!info.calleeIID().isNull() && info.calleeIID() != info.interfaceID())
-        {
-            QString s = info.calleeIID().toString();
-            if (!info.calleeName().isEmpty())
-                s = info.calleeName() + ' ' + s;
-            formatted += QString("<tr><td>%1</td><td>%2</td></tr>")
-                .arg(tr("Callee: ", "error info"), s);
-        }
-    }
-
-    if (FAILED (wrapperRC) &&
-        (!haveResultCode || wrapperRC != info.resultCode()))
-    {
-        formatted += QString("<tr><td>%1</td><td><tt>%2</tt></td></tr>")
-            .arg(tr("Callee&nbsp;RC: ", "error info"))
-            .arg(formatRCFull(wrapperRC));
-    }
-
-    formatted += "</table>";
-
-    if (info.next())
-        formatted = formatted + "<!--EOP-->" + errorInfoToString(*info.next());
-
-    return formatted;
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h	(revision 68434)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/UIMessageCenter.h	(revision 68435)
@@ -383,13 +383,4 @@
     bool confirmOverridingFilesIfExists(const QVector<QString> &strPaths, QWidget *pParent = 0) const;
 
-    /* API: Static helpers: */
-    static QString formatRC(HRESULT rc);
-    static QString formatRCFull(HRESULT rc);
-    static QString formatErrorInfo(const CProgress &progress);
-    static QString formatErrorInfo(const COMErrorInfo &info, HRESULT wrapperRC = S_OK);
-    static QString formatErrorInfo(const CVirtualBoxErrorInfo &info);
-    static QString formatErrorInfo(const COMBaseWithEI &wrapper);
-    static QString formatErrorInfo(const COMResult &rc);
-
 public slots:
 
@@ -423,7 +414,4 @@
     void cleanup();
 
-    /* Helper: */
-    static QString errorInfoToString(const COMErrorInfo &info, HRESULT wrapperRC = S_OK);
-
     /* Helper: Message-box stuff: */
     int showMessageBox(QWidget *pParent, MessageType type,
Index: /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMedium.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMedium.cpp	(revision 68434)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMedium.cpp	(revision 68435)
@@ -25,5 +25,5 @@
 # include "VBoxGlobal.h"
 # include "UIConverter.h"
-# include "UIMessageCenter.h"
+# include "UIErrorString.h"
 # include "UIExtraDataManager.h"
 # include "UIIconPool.h"
@@ -411,5 +411,5 @@
                     /* Accessibility check (eg GetState()) itself failed: */
                     m_strToolTip += m_sstrRow.arg("<hr>") + m_sstrRow.arg(VBoxGlobal::tr("Failed to check accessibility of disk image files.", "medium")) +
-                                    m_sstrRow.arg(UIMessageCenter::formatErrorInfo(m_result) + ".");
+                                    m_sstrRow.arg(UIErrorString::formatErrorInfo(m_result) + ".");
                 }
                 break;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp	(revision 68434)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/selector/UISelectorWindow.cpp	(revision 68435)
@@ -33,4 +33,5 @@
 # include "UIActionPoolSelector.h"
 # include "UIDesktopServices.h"
+# include "UIErrorString.h"
 # include "UIExtraDataManager.h"
 # include "UIGChooser.h"
@@ -299,5 +300,5 @@
         {
             /* The VM is inaccessible: */
-            m_pPaneToolsMachine->setDetailsError(UIMessageCenter::formatErrorInfo(pItem->accessError()));
+            m_pPaneToolsMachine->setDetailsError(UIErrorString::formatErrorInfo(pItem->accessError()));
         }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsElements.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsElements.cpp	(revision 68434)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/details/UIGDetailsElements.cpp	(revision 68435)
@@ -34,5 +34,5 @@
 # include "UIConverter.h"
 # include "UIGraphicsTextPane.h"
-# include "UIMessageCenter.h"
+# include "UIErrorString.h"
 
 /* COM includes: */
@@ -514,5 +514,5 @@
                 AssertMsg(controller.isOk(),
                           ("Unable to acquire controller data: %s\n",
-                           msgCenter().formatRC(controller.lastRC()).toUtf8().constData()));
+                           UIErrorString::formatRC(controller.lastRC()).toUtf8().constData()));
                 if (!controller.isOk())
                     continue;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsGeneral.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsGeneral.cpp	(revision 68434)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsGeneral.cpp	(revision 68435)
@@ -26,5 +26,5 @@
 # include "UIGlobalSettingsGeneral.h"
 # include "UIExtraDataManager.h"
-# include "UIMessageCenter.h"
+# include "UIErrorString.h"
 # include "VBoxGlobal.h"
 
@@ -211,5 +211,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_properties));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(m_properties));
 
         /* Save new general data from the cache: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetwork.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetwork.cpp	(revision 68434)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/global/UIGlobalSettingsNetwork.cpp	(revision 68435)
@@ -27,4 +27,5 @@
 # include "UIIconPool.h"
 # include "UIConverter.h"
+# include "UIErrorString.h"
 # include "UIMessageCenter.h"
 # include "UIGlobalSettingsNetwork.h"
@@ -709,5 +710,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(comVBox));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(comVBox));
     }
     /* Return result: */
@@ -735,5 +736,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(comVBox));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(comVBox));
         else
         {
@@ -811,5 +812,5 @@
             /* Show error message if necessary: */
             if (!fSuccess)
-                notifyOperationProgressError(UIMessageCenter::formatErrorInfo(comNetwork));
+                notifyOperationProgressError(UIErrorString::formatErrorInfo(comNetwork));
         }
     }
@@ -838,5 +839,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(comVBox));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(comVBox));
         else
         {
@@ -940,5 +941,5 @@
             /* Show error message if necessary: */
             if (!fSuccess)
-                notifyOperationProgressError(UIMessageCenter::formatErrorInfo(comNetwork));
+                notifyOperationProgressError(UIErrorString::formatErrorInfo(comNetwork));
         }
     }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsAudio.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsAudio.cpp	(revision 68434)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsAudio.cpp	(revision 68435)
@@ -23,5 +23,5 @@
 # include "UIConverter.h"
 # include "UIMachineSettingsAudio.h"
-# include "UIMessageCenter.h"
+# include "UIErrorString.h"
 
 /* COM includes: */
@@ -273,5 +273,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
         else
         {
@@ -297,5 +297,5 @@
             /* Show error message if necessary: */
             if (!fSuccess)
-                notifyOperationProgressError(UIMessageCenter::formatErrorInfo(comAdapter));
+                notifyOperationProgressError(UIErrorString::formatErrorInfo(comAdapter));
         }
     }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp	(revision 68434)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsDisplay.cpp	(revision 68435)
@@ -26,5 +26,5 @@
 # include "UIExtraDataManager.h"
 # include "UIMachineSettingsDisplay.h"
-# include "UIMessageCenter.h"
+# include "UIErrorString.h"
 # include "VBoxGlobal.h"
 
@@ -1275,5 +1275,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
 
         /* Save guest-screen scale-factor: */
@@ -1308,5 +1308,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
         else
         {
@@ -1346,5 +1346,5 @@
             /* Show error message if necessary: */
             if (!fSuccess)
-                notifyOperationProgressError(UIMessageCenter::formatErrorInfo(comServer));
+                notifyOperationProgressError(UIErrorString::formatErrorInfo(comServer));
         }
     }
@@ -1485,5 +1485,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
     }
     /* Return result: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp	(revision 68434)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsGeneral.cpp	(revision 68435)
@@ -28,5 +28,5 @@
 # include "UIConverter.h"
 # include "UIMachineSettingsGeneral.h"
-# include "UIMessageCenter.h"
+# include "UIErrorString.h"
 # include "UIModalWindowManager.h"
 # include "UIProgressDialog.h"
@@ -37,4 +37,5 @@
 # include "CMedium.h"
 # include "CMediumAttachment.h"
+# include "CProgress.h"
 
 #endif /* !VBOX_WITH_PRECOMPILED_HEADERS */
@@ -717,5 +718,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
     }
     /* Return result: */
@@ -764,5 +765,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
     }
     /* Return result: */
@@ -791,5 +792,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
     }
     /* Return result: */
@@ -834,5 +835,5 @@
             /* Show error message if necessary: */
             if (!fSuccess)
-                notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+                notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
 
             /* For each attachment: */
@@ -859,5 +860,5 @@
                 /* Show error message if necessary: */
                 if (!fSuccess)
-                    notifyOperationProgressError(UIMessageCenter::formatErrorInfo(comAttachment));
+                    notifyOperationProgressError(UIErrorString::formatErrorInfo(comAttachment));
                 else
                 {
@@ -937,5 +938,5 @@
                     /* Show error message if necessary: */
                     if (!fSuccess)
-                        notifyOperationProgressError(UIMessageCenter::formatErrorInfo(comMedium));
+                        notifyOperationProgressError(UIErrorString::formatErrorInfo(comMedium));
                 }
             }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsNetwork.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsNetwork.cpp	(revision 68434)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsNetwork.cpp	(revision 68435)
@@ -27,5 +27,5 @@
 # include "UIIconPool.h"
 # include "UIMachineSettingsNetwork.h"
-# include "UIMessageCenter.h"
+# include "UIErrorString.h"
 # include "VBoxGlobal.h"
 
@@ -1499,5 +1499,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
         else
         {
@@ -1601,5 +1601,5 @@
             /* Show error message if necessary: */
             if (!fSuccess)
-                notifyOperationProgressError(UIMessageCenter::formatErrorInfo(comAdapter));
+                notifyOperationProgressError(UIErrorString::formatErrorInfo(comAdapter));
             else
             {
@@ -1638,5 +1638,5 @@
                     /* Show error message if necessary: */
                     if (!fSuccess)
-                        notifyOperationProgressError(UIMessageCenter::formatErrorInfo(comEngine));
+                        notifyOperationProgressError(UIErrorString::formatErrorInfo(comEngine));
                 }
             }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSF.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSF.cpp	(revision 68434)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSF.cpp	(revision 68435)
@@ -28,5 +28,5 @@
 # include "UIMachineSettingsSF.h"
 # include "UIMachineSettingsSFDetails.h"
-# include "UIMessageCenter.h"
+# include "UIErrorString.h"
 # include "VBoxGlobal.h"
 # include "VBoxUtils.h"
@@ -869,5 +869,5 @@
                 /* Show error message if necessary: */
                 if (!fSuccess)
-                    notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+                    notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
 
                 break;
@@ -883,5 +883,5 @@
                 /* Show error message if necessary: */
                 if (!fSuccess)
-                    notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_console));
+                    notifyOperationProgressError(UIErrorString::formatErrorInfo(m_console));
 
                 break;
@@ -915,5 +915,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(comCurrentFolder));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(comCurrentFolder));
 
         /* If that's the folder we are looking for => take it: */
@@ -988,5 +988,5 @@
                     {
                         /* Show error message: */
-                        notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+                        notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
                     }
                     break;
@@ -1001,5 +1001,5 @@
                     {
                         /* Show error message: */
-                        notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_console));
+                        notifyOperationProgressError(UIErrorString::formatErrorInfo(m_console));
                     }
                     break;
@@ -1054,5 +1054,5 @@
                     {
                         /* Show error message: */
-                        notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+                        notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
                     }
                     break;
@@ -1067,5 +1067,5 @@
                     {
                         /* Show error message: */
-                        notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_console));
+                        notifyOperationProgressError(UIErrorString::formatErrorInfo(m_console));
                     }
                     break;
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSerial.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSerial.cpp	(revision 68434)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSerial.cpp	(revision 68435)
@@ -28,5 +28,5 @@
 # include "UIConverter.h"
 # include "UIMachineSettingsSerial.h"
-# include "UIMessageCenter.h"
+# include "UIErrorString.h"
 # include "VBoxGlobal.h"
 
@@ -630,5 +630,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
         else
         {
@@ -688,5 +688,5 @@
             /* Show error message if necessary: */
             if (!fSuccess)
-                notifyOperationProgressError(UIMessageCenter::formatErrorInfo(comPort));
+                notifyOperationProgressError(UIErrorString::formatErrorInfo(comPort));
         }
     }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp	(revision 68434)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsStorage.cpp	(revision 68435)
@@ -34,4 +34,5 @@
 # include "VBoxGlobal.h"
 # include "QIFileDialog.h"
+# include "UIErrorString.h"
 # include "UIMessageCenter.h"
 # include "UIMachineSettingsStorage.h"
@@ -4044,5 +4045,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
     }
     /* Return result: */
@@ -4076,5 +4077,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
         else
         {
@@ -4117,5 +4118,5 @@
             /* Show error message if necessary: */
             if (!fSuccess)
-                notifyOperationProgressError(UIMessageCenter::formatErrorInfo(comController));
+                notifyOperationProgressError(UIErrorString::formatErrorInfo(comController));
 
             /* For each attachment: */
@@ -4154,5 +4155,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
         else
         {
@@ -4196,5 +4197,5 @@
             /* Show error message if necessary: */
             if (!fSuccess)
-                notifyOperationProgressError(UIMessageCenter::formatErrorInfo(comController));
+                notifyOperationProgressError(UIErrorString::formatErrorInfo(comController));
 
             // We need to separately remove attachments first because
@@ -4269,5 +4270,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
     }
     /* Return result: */
@@ -4359,5 +4360,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
     }
     /* Return result: */
@@ -4447,5 +4448,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
     }
     /* Return result: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.cpp	(revision 68434)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSystem.cpp	(revision 68435)
@@ -28,5 +28,5 @@
 # include "UIIconPool.h"
 # include "UIMachineSettingsSystem.h"
-# include "UIMessageCenter.h"
+# include "UIErrorString.h"
 # include "VBoxGlobal.h"
 
@@ -1139,5 +1139,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
     }
     /* Return result: */
@@ -1178,5 +1178,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
     }
     /* Return result: */
@@ -1217,5 +1217,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
     }
     /* Return result: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.cpp	(revision 68434)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.cpp	(revision 68435)
@@ -31,5 +31,5 @@
 # include "UIMachineSettingsUSB.h"
 # include "UIMachineSettingsUSBFilterDetails.h"
-# include "UIMessageCenter.h"
+# include "UIErrorString.h"
 # include "UIToolBar.h"
 # include "VBoxGlobal.h"
@@ -1015,5 +1015,5 @@
             /* Show error message if necessary: */
             if (!fSuccess)
-                notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+                notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
             else
             {
@@ -1060,5 +1060,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
 
         /* For each controller: */
@@ -1085,5 +1085,5 @@
             /* Show error message if necessary: */
             if (!fSuccess)
-                notifyOperationProgressError(UIMessageCenter::formatErrorInfo(comController));
+                notifyOperationProgressError(UIErrorString::formatErrorInfo(comController));
             else
             {
@@ -1101,5 +1101,5 @@
                 /* Show error message if necessary: */
                 if (!fSuccess)
-                    notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+                    notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
             }
         }
@@ -1138,5 +1138,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
         else
         {
@@ -1160,5 +1160,5 @@
                         /* Show error message if necessary: */
                         if (!fSuccess)
-                            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+                            notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
                     }
 
@@ -1188,5 +1188,5 @@
                         /* Show error message if necessary: */
                         if (!fSuccess)
-                            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+                            notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
                     }
 
@@ -1209,5 +1209,5 @@
                         /* Show error message if necessary: */
                         if (!fSuccess)
-                            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(m_machine));
+                            notifyOperationProgressError(UIErrorString::formatErrorInfo(m_machine));
                     }
 
@@ -1236,5 +1236,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(comFiltersObject));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(comFiltersObject));
     }
     /* Return result: */
@@ -1255,5 +1255,5 @@
         /* Show error message if necessary: */
         if (!fSuccess)
-            notifyOperationProgressError(UIMessageCenter::formatErrorInfo(comFiltersObject));
+            notifyOperationProgressError(UIErrorString::formatErrorInfo(comFiltersObject));
         else
         {
@@ -1315,5 +1315,5 @@
             /* Show error message if necessary: */
             if (!fSuccess)
-                notifyOperationProgressError(UIMessageCenter::formatErrorInfo(comFilter));
+                notifyOperationProgressError(UIErrorString::formatErrorInfo(comFilter));
             else
             {
@@ -1324,5 +1324,5 @@
                 /* Show error message if necessary: */
                 if (!fSuccess)
-                    notifyOperationProgressError(UIMessageCenter::formatErrorInfo(comFiltersObject));
+                    notifyOperationProgressError(UIErrorString::formatErrorInfo(comFiltersObject));
             }
         }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIProgressDialog.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIProgressDialog.cpp	(revision 68434)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIProgressDialog.cpp	(revision 68435)
@@ -30,5 +30,5 @@
 /* GUI includes: */
 # include "UIProgressDialog.h"
-# include "UIMessageCenter.h"
+# include "UIErrorString.h"
 # include "UISpecialControls.h"
 # include "UIModalWindowManager.h"
@@ -399,5 +399,5 @@
         /* Notify listeners about the operation progress error: */
         if (!m_progress.isOk() || m_progress.GetResultCode() != 0)
-            emit sigProgressError(UIMessageCenter::formatErrorInfo(m_progress));
+            emit sigProgressError(UIErrorString::formatErrorInfo(m_progress));
 
         /* Exit from the event-loop if there is any: */
