VirtualBox

Ignore:
Timestamp:
Aug 10, 2017 12:28:32 PM (7 years ago)
Author:
vboxsync
Message:

FE/Qt: bugref:8901: Make sure Snapshots Details widget issues similar groups of information fields as VM Details widget do; reuse NLS from VM Details widget.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/selector
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/selector/UISnapshotDetailsWidget.cpp

    r68340 r68365  
    11521152        case DetailsElementType_General:
    11531153        {
    1154             /* Name, OS Type: */
     1154            /* Name, Operating System: */
    11551155            int iRowCount = 2;
    1156             QString strItem = QString(sSectionItemTpl2).arg(tr("Name", "details report"),
     1156            QString strItem = QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Name", "details (general)"),
    11571157                                                            comMachine.GetName())
    1158                             + QString(sSectionItemTpl2).arg(tr("OS Type", "details report"),
     1158                            + QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Operating System", "details (general)"),
    11591159                                                            vboxGlobal().vmGuestOSTypeDescription(comMachine.GetOSTypeId()));
    11601160
    1161             /* Group(s)? */
    1162             const QStringList &groups = comMachine.GetGroups().toList();
    1163             if (   groups.size() > 1
    1164                 || (groups.size() > 0 && groups.at(0) != "/"))
     1161            /* Groups? */
     1162            QStringList aGroups = comMachine.GetGroups().toList();
     1163            /* Do not show groups for machine which is in root group only: */
     1164            if (aGroups.size() == 1)
     1165                aGroups.removeAll("/");
     1166            /* If group list still not empty: */
     1167            if (!aGroups.isEmpty())
    11651168            {
    11661169                ++iRowCount;
    1167                 strItem += QString(sSectionItemTpl2).arg(tr("Group(s)", "details report"),
    1168                                                          groups.join(", "));
     1170                /* For all groups => Trim first '/' symbol: */
     1171                for (int i = 0; i < aGroups.size(); ++i)
     1172                {
     1173                    QString &strGroup = aGroups[i];
     1174                    if (strGroup.startsWith("/") && strGroup != "/")
     1175                        strGroup.remove(0, 1);
     1176                }
     1177                strItem += QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Groups", "details (general)"),
     1178                                                         aGroups.join(", "));
    11691179            }
    11701180
     
    11741184                .arg("details://general", /* icon */
    11751185                     QString::number(iIconArea), /* icon area */
    1176                      tr("General", "details report"), /* title */
     1186                     gpConverter->toString(enmType), /* title */
    11771187                     strItem /* items */);
    11781188
     
    11811191        case DetailsElementType_System:
    11821192        {
    1183             /* Base Memory, Processor(s): */
    1184             int iRowCount = 2;
    1185             QString strItem = QString(sSectionItemTpl2).arg(tr("Base Memory", "details report"),
    1186                                                             tr("<nobr>%1 MB</nobr>", "details report")
    1187                                                                .arg(QString::number(comMachine.GetMemorySize())))
    1188                             + QString(sSectionItemTpl2).arg(tr("Processor(s)", "details report"),
    1189                                                             tr("<nobr>%1</nobr>", "details report")
    1190                                                                .arg(QString::number(comMachine.GetCPUCount())));
     1193            /* Base Memory: */
     1194            int iRowCount = 1;
     1195            QString strItem = QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Base Memory", "details (system)"),
     1196                                                            QApplication::translate("UIGDetails", "%1 MB", "details").arg(comMachine.GetMemorySize()));
     1197
     1198            /* Processors? */
     1199            const int cCPU = comMachine.GetCPUCount();
     1200            if (cCPU > 1)
     1201            {
     1202                ++iRowCount;
     1203                strItem += QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Processors", "details (system)"),
     1204                                                         QString::number(cCPU));
     1205            }
    11911206
    11921207            /* Execution Cap? */
    1193             ULONG uExecutionCap = comMachine.GetCPUExecutionCap();
     1208            const ULONG uExecutionCap = comMachine.GetCPUExecutionCap();
    11941209            if (uExecutionCap < 100)
    11951210            {
    11961211                ++iRowCount;
    1197                 strItem += QString(sSectionItemTpl2).arg(tr("Execution Cap", "details report"),
    1198                                                          tr("<nobr>%1%</nobr>", "details report")
    1199                                                             .arg(comMachine.GetCPUExecutionCap()));
     1212                strItem += QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Execution Cap", "details (system)"),
     1213                                                         QApplication::translate("UIGDetails", "%1%", "details").arg(uExecutionCap));
    12001214            }
    12011215
    12021216            /* Boot Order: */
    12031217            ++iRowCount;
    1204             QStringList bootOrder;
     1218            QStringList aBootOrder;
    12051219            for (ulong i = 1; i <= vboxGlobal().virtualBox().GetSystemProperties().GetMaxBootPosition(); ++i)
    12061220            {
    12071221                const KDeviceType enmDevice = comMachine.GetBootOrder(i);
    12081222                if (enmDevice != KDeviceType_Null)
    1209                     bootOrder << gpConverter->toString(enmDevice);
    1210             }
    1211             if (bootOrder.isEmpty())
    1212                 bootOrder << gpConverter->toString(KDeviceType_Null);
    1213             strItem += QString(sSectionItemTpl2).arg(tr("Boot Order", "details report"),
    1214                                                      bootOrder.join(", "));
    1215 
    1216             /* Chipset type: */
     1223                    aBootOrder << gpConverter->toString(enmDevice);
     1224            }
     1225            if (aBootOrder.isEmpty())
     1226                aBootOrder << gpConverter->toString(KDeviceType_Null);
     1227            strItem += QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Boot Order", "details (system)"),
     1228                                                     aBootOrder.join(", "));
     1229
     1230            /* Chipset type? */
    12171231            const KChipsetType enmChipsetType = comMachine.GetChipsetType();
    12181232            if (enmChipsetType == KChipsetType_ICH9)
    12191233            {
    12201234                ++iRowCount;
    1221                 strItem += QString(sSectionItemTpl2).arg(tr("Chipset Type", "details report"),
     1235                strItem += QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Chipset Type", "details (system)"),
    12221236                                                         gpConverter->toString(enmChipsetType));
    12231237            }
    12241238
    1225             /* Firware type: */
     1239            /* Firware type? */
    12261240            switch (comMachine.GetFirmwareType())
    12271241            {
     
    12321246                {
    12331247                    ++iRowCount;
    1234                     const QString strEFI = tr("Enabled", "details report (EFI)");
    1235                     strItem += QString(sSectionItemTpl2).arg(tr("EFI", "details report"), strEFI);
     1248                    const QString strEFI = QApplication::translate("UIGDetails", "Enabled", "details (system/EFI)");
     1249                    strItem += QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "EFI", "details (system)"), strEFI);
    12361250                    break;
    12371251                }
     
    12391253                {
    12401254                    //++iRowCount;
    1241                     const QString strEFI = tr("Disabled", "details report (EFI)"); Q_UNUSED(strEFI);
    1242                     //strItem += QString(sSectionItemTpl2).arg(tr("EFI", "details report"), strEFI);
     1255                    const QString strEFI = QApplication::translate("UIGDetails", "Disabled", "details (system/EFI)"); Q_UNUSED(strEFI);
     1256                    //strItem += QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "EFI", "details (system)"), strEFI);
    12431257                    break;
    12441258                }
    12451259            }
    12461260
    1247 #ifdef VBOX_WITH_FULL_DETAILS_REPORT
    1248 
    1249             /* Acquire BIOS Settings: */
    1250             const CBIOSSettings &comBiosSettings = comMachine.GetBIOSSettings();
    1251 
    1252             /* ACPI: */
    1253             ++iRowCount;
    1254             const QString strAcpi = comBiosSettings.GetACPIEnabled()
    1255                                   ? tr("Enabled", "details report (ACPI)")
    1256                                   : tr("Disabled", "details report (ACPI)");
    1257             strItem += QString(sSectionItemTpl2).arg(tr("ACPI", "details report"), strAcpi);
    1258 
    1259             /* I/O APIC: */
    1260             ++iRowCount;
    1261             const QString strIoapic = comBiosSettings.GetIOAPICEnabled()
    1262                                     ? tr("Enabled", "details report (I/O APIC)")
    1263                                     : tr("Disabled", "details report (I/O APIC)");
    1264             strItem += QString(sSectionItemTpl2).arg(tr("I/O APIC", "details report"), strIoapic);
    1265 
    1266             /* PAE/NX: */
    1267             ++iRowCount;
    1268             const QString strPae = comMachine.GetCPUProperty(KCPUPropertyType_PAE)
    1269                                  ? tr("Enabled", "details report (PAE/NX)")
    1270                                  : tr("Disabled", "details report (PAE/NX)");
    1271             strItem += QString(sSectionItemTpl2).arg(tr("PAE/NX", "details report"), strPae);
    1272 
    1273 #endif /* VBOX_WITH_FULL_DETAILS_REPORT */
    1274 
    1275             /* VT-x/AMD-V availability: */
    1276             const bool fVTxAMDVSupported = vboxGlobal().host().GetProcessorFeature(KProcessorFeature_HWVirtEx);
    1277             if (fVTxAMDVSupported)
    1278             {
    1279                 /* VT-x/AMD-V: */
     1261            /* Acceleration? */
     1262            QStringList aAcceleration;
     1263            /* VT-x/AMD-V and Nested Paging? */
     1264            if (vboxGlobal().host().GetProcessorFeature(KProcessorFeature_HWVirtEx))
     1265            {
     1266                /* VT-x/AMD-V? */
     1267                if (comMachine.GetHWVirtExProperty(KHWVirtExPropertyType_Enabled))
     1268                {
     1269                    aAcceleration << QApplication::translate("UIGDetails", "VT-x/AMD-V", "details (system)");
     1270                    /* Nested Paging? */
     1271                    if (comMachine.GetHWVirtExProperty(KHWVirtExPropertyType_NestedPaging))
     1272                        aAcceleration << QApplication::translate("UIGDetails", "Nested Paging", "details (system)");
     1273                }
     1274
     1275            }
     1276            /* PAE/NX? */
     1277            if (comMachine.GetCPUProperty(KCPUPropertyType_PAE))
     1278                aAcceleration << QApplication::translate("UIGDetails", "PAE/NX", "details (system)");
     1279            /* Paravirtualization Interface? */
     1280            switch (comMachine.GetEffectiveParavirtProvider())
     1281            {
     1282                case KParavirtProvider_Minimal: aAcceleration << QApplication::translate("UIGDetails", "Minimal Paravirtualization", "details (system)"); break;
     1283                case KParavirtProvider_HyperV:  aAcceleration << QApplication::translate("UIGDetails", "Hyper-V Paravirtualization", "details (system)"); break;
     1284                case KParavirtProvider_KVM:     aAcceleration << QApplication::translate("UIGDetails", "KVM Paravirtualization", "details (system)"); break;
     1285                default: break;
     1286            }
     1287            if (!aAcceleration.isEmpty())
     1288            {
    12801289                ++iRowCount;
    1281                 const QString strVirt = comMachine.GetHWVirtExProperty(KHWVirtExPropertyType_Enabled)
    1282                                       ? tr("Enabled", "details report (VT-x/AMD-V)")
    1283                                       : tr("Disabled", "details report (VT-x/AMD-V)");
    1284                 strItem += QString(sSectionItemTpl2).arg(tr("VT-x/AMD-V", "details report"), strVirt);
    1285 
    1286                 /* Nested Paging: */
    1287                 ++iRowCount;
    1288                 const QString strNested = comMachine.GetHWVirtExProperty(KHWVirtExPropertyType_NestedPaging)
    1289                                         ? tr("Enabled", "details report (Nested Paging)")
    1290                                         : tr("Disabled", "details report (Nested Paging)");
    1291                 strItem += QString(sSectionItemTpl2).arg(tr("Nested Paging", "details report"), strNested);
    1292             }
    1293 
    1294             /* Paravirtualization Interface: */
    1295             ++iRowCount;
    1296             const QString strParavirtProvider = gpConverter->toString(comMachine.GetParavirtProvider());
    1297             strItem += QString(sSectionItemTpl2).arg(tr("Paravirtualization Interface", "details report"), strParavirtProvider);
     1290                strItem += QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Acceleration", "details (system)"), aAcceleration.join(", "));
     1291            }
    12981292
    12991293            /* Append report: */
     
    13021296                .arg("details://system", /* icon */
    13031297                     QString::number(iIconArea), /* icon area */
    1304                      tr("System", "details report"), /* title */
     1298                     gpConverter->toString(enmType), /* title */
    13051299                     strItem); /* items */
    13061300
     
    13191313                    .arg("details://preview", /* icon */
    13201314                         QString::number(iIconArea), /* icon area */
    1321                          tr("Preview", "details report"), /* title */
     1315                         gpConverter->toString(enmType), /* title */
    13221316                         strItem); /* items */
    13231317
     
    13281322            /* Video Memory: */
    13291323            int iRowCount = 1;
    1330             QString strItem = QString(sSectionItemTpl2).arg(tr("Video Memory", "details report"),
    1331                                                             tr("<nobr>%1 MB</nobr>", "details report")
    1332                                                                .arg(QString::number(comMachine.GetVRAMSize())));
     1324            QString strItem = QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Video Memory", "details (display)"),
     1325                                                            QApplication::translate("UIGDetails", "%1 MB", "details").arg(comMachine.GetVRAMSize()));
    13331326
    13341327            /* Screens? */
    1335             const int cGuestScreens = comMachine.GetMonitorCount();
    1336             if (cGuestScreens > 1)
     1328            const int cScreens = comMachine.GetMonitorCount();
     1329            if (cScreens > 1)
    13371330            {
    13381331                ++iRowCount;
    1339                 strItem += QString(sSectionItemTpl2).arg(tr("Screens", "details report"),
    1340                                                          QString::number(cGuestScreens));
    1341             }
    1342 
    1343             /* 3D Acceleration: */
    1344             ++iRowCount;
    1345             QString strAcc3d = comMachine.GetAccelerate3DEnabled() && vboxGlobal().is3DAvailable()
    1346                              ? tr("Enabled", "details report (3D Acceleration)")
    1347                              : tr("Disabled", "details report (3D Acceleration)");
    1348             strItem += QString(sSectionItemTpl2).arg(tr("3D Acceleration", "details report"), strAcc3d);
    1349 
     1332                strItem += QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Screens", "details (display)"),
     1333                                                         QString::number(cScreens));
     1334            }
     1335
     1336            /* Scale-factor? */
     1337            CMachine comExtraDataMachine = comMachine;
     1338            const QString strScaleFactor = comExtraDataMachine.GetExtraData(UIExtraDataDefs::GUI_ScaleFactor);
     1339            {
     1340                /* Try to convert loaded data to double: */
     1341                bool fOk = false;
     1342                double dValue = strScaleFactor.toDouble(&fOk);
     1343                /* Invent the default value: */
     1344                if (!fOk || !dValue)
     1345                    dValue = 1.0;
     1346                /* Append information: */
     1347                if (dValue != 1.0)
     1348                {
     1349                    ++iRowCount;
     1350                    strItem += QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Scale-factor", "details (display)"),
     1351                                                             QString::number(dValue, 'f', 2));
     1352                }
     1353            }
     1354
     1355#ifdef VBOX_WS_MAC
     1356            /* Unscaled HiDPI Video Output? */
     1357            const QString strUnscaledHiDPIMode = machine.GetExtraData(UIExtraDataDefs::GUI_HiDPI_UnscaledOutput);
     1358            {
     1359                /* Try to convert loaded data to bool: */
     1360                const bool fEnabled  = strUnscaledHiDPIMode.compare("true", Qt::CaseInsensitive) == 0 ||
     1361                                       strUnscaledHiDPIMode.compare("yes", Qt::CaseInsensitive) == 0 ||
     1362                                       strUnscaledHiDPIMode.compare("on", Qt::CaseInsensitive) == 0 ||
     1363                                       strUnscaledHiDPIMode == "1";
     1364                /* Append information: */
     1365                if (fEnabled)
     1366                {
     1367                    ++iRowCount;
     1368                    const QString strHiDPI = QApplication::translate("UIGDetails", "Enabled", "details (display/Unscaled HiDPI Video Output)");
     1369                    strItem += QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Unscaled HiDPI Video Output", "details (display)"), strHiDPI);
     1370                }
     1371                else
     1372                {
     1373                    //++iRowCount;
     1374                    const QString strHiDPI = QApplication::translate("UIGDetails", "Disabled", "details (display/Unscaled HiDPI Video Output)"); Q_UNUSED(strHiDPI);
     1375                    //strItem += QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Unscaled HiDPI Video Output", "details (display)"), strHiDPI);
     1376                }
     1377            }
     1378#endif /* VBOX_WS_MAC */
     1379
     1380            /* Acceleration? */
     1381            QStringList aAcceleration;
    13501382#ifdef VBOX_WITH_VIDEOHWACCEL
    1351             /* 2D Video Acceleration: */
    1352             ++iRowCount;
    1353             QString strAcc2dVideo = comMachine.GetAccelerate2DVideoEnabled()
    1354                                   ? tr("Enabled", "details report (2D Video Acceleration)")
    1355                                   : tr("Disabled", "details report (2D Video Acceleration)");
    1356             strItem += QString(sSectionItemTpl2).arg(tr("2D Video Acceleration", "details report"), strAcc2dVideo);
     1383            /* 2D Video Acceleration? */
     1384            if (comMachine.GetAccelerate2DVideoEnabled())
     1385                aAcceleration << QApplication::translate("UIGDetails", "2D Video", "details (display)");
    13571386#endif
     1387            /* 3D Acceleration? */
     1388            if (comMachine.GetAccelerate3DEnabled() && vboxGlobal().is3DAvailable())
     1389                aAcceleration << QApplication::translate("UIGDetails", "3D", "details (display)");
     1390            if (!aAcceleration.isEmpty())
     1391            {
     1392                ++iRowCount;
     1393                strItem += QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Acceleration", "details (display)"), aAcceleration.join(", "));
     1394            }
    13581395
    13591396            /* Remote Desktop Server: */
     
    13631400                ++iRowCount;
    13641401                if (comServer.GetEnabled())
    1365                     strItem += QString(sSectionItemTpl2).arg(tr("Remote Desktop Server Port", "details report (VRDE Server)"),
     1402                    strItem += QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Remote Desktop Server Port", "details (display/vrde)"),
    13661403                                                             comServer.GetVRDEProperty("TCP/Ports"));
    13671404                else
    1368                     strItem += QString(sSectionItemTpl2).arg(tr("Remote Desktop Server", "details report (VRDE Server)"),
    1369                                                              tr("Disabled", "details report (VRDE Server)"));
     1405                    strItem += QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Remote Desktop Server", "details (display/vrde)"),
     1406                                                             QApplication::translate("UIGDetails", "Disabled", "details (display/vrde/VRDE server)"));
     1407            }
     1408
     1409            /* Video Capture: */
     1410            if (comMachine.GetVideoCaptureEnabled())
     1411            {
     1412                ++iRowCount;
     1413                strItem += QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Video Capture File", "details (display/video capture)"),
     1414                                                         comMachine.GetVideoCaptureFile());
     1415                ++iRowCount;
     1416                strItem += QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Video Capture Attributes", "details (display/video capture)"),
     1417                                                         QApplication::translate("UIGDetails", "Frame Size: %1x%2, Frame Rate: %3fps, Bit Rate: %4kbps")
     1418                                                             .arg(comMachine.GetVideoCaptureWidth()).arg(comMachine.GetVideoCaptureHeight())
     1419                                                             .arg(comMachine.GetVideoCaptureFPS()).arg(comMachine.GetVideoCaptureRate()));
     1420            }
     1421            else
     1422            {
     1423                ++iRowCount;
     1424                strItem += QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Video Capture", "details (display/video capture)"),
     1425                                                         QApplication::translate("UIGDetails", "Disabled", "details (display/video capture)"));
    13701426            }
    13711427
     
    13751431                .arg("details://display", /* icon */
    13761432                     QString::number(iIconArea), /* icon area */
    1377                      tr("Display", "details report"), /* title */
     1433                     gpConverter->toString(enmType), /* title */
    13781434                     strItem); /* items */
    13791435
     
    14001456                    /* Prepare current storage slot: */
    14011457                    const StorageSlot attachmentSlot(comController.GetBus(), comAttachment.GetPort(), comAttachment.GetDevice());
    1402                     // TODO: Fix that NLS bug one day..
    14031458                    /* Append 'device slot name' with 'device type name' for optical devices only: */
    1404                     QString strDeviceType = comAttachment.GetType() == KDeviceType_DVD ? tr("(Optical Drive)") : QString();
     1459                    QString strDeviceType = comAttachment.GetType() == KDeviceType_DVD
     1460                                          ? QApplication::translate("UIGDetails", "[Optical Drive]", "details (storage)")
     1461                                          : QString();
    14051462                    if (!strDeviceType.isNull())
    14061463                        strDeviceType.prepend(' ');
     
    14361493            {
    14371494                ++iRowCount;
    1438                 strItem = QString(sSectionItemTpl1).arg(tr("Not Attached", "details report (Storage)"));
     1495                strItem = QString(sSectionItemTpl1).arg(QApplication::translate("UIGDetails", "Not Attached", "details (storage)"));
    14391496            }
    14401497
     
    14441501                .arg("details://storage", /* icon */
    14451502                     QString::number(iIconArea), /* icon area */
    1446                      tr("Storage", "details report"), /* title */
     1503                     gpConverter->toString(enmType), /* title */
    14471504                     strItem); /* items */
    14481505
     
    14601517            {
    14611518                iRowCount += 2;
    1462                 strItem = QString(sSectionItemTpl2).arg(tr("Host Driver", "details report (audio)"),
     1519                strItem = QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Host Driver", "details (audio)"),
    14631520                                                        gpConverter->toString(comAudio.GetAudioDriver()))
    1464                         + QString(sSectionItemTpl2).arg(tr("Controller", "details report (audio)"),
     1521                        + QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Controller", "details (audio)"),
    14651522                                                        gpConverter->toString(comAudio.GetAudioController()));
    14661523            }
     
    14681525            {
    14691526                ++iRowCount;
    1470                 strItem = QString(sSectionItemTpl1).arg(tr("Disabled", "details report (audio)"));
     1527                strItem = QString(sSectionItemTpl1).arg(QApplication::translate("UIGDetails", "Disabled", "details (audio)"));
    14711528            }
    14721529
     
    14761533                .arg("details://audio", /* icon */
    14771534                     QString::number(iIconArea), /* icon area */
    1478                      tr("Audio", "details report"), /* title */
     1535                     gpConverter->toString(enmType), /* title */
    14791536                     strItem); /* items */
    14801537
     
    15051562                    {
    15061563                        case KNetworkAttachmentType_Bridged:
    1507                             attType = attType.arg(tr("Bridged adapter, %1", "details report (network)")
     1564                            attType = attType.arg(QApplication::translate("UIGDetails", "Bridged Adapter, %1", "details (network)")
    15081565                                                     .arg(comNetwork.GetBridgedInterface()));
    15091566                            break;
    15101567                        case KNetworkAttachmentType_Internal:
    1511                             attType = attType.arg(tr("Internal network, '%1'", "details report (network)")
     1568                            attType = attType.arg(QApplication::translate("UIGDetails", "Internal Network, '%1'", "details (network)")
    15121569                                                     .arg(comNetwork.GetInternalNetwork()));
    15131570                            break;
    15141571                        case KNetworkAttachmentType_HostOnly:
    1515                             attType = attType.arg(tr("Host-only adapter, '%1'", "details report (network)")
     1572                            attType = attType.arg(QApplication::translate("UIGDetails", "Host-only Adapter, '%1'", "details (network)")
    15161573                                                     .arg(comNetwork.GetHostOnlyInterface()));
    15171574                            break;
    15181575                        case KNetworkAttachmentType_Generic:
    1519                             attType = attType.arg(tr("Generic, '%1'", "details report (network)")
    1520                                                      .arg(comNetwork.GetGenericDriver()));
     1576                        {
     1577                            QString strGenericDriverProperties(summarizeGenericProperties(comNetwork));
     1578                            attType = attType.arg(strGenericDriverProperties.isNull()
     1579                                                  ? attType.arg(QApplication::translate("UIGDetails", "Generic Driver, '%1'", "details (network)").arg(comNetwork.GetGenericDriver()))
     1580                                                  : attType.arg(QApplication::translate("UIGDetails", "Generic Driver, '%1' { %2 }", "details (network)")
     1581                                                                .arg(comNetwork.GetGenericDriver(), strGenericDriverProperties)));
    15211582                            break;
     1583                        }
    15221584                        case KNetworkAttachmentType_NATNetwork:
    1523                             attType = attType.arg(tr("NAT network, '%1'", "details report (network)")
     1585                            attType = attType.arg(QApplication::translate("UIGDetails", "NAT Network, '%1'", "details (network)")
    15241586                                                     .arg(comNetwork.GetNATNetwork()));
    15251587                            break;
     
    15301592                    /* Here goes the record: */
    15311593                    ++iRowCount;
    1532                     strItem += QString(sSectionItemTpl2).arg(tr("Adapter %1", "details report (network)")
     1594                    strItem += QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Adapter %1", "details (network)")
    15331595                                                                .arg(comNetwork.GetSlot() + 1),
    15341596                                                             attType);
     
    15401602            {
    15411603                ++iRowCount;
    1542                 strItem = QString(sSectionItemTpl1).arg(tr("Disabled", "details report (network)"));
     1604                strItem = QString(sSectionItemTpl1).arg(QApplication::translate("UIGDetails", "Disabled", "details (network/adapter)"));
    15431605            }
    15441606
     
    15481610                .arg("details://network", /* icon */
    15491611                     QString::number(iIconArea), /* icon area */
    1550                      tr("Network", "details report"), /* title */
     1612                     gpConverter->toString(enmType), /* title */
    15511613                     strItem); /* items */
    15521614
     
    15811643                    /* Here goes the record: */
    15821644                    ++iRowCount;
    1583                     strItem += QString(sSectionItemTpl2).arg(tr("Port %1", "details report (serial ports)")
     1645                    strItem += QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Port %1", "details (serial)")
    15841646                                                                .arg(comSerial.GetSlot() + 1),
    15851647                                                             strData);
     
    15911653            {
    15921654                ++iRowCount;
    1593                 strItem = QString(sSectionItemTpl1).arg(tr("Disabled", "details report (serial ports)"));
     1655                strItem = QString(sSectionItemTpl1).arg(QApplication::translate("UIGDetails", "Disabled", "details (serial)"));
    15941656            }
    15951657
     
    15991661                .arg("details://serialPorts", /* icon */
    16001662                     QString::number(iIconArea), /* icon area */
    1601                      tr("Serial Ports", "details report"), /* title */
     1663                     gpConverter->toString(enmType), /* title */
    16021664                     strItem); /* items */
    16031665
     
    16241686                    /* Here goes the record: */
    16251687                    ++iRowCount;
    1626                     strItem += QString(sSectionItemTpl2).arg(tr("Port %1", "details report (parallel ports)")
     1688                    strItem += QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Port %1", "details (parallel)")
    16271689                                                                .arg(comParallel.GetSlot() + 1),
    16281690                                                             strData);
     
    16341696            {
    16351697                ++iRowCount;
    1636                 strItem = QString(sSectionItemTpl1).arg(tr("Disabled", "details report (parallel ports)"));
     1698                strItem = QString(sSectionItemTpl1).arg(QApplication::translate("UIGDetails", "Disabled", "details (parallel)"));
    16371699            }
    16381700
     
    16421704                .arg("details://parallelPorts", /* icon */
    16431705                     QString::number(iIconArea), /* icon area */
    1644                      tr("Parallel Ports", "details report"), /* title */
     1706                     gpConverter->toString(enmType), /* title */
    16451707                     strItem); /* items */
    16461708
     
    16601722
    16611723                /* The USB controller may be unavailable (i.e. in VirtualBox OSE): */
    1662                 if (!comMachine.GetUSBControllers().isEmpty())
     1724                const CUSBControllerVector controllers = comMachine.GetUSBControllers();
     1725                if (!controllers.isEmpty())
    16631726                {
     1727                    /* USB Controller: */
     1728                    ++iRowCount;
     1729                    QStringList aControllerList;
     1730                    foreach (const CUSBController &comController, controllers)
     1731                        aControllerList << gpConverter->toString(comController.GetType());
     1732                    strItem += QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "USB Controller", "details (usb)"),
     1733                                                             aControllerList.join(", "));
     1734
    16641735                    /* Acquire USB filters: */
    16651736                    const CUSBDeviceFilterVector &filterVector = comFilters.GetDeviceFilters();
     
    16701741                            ++cActive;
    16711742                    /* Here goes the record: */
    1672                     strItem = QString(sSectionItemTpl2).arg(tr("Device Filters", "details report (USB)"),
    1673                                                             tr("%1 (%2 active)", "details report (USB)")
    1674                                                                .arg(filterVector.size()).arg(cActive));
     1743                    strItem += QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Device Filters", "details (usb)"),
     1744                                                             QApplication::translate("UIGDetails", "%1 (%2 active)", "details (usb)")
     1745                                                                 .arg(filterVector.size()).arg(cActive));
    16751746                }
    16761747
    16771748                /* Handle side-case: */
    16781749                if (strItem.isNull())
    1679                     strItem = QString(sSectionItemTpl1).arg(tr("Disabled", "details report (USB)"));
     1750                    strItem = QString(sSectionItemTpl1).arg(QApplication::translate("UIGDetails", "Disabled", "details (usb)"));
    16801751
    16811752                /* Append report: */
     
    16841755                    .arg("details://usb", /* icon */
    16851756                         QString::number(iIconArea), /* icon area */
    1686                          tr("USB", "details report"), /* title */
     1757                         gpConverter->toString(enmType), /* title */
    16871758                         strItem); /* items */
    16881759            }
     
    16971768
    16981769            /* Acquire shared folders count: */
    1699             const ulong iCount = comMachine.GetSharedFolders().size();
    1700             if (iCount > 0)
    1701                 strItem = QString(sSectionItemTpl2).arg(tr("Shared Folders", "details report (shared folders)"),
    1702                                                         QString::number(iCount));
     1770            const ulong cFolders = comMachine.GetSharedFolders().size();
     1771            if (cFolders > 0)
     1772                strItem = QString(sSectionItemTpl2).arg(QApplication::translate("UIGDetails", "Shared Folders", "details (shared folders)"),
     1773                                                        QString::number(cFolders));
    17031774            else
    1704                 strItem = QString(sSectionItemTpl1).arg(tr("None", "details report (shared folders)"));
     1775                strItem = QString(sSectionItemTpl1).arg(QApplication::translate("UIGDetails", "None", "details (shared folders)"));
    17051776
    17061777            /* Append report: */
     
    17091780                .arg("details://sharedFolders", /* icon */
    17101781                     QString::number(iIconArea), /* icon area */
    1711                      tr("Shared Folders", "details report"), /* title */
     1782                     gpConverter->toString(enmType), /* title */
    17121783                     strItem); /* items */
    17131784
     
    17221793}
    17231794
     1795/* static */
     1796QString UISnapshotDetailsWidget::summarizeGenericProperties(const CNetworkAdapter &comNetwork)
     1797{
     1798    QVector<QString> names;
     1799    QVector<QString> props;
     1800    props = comNetwork.GetProperties(QString(), names);
     1801    QString strResult;
     1802    for (int i = 0; i < names.size(); ++i)
     1803    {
     1804        strResult += names[i] + "=" + props[i];
     1805        if (i < names.size() - 1)
     1806            strResult += ", ";
     1807    }
     1808    return strResult;
     1809}
     1810
    17241811#include "UISnapshotDetailsWidget.moc"
    17251812
  • trunk/src/VBox/Frontends/VirtualBox/src/selector/UISnapshotDetailsWidget.h

    r67517 r68365  
    3030
    3131/* Forward declarations: */
     32class CNetworkAdapter;
    3233class QGridLayout;
    3334class QLabel;
     
    144145    QString detailsReport(const CMachine &comMachine, DetailsElementType enmType);
    145146
     147    /** Summarizes generic properties. */
     148    static QString summarizeGenericProperties(const CNetworkAdapter &adapter);
     149
    146150    /** Holds the snapshot object to load data from. */
    147151    CSnapshot  m_comSnapshot;
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette