Index: /trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendCOM.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendCOM.cpp	(revision 73161)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/converter/UIConverterBackendCOM.cpp	(revision 73162)
@@ -379,4 +379,20 @@
 }
 
+/* KPortMode <= QString: */
+template<> KPortMode fromString<KPortMode>(const QString &strMode)
+{
+    QHash<QString, KPortMode> list;
+    list.insert(QApplication::translate("VBoxGlobal", "Disconnected", "PortMode"), KPortMode_Disconnected);
+    list.insert(QApplication::translate("VBoxGlobal", "Host Pipe", "PortMode"),    KPortMode_HostPipe);
+    list.insert(QApplication::translate("VBoxGlobal", "Host Device", "PortMode"),  KPortMode_HostDevice);
+    list.insert(QApplication::translate("VBoxGlobal", "Raw File", "PortMode"),     KPortMode_RawFile);
+    list.insert(QApplication::translate("VBoxGlobal", "TCP", "PortMode"),          KPortMode_TCP);
+    if (!list.contains(strMode))
+    {
+        AssertMsgFailed(("No value for '%s'", strMode.toUtf8().constData()));
+    }
+    return list.value(strMode, KPortMode_Disconnected);
+}
+
 /* QString <= KUSBControllerType: */
 template<> QString toString(const KUSBControllerType &type)
@@ -418,4 +434,17 @@
     }
     return QString();
+}
+
+/* KUSBDeviceFilterAction <= QString: */
+template<> KUSBDeviceFilterAction fromString<KUSBDeviceFilterAction>(const QString &strAction)
+{
+    QHash<QString, KUSBDeviceFilterAction> list;
+    list.insert(QApplication::translate("VBoxGlobal", "Ignore", "USBDeviceFilterAction"), KUSBDeviceFilterAction_Ignore);
+    list.insert(QApplication::translate("VBoxGlobal", "Hold", "USBDeviceFilterAction"),   KUSBDeviceFilterAction_Hold);
+    if (!list.contains(strAction))
+    {
+        AssertMsgFailed(("No value for '%s'", strAction.toUtf8().constData()));
+    }
+    return list.value(strAction, KUSBDeviceFilterAction_Null);
 }
 
@@ -437,151 +466,4 @@
     }
     return QString();
-}
-
-/* QString <= KAudioControllerType: */
-template<> QString toString(const KAudioControllerType &type)
-{
-    switch (type)
-    {
-        case KAudioControllerType_AC97: return QApplication::translate("VBoxGlobal", "ICH AC97", "AudioControllerType");
-        case KAudioControllerType_SB16: return QApplication::translate("VBoxGlobal", "SoundBlaster 16", "AudioControllerType");
-        case KAudioControllerType_HDA:  return QApplication::translate("VBoxGlobal", "Intel HD Audio", "AudioControllerType");
-        default: AssertMsgFailed(("No text for %d", type)); break;
-    }
-    return QString();
-}
-
-/* QString <= KAuthType: */
-template<> QString toString(const KAuthType &type)
-{
-    switch (type)
-    {
-        case KAuthType_Null:     return QApplication::translate("VBoxGlobal", "Null", "AuthType");
-        case KAuthType_External: return QApplication::translate("VBoxGlobal", "External", "AuthType");
-        case KAuthType_Guest:    return QApplication::translate("VBoxGlobal", "Guest", "AuthType");
-        default: AssertMsgFailed(("No text for %d", type)); break;
-    }
-    return QString();
-}
-
-/* QString <= KStorageBus: */
-template<> QString toString(const KStorageBus &bus)
-{
-    switch (bus)
-    {
-        case KStorageBus_IDE:    return QApplication::translate("VBoxGlobal", "IDE", "StorageBus");
-        case KStorageBus_SATA:   return QApplication::translate("VBoxGlobal", "SATA", "StorageBus");
-        case KStorageBus_SCSI:   return QApplication::translate("VBoxGlobal", "SCSI", "StorageBus");
-        case KStorageBus_Floppy: return QApplication::translate("VBoxGlobal", "Floppy", "StorageBus");
-        case KStorageBus_SAS:    return QApplication::translate("VBoxGlobal", "SAS", "StorageBus");
-        case KStorageBus_USB:    return QApplication::translate("VBoxGlobal", "USB", "StorageBus");
-        case KStorageBus_PCIe:   return QApplication::translate("VBoxGlobal", "PCIe", "StorageBus");
-        default: AssertMsgFailed(("No text for %d", bus)); break;
-    }
-    return QString();
-}
-
-/* QString <= KStorageControllerType: */
-template<> QString toString(const KStorageControllerType &type)
-{
-    switch (type)
-    {
-        case KStorageControllerType_LsiLogic:    return QApplication::translate("VBoxGlobal", "Lsilogic", "StorageControllerType");
-        case KStorageControllerType_BusLogic:    return QApplication::translate("VBoxGlobal", "BusLogic", "StorageControllerType");
-        case KStorageControllerType_IntelAhci:   return QApplication::translate("VBoxGlobal", "AHCI", "StorageControllerType");
-        case KStorageControllerType_PIIX3:       return QApplication::translate("VBoxGlobal", "PIIX3", "StorageControllerType");
-        case KStorageControllerType_PIIX4:       return QApplication::translate("VBoxGlobal", "PIIX4", "StorageControllerType");
-        case KStorageControllerType_ICH6:        return QApplication::translate("VBoxGlobal", "ICH6", "StorageControllerType");
-        case KStorageControllerType_I82078:      return QApplication::translate("VBoxGlobal", "I82078", "StorageControllerType");
-        case KStorageControllerType_LsiLogicSas: return QApplication::translate("VBoxGlobal", "LsiLogic SAS", "StorageControllerType");
-        case KStorageControllerType_USB:         return QApplication::translate("VBoxGlobal", "USB", "StorageControllerType");
-        case KStorageControllerType_NVMe:        return QApplication::translate("VBoxGlobal", "NVMe", "StorageControllerType");
-        default: AssertMsgFailed(("No text for %d", type)); break;
-    }
-    return QString();
-}
-
-/* QString <= KChipsetType: */
-template<> QString toString(const KChipsetType &type)
-{
-    switch (type)
-    {
-        case KChipsetType_PIIX3: return QApplication::translate("VBoxGlobal", "PIIX3", "ChipsetType");
-        case KChipsetType_ICH9:  return QApplication::translate("VBoxGlobal", "ICH9", "ChipsetType");
-        default: AssertMsgFailed(("No text for %d", type)); break;
-    }
-    return QString();
-}
-
-/* QString <= KNATProtocol: */
-template<> QString toString(const KNATProtocol &protocol)
-{
-    switch (protocol)
-    {
-        case KNATProtocol_UDP: return QApplication::translate("VBoxGlobal", "UDP", "NATProtocol");
-        case KNATProtocol_TCP: return QApplication::translate("VBoxGlobal", "TCP", "NATProtocol");
-        default: AssertMsgFailed(("No text for %d", protocol)); break;
-    }
-    return QString();
-}
-
-/* QString <= KNATProtocol: */
-template<> QString toInternalString(const KNATProtocol &protocol)
-{
-    QString strResult;
-    switch (protocol)
-    {
-        case KNATProtocol_UDP: strResult = "udp"; break;
-        case KNATProtocol_TCP: strResult = "tcp"; break;
-        default: AssertMsgFailed(("No text for protocol type=%d", protocol)); break;
-    }
-    return strResult;
-}
-
-/* KNATProtocol <= QString: */
-template<> KNATProtocol fromInternalString<KNATProtocol>(const QString &strProtocol)
-{
-    /* Here we have some fancy stuff allowing us
-     * to search through the keys using 'case-insensitive' rule: */
-    QStringList keys; QList<KNATProtocol> values;
-    keys << "udp";    values << KNATProtocol_UDP;
-    keys << "tcp";    values << KNATProtocol_TCP;
-    /* Invalid type for unknown words: */
-    if (!keys.contains(strProtocol, Qt::CaseInsensitive))
-    {
-        AssertMsgFailed(("No value for '%s'", strProtocol.toUtf8().constData()));
-        return KNATProtocol_UDP;
-    }
-    /* Corresponding type for known words: */
-    return values.at(keys.indexOf(QRegExp(strProtocol, Qt::CaseInsensitive)));
-}
-
-/* KPortMode <= QString: */
-template<> KPortMode fromString<KPortMode>(const QString &strMode)
-{
-    QHash<QString, KPortMode> list;
-    list.insert(QApplication::translate("VBoxGlobal", "Disconnected", "PortMode"), KPortMode_Disconnected);
-    list.insert(QApplication::translate("VBoxGlobal", "Host Pipe", "PortMode"),    KPortMode_HostPipe);
-    list.insert(QApplication::translate("VBoxGlobal", "Host Device", "PortMode"),  KPortMode_HostDevice);
-    list.insert(QApplication::translate("VBoxGlobal", "Raw File", "PortMode"),     KPortMode_RawFile);
-    list.insert(QApplication::translate("VBoxGlobal", "TCP", "PortMode"),          KPortMode_TCP);
-    if (!list.contains(strMode))
-    {
-        AssertMsgFailed(("No value for '%s'", strMode.toUtf8().constData()));
-    }
-    return list.value(strMode, KPortMode_Disconnected);
-}
-
-/* KUSBDeviceFilterAction <= QString: */
-template<> KUSBDeviceFilterAction fromString<KUSBDeviceFilterAction>(const QString &strAction)
-{
-    QHash<QString, KUSBDeviceFilterAction> list;
-    list.insert(QApplication::translate("VBoxGlobal", "Ignore", "USBDeviceFilterAction"), KUSBDeviceFilterAction_Ignore);
-    list.insert(QApplication::translate("VBoxGlobal", "Hold", "USBDeviceFilterAction"),   KUSBDeviceFilterAction_Hold);
-    if (!list.contains(strAction))
-    {
-        AssertMsgFailed(("No value for '%s'", strAction.toUtf8().constData()));
-    }
-    return list.value(strAction, KUSBDeviceFilterAction_Null);
 }
 
@@ -606,4 +488,17 @@
 }
 
+/* QString <= KAudioControllerType: */
+template<> QString toString(const KAudioControllerType &type)
+{
+    switch (type)
+    {
+        case KAudioControllerType_AC97: return QApplication::translate("VBoxGlobal", "ICH AC97", "AudioControllerType");
+        case KAudioControllerType_SB16: return QApplication::translate("VBoxGlobal", "SoundBlaster 16", "AudioControllerType");
+        case KAudioControllerType_HDA:  return QApplication::translate("VBoxGlobal", "Intel HD Audio", "AudioControllerType");
+        default: AssertMsgFailed(("No text for %d", type)); break;
+    }
+    return QString();
+}
+
 /* KAudioControllerType <= QString: */
 template<> KAudioControllerType fromString<KAudioControllerType>(const QString &strType)
@@ -620,4 +515,17 @@
 }
 
+/* QString <= KAuthType: */
+template<> QString toString(const KAuthType &type)
+{
+    switch (type)
+    {
+        case KAuthType_Null:     return QApplication::translate("VBoxGlobal", "Null", "AuthType");
+        case KAuthType_External: return QApplication::translate("VBoxGlobal", "External", "AuthType");
+        case KAuthType_Guest:    return QApplication::translate("VBoxGlobal", "Guest", "AuthType");
+        default: AssertMsgFailed(("No text for %d", type)); break;
+    }
+    return QString();
+}
+
 /* KAuthType <= QString: */
 template<> KAuthType fromString<KAuthType>(const QString &strType)
@@ -632,4 +540,41 @@
     }
     return list.value(strType, KAuthType_Null);
+}
+
+/* QString <= KStorageBus: */
+template<> QString toString(const KStorageBus &bus)
+{
+    switch (bus)
+    {
+        case KStorageBus_IDE:    return QApplication::translate("VBoxGlobal", "IDE", "StorageBus");
+        case KStorageBus_SATA:   return QApplication::translate("VBoxGlobal", "SATA", "StorageBus");
+        case KStorageBus_SCSI:   return QApplication::translate("VBoxGlobal", "SCSI", "StorageBus");
+        case KStorageBus_Floppy: return QApplication::translate("VBoxGlobal", "Floppy", "StorageBus");
+        case KStorageBus_SAS:    return QApplication::translate("VBoxGlobal", "SAS", "StorageBus");
+        case KStorageBus_USB:    return QApplication::translate("VBoxGlobal", "USB", "StorageBus");
+        case KStorageBus_PCIe:   return QApplication::translate("VBoxGlobal", "PCIe", "StorageBus");
+        default: AssertMsgFailed(("No text for %d", bus)); break;
+    }
+    return QString();
+}
+
+/* QString <= KStorageControllerType: */
+template<> QString toString(const KStorageControllerType &type)
+{
+    switch (type)
+    {
+        case KStorageControllerType_LsiLogic:    return QApplication::translate("VBoxGlobal", "Lsilogic", "StorageControllerType");
+        case KStorageControllerType_BusLogic:    return QApplication::translate("VBoxGlobal", "BusLogic", "StorageControllerType");
+        case KStorageControllerType_IntelAhci:   return QApplication::translate("VBoxGlobal", "AHCI", "StorageControllerType");
+        case KStorageControllerType_PIIX3:       return QApplication::translate("VBoxGlobal", "PIIX3", "StorageControllerType");
+        case KStorageControllerType_PIIX4:       return QApplication::translate("VBoxGlobal", "PIIX4", "StorageControllerType");
+        case KStorageControllerType_ICH6:        return QApplication::translate("VBoxGlobal", "ICH6", "StorageControllerType");
+        case KStorageControllerType_I82078:      return QApplication::translate("VBoxGlobal", "I82078", "StorageControllerType");
+        case KStorageControllerType_LsiLogicSas: return QApplication::translate("VBoxGlobal", "LsiLogic SAS", "StorageControllerType");
+        case KStorageControllerType_USB:         return QApplication::translate("VBoxGlobal", "USB", "StorageControllerType");
+        case KStorageControllerType_NVMe:        return QApplication::translate("VBoxGlobal", "NVMe", "StorageControllerType");
+        default: AssertMsgFailed(("No text for %d", type)); break;
+    }
+    return QString();
 }
 
@@ -655,2 +600,56 @@
 }
 
+/* QString <= KChipsetType: */
+template<> QString toString(const KChipsetType &type)
+{
+    switch (type)
+    {
+        case KChipsetType_PIIX3: return QApplication::translate("VBoxGlobal", "PIIX3", "ChipsetType");
+        case KChipsetType_ICH9:  return QApplication::translate("VBoxGlobal", "ICH9", "ChipsetType");
+        default: AssertMsgFailed(("No text for %d", type)); break;
+    }
+    return QString();
+}
+
+/* QString <= KNATProtocol: */
+template<> QString toString(const KNATProtocol &protocol)
+{
+    switch (protocol)
+    {
+        case KNATProtocol_UDP: return QApplication::translate("VBoxGlobal", "UDP", "NATProtocol");
+        case KNATProtocol_TCP: return QApplication::translate("VBoxGlobal", "TCP", "NATProtocol");
+        default: AssertMsgFailed(("No text for %d", protocol)); break;
+    }
+    return QString();
+}
+
+/* QString <= KNATProtocol: */
+template<> QString toInternalString(const KNATProtocol &protocol)
+{
+    QString strResult;
+    switch (protocol)
+    {
+        case KNATProtocol_UDP: strResult = "udp"; break;
+        case KNATProtocol_TCP: strResult = "tcp"; break;
+        default: AssertMsgFailed(("No text for protocol type=%d", protocol)); break;
+    }
+    return strResult;
+}
+
+/* KNATProtocol <= QString: */
+template<> KNATProtocol fromInternalString<KNATProtocol>(const QString &strProtocol)
+{
+    /* Here we have some fancy stuff allowing us
+     * to search through the keys using 'case-insensitive' rule: */
+    QStringList keys; QList<KNATProtocol> values;
+    keys << "udp";    values << KNATProtocol_UDP;
+    keys << "tcp";    values << KNATProtocol_TCP;
+    /* Invalid type for unknown words: */
+    if (!keys.contains(strProtocol, Qt::CaseInsensitive))
+    {
+        AssertMsgFailed(("No value for '%s'", strProtocol.toUtf8().constData()));
+        return KNATProtocol_UDP;
+    }
+    /* Corresponding type for known words: */
+    return values.at(keys.indexOf(QRegExp(strProtocol, Qt::CaseInsensitive)));
+}
